InventoryClickEvent срабатывает через раз

222
13 апреля 2017, 16:26

import org.bukkit.Material; 
import org.bukkit.event.inventory.InventoryClickEvent; 
import org.bukkit.event.player.PlayerDropItemEvent; 
import org.bukkit.event.EventHandler; 
import org.bukkit.event.EventPriority; 
 
import org.bukkit.entity.Player; 
import org.bukkit.inventory.ItemStack; 
 
public class Handler implements org.bukkit.event.Listener { 
     
    @EventHandler(priority = EventPriority.HIGHEST) 
    public void onInventoryClick(InventoryClickEvent event) 
    { 
        Player player = ((Player)event.getWhoClicked()); 
         
        ItemStack currentItem = event.getCurrentItem(); 
              
        if(currentItem == null || currentItem.getType() != Material.BOOK) return; 
         
        event.setCancelled(true); 
	player.updateInventory(); 
    } 
     
    @EventHandler 
    public void onDropItem(PlayerDropItemEvent event) 
    { 
        if(event.getItemDrop().getItemStack().getType() != Material.BOOK) return; 
         
        event.setCancelled(true); 
    } 
}

Моя задача - запретить игроку выбрасывать или перемещать по инвертарю определенный предмет. Например, книгу. Но функция onInventoryClick срабатывает четко через раз. Нажал - сработало. Нажал - не сработало. Нажал - сработало. И Т.Д. Кто знает как это исправить?

READ ALSO
Java Apache POI Excel Перезапись

Java Apache POI Excel Перезапись

Вот до сюда все работает, если файла в папке нет он создает

339
Spring Security OAuth2

Spring Security OAuth2

Есть сервис с авторизацией через OAuth2 (например, vkcom)

225
Запрос на выборку left join hibernate

Запрос на выборку left join hibernate

Есть таблица users & words связь многие ко многимИ связующая таблица, ну например users_words(неожиданно, да?) Как можно проделать при помощи Criteria такую...

212