CHHBlock
1.12.2 forge
我写了一个事件A阻止玩家以任何手段恢复生命,但又写了一个事件B用来恢复玩家的生命
我该如何做到让事件B的回血不会被事件A阻止

南柯郡守
创建一个map 里面放offlineplayer和double
a事件在取消回血的时候  对比一下回血对象和回血量是否和map里面的匹配 不匹配就取消回血

纱夜
你可以让事件B优先级比A高
也可以在A处理代码里面
特化的处理一下B

然后如果要存状态

记得用玩家的名字或者UUID
而不是直接存玩家对象

MaxSeth
给玩家加个capability,里面放boolean值,事件b把capability设成true,在回血,事件a判断capability是不是true,是true就设成false,在通过事件,不是就取消

南柯郡守
阴阳师元素祭祀 发表于 2020-7-1 18:29
你可以让事件B优先级比A高
也可以在A处理代码里面
特化的处理一下B

在这里想顺便问下 存player对象容易出事 那么应该offlineplayer没事吧因为我有个插件就是存了offlineplayer

CHHBlock
阴阳师元素祭祀 发表于 2020-7-1 18:29
你可以让事件B优先级比A高
也可以在A处理代码里面
特化的处理一下B

虽然知道思路了但不知道该怎么做
但我把player.heal(*)改为了player.setHealth(player.getHealth+*)
达到了我想要的效果,但不知道这么做会不会出一些问题
希望能够教我具体该如何做,谢谢了

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