Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Помогите Непонятное мною исключение.

Discussion in 'Разработка плагинов для новичков' started by Lisenochek, Jan 9, 2017.

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    Lisenochek
    Народ, почему-то вылезает это исключение, хотя весь функционал плагина работает.

    Помогите:

    Code:
    package ru.lisenochek.drugs;
    
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.potion.PotionEffect;
    import org.bukkit.potion.PotionEffectType;
    
    import java.util.Random;
    
    public class UseDrugsListener implements Listener {
    
        @EventHandler
        public void useDrugs(PlayerInteractEvent e) {
    
            Player p = e.getPlayer();
    
            if (e.getAction() != Action.RIGHT_CLICK_AIR && e.getAction() != Action.RIGHT_CLICK_BLOCK) return;
            if (!p.getItemInHand().hasItemMeta()) return;
            if (p.getItemInHand().getItemMeta().getDisplayName() == null) return;
    
            if (p.getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase(DrugList.cocaine.getItemMeta().getDisplayName())) {
                getDrugEffect(p);
            }
    
            if (p.getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase(DrugList.marihuana.getItemMeta().getDisplayName())) {
                getDrugEffect(p);
            }
        }
    
        public void getDrugEffect(Player p) {
    
            Random r = new Random();
    
            if (p.getItemInHand().getAmount() == 1) {
                p.getInventory().setItem(p.getInventory().getHeldItemSlot(), new ItemStack(Material.AIR));
            } else {
                p.getItemInHand().setAmount(p.getItemInHand().getAmount() - 1);
            }
    
            if (r.nextBoolean()) {
                p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 150, 1));
                p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 150, 1));
                p.addPotionEffect(new PotionEffect(PotionEffectType.CONFUSION, 150, 1));
    
                p.sendMessage(C.getPrefix() + C.c("&aЧувак, ты такой смешной.... *безудержанный смех*."));
            } else {
                p.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 150, 1));
                p.addPotionEffect(new PotionEffect(PotionEffectType.HUNGER, 150, 1));
                p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, 150, 1));
    
                p.sendMessage(C.getPrefix() + C.c("&aОоо... Чего-то мне нехорошо..."));
            }
        }
    }
    

    Исключение:
    Code:
    [17:33:11 FATAL]: Error executing task
    java.util.concurrent.ExecutionException: java.lang.AssertionError: TRAP
            at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:1.8.0_111]
            at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:1.8.0_111]
            at net.minecraft.server.v1_11_R1.SystemUtils.a(SourceFile:47) [server.jar:git-Spigot-7d78b81-7e19325]
            at net.minecraft.server.v1_11_R1.MinecraftServer.D(MinecraftServer.java:739) [server.jar:git-Spigot-7d78b81-7e19325]
            at net.minecraft.server.v1_11_R1.DedicatedServer.D(DedicatedServer.java:399) [server.jar:git-Spigot-7d78b81-7e19325]
            at net.minecraft.server.v1_11_R1.MinecraftServer.C(MinecraftServer.java:675) [server.jar:git-Spigot-7d78b81-7e19325]
            at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:574) [server.jar:git-Spigot-7d78b81-7e19325]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_111]
    Caused by: java.lang.AssertionError: TRAP
            at net.minecraft.server.v1_11_R1.ItemStack.F(ItemStack.java:94) ~[server.jar:git-Spigot-7d78b81-7e19325]
            at net.minecraft.server.v1_11_R1.ItemStack.setCount(ItemStack.java:822) ~[server.jar:git-Spigot-7d78b81-7e19325]
            at net.minecraft.server.v1_11_R1.PlayerInteractManager.a(PlayerInteractManager.java:403) ~[server.jar:git-Spigot-7d78b81-7e19325]
            at net.minecraft.server.v1_11_R1.PlayerConnection.a(PlayerConnection.java:957) ~[server.jar:git-Spigot-7d78b81-7e19325]
            at net.minecraft.server.v1_11_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:26) ~[server.jar:git-Spigot-7d78b81-7e19325]
            at net.minecraft.server.v1_11_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:1) ~[server.jar:git-Spigot-7d78b81-7e19325]
            at net.minecraft.server.v1_11_R1.PlayerConnectionUtils$1.run(SourceFile:13) ~[server.jar:git-Spigot-7d78b81-7e19325]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_111]
            at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_111]
            at net.minecraft.server.v1_11_R1.SystemUtils.a(SourceFile:46) ~[server.jar:git-Spigot-7d78b81-7e19325]
            ... 5 more
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    Lisenochek

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

    Trophy Points:
    76
    Имя в Minecraft:
    Lisenochek
  4. Larin

    Larin Старожил Пользователь

    Trophy Points:
    103
    Event отменяй.
     
  5. Автор темы
    Lisenochek

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

    Trophy Points:
    76
    Имя в Minecraft:
    Lisenochek
    Зачем мне отменять ивент?
     
  6. XjCyan1de

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

    Trophy Points:
    76
    Имя в Minecraft:
    XjCyan1de
    Должно быть if (тото тото) { действие } else { e.setCanceled = true }
     
  7. Автор темы
    Lisenochek

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

    Trophy Points:
    76
    Имя в Minecraft:
    Lisenochek
    Ору, спасибо.[DOUBLEPOST=1484050933,1483983202][/DOUBLEPOST]Проблема вернулась. Иногда по непонятным причинам исключение вылезает вновь!
     
  8. Larin

    Larin Старожил Пользователь

    Trophy Points:
    103
    Эвент отменяй! Сколько раз тебе говорить?
    Code:
    if (p.getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase(DrugList.cocaine.getItemMeta().getDisplayName())) {
        getDrugEffect(p);
        e.setCancelled(true)
    }
    
    if (p.getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase(DrugList.marihuana.getItemMeta().getDisplayName())) {
        getDrugEffect(p);
        e.setCancelled(true)
    }
    
    Что-то вроде этого.
     
  9. Автор темы
    Lisenochek

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

    Trophy Points:
    76
    Имя в Minecraft:
    Lisenochek
    Лол, я же отменял не в проверках, а после них
     
  10. Larin

    Larin Старожил Пользователь

    Trophy Points:
    103
    Я не знаю, что и как ты там отменял, напиши как я сказал, должно перестать ошибку выдавать.
     

Share This Page