1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Как сделать режим что бы если моб не мог переагриться?

Тема в разделе "Разработка плагинов для новичков", создана пользователем ItsWay, 23 июн 2022.

  1. Автор темы
    ItsWay

    ItsWay Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    ItsWay
    Всё равно, я ещё сделал два ивента, первый ивент, что бы если умер игрок босс задеспавнился бы, вот::

    Код:
        @EventHandler
        public void onDeathOtBoss(EntityDeathEvent event) {
            Entity e = event.getEntity();
            if(event.getEntityType() == EntityType.PLAYER) {
             Player player = (Player) event.getEntity();
             DamageCause deathCause = player.getLastDamageCause().getCause();
              if(deathCause == DamageCause.ENTITY_ATTACK)
                      if(player.getKiller().getKiller() instanceof Entity) {
                          if(player.getKiller().getType() == EntityType.IRON_GOLEM) {
                              if(player.getKiller().getCustomName() == "Босс Роботов") {
                         player.getKiller().remove();
                          }
                      }
                  
                  
              }
                
             }
        }
    Но почему то не срабатывает и выдаёт ошибку:
    Could not pass event PlayerDeathEvent to mAnarhya v0.1
    java.lang.NullPointerException: Cannot invoke "org.bukkit.entity.Player.getKiller()" because the return value of "org.bukkit.entity.Player.getKiller()" is null
    at MysteriosLife.Class.MainEvents.onDeathOtBoss(MainEvents.java:46) ~[?:?]
    at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor87.execute(Unknown Source) ~[?:?]
    at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.5.jar:git-Airplane-11]
    at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[patched_1.16.5.jar:git-Airplane-11]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.5.jar:git-Airplane-11]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624) ~[patched_1.16.5.jar:git-Airplane-11]
    at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:876) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityPlayer.die(EntityPlayer.java:997) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityLiving.damageEntity(EntityLiving.java:1365) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityHuman.damageEntity(EntityHuman.java:877) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityPlayer.damageEntity(EntityPlayer.java:1161) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityIronGolem.attackEntity(EntityIronGolem.java:195) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.PathfinderGoalMeleeAttack.a(SourceFile:142) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.PathfinderGoalMeleeAttack.e(SourceFile:134) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.PathfinderGoalWrapped.e(PathfinderGoalWrapped.java:54) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.PathfinderGoalSelector.doTick(PathfinderGoalSelector.java:164) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityInsentient.doTick(EntityInsentient.java:844) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityLiving.movementTick(EntityLiving.java:2881) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityInsentient.movementTick(EntityInsentient.java:615) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityIronGolem.movementTick(EntityIronGolem.java:115) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityLiving.tick(EntityLiving.java:2607) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityInsentient.tick(EntityInsentient.java:378) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.WorldServer.entityJoinedWorld(WorldServer.java:1502) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.WorldServer.doTick(WorldServer.java:1132) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1552) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:439) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1402) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1134) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:292) ~[patched_1.16.5.jar:git-Airplane-11]
    at java.lang.Thread.run(Thread.java:831) [?:?]
     
  2. Автор темы
    ItsWay

    ItsWay Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    ItsWay
    Это ок, но ивент не срабатывает или что, ошибку кидает:
    Could not pass event PlayerDeathEvent to mAnarhya v0.1
    java.lang.NullPointerException: Cannot invoke "org.bukkit.entity.Player.getKiller()" because the return value of "org.bukkit.entity.Player.getKiller()" is null
    at MysteriosLife.Class.MainEvents.onDeathOtBoss(MainEvents.java:46) ~[?:?]
    at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor87.execute(Unknown Source) ~[?:?]
    at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.5.jar:git-Airplane-11]
    at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[patched_1.16.5.jar:git-Airplane-11]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.5.jar:git-Airplane-11]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624) ~[patched_1.16.5.jar:git-Airplane-11]
    at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:876) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityPlayer.die(EntityPlayer.java:997) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityLiving.damageEntity(EntityLiving.java:1365) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityHuman.damageEntity(EntityHuman.java:877) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityPlayer.damageEntity(EntityPlayer.java:1161) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityIronGolem.attackEntity(EntityIronGolem.java:195) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.PathfinderGoalMeleeAttack.a(SourceFile:142) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.PathfinderGoalMeleeAttack.e(SourceFile:134) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.PathfinderGoalWrapped.e(PathfinderGoalWrapped.java:54) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.PathfinderGoalSelector.doTick(PathfinderGoalSelector.java:164) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityInsentient.doTick(EntityInsentient.java:844) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityLiving.movementTick(EntityLiving.java:2881) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityInsentient.movementTick(EntityInsentient.java:615) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityIronGolem.movementTick(EntityIronGolem.java:115) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityLiving.tick(EntityLiving.java:2607) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityInsentient.tick(EntityInsentient.java:378) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.WorldServer.entityJoinedWorld(WorldServer.java:1502) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.WorldServer.doTick(WorldServer.java:1132) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1552) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:439) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1402) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1134) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:292) ~[patched_1.16.5.jar:git-Airplane-11]
    at java.lang.Thread.run(Thread.java:831) [?:?]

    Вот ивент, если босс убивает игрока, то босс должен задеспавниться:
    @EventHandler
    public void onDeathOtBoss(EntityDeathEvent event) {
    Entity e = event.getEntity();
    if(event.getEntityType() == EntityType.PLAYER) {
    Player player = (Player) event.getEntity();
    DamageCause deathCause = player.getLastDamageCause().getCause();
    if(deathCause == DamageCause.ENTITY_ATTACK)
    if(player.getKiller().getKiller() instanceof Entity) {
    if(player.getKiller().getType() == EntityType.IRON_GOLEM) {
    if(player.getKiller().getCustomName() == "Босс Роботов") {
    player.getKiller().remove();
    }
    }


    }

    }
    }
     
  3. Автор темы
    ItsWay

    ItsWay Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    ItsWay
    Это ок, но ивент не срабатывает или что, ошибку кидает:
    Could not pass event PlayerDeathEvent to mAnarhya v0.1
    java.lang.NullPointerException: Cannot invoke "org.bukkit.entity.Player.getKiller()" because the return value of "org.bukkit.entity.Player.getKiller()" is null
    at MysteriosLife.Class.MainEvents.onDeathOtBoss(MainEvents.java:46) ~[?:?]
    at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor87.execute(Unknown Source) ~[?:?]
    at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.5.jar:git-Airplane-11]
    at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[patched_1.16.5.jar:git-Airplane-11]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.5.jar:git-Airplane-11]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624) ~[patched_1.16.5.jar:git-Airplane-11]
    at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:876) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityPlayer.die(EntityPlayer.java:997) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityLiving.damageEntity(EntityLiving.java:1365) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityHuman.damageEntity(EntityHuman.java:877) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityPlayer.damageEntity(EntityPlayer.java:1161) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityIronGolem.attackEntity(EntityIronGolem.java:195) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.PathfinderGoalMeleeAttack.a(SourceFile:142) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.PathfinderGoalMeleeAttack.e(SourceFile:134) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.PathfinderGoalWrapped.e(PathfinderGoalWrapped.java:54) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.PathfinderGoalSelector.doTick(PathfinderGoalSelector.java:164) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityInsentient.doTick(EntityInsentient.java:844) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityLiving.movementTick(EntityLiving.java:2881) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityInsentient.movementTick(EntityInsentient.java:615) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityIronGolem.movementTick(EntityIronGolem.java:115) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityLiving.tick(EntityLiving.java:2607) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.EntityInsentient.tick(EntityInsentient.java:378) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.WorldServer.entityJoinedWorld(WorldServer.java:1502) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.WorldServer.doTick(WorldServer.java:1132) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1552) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:439) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1402) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1134) ~[patched_1.16.5.jar:git-Airplane-11]
    at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:292) ~[patched_1.16.5.jar:git-Airplane-11]
    at java.lang.Thread.run(Thread.java:831) [?:?]

    Вот ивент, если босс убивает игрока, то босс должен задеспавниться:
    @EventHandler
    public void onDeathOtBoss(EntityDeathEvent event) {
    Entity e = event.getEntity();
    if(event.getEntityType() == EntityType.PLAYER) {
    Player player = (Player) event.getEntity();
    DamageCause deathCause = player.getLastDamageCause().getCause();
    if(deathCause == DamageCause.ENTITY_ATTACK)
    if(player.getKiller().getKiller() instanceof Entity) {
    if(player.getKiller().getType() == EntityType.IRON_GOLEM) {
    if(player.getKiller().getCustomName() == "Босс Роботов") {
    player.getKiller().remove();
    }
    }


    }

    }
    }
     
  4. OJIEKCAHDP

    OJIEKCAHDP Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    OJIEKCAHDP
    тут как минимум не правильно. Строка не сравнивается черех ==, нужно сравнивать .equals("Босс Роботов")
     
  5. OJIEKCAHDP

    OJIEKCAHDP Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    OJIEKCAHDP
    Сначала нужно проверять player.getKiller().getKiller() != null
     
  6. Автор темы
    ItsWay

    ItsWay Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    ItsWay
    Ок
    Ок, где я два раза написал, у меня был баг, когда я отправлял сообщение и перезагружал страницу, пропадало моё сообщение.
     

Поделиться этой страницей