From 429eb9c6ecd61d141336bfdfa8bf614cc2809c3a Mon Sep 17 00:00:00 2001 From: carm Date: Wed, 27 Jul 2022 14:41:20 +0800 Subject: [PATCH] =?UTF-8?q?chore(event):=20=E4=B8=BA=E5=90=8C=E6=AD=A5/?= =?UTF-8?q?=E5=BC=82=E6=AD=A5=E4=BA=8B=E4=BB=B6=E5=94=A4=E8=B5=B7=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E6=B7=BB=E5=8A=A0Javadoc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cc/carm/lib/easyplugin/EasyPlugin.java | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/base/main/src/main/java/cc/carm/lib/easyplugin/EasyPlugin.java b/base/main/src/main/java/cc/carm/lib/easyplugin/EasyPlugin.java index 3e48999..7b2558e 100644 --- a/base/main/src/main/java/cc/carm/lib/easyplugin/EasyPlugin.java +++ b/base/main/src/main/java/cc/carm/lib/easyplugin/EasyPlugin.java @@ -145,6 +145,13 @@ public abstract class EasyPlugin extends JavaPlugin { if (isDebugging()) print("&8[DEBUG] &r", messages); } + /** + * 在主线程唤起一个事件,并支持获取事件的结果。 + * + * @param event 同步事件 (isAsync=false) + * @param 事件类型 + * @return CompletableFuture + */ public @NotNull CompletableFuture callSync(T event) { CompletableFuture future = new CompletableFuture<>(); getScheduler().run(() -> { @@ -154,11 +161,24 @@ public abstract class EasyPlugin extends JavaPlugin { return future; } + /** + * 在异步线程中唤起一个事件,并支持获取事件的结果。 + * + * @param event 异步事件 (isAsync=true) + * @param 事件类型 + * @return CompletableFuture + */ public @NotNull CompletableFuture callAsync(T event) { - return CompletableFuture.supplyAsync(() -> { + CompletableFuture future = new CompletableFuture<>(); + getScheduler().runAsync(() -> { Bukkit.getPluginManager().callEvent(event); - return event; + future.complete(event); }); + return future; + } + + protected void setMessageProvider(@NotNull EasyPluginMessageProvider provider) { + this.messageProvider = provider; } @SuppressWarnings("BooleanMethodIsAlwaysInverted")