Разрешается выкладывание кода, файлов конфигураций, логов и т.д. только под BB-код CODE
- Другие ядра
- PufferFish
Пытаюсь пофиксить баг в плагине который позволяет игроку обойти ограничение на запрет класть определенные предметы в ender chest. Недоработка в следующем: игрок берёт в левую руку предмет, открывает ender chest, наводится курсором на свободный слот сундука и нажимает клавишу F и предмет туда перемещается - кто-нибудь знает каз запретить данное действие? Вот часть кода
@EventHandler
public void onMove(InventoryClickEvent e) {
e.getView();
Inventory destInv = e.getView().getTopInventory();
if(destInv.getType() != InventoryType.ENDER_CHEST) return;
e.getWhoClicked();
if(!(e.getWhoClicked() instanceof Player)) return;
Player player = (Player) e.getWhoClicked();
ItemStack item;
if((InventoryAction.HOTBAR_SWAP.equals(e.getAction()) ||
InventoryAction.HOTBAR_MOVE_AND_READD.equals(e.getAction())) &&
(e.getHotbarButton() >= 0 && e.getHotbarButton() <= 8)) {
item = player.getInventory().getItem(e.getHotbarButton());
} else {
item = e.getCurrentItem();
}
if(!isShulker(item)) return;
if(destInv.contains(item) && Objects.requireNonNull(e.getClickedInventory()).getType() == InventoryType.ENDER_CHEST) return;
int numShulkers = 0;
for(ItemStack destItem : destInv.getStorageContents())
if(isShulker(destItem)) numShulkers++;
@EventHandler
public void onMove(InventoryClickEvent e) {
e.getView();
Inventory destInv = e.getView().getTopInventory();
if(destInv.getType() != InventoryType.ENDER_CHEST) return;
e.getWhoClicked();
if(!(e.getWhoClicked() instanceof Player)) return;
Player player = (Player) e.getWhoClicked();
ItemStack item;
if((InventoryAction.HOTBAR_SWAP.equals(e.getAction()) ||
InventoryAction.HOTBAR_MOVE_AND_READD.equals(e.getAction())) &&
(e.getHotbarButton() >= 0 && e.getHotbarButton() <= 8)) {
item = player.getInventory().getItem(e.getHotbarButton());
} else {
item = e.getCurrentItem();
}
if(!isShulker(item)) return;
if(destInv.contains(item) && Objects.requireNonNull(e.getClickedInventory()).getType() == InventoryType.ENDER_CHEST) return;
int numShulkers = 0;
for(ItemStack destItem : destInv.getStorageContents())
if(isShulker(destItem)) numShulkers++;