ограничить инвертарь

  • Автор темы Автор темы nellsan
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

nellsan

Ньюби
Пользователь
Баллы
1
Имя в Minecraft
Ne1san
Как можно ограничить инвертарь, может добавлением невидимых блоков, но как дабавить в последние слоты, чтобы первые были свободными + чтобы у обычных игроков было так, а у оп полный инвертарь Желательно кодом, заранее спасибо
 
отменяй ивент клика по конкретному слоту игроку без права а с правом не отменяй вот и все
 
InventoryClickEvent InventoryDragEvent InventoryMoveEvent
Всё это слушаешь и отменяешь, если слот тебе не нравится
 
Чувак, закрой тему. Тебе стурм уже ответил.
 
InventoryClickEvent InventoryDragEvent InventoryMoveEvent
Всё это слушаешь и отменяешь, если слот тебе не нравится
в таком порядке как ты и написал, тоесть сначала один класс, в нем другой класс и тд?И можешь сказать что именно отвечает за отмену слота
 
Регаешь ивентхандлер
Слушаешь эти три ивента
Получаешь e.getClickedSlot() (там названия методов отличаются, открой джавадок)
Если этот слот равен тому слоту, что ты хочешь запретить - e.setCancelled(true)
 
Регаешь ивентхандлер
Слушаешь эти три ивента
Получаешь e.getClickedSlot() (там названия методов отличаются, открой джавадок)
Если этот слот равен тому слоту, что ты хочешь запретить - e.setCancelled(true)



Мне нужно занести 3 класса подряд или в 1 одном классе, вписать другой класс, а в нем уже третий, можно пример кода, заранее спасибо
 
Мне нужно занести 3 класса подряд или в 1 одном классе, вписать другой класс, а в нем уже третий, можно пример кода, заранее спасибо
Пример кода напишешь сам. Первый хандлер отвечает за клик, второй - за перемещение предметов (в т.ч. цифрами), третий - за объединение предметов через шифт(по-моему)
 
Пример кода напишешь сам. Первый хандлер отвечает за клик, второй - за перемещение предметов (в т.ч. цифрами), третий - за объединение предметов через шифт(по-моему)
Получилось, спасибо. Подскажи еще как прописать чтобы предмет положенный в этот слот выбрасывался, а не удолялся. И можно как-то сразу прописать на слоты подряд, чтоб не повторять одно и то же?
 
Получилось, спасибо. Подскажи еще как прописать чтобы предмет положенный в этот слот выбрасывался, а не удолялся. И можно как-то сразу прописать на слоты подряд, чтоб не повторять одно и то же?
1)удаляешь предмет и выбрасываешь его world.dropItem(loc, item)
2)if (slot >= min & & slot <= max) {
//todo
}
 
Подчеркивает dropItem, что делать? И как задать переменную item предмета который кладется в этот слот
Это означает, что тебе нужно учить джаву.
world - мир в котором находится игрок, тебе его нужно получить. Один из способов: player.getWorld().dropItem(loc, item);
Если у тебя игрока нет, то на помощь придёт Bukkit.getWorld("название мира").dropItem(loc, item);
Дальше: item мы получаем с ивента, в котором отменяем нажатие, getCurrentItem() либо
getCursor()
 
public class Event implements Listener {
@EventHandler
public void inv (InventoryClickEvent event) {
Player p = (Player)event.getWhoClicked();
Location loc = event.getWhoClicked().getLocation();
ItemStack item = event.getCursor();
int slot = event.getSlot();
if (slot >= 9 && slot <= 35) {
event.setCancelled(true);
p.getWorld().dropItem(loc, item);
p.sendMessage("У вас нет такого колличества карманов");
}
}
}

все нормально, но происходит раздваивание предметов ((
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх