Помогите Как убрать урон у одинаковый permission

  • Автор темы Автор темы Kloper
  • Дата начала Дата начала

Kloper

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
f3azzy
Делаю фракции, хочу сделать так, чтобы игроки из одной фракции не могли бить друг-друга. Для этого использую permission, который присваиваю каждой фракции, делаю проверку по этому permission, и всё работает, но в консоле идёт ошибка, конечно нормально, но неприятно.

Код:
Код:
public void guardDamage(EntityDamageByEntityEvent event) {
        Entity target = event.getDamager();
        Entity damager = event.getEntity();
        
        Player p1 = (Player)target;
        Player p2 = (Player)damager;
        
        if(p1.hasPermission("teams.oneTeam")) {
            if(!p2.hasPermission("teams.twoTeam")) {
                event.setCancelled(true);
            }
        }
        if(p1.hasPermission("teams.twoTeam")) {
            if(!p2.hasPermission("teams.oneTeam")) {
                event.setCancelled(true);
            }
        }
    }

Сама ошибка:
Код:
[15:06:00] [Server thread/ERROR]: Could not pass event EntityDamageByEntityEvent to ReleaseProject v2.0
org.bukkit.event.EventException: null
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:298) ~[ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:499) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callEvent(CraftEventFactory.java:93) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:580) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:483) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:612) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.EntityLiving.damageEntity0(EntityLiving.java:1336) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.EntityHuman.damageEntity0(EntityHuman.java:846) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.EntityLiving.damageEntity(EntityLiving.java:858) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.EntityHuman.damageEntity(EntityHuman.java:759) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.EntityPlayer.damageEntity(EntityPlayer.java:586) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.EntityHuman.attack(EntityHuman.java:1005) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.EntityPlayer.attack(EntityPlayer.java:1311) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1554) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.PacketPlayInUseEntity.a(SourceFile:69) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.PacketPlayInUseEntity.a(SourceFile:13) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_231]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_231]
    at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:696) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:371) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:651) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:555) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
Caused by: java.lang.IllegalArgumentException: Health must be between 0 and 20.0(-1.0)
    at org.bukkit.craftbukkit.v1_12_R1.entity.CraftLivingEntity.setHealth(CraftLivingEntity.java:97) ~[ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at sworlds.OkrvDerevKlin.damage(OkrvDerevKlin.java:33) ~[?:?]
    at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_231]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_231]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:296) ~[ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    ... 26 more

И ещё, делаю мечи, и надо сделать кастомный урон, всё нормально, но когда урон становится около 5xp, или меньше 5, то урон не идёт.

Код:
Код:
    public void damage(EntityDamageByEntityEvent e) {
        Player p = (Player)e.getDamager();
        Player target = (Player)e.getEntity();
        
        if(!p.getInventory().getItemInMainHand().getItemMeta().getDisplayName().equals("§fОкровавленный деревянный клинок")) {
            return;
        }
        
        if(!p.hasPermission("lvl.1")) {
            p.sendMessage("§cRelease§3Project §8»» §cВаш лвл недостаточно высок.");
            e.setCancelled(true);
            return;
        }
        
        e.setCancelled(true);
        
        if(target.getHealth() == 5) {
            target.setHealth(0);
        }
            
        
        
        target.setHealth(target.getHealth() - 5);
        target.setVelocity(target.getLocation().getDirection().setY(0.1).setX(-0.2).setZ(0));
    }
 
Ошибка идет не от первого кода
Жизни должны быть в диапазоне от 0 до 20, а у тебя -1
Проверяй, если health <= 5, то ставь значение 0
 
Хп - double
Попробуй отнимать по 5.0
Ошибка идет не от первого кода
Жизни должны быть в диапазоне от 0 до 20, а у тебя -1
Проверяй, если health <= 5, то ставь значение 0
урон стал проходить, но ошибка в консоле осталась.
Код:
[19:29:21] [Server thread/ERROR]: Could not pass event EntityDamageByEntityEvent to ReleaseProject v2.0
org.bukkit.event.EventException: null
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:298) ~[ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:499) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callEvent(CraftEventFactory.java:93) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:580) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:483) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:612) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.EntityLiving.damageEntity0(EntityLiving.java:1336) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.EntityHuman.damageEntity0(EntityHuman.java:846) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.EntityLiving.damageEntity(EntityLiving.java:858) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.EntityHuman.damageEntity(EntityHuman.java:759) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.EntityPlayer.damageEntity(EntityPlayer.java:586) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.EntityHuman.attack(EntityHuman.java:1005) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.EntityPlayer.attack(EntityPlayer.java:1311) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1554) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.PacketPlayInUseEntity.a(SourceFile:69) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.PacketPlayInUseEntity.a(SourceFile:13) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_231]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_231]
    at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:696) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:371) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:651) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:555) [ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
Caused by: java.lang.IllegalArgumentException: Health must be between 0 and 20.0(-5.0)
    at org.bukkit.craftbukkit.v1_12_R1.entity.CraftLivingEntity.setHealth(CraftLivingEntity.java:97) ~[ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    at sworlds.OkrvDerevKlin.damage(OkrvDerevKlin.java:33) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_231]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_231]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_231]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_231]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:296) ~[ReleaseProject-1.12.2.jar:git-Bukkit-e60fc34]
    ... 26 more
 
Проверяй, если при уроне у игрока хп уходит в минус, то делай ему player. setHealth(player.getHealth()), в ином же случае отнимай свое кол-во хп
 
if(target.getHealth() < 5)
target.setHealth(0D);
else
target.setHealth(target.getHealth() - 5);
 
Назад
Верх