• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Гайд Клиент с нуля | Создаём главный класс + снимаем ограничения

PoC Life
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
22 Авг 2022
Сообщения
733
Реакции
74
Список:
1. Создаём главный класс + снимаем ограничения - https://yougame.biz/threads/325113
2. Автобус евентов - https://yougame.biz/threads/325114
3. OpenGL + Шейдеры + Рендер - https://yougame.biz/threads/325115
4. Аим - https://yougame.biz/threads/325188
5. GlowESP aka OpenGL Framebuffer - https://yougame.biz/threads/325211/
6. Текст, шрифты, атлас - https://yougame.biz/threads/325292

Создаём главный класс
Начнём с изучения майнкрафта. Будем начинать с самого начала, а именно с класса, который и запускает сам майнкрафт - Start.

Опираясь на код можно увидеть что он вызывает метод main и класса Main с параметрами аргументов запуска:
Wsaddlc.png

Внутри метода main можно найти очень много настроек игры, настройку прокси, игровой сессии и запуск самого майнкрафта:
Frame 1.png

Теперь мы знаем, что классом игры является Minecraft. В методе run ничего интересного, давайте взглянем на конструктор. Внутри него целая куча менеджеров рендера, ресурсов, моделей и прочего, но после всей инициализации идёт появление окна MainMenuScreen. Думаю это идеальное место для инициализации нашего клиента. Создадим главный класс и объявим в нём конструктор + метод run. Я хочу построить класс клиента аналогично тому, что мы видели в Minecraft, то есть менеджеры будут публичными полями, в конструкторе будет создание их экземпляров, а в run выполнение всяких регистраций по типу создания шейдеров.

Вернёмся к Minecraft, обозначим поле с нашим клиентом:
private LearnClient client;
В конструкторе после вызова updateWindowSize создадим конструктор:
this.client = new LearnClient();
Ну и соответственно в run вызовем наш run:
this.client.run();

Давайте проверим сиё чудо, которое мы накалякали. Ставим бряк на конструктор, на run и затем запускаем майнкрафт:
Pasted image 20240704202913.png


Если у вас после запуска получилась такая картина:
Pasted image 20240704203339.png

То я вас поздравляю, вы сделали запуск своего клиента.

Снимаем ограничения
Начиная с хуй пойми какого числа на версиях > 1.13 начала появляться вот такая табличка не дающая зайти на сервера:

v0eAOuU.png

| ⚠ Подсказка
| Сочетание Ctrl+Shift+F позволяет быстро находить строки в файлах всего проекта

Давайте найдём данную строчку, видим, что она есть в файлах локализации (языка):
KElwhYU.png

Ищем строку в коде по ключу title.multiplayer.disabled и натыкаемся на класс MainMenuScreen в котором если метод isMultiplayerEnabled вернул true, то tooltip (подсказка при наведении на кнопку) будет текстом, иначе он вернёт field_238486_s_, который в свою очередь является абсолютно пустым:
6snzavL.png

Давайте не создавать такие непонятные название и через Refactoring (Shift+F6) переименуем field_238486_s_ в EMPTY и также сделаем для flag:
3SvGopG.png

Вот так уже намного лучше. Кстати теперь мы знаем, что у Minecraft есть fontRenderer, а также для локализации сообщения они используют текстовый компонент TranslationTextComponent.

Теперь, зная условие при котором появляется этот tooltip можем перейти к isMultiplayerEnabled:
JkrxEU8.png

Появляется два пути:
1. Изменить метод на return true, но у этого способа есть свой минус, вдруг в другом месте вместо вызова isMultiplayerEnabled они напрямую обратятся к полю enableMultiplayer и ваш фикс работать не будет
2. Узнать где меняется значение enableMultiplayer
Snco8pU.png

Узнать где находится gameConfig:
uLXfbZX.png

Поменять значение флага для отключения мультиплеера:
12v1CH0.png

Получить свою первую победу
frICwzd.png
 
Последнее редактирование:
для начального изучения майнкрафт апи годно :seemsgood:
 
У майнкрафта нет блядского апи:FailFish:, это уже половине форума в мозги вбили. Про майнкрафт апи только рофлят более опытные девелоперы, такие как metafaze, но ты в их число уж точно не входишь:4Head:
 
+реп, только желательно если будешь ещё таких куча тем создавать, то добавляй нумерацию, пожалуйста, а так спасибо за помощь в изучение Майнкрафт кода, а как говорят Майнкрафт апи
 
Прочитай что я написал, а написал я Майнкрафт кода...
Майнкрафт код нормальные люди не называют АПИ, пойди определение АПИ выучи, может хоть немного продвинешься в развитии:roflanEbalo:
 
Майнкрафт код нормальные люди не называют АПИ, пойди определение АПИ выучи, может хоть немного продвинешься в развитии:roflanEbalo:
Если уж не ты дочитываешь, или перечитываешь, советую проверяться, так как я сказал "Майнкрафт Кода", а дальше дополнил что его в основном называют "Майнкрафт Апи"...
 
