1850343382
这个问题想了很久都没找到怎么去解决,一个自定义事件写完之后,要做些什么才可以去使这个事件可以在某种方式的时候被触发,列如金钱发生变化事件,求大佬帮忙

耗子
  1. Bukkit.getPluginManager().callEvent(new YourEvent());
复制代码

1850343382

可是不知道要写在什么地方

耗子
本帖最后由 耗子 于 2017-10-1 15:10 编辑
1850343382 发表于 2017-10-1 14:48
可是不知道要写在什么地方

……………………………………
一个Event(事件)发生了,需要让其他插件知道它发生了,那么需要在你的功能之后写下通知Event的代码,例如给玩家钱发送GiveMoneyEvent事件:
  1. public void giveMoney(Player player, double value) {
  2.     setPlayerMoney(player, getPlayerMoney(player) + value); //你的功能
  3.     Bukkit.getPluginManager().callEvent(new GiveMoneyEvent(player,value)); //通知Event
  4. }
复制代码

如果你希望这个事件是可取消的,那么请在你的功能之前写下通知Event的代码,例如:
  1. public void giveMoney(Player player, double value) {
  2.     PreGiveMoneyEvent event = new PreGiveMoneyEvent(player,value);
  3.     Bukkit.getPluginManager().callEvent(event); //通知Event
  4.     if(event.isCancelled())
  5.          return;
  6.     setPlayerMoney(player, getPlayerMoney(player) + value); //你的功能
  7. }
复制代码



ddyy163
本帖最后由 ddyy163 于 2017-10-1 18:45 编辑
  1. public void giveMoney(Player player, double value) {    PreGiveMoneyEvent event = new PreGiveMoneyEvent(player,value);    Bukkit.getPluginManager().callEvent(event); //通知Event    if(event.isCancelled())         return;    setPlayerMoney(player, getPlayerMoney(player) + <font color="#ff0000">event.getV</font>alue()); //你的功能}//这样别人可以通过这个event来改这个值了
复制代码

第一页 上一页 下一页 最后一页