Иконка ресурса

Фикс краша из-за Side.BUKKIT

Версия(и) Minecraft
1.12.2
В FG 5.x на 1.12 есть баг, когда иногда после gradle refresh в net.minecraftforge.fml.relauncher.Side появляется третье значение:
1717497928507.png

Это вызывает краш при запуске. Обычно фиксится повторным gradle refresh. Недавно мне пришлось сделать это 10 раз, прежде чем оно встало на место.
Так что я написал фиксы краша на хуклибе и миксинах.
Java:
@HookContainer
public class FixFuckingBukkitSide {

    @Hook(targetMethod = "newChannel")
    @OnMethodCall(value = "values",shift = Shift.INSTEAD)
    public static Side[] filterSides(NetworkRegistry networkRegistry, String name, ChannelHandler... handlers) {
        return new Side[]{Side.CLIENT, Side.SERVER};
    }

    @Hook(targetMethod = "newChannel")
    @OnMethodCall(value = "values",shift = Shift.INSTEAD)
    public static Side[] filterSides(NetworkRegistry networkRegistry, ModContainer container, String name, ChannelHandler... handlers) {
        return new Side[]{Side.CLIENT, Side.SERVER};
    }
}
Java:
@Mixin(NetworkRegistry.class)
public class NetworkRegistryMixin {

    @Redirect(
            method = "newChannel(Lnet/minecraftforge/fml/common/ModContainer;Ljava/lang/String;[Lio/netty/channel/ChannelHandler;)Ljava/util/EnumMap;",
            at = @At(value = "INVOKE", target = "Lnet/minecraftforge/fml/relauncher/Side;values()[Lnet/minecraftforge/fml/relauncher/Side;")
    )
    public Side[] onlyValidSides() {
        return new Side[]{Side.CLIENT, Side.SERVER};
    }

    @Redirect(
            method = "newChannel(Ljava/lang/String;[Lio/netty/channel/ChannelHandler;)Ljava/util/EnumMap;",
            at = @At(value = "INVOKE", target = "Lnet/minecraftforge/fml/relauncher/Side;values()[Lnet/minecraftforge/fml/relauncher/Side;")
    )
    public Side[] onlyValidSides2() {
        return new Side[]{Side.CLIENT, Side.SERVER};
    }
}
Автор
hohserg
Просмотры
221
Первый выпуск
Обновление
Оценка
4.00 звёзд 1 оценок

Другие ресурсы пользователя hohserg

Последние рецензии

Сомнительно, но окэй
Сверху