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

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

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

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

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

    Баллы:
    66
    Имя в Minecraft:
    Thorgathis
    и на эту

    ((Player) e).kickPlayer("Кикнуты администратором");
    после поподания в игрока снежком он зайти не может
     
  2. ZDCoder

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

    Баллы:
    76
    скрин ошибки.
     
  3. mirrerror

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

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    Ты кастуешь ивент к игроку ._.
     
  4. Автор темы
    Thorgathis

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

    Баллы:
    66
    Имя в Minecraft:
    Thorgathis
    PHP:
    Could not pass event ProjectileHitEvent to ndplug v1.0
    org
    .bukkit.event.EventExceptionnull
            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 byjava.lang.ClassCastExceptionorg.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
     
  5. ZDCoder

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

    Баллы:
    76
    ну так энтити может быть игроком.
     
  6. mirrerror

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

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    Я думал, что он ивент кастует, а не энтити, ладно
     
  7. mirrerror

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

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    О чем я и говорил, ты кастуешь e (ProjectileHitEvent) к Player, а так нельзя
     
  8. ZDCoder

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

    Баллы:
    76
    Ты в игрока попадаешь ?
     
  9. ZDCoder

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

    Баллы:
    76
    А, ЧЁ ? АХАХАХАХАХАХАХ
     
  10. Автор темы
    Thorgathis

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

    Баллы:
    66
    Имя в Minecraft:
    Thorgathis
    ну да
     
  11. OJIEKCAHDP

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

    Баллы:
    76
    Имя в Minecraft:
    OJIEKCAHDP
    Какие глупости вижу, а если игрок кинул снежок простой, но в инвентаре есть снежок для кика? Не думали об этом?
     
  12. ZDCoder

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

    Баллы:
    76
    Добавить проверок и всё, я накинул рабочий вариант.
     
  13. Автор темы
    Thorgathis

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

    Баллы:
    66
    Имя в Minecraft:
    Thorgathis
    да но как мне кикнуть игрока в которого попали

    @ZDCoder
     
    Последнее редактирование: 4 ноя 2021
  14. BronyPlay

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

    Баллы:
    61
    Имя в Minecraft:
    Riku
    Самый обычный кик игрока в которого попали самым обычным снежком

    upload_2021-11-4_22-20-33.png
     
  15. Автор темы
    Thorgathis

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

    Баллы:
    66
    Имя в Minecraft:
    Thorgathis
    Игрока кикает с сервера но он остоэтся висеть на нём
    [​IMG]
    @BronyPlay
    [​IMG]
     
  16. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    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(thistrue));
                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;
                    ((
    Playere.getHitEntity()).kickPlayer("Your reason");
                }
            }
        }
     
  17. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    = Костыль
     
  18. Автор темы
    Thorgathis

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

    Баллы:
    66
    Имя в Minecraft:
    Thorgathis
    У меня 1.16.5
     
  19. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Ну попробуй на 1.16.5, в чем проблема?
     

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