Как создать GUI для блока

Версия Minecraft
1.7.10
344
1
47
Создавай обычное гуи. Если тебе нужен контейнер - конкретный пример с сундуком.
Проверяй "block ... activated" и отсылай пакет открытия гуи) Элементарно, ватсен.
 
344
1
47
Зачем отсылать пакет? У тебя есть IGuiHandler, достаточно через player.openGui указать id гуи и будет тебе счастье.
Атата, не. Если тебе на сервере работать - желательно делать все цивильно :3

example, Watson
Java:
    @Override
    public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int metadata, float hitX, float hitY, float hitZ)
    {
        if (!player.isSneaking())
        {
            TileEntityHolocron tile = (TileEntityJediForge) world.getTileEntity(x, y, z);

            if (tile != null)
            {
                if (world.isRemote)
                {
                    Eternity.networkWrapper.sendToServer(new PacketTileAction(player, tile.xCoord, tile.yCoord, tile.zCoord, 0));
                }

                player.openGui(jediforge.instance, 2, world, x, y, z);
            }

            return true;
        }
        else
        {
            return false;
        }
    }
 
Последнее редактирование модератором:
3,005
192
592
отсылай пакет открытия гуи) Элементарно, ватсен.
Расскажи, почему нужно выполнять открытие контейнера через пакет клиент -> сервер, если все равно этот метод вызывается на стороне сервера и можно выполнить то же самое без пакетов?
 
3,005
192
592
1,111
47
420
Сначала вызов на клиенте => отправка пакета на сервер => открытие гуя и после этого опять открытие гуя.
Потом вызов на сервере => открытие гуя.
Итого у меня получилось целых 3 раза если кншн пакет открывает гуи.
 
344
1
47
Сначала вызов на клиенте => отправка пакета на сервер => открытие гуя и после этого опять открытие гуя.
Потом вызов на сервере => открытие гуя.
Итого у меня получилось целых 3 раза если кншн пакет открывает гуи.
Не знаю, у меня по тайлу, там модель просто. И нормально все работает) Кстати, док прав, на сервере, тобишь пакет все ж не обязателен)
 
1,111
47
420
Нее оно конечно работать будет=), но просто в таком порядке: гуй открылся, гуй закрылся, гуй открылся, гуй закрылся, гуй открылся. Делай конечно как хош никто не сможет осудить, но все же глаз режет чутка.
 
2,505
81
397
Чот щас не понял немного. onBlockActivated вызывается и на клиенте и на сервере. Твой код просто напросто дважды откроет гуй.
Дважды не откроет. По дефолту только сервер может открывать гуи-контейнер.
 
2,505
81
397
Происходит все так: сервер создает контейнер, отправляет пакет на клиент, клиент создает гуи-контейнер (с контейнером внутри).
Если пытаться открыть гуи-контейнер с клиенте (через player.openGui), то ничего не произойдет. И это логично.
 
Сверху