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

Помогите Не работает ивент на Damage

Тема в разделе "Разработка плагинов для новичков", создана пользователем Sergeo, 11 дек 2020.

Статус темы:
Закрыта.
  1. Автор темы
    Sergeo

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

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    Делаю плагин на "админский лук". Он будет выполнять команды от имени консоли, но ничего не работает :<. Не могу понять из-за чего (ошибок нет... Ни при выстреле и т.д)

    код
    Код:
    package bow.main;
    
    import java.io.File;
    
    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class SecretBow extends JavaPlugin implements Listener {
        public void onEnable() {
            getLogger().info("SecretBow is enable");
            File config = new File(getDataFolder() + File.separator + "config.yml");
            if (!config.exists()) {
                getLogger().info("Creating new file config...");
                getConfig().options().copyDefaults(true);
                saveDefaultConfig();
            }
        }
    
        public void onDisable() {
            getLogger().info("SecretBow is disable");
        }
    
        @EventHandler
    
        public void onArrowHit(EntityDamageByEntityEvent event) {
    
            if (!(event.getEntity() instanceof Player))
                return;
    
            if (!(event.getDamager() instanceof Player))
                return;
    
            Player target = (Player) event.getEntity();
            Player damager = (Player) event.getDamager();
    
            Bukkit.dispatchCommand(Bukkit.getConsoleSender(), getConfig().getString("commands.id") + target.getName());
            damager.sendMessage("Вы успешно выполнили команду " + getConfig().getString("commands.id") + " над игроком "
                    + target.getName());
    
        }
    }

    конфиг

    Код:
    commands:
      id: op
    Надеюсь на помощь
     
    Последнее редактирование: 11 дек 2020
  2. 4APP1

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

    Баллы:
    76
    Имя в Minecraft:
    HappyWaffle
    event.getdamager.getshooter instanceof Player
     
  3. Автор темы
    Sergeo

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

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    Немного не понял, а куда это?


    if (!(event.getDamager() instanceof Player)) -> сюда?
    return;
     
  4. _MRDen3000YT_

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

    Баллы:
    76
    Боже, когда вы научитесь читать или хотя бы гуглить этот вопрос. Изо дня в день глупые вопросы. Ты не зарегистрировал эвент. Вставь эту
    PHP:
    Bukkit.getPluginManager().registerEvents(thisthis);
    строчку в свой метод onEnable()
     
  5. 4APP1

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

    Баллы:
    76
    Имя в Minecraft:
    HappyWaffle
    А, он ивент не зарегистрировал
    Если не ошибаюсь, getdamager вернёт стрелу, а не игрока, а вот getdamager.getshooter - того, кто стрелу запустил
     
  6. Автор темы
    Sergeo

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

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    Теперь плагин работает :>, но ошибка при выстреле
    Код:
    [10:09:39 ERROR]: Could not pass event EntityDamageByEntityEvent to AdminBow v1.0
    org.bukkit.event.EventException: null
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:485) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callEvent(CraftEventFactory.java:93) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:580) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:483) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:612) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.EntityLiving.damageEntity0(EntityLiving.java:1346) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.EntityHuman.damageEntity0(EntityHuman.java:846) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.EntityLiving.damageEntity(EntityLiving.java:868) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.EntityHuman.damageEntity(EntityHuman.java:759) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.EntityPlayer.damageEntity(EntityPlayer.java:586) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.EntityArrow.a(EntityArrow.java:286) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.EntityArrow.B_(EntityArrow.java:194) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.EntityTippedArrow.B_(EntityTippedArrow.java:86) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.World.entityJoinedWorld(World.java:1631) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.World.h(World.java:1601) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.World.tickEntities(World.java:1435) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.WorldServer.tickEntities(WorldServer.java:668) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:817) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_51]
    Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_12_R1.entity.CraftArrow cannot be cast to org.bukkit.entity.Player
            at bow.main.SecretBow.onArrowHit(SecretBow.java:32) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_51]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            ... 24 more
     
  7. _MRDen3000YT_

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

    Баллы:
    76
    Добавь строчку, которую скинул тебе человек выше.
     
  8. Автор темы
    Sergeo

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

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    Player damager = (Player) event.getDamager.getShooter();

    если так, то он getdamager подчеркивает красным
     
  9. 4APP1

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

    Баллы:
    76
    Имя в Minecraft:
    HappyWaffle
    Player damager = (Player) event.getDamager().getShooter();
     
  10. Автор темы
    Sergeo

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

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    Теперь он подчеркивает красным getShooter();
     
  11. 4APP1

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

    Баллы:
    76
    Имя в Minecraft:
    HappyWaffle
    Arrow arrow = (Arrow) event.getDamager();
    Player damager = (Player) arrow.getShooter();
     
  12. Автор темы
    Sergeo

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

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    Щас попробую, если поможет, то отпишусь
     
  13. Автор темы
    Sergeo

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

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    при выстреле с лука в игрока 0 эмоций, а вот когда бью стрелой

    ОШИБКА
    Код:
    [10:21:10 ERROR]: Could not pass event EntityDamageByEntityEvent to AdminBow v1.0
    org.bukkit.event.EventException: null
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:485) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callEvent(CraftEventFactory.java:93) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:580) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:483) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:612) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.EntityLiving.damageEntity0(EntityLiving.java:1346) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.EntityHuman.damageEntity0(EntityHuman.java:846) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.EntityLiving.damageEntity(EntityLiving.java:868) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.EntityHuman.damageEntity(EntityHuman.java:759) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.EntityPlayer.damageEntity(EntityPlayer.java:586) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.EntityHuman.attack(EntityHuman.java:1005) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.EntityPlayer.attack(EntityPlayer.java:1311) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1623) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.PacketPlayInUseEntity.a(SourceFile:69) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.PacketPlayInUseEntity.a(SourceFile:13) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_51]
            at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_51]
            at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:748) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_51]
    Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer cannot be cast to org.bukkit.entity.Arrow
            at bow.main.SecretBow.onArrowHit(SecretBow.java:32) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_51]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1_12_2.jar:git-Spigot-dcd1643-e60fc34]
            ... 26 more
     
  14. _MRDen3000YT_

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

    Баллы:
    76
    Код:
    if (!(event.getDamager() instanceof Arrow))
               return;
     
  15. Автор темы
    Sergeo

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

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    В ошибке он указывает на строку 33
    Arrow arrow = (Arrow) event.getDamager();
     
  16. _MRDen3000YT_

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

    Баллы:
    76
    Потому что иди учи что значит "Cast"
     
  17. Автор темы
    Sergeo

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

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    Тема закрыта. Проблема решена
     
Статус темы:
Закрыта.

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