+реп, только желательно если будешь ещё таких куча тем создавать, то добавляй нумерацию, пожалуйста, а так спасибо за помощь в изучение Майнкрафт кода, а как говорят Майнкрафт апи
да, щас займусь этим

Майнкрафт код нормальные люди не называют АПИ, пойди определение АПИ выучи, может хоть немного продвинешься в развитии:roflanEbalo:
не тут ты не прав. API это как бы какая-то база кода для удобного использования. Например mc.world уже относится к API майнкрафта, а System.out.println к апи джавы
 
ТЫ долбаёб? НИКТО СУКА не называет майнкрафт код АПИ т.к он им не является, сука сморозил хуйню, сидит оправдывается
Ну удачи тогда тебе с этим жить, а то Майнкрафт апи затухнет...
 
да, щас займусь этим


не тут ты не прав. API это как бы какая-то база кода для удобного использования. Например mc.world уже относится к API майнкрафта, а System.out.println к апи джавы
Minecraft это основной класс, в котором хранятся многие циклы и эвенты, но уж не как не апи. Апи это прежде всего интерфейс
 
Minecraft это действительно класс, но совокупность всех классов относящихся как либо к майнкрафту создаёт определённое апи. Ты ещё скажи что у forge нету своего апи:
IMG_3203.jpeg
 
да, щас займусь этим


не тут ты не прав. API это как бы какая-то база кода для удобного использования. Например mc.world уже относится к API майнкрафта, а System.out.println к апи джавы
какое нахуй апи майнкрафта.. моджанг вообще не разрешают модифицировать майнкрафт, если это не конкретно моды или плагины на майнкрафт, какое в таком случае апи сука может быть? вы модифицируете майнкрафт, чтобы сделать читы, которые в свою очередь дают вам преимущество перед другими игроками, а это в свою очередь значит, что это уже сука не апи. апи это там где вы создаете моды на майнкрафт, понятно?
вообще сам формат версий майнкрафта говорит об этом вам, то что там как минимум стоят ренеймнутые классы, которые затрудняют немного модификацию майнкрафта, но благодаря всяким мцп и т.п. маппингам вы можете спокойно ренеймнуть обратно его в нормальные названия и уже модифицировать как вам только угодно
 
Окей, моё последнее сообщение об апи. Читаем:
IMG_3204.jpeg

Апи предоставляет набор готовых процедур функций, структур. То есть в майнкрафте можно получать блоки в мире, узнавать координаты всех игроков, получать их пинг. Весь этот набор (я называю это совокупносью) создаёт некий апи.
 
У майнкрафта нет блядского апи:FailFish:, это уже половине форума в мозги вбили. Про майнкрафт апи только рофлят более опытные девелоперы, такие как metafaze, но ты в их число уж точно не входишь:4Head:
А ты в их число сам-то входишь хотя бы :tearsofjoy:?
 
Окей, моё последнее сообщение об апи. Читаем:
Посмотреть вложение 281653
Апи предоставляет набор готовых процедур функций, структур. То есть в майнкрафте можно получать блоки в мире, узнавать координаты всех игроков, получать их пинг. Весь этот набор (я называю это совокупносью) создаёт некий апи.
ок, давай тогда все функции будем называть API даже если ты вот создал программу с логином/регистрацией для чего-то своего и потом обфусцировал её максимально то тогда это тоже будет API да???
Окей, моё последнее сообщение об апи. Читаем:
Посмотреть вложение 281653
Апи предоставляет набор готовых процедур функций, структур. То есть в майнкрафте можно получать блоки в мире, узнавать координаты всех игроков, получать их пинг. Весь этот набор (я называю это совокупносью) создаёт некий апи.
а давай щас посмотрим википедию:
Пожалуйста, авторизуйтесь для просмотра ссылки.


"Проще говоря, это способ взаимодействия какого-то программного кода с набором каких-то программных компонентов, с помощью которых одна компьютерная программа (например, бот или сайт) может использовать другую программу."

так вот блять, как ты собрался сука из другой программы пользоваться функциями ОБФУСЦИРОВАННОГО МАЙНКРАФТА БЛЯТЬ ТЫ МНЕ ЭТО ОБЪЯСНИШЬ ЧУВАК?
 
Окей, моё последнее сообщение об апи. Читаем:
Посмотреть вложение 281653
Апи предоставляет набор готовых процедур функций, структур. То есть в майнкрафте можно получать блоки в мире, узнавать координаты всех игроков, получать их пинг. Весь этот набор (я называю это совокупносью) создаёт некий апи.
Ебанная статья с Яндекса,
Пожалуйста, авторизуйтесь для просмотра ссылки.
это прочитай
А ты в их число сам-то входишь хотя бы :tearsofjoy:?
Нет конечно, я младший кодер виссенда нахуй :FeelsBadMan:
 
А ты в их число сам-то входишь хотя бы :tearsofjoy:?
а причем тут это сообщение, он ваще сказал про то что с этой хуйни рофлят только опытные кодеры, твоя вставка не имеет никакого смысла и только написана в целях унижения человека
 
Назад
Сверху Снизу