Не дроп

timaxa007

Модератор
5,831
409
672
wilah, читай описание PlayerDropsEvent. Вызывается в смерти игрока, в случаи отмены эвента позволяет не дропать предметы из инвентаря игрока в смерти игрока.
Вроде как надо ItemTossEvent, срабатывает когда игрок пытается дропнуть через клавишу для дропа предмета (стандартно Q) или когда выбрасывается через окно drag-n-drops. Но вот как отменить дроп, я точно (пока-что) не знаю.
[merge_posts_bbcode]Добавлено: 28.03.2016 20:57:45[/merge_posts_bbcode]

Код:
Set blocked_items = Sets.newHashSet(new Item[] {
    Items.nether_star,
    Item.getItemFromBlock(Blocks.bedrock)
});

@SubscribeEvent
public void dropQ(ItemTossEvent event) {
    if (event.entityItem != null) {
        ItemStack item = event.entityItem.getEntityItem();
        if (item != null && blocked_items.contains(item.getItem())) {
//Если отменить дроп, то предмет не вернётся.
            event.player.inventory.addItemStackToInventory(item);//Возвращаем предмет так
            event.setCanceled(true);//Отменяем, дропаться не будет
        }
    }
}
 
35
0
как вариант выдавать новый, спасибо за наводку, попробую, отпишу о результатах
 
Сверху