seesaw_233
自制事件.....好像有什么不对..............
  1.       
  2. package seesaw.chestgui;
  3. // ---------- [自制实体移动事件] ----------
  4. // 引用的封装类:org.bukkit.event.entity: EntityEvent
  5. // 用于监听实体移动事件
  6. // 作者:seesaw      
  7. // 制作时间:2015-10-10
  8. //----------------------------------------------------------------------------//
  9. import org.bukkit.Location;
  10. import org.bukkit.entity.Entity;
  11. import org.bukkit.event.Cancellable;
  12. import org.bukkit.event.HandlerList;
  13. import org.bukkit.event.entity.EntityEvent;
  14. //----------------------------------------------------------------------------//
  15. /**
  16. * 实体移动事件(custom)                    
  17. * @author seesaw
  18. */
  19. public class EntityMoveEvent extends EntityEvent implements Cancellable
  20. {
  21. //----------------------------------------------------------------------------//
  22. private static final HandlerList handlers = new HandlerList();
  23. private boolean cancel;
  24. private Location from;
  25. private Location to;
  26. //----------------------------------------------------------------------------//
  27.     /**
  28.      * 本类的构造函数
  29.      * @param e
  30.      * @param from
  31.      * @param to
  32.      */
  33.     public EntityMoveEvent(Entity e, Location from, Location to)
  34.         {
  35.                 super(e);
  36.                 cancel = false;
  37.                 this.from = from;
  38.                 this.to = to;
  39.         }
  40. //----------------------------------------------------------------------------//
  41.     /**
  42.      *
  43.      * @return
  44.      */
  45.     @Override
  46.         public boolean isCancelled()
  47.         {
  48.                 return cancel;
  49.         }
  50. //----------------------------------------------------------------------------//
  51.     /**
  52.      * 设置是否取消该事件(布尔值)
  53.      * @param cancel
  54.      */
  55.     @Override
  56.         public void setCancelled(boolean cancel)
  57.         {
  58.                 this.cancel = cancel;
  59.         }
  60. //----------------------------------------------------------------------------//
  61.     /**
  62.      * 获取该实体移动前的位置
  63.      * @return
  64.      */
  65.     public Location getFrom()
  66.         {
  67.                 return from;
  68.         }
  69. //----------------------------------------------------------------------------//
  70.     /**
  71.      * 设置该实体移动前的位置
  72.      * @param from
  73.      */
  74.     public void setFrom(Location from)
  75.         {
  76.                 this.from = from;
  77.         }
  78. //----------------------------------------------------------------------------//
  79.     /**
  80.      * 获取该实体将移动到的新位置
  81.      * @return
  82.      */
  83.     public Location getTo()
  84.         {
  85.                 return to;
  86.         }
  87. //----------------------------------------------------------------------------//
  88.     /**
  89.      * 设置该实体将移动到的新位置
  90.      * @param to
  91.      */
  92.     public void setTo(Location to)
  93.         {
  94.                 this.to = to;
  95.         }
  96. //----------------------------------------------------------------------------//
  97.     /**
  98.      * 未知用法
  99.      * @return
  100.      */
  101.     @Override
  102.         public HandlerList getHandlers()
  103.         {
  104.                 return handlers;
  105.         }
  106. //----------------------------------------------------------------------------//
  107.     /**
  108.      * 未知用法
  109.      * @return
  110.      */
  111.     public static HandlerList getHandlerList()
  112.         {
  113.                 return handlers;
  114.         }
  115. //----------------------------------------------------------------------------//
  116. }
复制代码
这里面有问题么{:10_516:}




andylizi
语法没问题呀?为什么你觉得有问题

seesaw_233
andylizi 发表于 2015-10-12 12:33
语法没问题呀?为什么你觉得有问题

怎么用  EntityMoveEvent event = new EntityMoveEvent();  实例化它?
{:10_498:}

andylizi
seesaw_233 发表于 2015-10-12 17:28
怎么用  EntityMoveEvent event = new EntityMoveEvent();  实例化它?

...你真的学过java吗?实例化需要参数啊。。。

seesaw_233
andylizi 发表于 2015-10-12 17:53
...你真的学过java吗?实例化需要参数啊。。。

没学好,参数是哪个?  {:10_503:}

andylizi
seesaw_233 发表于 2015-10-13 10:07
没学好,参数是哪个?

你自己设定的参数你自己不知道?!
  1. /**
  2.      * 本类的构造函数
  3.      * @param e
  4.      * @param from
  5.      * @param to
  6.      */
  7.     public EntityMoveEvent(Entity e, Location from, Location to){}
复制代码

参数不是都在里面吗!
  1. EntityMoveEvent event = new EntityMoveEvent(实体Entity,坐标Location,坐标Location);
复制代码

seesaw_233
andylizi 发表于 2015-10-13 12:31
你自己设定的参数你自己不知道?!

参数不是都在里面吗!

哦,看教程看晕了......话说这事件能用么?  {:10_503:}

seesaw_233
andylizi 发表于 2015-10-13 12:31
你自己设定的参数你自己不知道?!

参数不是都在里面吗!

是这样吗?
  1. EntityMoveEvent event = new EntityMoveEvent(e,from,to);
复制代码


I_am_fudge

话说 你new一个MoveEvent的话有何用。。感觉你没懂自己在做什么

seesaw_233
I_am_fudge 发表于 2015-10-13 20:13
话说 你new一个MoveEvent的话有何用。。感觉你没懂自己在做什么

那我该怎么做?

baibai
{:10_522:}恩。。好深奧,何不先用你的監聽器隨便做一個觸發的效果比如發送消息之類的作為測試能不能用

seesaw_233
baibai 发表于 2015-10-13 20:36
恩。。好深奧,何不先用你的監聽器隨便做一個觸發的效果比如發送消息之類的作為測試能不能用 ...

但是先要callEvent才有用,callEvent之前需要实例化,但我却不知道怎么搞……
{:10_503:}


I_am_fudge
seesaw_233 发表于 2015-10-13 21:07
但是先要callEvent才有用,callEvent之前需要实例化,但我却不知道怎么搞……

一只Event不一定先实例化也能用,监听器啊。监听器

baibai
seesaw_233 发表于 2015-10-13 21:07
但是先要callEvent才有用,callEvent之前需要实例化,但我却不知道怎么搞……

{:10_522:}。。。MCBBS上不是有個教程就有關於自定義監聽器么,沒有的話也可以去官網看的吧。。

seesaw_233
I_am_fudge 发表于 2015-10-13 22:40
一只Event不一定先实例化也能用,监听器啊。监听器

那是自制事件啊
  1. public void onEntityMove(EntityMoveEvent event)
  2. {
  3.    
  4.     Entity tge = event.getEntity();
  5.    if (tge instanceof Player) { return; }
  6.            
  7.          event.setCancelled(true);      
  8.    

  9. }
复制代码

seesaw_233
baibai 发表于 2015-10-13 23:51
。。。MCBBS上不是有個教程就有關於自定義監聽器么,沒有的話也可以去官網看的吧。。 ...

看过了,不懂, 倒霉+忍者 的教程我照搬下来结果报错
找不到变量block ,位于ChestGUI (我的主类)中