Генерация предметов в ванильном сундуке без LootTable

Версия Minecraft
1.7.10
Первый вариант: генерировать определённые предметы в уже находящихся пустых ванильных сундуках в мире. Определить подходящий сундук я смог с помощью события "DrawBlockHighlightEvent", а именно его координаты, но не привязанный к нему инвентарь. Я не нашёл способа изменять инвентарь ванильного сундука, который уже есть в мире.
Есть другой вариант, который так же мне подходит: при срабатывании события "DrawBlockHighlightEvent" (или любого другого подходящего события), получать координаты ванильного сундука и ставить на его место мой сундук, внешне ничем не отличающийся от ванильного. В своём сундуке я уже лучше понимаю, как сгенерировать предметы, но есть другая проблема: каким бы образом я не старался сломать ванильный сундук, он всё равно остаётся.
Я пробовал removeTileEntity, setBlockToAir, func_147480_a (destroyBlock), breakBlock. В итоге сундук либо полностью остаётся, либо от него остаётся "фантомный" блок. На место этого фантомного блока можно поставить блок с помощью worldIn.setblock, но по правому клику по этому блоку открывается сундук, а иногда вообще поставленный блок исчезает и снова появляется сундук. "Фантомный" блок у меня получилось убрать только в самой игре командой /setblock ~ ~ ~ minecraft:air
Так же был вариант, который я так и не смог опробовать: выполнить каким то образом команду "/setblock ~ ~ ~ minecraft:air" из кода, но так и не нашёл как это сделать.
Под "фантомным" блоком я имею ввиду невидимый блок, на место которого не получается поставить блок, сыпучие блоки сверху на нём стоят, при попытке пройти через этот блок, персонаж начинает дёргаться в направлении от и к блоку.
Есть событие "GuiOpenEvent", но у меня не получилось получить из него ничего нужного.
Заранее спасибо всем тем, кто попытается ответить на мой вопрос.
 
Решение
Может, Ваш код выполняется на клиент стороне?
А нужно на сервер стороне?
Просто раз получилось убрать блок через команду, значит код выполняется на клиенте. (команда же выполняется на сервере)
1,159
38
544
Заранее спасибо всем тем, кто попытается ответить на мой вопрос

Автостопом по галактике написал(а):
— Сорок два! — взвизгнул Лунккуоол. — И это всё, что ты можешь сказать после семи с половиной миллионов лет работы?
— Я всё очень тщательно проверил, — сказал компьютер, — и со всей определённостью заявляю, что это и есть ответ. Мне кажется, если уж быть с вами абсолютно честным, то всё дело в том, что вы сами не знали, в чём вопрос.
— Но это же великий вопрос! Окончательный вопрос жизни, Вселенной и всего такого! — почти завыл Лунккуоол.
— Да, — сказал компьютер голосом страдальца, просвещающего круглого дурака. — А в чем заключался вопрос?
 
1,159
38
544
А вопрос заключался в том, как можно реализовать первый из мною описанных вариантов, или, если невозможно первый, то как реализовать второй.
Еще раз озвучь свой вопрос. Полностью. Имхо, яннп
 
В мире есть пустые ванильные сундуки. Мне надо, чтобы во всех них появлялись нужные мне предметы. НО если так сделать невозможно (невозможно изменить инвентарь уже находящегося в мире ванильного сундука), тогда такой вопрос: как убрать сундук из мира, сломать его и т.д. , так, чтобы после него не остался фантомный блок. Каким образом я пытался сломать сундук и что из этого получалось, я уже описал.
 
3,005
192
592
Может, Ваш код выполняется на клиент стороне?
А нужно на сервер стороне?
Просто раз получилось убрать блок через команду, значит код выполняется на клиенте. (команда же выполняется на сервере)
 
Спасибо, Док! Событие DrawBlockHighlightEvent видимо со стороны сервера вообще никогда не вызывается, т.к. в нём проверка !worldIn.isRemote никогда не выдавала true, но хотя бы в BlockEvent.PlaceEvent заработало так, как надо (сундук полностью убирается)
 
3,005
192
592
Сверху