if(Некий таймер) {
...
inventory.setInventorySlotContents(0, stack);
if (!worldObj.isRemote)
добавление/изменение, а то ещё создаст дополнительно, на клиентской стороне.Крашит игру.(и Shift-Click тоже).
открывающийся Gui с контейнером.
TileEntity tile = w.getTileEntity(x, y, z);
if (tile instanceof TileEntityS && !player.capabilities.isCreativeMode) {
TileEntityS te = (TileEntityS)tile;
if (te.inventory == null) return true;
player.openGui(Core.instance, 1, w, x, y, z);
}
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
TileEntity tile = world.getTileEntity(x, y, z);
switch(ID)
{
case 1:
if (!(tile instanceof TileEntityS)) return null;
return new SContainer(player, (TileEntityS)tile);
}
return null;
}
@Override
@SideOnly(CLIENT)
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
TileEntity tile = world.getTileEntity(x, y, z);
switch(ID)
{
case 1:
if (!(tile instanceof TileEntityS)) return null;
return new SGui(player, (TileEntityS)tile);
}
return null;
}
плохая регистрация: TileEntity, GuiHandler
NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler());
blockS = new BlockS();
GameRegistry.registerBlock(blockS, "blockS");
GameRegistry.registerTileEntity(TileEntityS.class, "TileEntityS");
public SteelCabinetContainer(EntityPlayer player, TileEntitySt tile)
{
this.player = player;
this.playerInventory = player.inventory;
this.tile = tile;
if (tile.inventory == null) return;
tile.inventory.openInventory();
addSlots();
}
public SGui(EntityPlayer player, TileEntityS tile) {
super(new SContainer(player, tile));
if (tile.inventory == null) return;
}
Посмотри в сундуке, там метод предопределить надо, чтоб работало.Shift+click