这个问题想了很久都没找到怎么去解决,一个自定义事件写完之后,要做些什么才可以去使这个事件可以在某种方式的时候被触发,列如金钱发生变化事件,求大佬帮忙
- Bukkit.getPluginManager().callEvent(new YourEvent());
可是不知道要写在什么地方
本帖最后由 耗子 于 2017-10-1 15:10 编辑
……………………………………
一个Event(事件)发生了,需要让其他插件知道它发生了,那么需要在你的功能之后写下通知Event的代码,例如给玩家钱发送GiveMoneyEvent事件:
复制代码
如果你希望这个事件是可取消的,那么请在你的功能之前写下通知Event的代码,例如:
复制代码
1850343382 发表于 2017-10-1 14:48
可是不知道要写在什么地方
……………………………………
一个Event(事件)发生了,需要让其他插件知道它发生了,那么需要在你的功能之后写下通知Event的代码,例如给玩家钱发送GiveMoneyEvent事件:
- public void giveMoney(Player player, double value) {
- setPlayerMoney(player, getPlayerMoney(player) + value); //你的功能
- Bukkit.getPluginManager().callEvent(new GiveMoneyEvent(player,value)); //通知Event
- }
如果你希望这个事件是可取消的,那么请在你的功能之前写下通知Event的代码,例如:
- 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) + value); //你的功能
- }
本帖最后由 ddyy163 于 2017-10-1 18:45 编辑
复制代码
- 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来改这个值了