- 35
- 2
- 2
Задача - получить геймрул и использовать его миксине. Пришла идеяфикс написать геттер внутри другого миксина - пояснение ниже
Обнаружил что в коде игры в GameRules.class есть подкласс и в нем метод onChanged(@nullable MinecraftServer server) который содержит нужный для вытягивания геймрулов MinecraftServer, функция срабатывает когда игровые правила меняются.
Идея - сделать иньекцию в метод и вытянуть конкретное правило (то есть значение boolean) на примере правила doFireTick.
Интерфейс для геттера:
Миксин геймрула
Миксин в который надо втянуть Get_DoFireTick()
Однако - не работает, при срабатывании метода - игра напросто крашится. причина в том, что после компиляции кода миксины "исчезают".
Собственно, как сделать иначе, чтобы работал геттер и его можно было использовать в другом классе?
(PS я плохо понимаю работу интерфейсов. Единственное что здесь "реально" это интерфейс - и верно вытягивать геттер через него. как следует правильно к нему обращаться??)
Краш лог прилагаю
Обнаружил что в коде игры в GameRules.class есть подкласс и в нем метод onChanged(@nullable MinecraftServer server) который содержит нужный для вытягивания геймрулов MinecraftServer, функция срабатывает когда игровые правила меняются.
Идея - сделать иньекцию в метод и вытянуть конкретное правило (то есть значение boolean) на примере правила doFireTick.
Интерфейс для геттера:
Интерфейс:
package ru.senjmam.extrarules;
public interface GetterRule {
public boolean Get_DoFireTick();
}
Миксин геймрула
Java:
package ru.senjmam.extrarules.mixin;
@Mixin(targets = "net.minecraft.world.level.GameRules$Value")
public abstract class GameRuleMixin implements GetterRule
{
boolean do_fire_tick;
@Inject(method = "onChanged", at = @At("TAIL"))
private void injected( MinecraftServer server,CallbackInfo ci)
{
do_fire_tick = server.getGameRules().getBoolean(GameRules.RULE_DOFIRETICK);
}
@Override
public boolean Get_DoFireTick() {
return do_fire_tick;
}
}
Миксин в который надо втянуть Get_DoFireTick()
Миксин с "геттером":
@Mixin(VillagerHostilesSensor.class)
public abstract class VillagerHostilesSensorMixin {
GetterRule rule = new GameRuleMixin() {
@Override
public boolean Get_DoFireTick() {
return super.Get_DoFireTick();
}
};
@Overwrite
private boolean isHostile(LivingEntity Hostile) {
return rule.Get_DoFireTick();
}
}
Однако - не работает, при срабатывании метода - игра напросто крашится. причина в том, что после компиляции кода миксины "исчезают".
Собственно, как сделать иначе, чтобы работал геттер и его можно было использовать в другом классе?
(PS я плохо понимаю работу интерфейсов. Единственное что здесь "реально" это интерфейс - и верно вытягивать геттер через него. как следует правильно к нему обращаться??)
Краш лог прилагаю
- Краш-лог
[11:21:08] [Render thread/FATAL] [ne.mi.co.ForgeMod/]: Preparing crash report with UUID 5398cd83-3625-4a10-88cc-fbc99320b9e0
---- Minecraft Crash Report ----
// My bad.
Time: 2024-12-29 11:21:08
Description: Exception in server tick loop
java.lang.NoClassDefFoundError: ru.senjmam.extrarules.mixin.GameRuleMixin is invalid
at net.minecraft.world.entity.ai.sensing.VillagerHostilesSensor.<init>(VillagerHostilesSensor.java:12) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.extrarules.json:VillagerHostilesSensorMixin,pl:mixin:A}
at net.minecraft.world.entity.ai.sensing.SensorType.create(SensorType.java:47) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.world.entity.ai.Brain.<init>(Brain.java:117) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.world.entity.ai.Brain$1.decode(Brain.java:84) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at com.mojang.serialization.MapDecoder.lambda$compressedDecode$1(MapDecoder.java:52) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.DataResult.lambda$flatMap$11(DataResult.java:139) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.DataResult.flatMap(DataResult.java:137) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.MapDecoder.compressedDecode(MapDecoder.java:52) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.MapCodec$MapCodecCodec.decode(MapCodec.java:91) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.Decoder.parse(Decoder.java:18) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.codecs.FieldDecoder.decode(FieldDecoder.java:29) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.MapCodec$1.decode(MapCodec.java:34) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.MapDecoder.lambda$compressedDecode$1(MapDecoder.java:52) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.DataResult.lambda$flatMap$11(DataResult.java:139) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.DataResult.flatMap(DataResult.java:137) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.MapDecoder.compressedDecode(MapDecoder.java:52) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.MapCodec$MapCodecCodec.decode(MapCodec.java:91) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.Decoder.decode(Decoder.java:22) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.Decoder.parse(Decoder.java:26) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at net.minecraft.world.entity.ai.Brain$Provider.makeBrain(Brain.java:543) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.world.entity.npc.Villager.makeBrain(Villager.java:155) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:forge_method_redirector}
at net.minecraft.world.entity.LivingEntity.<init>(LivingEntity.java:245) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,re:mixin}
at net.minecraft.world.entity.Mob.<init>(Mob.java:123) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.world.entity.PathfinderMob.<init>(PathfinderMob.java:14) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.world.entity.AgeableMob.<init>(AgeableMob.java:29) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.world.entity.npc.AbstractVillager.<init>(AbstractVillager.java:49) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.world.entity.npc.Villager.<init>(Villager.java:139) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:forge_method_redirector}
at net.minecraft.world.entity.npc.Villager.<init>(Villager.java:135) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:forge_method_redirector}
at net.minecraft.world.entity.EntityType.create(EntityType.java:525) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:forge_method_redirector}
at net.minecraft.world.entity.EntityType.create(EntityType.java:403) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:forge_method_redirector}
at net.minecraft.world.entity.EntityType.spawn(EntityType.java:393) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:forge_method_redirector}
at net.minecraft.world.entity.EntityType.spawn(EntityType.java:361) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:forge_method_redirector}
at net.minecraft.world.item.SpawnEggItem.useOn(SpawnEggItem.java:85) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:585) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23190%23197!/:?] {re:classloading}
at net.minecraft.world.item.ItemStack.useOn(ItemStack.java:245) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:itemstack}
at net.minecraft.server.level.ServerPlayerGameMode.useItemOn(ServerPlayerGameMode.java:355) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItemOn(ServerGamePacketListenerImpl.java:1055) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:34) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:8) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:22) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:156) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:770) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:161) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:130) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:753) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:747) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:139) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:733) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:665) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:251) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at java.lang.Thread.run(Thread.java:840) ~[?:?] {}
Краш-лог:
[11:21:08] [Render thread/FATAL] [ne.mi.co.ForgeMod/]: Preparing crash report with UUID 5398cd83-3625-4a10-88cc-fbc99320b9e0
---- Minecraft Crash Report ----
// My bad.
Time: 2024-12-29 11:21:08
Description: Exception in server tick loop
java.lang.NoClassDefFoundError: ru.senjmam.extrarules.mixin.GameRuleMixin is invalid
at net.minecraft.world.entity.ai.sensing.VillagerHostilesSensor.<init>(VillagerHostilesSensor.java:12) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.extrarules.json:VillagerHostilesSensorMixin,pl:mixin:A}
at net.minecraft.world.entity.ai.sensing.SensorType.create(SensorType.java:47) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.world.entity.ai.Brain.<init>(Brain.java:117) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.world.entity.ai.Brain$1.decode(Brain.java:84) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at com.mojang.serialization.MapDecoder.lambda$compressedDecode$1(MapDecoder.java:52) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.DataResult.lambda$flatMap$11(DataResult.java:139) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.DataResult.flatMap(DataResult.java:137) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.MapDecoder.compressedDecode(MapDecoder.java:52) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.MapCodec$MapCodecCodec.decode(MapCodec.java:91) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.Decoder.parse(Decoder.java:18) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.codecs.FieldDecoder.decode(FieldDecoder.java:29) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.MapCodec$1.decode(MapCodec.java:34) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.MapDecoder.lambda$compressedDecode$1(MapDecoder.java:52) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.DataResult.lambda$flatMap$11(DataResult.java:139) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.DataResult.flatMap(DataResult.java:137) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.MapDecoder.compressedDecode(MapDecoder.java:52) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.MapCodec$MapCodecCodec.decode(MapCodec.java:91) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.Decoder.decode(Decoder.java:22) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at com.mojang.serialization.Decoder.parse(Decoder.java:26) ~[datafixerupper-6.0.8.jar%23136!/:?] {}
at net.minecraft.world.entity.ai.Brain$Provider.makeBrain(Brain.java:543) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.world.entity.npc.Villager.makeBrain(Villager.java:155) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:forge_method_redirector}
at net.minecraft.world.entity.LivingEntity.<init>(LivingEntity.java:245) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,re:mixin}
at net.minecraft.world.entity.Mob.<init>(Mob.java:123) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.world.entity.PathfinderMob.<init>(PathfinderMob.java:14) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.world.entity.AgeableMob.<init>(AgeableMob.java:29) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.world.entity.npc.AbstractVillager.<init>(AbstractVillager.java:49) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.world.entity.npc.Villager.<init>(Villager.java:139) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:forge_method_redirector}
at net.minecraft.world.entity.npc.Villager.<init>(Villager.java:135) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:forge_method_redirector}
at net.minecraft.world.entity.EntityType.create(EntityType.java:525) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:forge_method_redirector}
at net.minecraft.world.entity.EntityType.create(EntityType.java:403) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:forge_method_redirector}
at net.minecraft.world.entity.EntityType.spawn(EntityType.java:393) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:forge_method_redirector}
at net.minecraft.world.entity.EntityType.spawn(EntityType.java:361) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:forge_method_redirector}
at net.minecraft.world.item.SpawnEggItem.useOn(SpawnEggItem.java:85) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:585) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23190%23197!/:?] {re:classloading}
at net.minecraft.world.item.ItemStack.useOn(ItemStack.java:245) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,xf:fml:forge:itemstack}
at net.minecraft.server.level.ServerPlayerGameMode.useItemOn(ServerPlayerGameMode.java:355) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItemOn(ServerGamePacketListenerImpl.java:1055) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:34) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:8) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:22) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:156) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading}
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:770) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:161) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:130) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:753) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:747) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:139) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:733) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:665) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:251) ~[forge-1.20.1-47.3.1_mapped_official_1.20.1.jar%23191!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at java.lang.Thread.run(Thread.java:840) ~[?:?] {}