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

Помогите Небольшой конфликт с LWC

Jampire

Старожил
Пользователь
Баллы
173
Имя в Minecraft
Jampire
Имеем функцию в плагине, которая отменяет установку блока с определенныпм NBT (впринципе, не важно - главное срабатывает как нужно)

Но возникает проблема с LWC - блок устанавливается - устанавливается LWC приват - эвент меняет блок на воздух - приват остается.
Код:
if (event.getBlock().getType().equals(Material.CHEST)) {
  event.getBlock().setType(Material.AIR);
}
Используя event.setCancelled() все игроки которые видели изменение блока уходили в краш.

Вот и вопрос - в каком направлении думать?
Курить в сторону снятия привата, или можно обойтись без установки привата?
 
Определённо курить в сторону снятия привата у данного блока по дефолту.
 
@Jampire, приоритет у обработчика какой? Посмотри какой в LWC, поставь ниже. Я в код LWC давно не заглядывал, но если автор не ступил, то он не должен ставить приват если событие пришло к нему отмененным.
По логике.
 
@Jampire, приоритет у обработчика какой? Посмотри какой в LWC, поставь ниже. Я в код LWC давно не заглядывал, но если автор не ступил, то он не должен ставить приват если событие пришло к нему отмененным.
По логике.
У меня по сути событие не отменяется, а считается выполненным. Пытался отменять - крашило всех вокруг.
 
@Jampire, "крашило"? Очень странно. Я отменял кучу разных событий - никогда проблем не было....
Тем более, что отмена BlockPlaceEvent - это вообще-то нормальная ситуация (на ней "приваты" основаны), которую должен адекватно обрабатывать любой плагин. В т.ч. и LWC.
 
мне что-то подсказывает что дело в измененных ItemMeta данных предмета, который устанавливается как блок. И это крашит клиент.

Ибо тестил с чистыми блоками - не было краша.
 
А вот это вполне может быть. Попробуй вместо ItemMeta использовать уникальные значения data (durability). Мы так у себя получаем блоки с дополнительными текстурами: допустим кирпичный блок и кирпичный блок с data=1. В стандартном клиенте выглядят одинаково и ничего не крашится. В нашем - кирпичный блок:1 отображается немного по другому.
 
А вот это вполне может быть. Попробуй вместо ItemMeta использовать уникальные значения data (durability). Мы так у себя получаем блоки с дополнительными текстурами: допустим кирпичный блок и кирпичный блок с data=1. В стандартном клиенте выглядят одинаково и ничего не крашится. В нашем - кирпичный блок:1 отображается немного по другому.
Как раз таки не получится. Нужна именно мета. Название, тег Lore. Так-же пытаюсь найти способ уникализировать предмет (что-бы шанс появления 2х копий был максимально низким).. К примеру рандомное число в какой-то тег записать)
 

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

Назад
Верх