QQ2418818133 发表于 2020-7-21 15:01
只有第一次杀死他的时候才会出现
那你可能需要写个Runnable来监听entity.isDead()
南柯郡守 发表于 2020-7-21 15:05
那你可能需要写个Runnable来监听entity.isDead()
哥,问一下具体怎么来监听。。
QQ2418818133 发表于 2020-7-21 15:44
哥,问一下具体怎么来监听。。
尝试阅读
PVPIN教程RL--使用BukkitRunnable的异步,做一个地雷
https://www.mcbbs.net/thread-1043022-1-1.html
(出处: Minecraft(我的世界)中文论坛)
如果实现不了可以再来问我哦
南柯郡守 发表于 2020-7-21 20:28
尝试阅读
PVPIN教程RL--使用BukkitRunnable的异步,做一个地雷
https://www.mcbbs.net/thread-1043022-1- ...
有点感觉看不怎么懂。
QQ2418818133 发表于 2020-7-22 01:34
有点感觉看不怎么懂。
在onEnable()添加
- Bukkit.getScheduler().runTaskTimerAsynchronously(this, new Runnable() {
- Entity en = Bukkit.getEntity(UUID.fromString("d75af8f9-e53e-4c9b-bea4-f556f1710963"));
- if(en.isDead()){
- //do something
- }
- }, 2L, 1L);
南柯郡守 发表于 2020-7-22 11:09
在onEnable()添加
哥,这个如何让它被杀就发送一条消息呢,好像不能cancel();
QQ2418818133 发表于 2020-7-22 13:44
哥,这个如何让它被杀就发送一条消息呢,好像不能cancel();
那段代码的if()语句进去了就是他死了啊
直接发送消息就行啊
要cancel啥
南柯郡守 发表于 2020-7-22 14:06 ![]()
那段代码的if()语句进去了就是他死了啊
直接发送消息就行啊
我杀死他一次他就会发送很多次消息,我想只让他发送一次
南柯郡守 发表于 2020-7-22 14:06
那段代码的if()语句进去了就是他死了啊
直接发送消息就行啊
这个该咋办。
添加一个全局变量来控制只输出一次
比如boolean death = false;
然后在if语句中添加&&!death
然后进了if就把death改成true
这样这个if只执行一次
然后需要在加一个if(!entity.isDeath()&&death){
death=false}
比如boolean death = false;
然后在if语句中添加&&!death
然后进了if就把death改成true
这样这个if只执行一次
然后需要在加一个if(!entity.isDeath()&&death){
death=false}
南柯郡守 发表于 2020-7-22 15:53 ![]()
添加一个全局变量来控制只输出一次
比如boolean death = false;
是这样写吗,哥
南柯郡守 发表于 2020-7-22 16:48
不是
boolean death要放到最外面
这样写还是不行,还是一直是执行。
南柯郡守 发表于 2020-7-22 17:18 ![]()
???
你把Runnable放在for里面?
怕不是循环了一万个线程出来
刚刚是写错了,想吧for写在里面的,可是写在里面,还是不行,还是会一直刷信息。
QQ2418818133 发表于 2020-7-22 21:00
刚刚是写错了,想吧for写在里面的,可是写在里面,还是不行,还是会一直刷信息。 ...
这个Runnable是叫做异线程
你只需要一条就够了
所以是在onEnable()那里写 而不是在监听器里面一遍遍调用
只需要在开服的时候调用一次就行
你这么写只会每次触发都比上次多输出一条消息
同时 如果要比对多个 那么death变量要改成
map<Entity,Boolean>
if的时候先 !entity.isDeath() && map.get(entity)
也就是每个实体都要对应一个变量来控制是否执行一次
![]()
南柯郡守 发表于 2020-7-22 22:35 ![]()
这个Runnable是叫做异线程
你只需要一条就够了
哥,研究了几天了,还是不行,这样弄的话,消息都不发了。
QQ2418818133 发表于 2020-7-25 18:27
哥,研究了几天了,还是不行,这样弄的话,消息都不发了。
1 你没有往map里面放入很如的element 所以在get的时候永远是false或者null
2 Entity en = 部分不需要再这么写 只需要遍历map就行
3 巩固java基础
npcmod勾选重生之后,被杀死就是进入假死状态。
为什么不问问申请的FMXT插件作者呢?
知识水平+1