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

Lisenochek

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

Помогите:

JavaScript:
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
 
Должно быть if (тото тото) { действие } else { e.setCanceled = true }
 
Ору, спасибо.
Проблема вернулась. Иногда по непонятным причинам исключение вылезает вновь!
 
Ору, спасибо.
Проблема вернулась. Иногда по непонятным причинам исключение вылезает вновь!
Эвент отменяй! Сколько раз тебе говорить?
Java:
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)
}

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

Что-то вроде этого.
Лол, я же отменял не в проверках, а после них
 
Назад
Верх