隔壁老吕
要求:找到flans mod的伤害事件(EntityDamageByEntityEvent实测无效,EntityDamageEvent无法获取发射者)
要能获取发射者,并且能取消伤害的
不是插件是代码!

粘兽
  1. @EventHandler
  2. public void onDamage(EntityDamageByEntityEvent e){
  3.     if(e.getDamager().getType().toString().equalsIgnoreCase("flansmod_bullet")){
  4.         Entity ammo = ((CraftEntity) e.getDamager()).getHandle();
  5.         Player shooter = (Player) ((Entity) ammo.getClass().getDeclaredField("owner").get(ammo)).getBukkitEntity();
  6.     }
  7. }
复制代码

MyAngelCocoa
楼上给的是mod的方法,

然后我的服务器插件是可以通过getdamager拿到发射者的,
建议你换成flanplus。

既然是flan,应该也装有npc吧,npc脚本也是可以获取伤害来源的,演示代码
  1. var b = "flansmod";
  2. var b1 = "mcheli";
  3. var ae=event.getSource().getHeldItem().getName();
  4. var c = ae.contains(b);
  5. var c1 = ae.contains(b1);
  6. if((c+"")==("true")){
  7. event.setDamage(0);
  8. }else if((c1+"")==("true")){
  9. event.setDamage(0);
  10. npc.say("我是不会受伤的!");
  11. }
复制代码

粘兽
NeverMindSL 发表于 2019-8-10 20:20
楼上给的是mod的方法,

然后我的服务器插件是可以通过getdamager拿到发射者的,

不是 是bukkit插件