Помогите Запрещаем класть вещи в сундук

Pro_Panda_Men

Активный участник
Баллы
61
Имя в Minecraft
Pro_Panda_Men
Как можно запретить класть игроку определенные блоки в сундук?
 
В итоге InventoryMoveEvent нет, но я подумаю что это InventoryMoveItemEvent, после чего написал код, ошибок нет, но ничего не работает, как кидать в сундук мог золото, так и продолжаю


@EventHandler
public void onMove(InventoryMoveItemEvent event)
{
if(event.getItem().getType() == Material.Gold)
event.setCancelled(true);
}
 
InventoryMoveItemEvent используется, насколько я помню, воронками. Попробуйте InventoryClickEvent (вроде, так называется). Ну и ещё есть ивент, который мог бы подойти в некоторых случаях - InventoryDragEvent.
 
InventoryMoveItemEvent используется, насколько я помню, воронками. Попробуйте InventoryClickEvent (вроде, так называется). Ну и ещё есть ивент, который мог бы подойти в некоторых случаях - InventoryDragEvent.
хз, надо уточнить, погуглю позже
 
InventoryClickEvent отслеживай, чекай тип инвентаря сундук и чекай item ,потом отменяй. PROFIT
 
Вот из исходников WG, может пригодится.
Код:
    @EventHandler(ignoreCancelled = true)
    public void onInventoryClick(InventoryClickEvent event) {
        HumanEntity entity = event.getWhoClicked();
        Inventory inventory = event.getInventory();
        ItemStack item = event.getCurrentItem();

        if (item != null && entity instanceof Player) {
            Player player = (Player) entity;
            ConfigurationManager cfg = getPlugin().getGlobalStateManager();
            WorldConfiguration wcfg = cfg.get(entity.getWorld());
            LocalPlayer localPlayer = getPlugin().wrapPlayer(player);

            if (wcfg.getBlacklist() != null && !wcfg.getBlacklist().check(
                    new ItemAcquireBlacklistEvent(localPlayer, toVector(entity.getLocation()), createTarget(item)), false, false)) {
                event.setCancelled(true);

                if (inventory.getHolder().equals(player)) {
                    event.setCurrentItem(null);
 
А где проверка типа инвентаря?? Inventory, я тебе сократил
Chest chest = (Chest) e.getBlock().getState();
Inventory inv = chest.getBlockInventory();
 
Назад
Верх