Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

В разработке ProjectileHitEvent снежок в игрока

и на эту

((Player) e).kickPlayer("Кикнуты администратором");
после поподания в игрока снежком он зайти не может
 
PHP:
Could not pass event ProjectileHitEvent to ndplug v1.0
org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:319) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.callProjectileHitEvent(CraftEventFactory.java:1195) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.IProjectile.a(IProjectile.java:109) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.EntitySnowball.a(SourceFile:63) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.EntityProjectile.tick(SourceFile:67) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.WorldServer.entityJoinedWorld(WorldServer.java:663) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.World.a(World.java:718) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.WorldServer.doTick(WorldServer.java:398) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1105) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:355) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1008) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:847) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_271]
Caused by: java.lang.ClassCastException: org.bukkit.event.entity.ProjectileHitEvent cannot be cast to org.bukkit.entity.Player
        at main.hendler.onHitSnowBall(hendler.java:69) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_271]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:315) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        ... 16 more
 
PHP:
Could not pass event ProjectileHitEvent to ndplug v1.0
org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:319) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.callProjectileHitEvent(CraftEventFactory.java:1195) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.IProjectile.a(IProjectile.java:109) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.EntitySnowball.a(SourceFile:63) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.EntityProjectile.tick(SourceFile:67) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.WorldServer.entityJoinedWorld(WorldServer.java:663) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.World.a(World.java:718) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.WorldServer.doTick(WorldServer.java:398) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1105) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:355) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1008) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:847) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_271]
Caused by: java.lang.ClassCastException: org.bukkit.event.entity.ProjectileHitEvent cannot be cast to org.bukkit.entity.Player
        at main.hendler.onHitSnowBall(hendler.java:69) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_271]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:315) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        ... 16 more
О чем я и говорил, ты кастуешь e (ProjectileHitEvent) к Player, а так нельзя
 
PHP:
Could not pass event ProjectileHitEvent to ndplug v1.0
org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:319) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.callProjectileHitEvent(CraftEventFactory.java:1195) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.IProjectile.a(IProjectile.java:109) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.EntitySnowball.a(SourceFile:63) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.EntityProjectile.tick(SourceFile:67) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.WorldServer.entityJoinedWorld(WorldServer.java:663) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.World.a(World.java:718) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.WorldServer.doTick(WorldServer.java:398) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1105) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:355) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1008) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:847) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_271]
Caused by: java.lang.ClassCastException: org.bukkit.event.entity.ProjectileHitEvent cannot be cast to org.bukkit.entity.Player
        at main.hendler.onHitSnowBall(hendler.java:69) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_271]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:315) ~[spigot.jar:2991-Spigot-018b9a0-f3f3094]
        ... 16 more
Ты в игрока попадаешь ?
 
Какие глупости вижу, а если игрок кинул снежок простой, но в инвентаре есть снежок для кика? Не думали об этом?
 
Самый обычный кик игрока в которого попали самым обычным снежком

upload_2021-11-4_22-20-33.png
 
Самый обычный кик игрока в которого попали самым обычным снежком
Игрока кикает с сервера но он остоэтся висеть на нём
Screenshot-2.png

@BronyPlay
4ZJbtS5
 
Paper 1.17. isSpecial и остальное можешь подогнать под себя
PHP:
    private boolean isSpecial(ItemStack stack) {
        if (stack.getItemMeta() == null) return false;
        return stack.getItemMeta().getDisplayName().equals("special");
    }

    @EventHandler
    public void onLaunch(PlayerLaunchProjectileEvent e) {
        if (e.getItemStack().getType() == Material.SNOWBALL && isSpecial(e.getItemStack())) {
            e.getProjectile().setMetadata("special_snowball", new FixedMetadataValue(this, true));
            if (e.getPlayer().getGameMode() != GameMode.CREATIVE)
                e.setShouldConsume(false);
        }
    }

    @EventHandler
    public void onHit(ProjectileHitEvent e) {
        if (e.getEntity() instanceof Snowball && e.getEntity().getShooter() instanceof Player) {
            if (e.getHitEntity() != null && e.getHitEntity() instanceof Player) {
                if (e.getHitEntity() == e.getEntity().getShooter()) return;
                if (!e.getEntity().hasMetadata("special_snowball")) return;
                ((Player) e.getHitEntity()).kickPlayer("Your reason");
            }
        }
    }
 
Paper 1.17. isSpecial и остальное можешь подогнать под себя
PHP:
    private boolean isSpecial(ItemStack stack) {
        if (stack.getItemMeta() == null) return false;
        return stack.getItemMeta().getDisplayName().equals("special");
    }

    @EventHandler
    public void onLaunch(PlayerLaunchProjectileEvent e) {
        if (e.getItemStack().getType() == Material.SNOWBALL && isSpecial(e.getItemStack())) {
            e.getProjectile().setMetadata("special_snowball", new FixedMetadataValue(this, true));
            if (e.getPlayer().getGameMode() != GameMode.CREATIVE)
                e.setShouldConsume(false);
        }
    }

    @EventHandler
    public void onHit(ProjectileHitEvent e) {
        if (e.getEntity() instanceof Snowball && e.getEntity().getShooter() instanceof Player) {
            if (e.getHitEntity() != null && e.getHitEntity() instanceof Player) {
                if (e.getHitEntity() == e.getEntity().getShooter()) return;
                if (!e.getEntity().hasMetadata("special_snowball")) return;
                ((Player) e.getHitEntity()).kickPlayer("Your reason");
            }
        }
    }
У меня 1.16.5
 

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

Назад
Верх