Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите сразу после разрушения игроком на это же место ставился блок.

fedortik

Активный участник
Пользователь
Баллы
61
Имя в Minecraft
FEDORTIK
Нужно что бы сразу после разрушения игроком на это же место ставился блок. Пробовал через ивент отслеживающий разрушения блока, но setType меняет тип выпавшего блока, а не Air который образовался после разрушения блока
 
Это логично, что ивент срабатывает до самого ломания блока, дабы его можно было отменить. Ставь через несколько тиков:
Код:
Bukkit.getScheduler().runTaskLater(plugin, () -> block.setType(material), 1L);
 
Это вообще не логично. Дроп блока нельзя изменить через BlockBreakEvent, там попросту нет подобной функции. Через BlockDropItemEvent, кстати, это тоже лучше не делать, хотя такая опция есть, если я не ошибаюсь. BlockDropItemEvent#getItems() вернёт мутабельный лист блоков, т. е. можно добавить/удалить нужный Item (не ItemStack), но в документации спигота написано, что добавление дропа таким способом нелегально, что логично. Советую ОПу перепроверить код. Ещё лучше — запостить. Ну и доки тоже почитать не помешало бы.

https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/block/BlockBreakEvent.html
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/block/BlockDropItemEvent.html
 
Это вообще не логично. Дроп блока нельзя изменить через BlockBreakEvent, там попросту нет подобной функции. Через BlockDropItemEvent, кстати, это тоже лучше не делать, хотя такая опция есть, если я не ошибаюсь. BlockDropItemEvent#getItems() вернёт мутабельный лист блоков, т. е. можно добавить/удалить нужный Item (не ItemStack), но в документации спигота написано, что добавление дропа таким способом нелегально, что логично. Советую ОПу перепроверить код. Ещё лучше — запостить. Ну и доки тоже почитать не помешало бы.

https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/block/BlockBreakEvent.html
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/block/BlockDropItemEvent.html
Ответ из разряда "лишь бы вставить свою копейку". Где ТС просил менять дроп?
Нужно что бы сразу после разрушения игроком на это же место ставился блок.
 
Нужно что бы сразу после разрушения игроком на это же место ставился блок. Пробовал через ивент отслеживающий разрушения блока, но setType меняет тип выпавшего блока, а не Air который образовался после разрушения блока
Если тебе надо просто чтобы игроки не могли ломать блок, то почему бы тебе не отслеживать ломание блока в листенере и не выполнять event.setCancelled(true)?
 
Должна ли уменьшаться прочность предмета в руке при разрушении блока?
Должен ли блок дропаться в виде предмета после разрушения?
 

Поделиться этой страницей

Назад
Верх