Помогите Как запретить помещать предмет в инвентаре.

tokarev

Новичок
Пользователь
Баллы
6
Имя в Minecraft
tokarev
Добрый день, возникла проблема взаимодействия игрока со своим инвентарем. Как сделать следующее: когда я помещаю предмет в определенный слот (держа при этом его мышкой) он обратно прилипал к курсору и не давал поместить предмет в слот кроме 0 слота.
 
InventoryClickEvent. Проверяй наличие предмета на курсоре getCursor() и слот.
 
Спасибо, встречный вопрос тоже связан с данной темой. Как запретить свапать предмет в хотбаре кнопками 1-9?
 
Вот пример моего кода:
@EventHandler
public void LegendInvNice(InventoryClickEvent event) {
Player player = (Player) event.getWhoClicked();
if (player.isOp() || player.getGameMode() == GameMode.CREATIVE) {
return;
} else {
ItemStack itemclicked = event.getCurrentItem();
if (itemclicked.getType() == Material.BONE || itemclicked.getType() == Material.MAGMA_CREAM)
event.setCancelled(true);
}
}
 
Спасибо, встречный вопрос тоже связан с данной темой. Как запретить свапать предмет в хотбаре кнопками 1-9?
Код:
if (event.getClick() == ClickType.NUMBER_KEY) {

}

И еще совет, лучше искать подобную информацию на английском. На зарубежных форумах такие вопросы уже давно решены.
 
Код:
if (event.getClick() == ClickType.NUMBER_KEY) {

}

И еще совет, лучше искать подобную информацию на английском. На зарубежных форумах такие вопросы уже давно решены.
Да, там много годной инфы, но с пониманием туго, ну ладно..
Вот мой последний код и тут опять проблема, кость не свапается и не перетаскивается (то чего я как раз добивался) , но при этом пострадали другие предметы их теперь нельзя свапнуть.. Если не трудно укажи на ошибку.
@EventHandler
public void LegendInvNice(InventoryClickEvent event) {
Player player = (Player) event.getWhoClicked();
if (player.isOp() || player.getGameMode() == GameMode.CREATIVE) {
return;
} else {
ItemStack itemclicked = event.getCurrentItem();
if (itemclicked.getType() == Material.BONE)
event.setCancelled(true);
}
}
@EventHandler
public void LegendInvNice1(InventoryClickEvent event) {
ItemStack itemclicked = event.getCurrentItem();
if (event.getClick() == ClickType.NUMBER_KEY && itemclicked.getType() != Material.BONE) {
event.setCancelled(true);
}
}
 
Последнее редактирование:
Назад
Верх