- Версия(и) Minecraft
- 1.12.2
В FG 5.x на 1.12 есть баг, когда иногда после gradle refresh в net.minecraftforge.fml.relauncher.Side появляется третье значение:
Это вызывает краш при запуске. Обычно фиксится повторным gradle refresh. Недавно мне пришлось сделать это 10 раз, прежде чем оно встало на место.
Так что я написал фиксы краша на хуклибе и миксинах.
Это вызывает краш при запуске. Обычно фиксится повторным 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};
}
}