@SubscribeEvent
public void onEvent(LivingDamageEvent event) {
if (这里该怎么判断) {
IMana mana = event.getEntity().getCapability(ManaProvider.MANA_CAP, null);
event.setAmount(event.getAmount() + (mana.getAttack()));
System.out.println("LivingDamageEvent");
}
}
capability里面有每个人的攻击力,我想在这个事件里把玩家的伤害提高
可是怎么得到entity player,而且如果不判断的话就会得到空指针,Minecraft.getminecraft.player()也是空指针
这个伤害判断该在哪执行,客户端还是服务器
public void onEvent(LivingDamageEvent event) {
if (这里该怎么判断) {
IMana mana = event.getEntity().getCapability(ManaProvider.MANA_CAP, null);
event.setAmount(event.getAmount() + (mana.getAttack()));
System.out.println("LivingDamageEvent");
}
}
capability里面有每个人的攻击力,我想在这个事件里把玩家的伤害提高
可是怎么得到entity player,而且如果不判断的话就会得到空指针,Minecraft.getminecraft.player()也是空指针
这个伤害判断该在哪执行,客户端还是服务器
本帖最后由 森林蝙蝠 于 2019-10-26 19:22 编辑
后续更新:你这是哪个版本的forge?
@SubscribeEvent
public void onEvent(LivingDamageEvent event) {
if (event.getEntity() instanceof EntityPlayer) { //这里是EntityPlayerSP也可以
IMana mana = ((EntityPlayer)event.getEntity()).getCapability(ManaProvider.MANA_CAP, null);
event.setAmount(event.getAmount() + (mana.getAttack()));
System.out.println("LivingDamageEvent");
}
}
后续更新:你这是哪个版本的forge?
@SubscribeEvent
public void onEvent(LivingDamageEvent event) {
if (event.getEntity() instanceof EntityPlayer) { //这里是EntityPlayerSP也可以
IMana mana = ((EntityPlayer)event.getEntity()).getCapability(ManaProvider.MANA_CAP, null);
event.setAmount(event.getAmount() + (mana.getAttack()));
System.out.println("LivingDamageEvent");
}
}