Как передать параметры в fontRendererObj.drawStrin

Версия Minecraft
1.7.10
В общем.Я сделал статические переменные которые должны в себе хранить данные по сути .Поскольку они статические - они должны быть при передачи с класса в класс инициализированы этими параметрами . Но .. Оно не инициализируется , и всегда в Gui выходит Null1681556100567.png1681556118190.png
 
Поскольку они статические - они должны быть при передачи с класса в класс инициализированы этими параметрами . Но
почитай что такое статические переменные, они никому ничего не должны это как минимум.
Если во время открытия GUI они не установлены то будет null, они не бегают от класса к классу. Они просто доступны из любого места. Но если они не установлены или установлены позднее, то ты никак не можешь заглянуть в будущее и узнать об этом сейчас. Ну по крайней мере код так не умеет угадывать, если ты ему об этом не расскажешь.
 
1681813658273.png
ты понимаешь разницу между классом и объектом? Это две разные вещи.
Это всё равно что если бы ты написал
var v1 = new Egg();
var v2 = new Egg();
как ты думаешь v1 и v2 равны? и где будут храниться данные если внутри класса будЕт статичная переменная?
public class Egg - это класс
new Egg() - это уже объект класса. Данные класса, или уже физический объект который мы можем пощупать и который уже не код. Которые хранятся уже в памяти, которые мы можем менять или уничтожить.
Вот у тебя есть чертёж табуретки, вот это класс. А когда ты сделал табуретку - это уже объект.
И даже если по чертежу ты сделаешь 2 табуретки - они будут отличаться на молекулярном уровне, это скорее всего можно будет даже измерить линейкой (даже если это делал станок).
то есть v1 никогда не будет равен v2, потому что они лежат в разных участках памяти и им выданы разные уникальные номера. Но ты можешь упростить сравнение и считать их одним (если это требуется в коде), но это лишь ты, а для компа это всё равно будут два разных объекта.

Ты думаешь тебе просто так говорят учи Java, ты бы за неделю её выучил, а потом за день сделал бы своё (ну за 2-3). И больше бы не делал таких глупых ошибок.

upd: статические переменные хранятся в чертеже, поэтому они никакого отношения к объекту "табуретка" не имеют. Я не уверен, но мне кажется они вообще хранятся в отдельном пространстве памяти. Это всё равно что ты бы в моде сделал переменную и хранил бы всё там, а из GUI к этому обращался, но ты наверняка обращаешься к ним через this, а их там нет... Или ты просто не поставил проверку на их отсутствие и твой GUi падает с ошибкой (а он должен их дождаться).
Теперь понятно?

Скажи спасибо аватару, яб не стал отвечать другому)))
 
Последнее редактирование:
Различие я понимаю между классом и объектом. То что ты там создал 2 объекта - они будут всегда false если ты сравниваешь через == т.к это объект(если это не ссылочный int) и происходит в данном случае сравнение ссылок которые даются объекту под капотом java по определенному принципу .Это я понимаю. static - она хранится в heap памяти . Теперь я кажись понял в чём собственно прикол)я из другого класса ,который никак не связан/не принадлежит гуи.Спасибо за крайне развёрнутый ответ!)
 
Для случайно читающих поясняю, автор ищет способ отобразить оверлей на на другом клиенте по запросу несколько тем подряд, но ни кто не может конкретно указать на ошибки в коде или на логику реализации.
Хоть бы кто то взял и объяснил хотя бы поверхностно какой пакет должен быть отправлен и какой пакет должен быть получен, и что оверлей рендерится на клиенте, и запустить его рендер с другого клиента можно пакетом который будет содержать в себе тригер, но не сам оверлей. возможно если бы ребята выше конструктивно обьяснили это, то автору не пришлось бы создавать тему за темой...

а реализация этого довольно проста ТЫК но она для версии 1,19,2
если кто то может побыстрому адаптировать ее для 1,7,10
можете помочь автору с этим
 
Назад
Сверху