Как поставить блок с NBT?

271
2
0
Как поставить блок с NBT? Например командный блок с уже написанной командой или сундук с предметами.
 
Можете подсказать? В каком классе генератор данжей с сундуками?
 
Мне нужен командный блок с уже написанной командой, а сундук я написал для примера.
 
Как поставить командный блок с уже написанной командой?
 
После установки блока тебе нужно получить TileEntityCommandBlock, из него получить CommandBlockLogic и у него вызвать func_145752_a(String), где в качестве аргумента указывается команда. Примерный код: 
Код:
//Допустим что у нас есть переменная world типа World.class, и она обозначает мир с твоим блоком
//Получаем TileEntityCommandBlock по координатам. x, y и z - координаты твоего блока
TileEntityCommandBlock commandBlockTile = (TileEntityCommandBlock)world.getTileEntity(x, y, z);
//Из полученного тайла получаем CommandBlockLogic
CommandBlockLogic commandBlockLogic = commandBlockTile.func_145993_a();
//Команда, которую мы хотим установить в командный блок
String command = "/do something";
//Записываем команду в CommandBlockLogic
commandBlockLogic.func_145752_a(command);
 
Спасибо!:D
 
RedEnergy написал(а):
Код:
//Допустим что у нас есть переменная world типа World.class, и она обозначает мир с твоим блоком
//Получаем TileEntityCommandBlock по координатам. x, y и z - координаты твоего блока
TileEntityCommandBlock commandBlockTile = (TileEntityCommandBlock)world.getTileEntity(x, y, z);
//Из полученного тайла получаем CommandBlockLogic
CommandBlockLogic commandBlockLogic = commandBlockTile.func_145993_a();
//Команда, которую мы хотим установить в командный блок
String command = "/do something";
//Записываем команду в CommandBlockLogic
commandBlockLogic.func_145752_a(command);
((TileEntityCommandBlock)world.getTileEntity(x,y,z)).func_145993_a().func_145752_a("/do something");
Без 3 лишних объектов.
 
Crowbar написал(а):
RedEnergy написал(а):
Код:
//Допустим что у нас есть переменная world типа World.class, и она обозначает мир с твоим блоком
//Получаем TileEntityCommandBlock по координатам. x, y и z - координаты твоего блока
TileEntityCommandBlock commandBlockTile = (TileEntityCommandBlock)world.getTileEntity(x, y, z);
//Из полученного тайла получаем CommandBlockLogic
CommandBlockLogic commandBlockLogic = commandBlockTile.func_145993_a();
//Команда, которую мы хотим установить в командный блок
String command = "/do something";
//Записываем команду в CommandBlockLogic
commandBlockLogic.func_145752_a(command);
((TileEntityCommandBlock)world.getTileEntity(x,y,z)).func_145993_a().func_145752_a("/do something");
Без 3 лишних объектов.
Целью было не только дать код под копи-паст, но так же объяснить что там вообще происходит. И оператор присваивания '=' еще не обозночает создания нового объекта.
 
Я знаю, но так как минимум короче. Я понимаю, что ты хотел объяснить, как оно работает.
 
А как выдать игроку этот к.б.
 
Назад
Сверху