本帖最后由 wshycaa 于 2019-4-1 04:39 编辑 
我在写一个mod服插件,遇到点问题。怎么把net.minecraft.entity.player.EntityPlayerMP转换成LivingEnyity这类实体呢?强制转换会出错
或者告诉我怎么能够根据EntityId获得某一个Entity呢?
我在写一个mod服插件,遇到点问题。怎么把net.minecraft.entity.player.EntityPlayerMP转换成LivingEnyity这类实体呢?强制转换会出错
或者告诉我怎么能够根据EntityId获得某一个Entity呢?
//player 得你自己获取啦, 我这里就写成null了, 这个方法应该是可以的, 如果不行就通过player获取玩家名, 然后在用Bukkit.getPlayer("名字")再转换成LivingEntity
复制代码
- EntityPlayerMP player = null;
 
- LivingEntity le = (LivingEntity) Bukkit.getEntity(player.getUniqueID())
 本帖最后由 wshycaa 于 2019-4-1 11:06 编辑 
额,用uuid的确是可以得到玩家,我昨天已经测试成功了,但是如果想要转换类型的不是玩家而是其他实体呢? 比如我通过某种方法获取的是net minecraft entity Entity 里面的其他实体……
我可以获取到这个实体的uuid和Entity Id,可是bukkit里面貌似没有直接通过这些得到该实体的方法,只能遍历。有没有高效一些的办法呢?
cws_sh 发表于 2019-4-1 05:07
//player 得你自己获取啦, 我这里就写成null了, 这个方法应该是可以的, 如果不行就通过player获取玩家名, ...
额,用uuid的确是可以得到玩家,我昨天已经测试成功了,但是如果想要转换类型的不是玩家而是其他实体呢? 比如我通过某种方法获取的是net minecraft entity Entity 里面的其他实体……
我可以获取到这个实体的uuid和Entity Id,可是bukkit里面貌似没有直接通过这些得到该实体的方法,只能遍历。有没有高效一些的办法呢?
wshycaa 发表于 2019-4-1 11:00
额,用uuid的确是可以得到玩家,我昨天已经测试成功了,但是如果想要转换类型的不是玩家而是其他实体呢? ...
Entity entity = Bukkit.getEntity(UUID uuid);
cws_sh 发表于 2019-4-1 14:32
Entity entity = Bukkit.getEntity(UUID uuid);
我是1.710的服务端,好像没有这个方法。。我也是想找这个的
 本帖最后由 wshycaa 于 2019-4-1 20:37 编辑 
这么说来,worldserver里面的getEntity(uuid)方法的实现手段可能还是遍历那个世界的所有实体取相同uuid的那一个?
好吧,我干脆直接遍历世界实体取uuid相同的那一个好了 谢谢你了
这个方法具体的路径是在哪个包里啊?我去研究研究
cws_sh 发表于 2019-4-1 20:25
看了一下Bukkit.getEntity(UUID uuid);是怎么实现的
这么说来,worldserver里面的getEntity(uuid)方法的实现手段可能还是遍历那个世界的所有实体取相同uuid的那一个?
好吧,我干脆直接遍历世界实体取uuid相同的那一个好了 谢谢你了
这个方法具体的路径是在哪个包里啊?我去研究研究
