А теперь про пакеты...

Версия Minecraft
1.12.2
Есть значение, которое хранится исключительно на сервере, требуется отсылать его на клиент для рендера текста на экране.
Посмотрел туториал, но там пакет отсылается именно игрокам. Соотственно вопрос, что делать?
 
Решение
Дядь, ты что делаешь то?
Лист или массив нужно записывать так: записываешь вначале количество элементов, а потом сами элементы в цикле. Читаешь сначала количество элементов, а потом в fori читаешь сами элементы и добавляешь в лист.
Просто не совсем понимаю, что конкретно нужно с этим делать... Вот есть у меня пакет, вот есть у меня эвент рендера. И как их соединить воедино?
 
50 раз перечитал документацию Форжа. Вроде разобрался, теперь другая проблема: Создаю пакет с листом лонгов, при отправке пакета записываю в него определённый лист, проверил через sysout: Лист перед отправкой с пакетом исправен, лист в самом пакете тоже, но по какой-то причине, при получении в MessageHandler'е он пустой. При этом с простым интом, как в документации, всё нормально.
 
Java:
public class MyMessage implements IMessage
{
    public MyMessage(){}

    public List<Long> list = new ArrayList<Long>();
    private int listSize;
    
    public MyMessage(List<Long> list)
    {
        this.list = list;
        this.listSize = list.size();
    }

    @Override
    public void toBytes(ByteBuf buf)
    {       
        for(Long i : this.list)
        {
            buf.writeLong(i);
        }
    }

    @Override
    public void fromBytes(ByteBuf buf)
    {
        for(Long i : this.list)
        {
            list.add(buf.readLong());
        }
    }
}
 

tox1cozZ

aka Agravaine
8,454
598
2,890
Дядь, ты что делаешь то?
Лист или массив нужно записывать так: записываешь вначале количество элементов, а потом сами элементы в цикле. Читаешь сначала количество элементов, а потом в fori читаешь сами элементы и добавляешь в лист.
 
Сверху