CCxia
使用forge,版本1.12.2
我想监听事件来了解生物受到伤害的时候,这个伤害来源是不是玩家,同时如果确实来自玩家,我想获得玩家的对象并检查玩家身上的相关数据(比如检查玩家身上是否有相对应的附魔状态),这个应该如何实现?谢谢大佬!

CCxia
就是我发现有attackentity和livinghurtevent两个事件,但前一个貌似只能得到玩家和被攻击的生物,后一个可以得到伤害数值但我不知道该怎么得到玩家的对象和他的数据。。。。

森林蝙蝠
提示:可以监听LivingAttackEvent,另外存在DamageSource.PLAYER项。

CCxia
森林蝙蝠 发表于 2019-2-28 01:08
提示:可以监听LivingAttackEvent,另外存在DamageSource.PLAYER项。

大佬,就是说我用事件获取到damagesource以后,我想实现(player.方法),就是想获取到entityplayer类型该怎么做?

森林蝙蝠
CCxia 发表于 2019-2-28 01:40
大佬,就是说我用事件获取到damagesource以后,我想实现(player.方法),就是想获取到entityplayer类型 ...

Entity source=event.getSource().getTrueSource();
if(source instanceof EntityPlayer)
((EntityPlayer)source).玩家方法;
//……
ItemStack itemStack=player.inventoryContainer.getInventory().iterator().next();
int level=EnchantmentHelper.getEnchantmentLevel(附魔id, itemStack);
//源码就在那里,多看多想

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