Вопрос Выдаёт ошибку при открытии GUI

IsonYT

Пользователь
Сообщения
177
Решения
2
При Shift+ПКМ должно открываться gui, но оно не открывается и выдает ошибку "Could not pass event PlayerInteractEntityEvent to BMArmorStand v0.1-BETA"

Можете также подсказать, почему со свинкой срабатывает действие, а с АрморСтендом нет?

А ещё нельзя перетаскивать предметы и в инвентаре
Java:
package org.bamboomine.mc.bmarmorstand;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

public class BMArmorStand extends JavaPlugin {

    public Inventory gui;

    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(new EventListener(), this);

        gui = Bukkit.createInventory(null, 45, "Редактирование АрморСтенда");

        ItemStack decoration = new ItemStack(Material.GRAY_STAINED_GLASS_PANE);
        ItemMeta decorationItemMeta = decoration.getItemMeta();
        decorationItemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', "#FF0000Привет"));
        decoration.setItemMeta(decorationItemMeta);
        gui.setItem(0, decoration);
        gui.setItem(1, decoration);
        gui.setItem(2, decoration);
        gui.setItem(3, decoration);
        gui.setItem(4, decoration);
        gui.setItem(5, decoration);

        Bukkit.getServer().getConsoleSender().sendMessage("[BMArmorStand] Активирован!");

    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
    }
}

Java:
package org.bamboomine.mc.bmarmorstand;

import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.entity.Entity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerInteractEntityEvent;

public class EventListener implements Listener {

    @EventHandler
    public void ShiftRCArmorStand(PlayerInteractEntityEvent e) {

        Player player = e.getPlayer();
        Entity entity = e.getRightClicked();

        if (player.isSneaking() && entity.getType() == EntityType.PIG) {

            player.sendMessage("Ты кликнул!");
            player.openInventory(new BMArmorStand().gui);
        }
    }

    @EventHandler
    public void onInvClick(InventoryClickEvent e) {

        if (e.getInventory().getHolder() != null) {

            e.setCancelled(true);
        }
    }
}
 
Последнее редактирование:
InventoryClickEvent надо правильно обработать, ты отменяешь для всех инвентарей

if(e.getView().getTitle().equalsIgnoreCase("название инвентаря")) {
e.setCancelled(true);
}
А что насчёт остального?
 
При Shift+ПКМ должно открываться gui, но оно не открывается и выдает ошибку "Could not pass event PlayerInteractEntityEvent to BMArmorStand v0.1-BETA"

Можете также подсказать, почему со свинкой срабатывает действие, а с АрморСтендом нет?

А ещё нельзя перетаскивать предметы и в инвентаре
Java:
package org.bamboomine.mc.bmarmorstand;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

public class BMArmorStand extends JavaPlugin {

    public Inventory gui;

    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(new EventListener(), this);

        gui = Bukkit.createInventory(null, 45, "Редактирование АрморСтенда");

        ItemStack decoration = new ItemStack(Material.GRAY_STAINED_GLASS_PANE);
        ItemMeta decorationItemMeta = decoration.getItemMeta();
        decorationItemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', "#FF0000Привет"));
        decoration.setItemMeta(decorationItemMeta);
        gui.setItem(0, decoration);
        gui.setItem(1, decoration);
        gui.setItem(2, decoration);
        gui.setItem(3, decoration);
        gui.setItem(4, decoration);
        gui.setItem(5, decoration);

        Bukkit.getServer().getConsoleSender().sendMessage("[BMArmorStand] Активирован!");

    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
    }
}

Java:
package org.bamboomine.mc.bmarmorstand;

import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.entity.Entity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerInteractEntityEvent;

public class EventListener implements Listener {

    @EventHandler
    public void ShiftRCArmorStand(PlayerInteractEntityEvent e) {

        Player player = e.getPlayer();
        Entity entity = e.getRightClicked();

        if (player.isSneaking() && entity.getType() == EntityType.PIG) {

            player.sendMessage("Ты кликнул!");
            player.openInventory(new BMArmorStand().gui);
        }
    }

    @EventHandler
    public void onInvClick(InventoryClickEvent e) {

        if (e.getInventory().getHolder() != null) {

            e.setCancelled(true);
        }
    }
}
Проверь свой конфиг вот тут, там тебе покажут где ошибки были в написании
 
С этим всем я вопрос решил уже, мне бы с NBT разобраться…
Извиняюсь за вопрос но что такое NBT? Начните со мной переписку там всё решим или создайте тему другую
 
Назад
Сверху Снизу