Гайд Forge multiplayer fixer

Начинающий
Статус
Оффлайн
Регистрация
13 Янв 2021
Сообщения
227
Реакции[?]
17
Поинты[?]
1K
Я думаю, что уже почти все люди, которые разрабатывают на Forge, знают, что если вы заходите с IDE, то мультиплеер будет заблокирован.
10 минут назад мне было скучно, и я решил это исправить.

Вам нужно вставить этот код в onTickEvent.



P.S: Работает только на java < 16.
 
Последнее редактирование:
эксперт в майнкрафт апи
Read Only
Статус
Оффлайн
Регистрация
25 Янв 2023
Сообщения
684
Реакции[?]
286
Поинты[?]
21K
Открой пж для всех
ни в коем случае
это изоляция таких как ты от мира нормальных людей
Я думаю, что уже почти все люди, которые разрабатывают на Forge, знают, что если вы заходите с IDE, то мультиплеер будет заблокирован.
10 минут назад мне было скучно, и я решил это исправить.

Вам нужно вставить этот код в onTickEvent.

Скрытое содержимое

P.S: Работает только на java < 16.
ehm, с какой хуяки данный код должен заработать вне среды разработки?форга в рантайме имеет srg маппинги.не?
 
Начинающий
Статус
Оффлайн
Регистрация
13 Янв 2021
Сообщения
227
Реакции[?]
17
Поинты[?]
1K
ehm, с какой хуяки данный код должен заработать вне среды разработки?форга в рантайме имеет srg маппинги.не?
Ты прав, при билде ты не сможешь запустить данный код т.к просто будет кидаться FieldNotFoundException. Ты либо комментишь фулл код данной вещи либо просто можешь убрать откидывание RuntimeException и по сути Forge должен спокойно запустить мод.
 
Пользователь
Статус
Онлайн
Регистрация
22 Авг 2022
Сообщения
298
Реакции[?]
44
Поинты[?]
34K
Способ через миксины

Java:
@Mixin(Minecraft.class)
public class MultiplayerFixMixin {

    @Inject(method = "isMultiplayerEnabled", at = @At("HEAD"), cancellable = true)
    private void isMultiplayerEnabled(CallbackInfoReturnable<Boolean> callbackInfo) {
        callbackInfo.setReturnValue(true);
    }

    @Inject(method = "isChatEnabled", at = @At("HEAD"), cancellable = true)
    private void isChatEnabled(CallbackInfoReturnable<Boolean> callbackInfo) {
        callbackInfo.setReturnValue(true);
    }

}
 
Пользователь
Статус
Онлайн
Регистрация
22 Авг 2022
Сообщения
298
Реакции[?]
44
Поинты[?]
34K
Скрытое содержимое
можем в дс пойти

1. В build gradle добавляешь:
Код:
dependencies {
    minecraft 'net.minecraftforge:forge:1.16.5-36.2.39'
    annotationProcessor 'org.spongepowered:mixin:0.8.5:processor'
}
2. В resources создаёшь idмода.mixins.json, добавляешь:
JSON:
{
  "required": true,
  "minVersion": "0.8",
  "package": "твой.package.mixin",
  "compatibilityLevel": "JAVA_8",
  "refmap": "idмода.refmap.json",
  "mixins": [
  ],
  "client": [
    "НазваниеКлассаMixin"
  ],
  "injectors": {
    "defaultRequire": 1
  }
}
3. Создаёшь MultiplayerFixMixin в своём.package.mixin и код я дал выше
 
Начинающий
Статус
Оффлайн
Регистрация
28 Окт 2022
Сообщения
136
Реакции[?]
5
Поинты[?]
3K
не помог гайд, что бы я не изменял всеравно мультиплеер заблокирован
 
Начинающий
Статус
Оффлайн
Регистрация
22 Июл 2023
Сообщения
15
Реакции[?]
1
Поинты[?]
1K
Я думаю, что уже почти все люди, которые разрабатывают на Forge, знают, что если вы заходите с IDE, то мультиплеер будет заблокирован.
10 минут назад мне было скучно, и я решил это исправить.

Вам нужно вставить этот код в onTickEvent.

Скрытое содержимое

P.S: Работает только на java < 16.
господи

Java:
    public boolean isMultiplayerEnabled()
    {
        return true;
    }
 
Начинающий
Статус
Оффлайн
Регистрация
13 Янв 2021
Сообщения
227
Реакции[?]
17
Поинты[?]
1K
Начинающий
Статус
Оффлайн
Регистрация
28 Окт 2022
Сообщения
136
Реакции[?]
5
Поинты[?]
3K
Не мб ты откроешь глаза и увидишь, что этот тред создан для людей, которые используют Forge ?
да это и есть фикс для форджа который он скинул, я не ответил потому что узнал про этот фикс еще раньше чем его скинул чел сверху.
 
Начинающий
Статус
Оффлайн
Регистрация
11 Сен 2023
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Почему для вас всё так сложно? Через рефлексию сделать нельзя или что? Можно через миксины, но более простым способом, вот как реализовал я:

2:
package tubik.notkek.mixins.fixconnect;

import net.minecraft.client.Minecraft;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;

@Mixin(Minecraft.class)
public class FixConnectionMixin {
    private boolean customMultiplayerEnabled = true;

    /**
     * @notkek
     * @07.08.23
     */
    [USER=548942]@Overwrite[/USER]
    public boolean isMultiplayerEnabled() {
        return this.customMultiplayerEnabled;
    }
}
package tubik.notkek.mixins.fixsendmessage;

import net.minecraft.client.Minecraft;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;

@Mixin(Minecraft.class)
public class FixSendMessageMixin {
    private boolean customMultiplayerEnabled = true;

    /**
     * @notkek
     * @07.08.23
     */
    [USER=548942]@Overwrite[/USER]
    public boolean isChatEnabled() {
        return this.customMultiplayerEnabled;
    }
}
Overwrite багается сам, т.к юг думает что это юзер, убираете просто всё лишнее и живёте нормально, я вообще забил на это, но странно что кто то до сих пор юзает Inject когда удобнее и практичнее Overwrite. Думаю зарегистрировать не прям тупые смогут.
ss:
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:
Пользователь
Статус
Онлайн
Регистрация
22 Авг 2022
Сообщения
298
Реакции[?]
44
Поинты[?]
34K
Новичок
Статус
Оффлайн
Регистрация
29 Дек 2023
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Сверху Снизу