本帖最后由 632b781af97903 于 2022-4-28 11:39 编辑 
Bukkit.getServer().getPluginManager().callEvent(e)
isCancelled也显示true,但是还是能执行。还是说自定义事件不能取消吗?
e.setCancelled(true);
e.getPlayer().sendMessage("命令: " + e.isCancelled());
复制代码
Bukkit.getServer().getPluginManager().callEvent(e)
isCancelled也显示true,但是还是能执行。还是说自定义事件不能取消吗?
e.setCancelled(true);
e.getPlayer().sendMessage("命令: " + e.isCancelled());
- public class PlayerCommandPreprocessE extends PlayerCommandPreprocessEvent {
 
-         public PlayerCommandPreprocessE(PlayerCommandPreprocessEvent e) {
 
-                 super(e.getPlayer(), e.getMessage());
 
-         }
 
-         private static final HandlerList handlers = new HandlerList();
 
 
-         @Override
 
-         public HandlerList getHandlers() {
 
-                 return handlers;
 
-         }
 
 
-         public static HandlerList getHandlerList() {
 
-                 return handlers;
 
-         }
 
- }
 本帖最后由 nanmenyangde 于 2022-4-30 16:31 编辑 
复制代码
你需要在自己的事件类里面重载isCancelled()和setCancelled()函数才能取消。
- private boolean isCancelled = false;
 
-  @Override
 
- public boolean isCancelled() {
 
-     // Cancellable 需要
 
-     return isCancelled;
 
- }
 
 
- @Override
 
- public void setCancelled(boolean b) {
 
-     // Cancellable 需要
 
-     sCancelled = b;
 
- }
你需要在自己的事件类里面重载isCancelled()和setCancelled()函数才能取消。