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

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

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

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

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

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

    Помогите:

    Код:
    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.*********ventory.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Ооо... Чего-то мне нехорошо..."));
            }
        }
    }
    

    Исключение:
    Код:
    [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. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
  3. Larin

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

    Баллы:
    103
    Event отменяй.
     
  4. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Зачем мне отменять ивент?
     
  5. XjCyan1de

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Ору, спасибо.
    Проблема вернулась. Иногда по непонятным причинам исключение вылезает вновь!
     
  7. Larin

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

    Баллы:
    103
    Эвент отменяй! Сколько раз тебе говорить?
    Код:
    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)
    }
    
    Что-то вроде этого.
     
  8. Автор темы
    Lisenochek

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

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

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

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

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