From cd9db060c0fe25ede99c2e80029683ff77b464b7 Mon Sep 17 00:00:00 2001 From: MrMelon54 Date: Mon, 9 Sep 2024 20:57:17 +0100 Subject: [PATCH] Include only config information --- build.gradle | 5 +- .../infrastructury/Infrastructury.java | 14 - .../event/CompoundEventResult.java | 88 ---- .../mrmelon54/infrastructury/event/Event.java | 13 - .../infrastructury/event/EventResult.java | 99 ----- .../infrastructury/event/EventWrapper.java | 93 ---- .../infrastructury/event/PartialEvent.java | 68 --- .../event/events/client/ClientChatEvent.java | 43 -- .../event/events/client/ClientGuiEvent.java | 103 ----- .../events/client/ClientLifecycleEvent.java | 28 -- .../events/client/ClientPlayerEvent.java | 33 -- .../events/client/ClientRawInputEvent.java | 37 -- .../client/ClientRecipeUpdateEvent.java | 17 - .../client/ClientReloadShadersEvent.java | 28 -- .../events/client/ClientScreenInputEvent.java | 67 --- .../client/ClientSystemMessageEvent.java | 29 -- .../event/events/client/ClientTickEvent.java | 28 -- .../events/client/ClientTooltipEvent.java | 254 ----------- .../event/events/common/BlockEvent.java | 34 -- .../event/events/common/ChatEvent.java | 100 ----- .../event/events/common/ChunkEvent.java | 24 - .../events/common/CommandPerformEvent.java | 64 --- .../common/CommandRegistrationEvent.java | 28 -- .../event/events/common/EntityEvent.java | 70 --- .../event/events/common/ExplosionEvent.java | 26 -- .../event/events/common/InteractionEvent.java | 55 --- .../event/events/common/LifecycleEvent.java | 38 -- .../event/events/common/LightningEvent.java | 21 - .../event/events/common/LootEvent.java | 63 --- .../event/events/common/PlayerEvent.java | 110 ----- .../event/events/common/TickEvent.java | 33 -- .../hooks/client/screen/ScreenAccess.java | 17 - .../hooks/level/biome/BiomeProperties.java | 85 ---- .../hooks/level/biome/ClimateProperties.java | 123 ------ .../hooks/level/biome/EffectsProperties.java | 294 ------------- .../level/biome/GenerationProperties.java | 136 ------ .../hooks/level/biome/SpawnProperties.java | 121 ----- .../mrmelon54/infrastructury/mixin/.gitkeep | 0 .../networking/NetworkChannel.java | 58 --- .../networking/NetworkManager.java | 151 ------- .../networking/simple/BaseC2SMessage.java | 13 - .../networking/simple/BaseS2CMessage.java | 37 -- .../networking/simple/Message.java | 23 - .../networking/simple/MessageDecoder.java | 16 - .../networking/simple/MessageType.java | 52 --- .../simple/SimpleNetworkManager.java | 50 --- .../transformers/PacketCollector.java | 28 -- .../networking/transformers/PacketSink.java | 28 -- .../transformers/PacketTransformer.java | 71 --- .../transformers/SinglePacketCollector.java | 27 -- .../transformers/SplitPacketTransformer.java | 23 - .../infrastructury/platform/Mod.java | 120 ----- .../infrastructury/platform/Platform.java | 92 ---- .../mrmelon54/infrastructury/utils/Env.java | 30 -- .../infrastructury/utils/Graphics.java | 19 - .../infrastructury/utils/Mapper.java | 32 -- .../utils/OptionalSupplier.java | 42 -- .../advancements/AdvancementHolder.java | 19 - .../net/minecraft/client/gui/GuiGraphics.java | 37 -- .../tooltip/ClientTooltipComponent.java | 25 -- .../commands/CommandBuildContext.java | 11 - .../java/net/minecraft/core/HolderGetter.java | 22 - .../java/net/minecraft/core/HolderLookup.java | 48 -- .../network/chat/ChatTypePolyfill.java | 28 -- .../world/level/storage/loot/LootDataId.java | 21 - .../level/storage/loot/LootDataManager.java | 28 -- .../level/storage/loot/LootDataResolver.java | 27 -- .../level/storage/loot/LootDataType.java | 26 -- .../events/common/fabric/LootEventImpl.java | 39 -- .../events/common/forge/LootEventImpl.java | 26 -- gradle/wrapper/gradle-wrapper.properties | 2 +- mappings/arch_12.1.3.tiny | 415 ++++++++++++++++++ mappings/arch_13.0.3.tiny | 414 +++++++++++++++++ .../neoforge/InfrastructuryImpl.java | 10 +- versionProperties/1.20.6.properties | 23 + versionProperties/1.21.properties | 23 + 76 files changed, 889 insertions(+), 3756 deletions(-) delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/CompoundEventResult.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/Event.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/EventResult.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/EventWrapper.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/PartialEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientChatEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientGuiEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientLifecycleEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientPlayerEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientRawInputEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientRecipeUpdateEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientReloadShadersEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientScreenInputEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientSystemMessageEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientTickEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientTooltipEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/common/BlockEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/common/ChatEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/common/ChunkEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/common/CommandPerformEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/common/CommandRegistrationEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/common/EntityEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/common/ExplosionEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/common/InteractionEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/common/LifecycleEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/common/LightningEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/common/LootEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/common/PlayerEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/event/events/common/TickEvent.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/hooks/client/screen/ScreenAccess.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/BiomeProperties.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/ClimateProperties.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/EffectsProperties.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/GenerationProperties.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/SpawnProperties.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/mixin/.gitkeep delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/networking/NetworkChannel.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/networking/NetworkManager.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/networking/simple/BaseC2SMessage.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/networking/simple/BaseS2CMessage.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/networking/simple/Message.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/networking/simple/MessageDecoder.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/networking/simple/MessageType.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/networking/simple/SimpleNetworkManager.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/PacketCollector.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/PacketSink.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/PacketTransformer.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/SinglePacketCollector.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/SplitPacketTransformer.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/platform/Mod.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/platform/Platform.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/utils/Env.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/utils/Graphics.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/utils/Mapper.java delete mode 100644 common/src/main/java/com/mrmelon54/infrastructury/utils/OptionalSupplier.java delete mode 100644 common/src/main/java/net/minecraft/advancements/AdvancementHolder.java delete mode 100644 common/src/main/java/net/minecraft/client/gui/GuiGraphics.java delete mode 100644 common/src/main/java/net/minecraft/client/gui/screens/inventory/tooltip/ClientTooltipComponent.java delete mode 100644 common/src/main/java/net/minecraft/commands/CommandBuildContext.java delete mode 100644 common/src/main/java/net/minecraft/core/HolderGetter.java delete mode 100644 common/src/main/java/net/minecraft/core/HolderLookup.java delete mode 100644 common/src/main/java/net/minecraft/network/chat/ChatTypePolyfill.java delete mode 100644 common/src/main/java/net/minecraft/world/level/storage/loot/LootDataId.java delete mode 100644 common/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java delete mode 100644 common/src/main/java/net/minecraft/world/level/storage/loot/LootDataResolver.java delete mode 100644 common/src/main/java/net/minecraft/world/level/storage/loot/LootDataType.java delete mode 100644 fabric/src/main/java/com/mrmelon54/infrastructury/event/events/common/fabric/LootEventImpl.java delete mode 100644 forge/src/main/java/com/mrmelon54/infrastructury/event/events/common/forge/LootEventImpl.java create mode 100644 mappings/arch_12.1.3.tiny create mode 100644 mappings/arch_13.0.3.tiny create mode 100644 versionProperties/1.20.6.properties create mode 100644 versionProperties/1.21.properties diff --git a/build.gradle b/build.gradle index 44b6f90..82bb929 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "1.5-SNAPSHOT" apply false + id "dev.architectury.loom" version "1.6-SNAPSHOT" apply false id "io.github.pacifistmc.forgix" version "1.2.6" id "org.ajoberstar.grgit" version "4.1.0" id "systems.manifold.manifold-gradle-plugin" version "0.0.2-alpha" @@ -81,6 +81,9 @@ static void runMappingsOnJar(File input, File output, File mappingsTiny, String output.delete() + System.out.println(input.toPath().toString()) + System.out.println(mappingsTiny.readLines()[0]) + try (OutputConsumerPath outputConsumer = new OutputConsumerPath.Builder(output.toPath()).build()) { outputConsumer.addNonClassFiles(input.toPath(), NonClassCopyMode.FIX_META_INF, remapper) remapper.readInputs(input.toPath()) diff --git a/common/src/main/java/com/mrmelon54/infrastructury/Infrastructury.java b/common/src/main/java/com/mrmelon54/infrastructury/Infrastructury.java index 8773e0d..e496aa3 100644 --- a/common/src/main/java/com/mrmelon54/infrastructury/Infrastructury.java +++ b/common/src/main/java/com/mrmelon54/infrastructury/Infrastructury.java @@ -2,12 +2,6 @@ import com.mrmelon54.infrastructury.utils.ConfigScreenRegistrar; import dev.architectury.injectables.annotations.ExpectPlatform; -import me.shedaniel.autoconfig.AutoConfig; -import me.shedaniel.autoconfig.serializer.JanksonConfigSerializer; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screens.Screen; - -import java.util.function.Supplier; public class Infrastructury { public static final String MOD_ID = "infrastructury"; @@ -15,14 +9,6 @@ public class Infrastructury { public static void init() { } - public static boolean showDebugScreen() { - #if MC_VER < MC_1_20_2 - return Minecraft.getInstance().options.renderDebug; - #else - return Minecraft.getInstance().gui.getDebugOverlay().showDebugScreen(); - #endif - } - @ExpectPlatform public static void registerConfigScreen(ConfigScreenRegistrar registrar) { // Implemented by each platform diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/CompoundEventResult.java b/common/src/main/java/com/mrmelon54/infrastructury/event/CompoundEventResult.java deleted file mode 100644 index 2e1071c..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/CompoundEventResult.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.mrmelon54.infrastructury.event; - -import net.minecraft.world.InteractionResultHolder; - -public class CompoundEventResult { - private final EventResult result; - private final T object; - - #if MC_VER == MC_1_16_5 - public static InteractionResultHolder map2(CompoundEventResult result) { - return map(result).asMinecraft(); - } - #else - public static remapped.architectury.event.CompoundEventResult map2(CompoundEventResult result) { - return map(result); - } - #endif - - public static remapped.architectury.event.CompoundEventResult map(CompoundEventResult result) { - if (result.result == EventResult.pass()) return remapped.architectury.event.CompoundEventResult.pass(); - return remapped.architectury.event.CompoundEventResult.interrupt(result.result.value(), result.object); - } - - public static CompoundEventResult fromEventResult(EventResult result) { - return CompoundEventResult.interrupt(result.value(), null); - } - - public static CompoundEventResult pass() { - return new CompoundEventResult<>(EventResult.pass(), null); - } - - public static CompoundEventResult interrupt(Boolean value, T object) { - return new CompoundEventResult<>(EventResult.interrupt(value), object); - } - - public static CompoundEventResult interruptTrue(T object) { - return new CompoundEventResult<>(EventResult.interruptTrue(), object); - } - - public static CompoundEventResult interruptDefault(T object) { - return new CompoundEventResult<>(EventResult.interruptDefault(), object); - } - - public static CompoundEventResult interruptFalse(T object) { - return new CompoundEventResult<>(EventResult.interruptFalse(), object); - } - - private CompoundEventResult(EventResult result, T object) { - this.result = result; - this.object = object; - } - - public boolean interruptsFurtherEvaluation() { - return result.interruptsFurtherEvaluation(); - } - - public Boolean value() { - return result.value(); - } - - public boolean isEmpty() { - return result.isEmpty(); - } - - public boolean isPresent() { - return result.isPresent(); - } - - public boolean isTrue() { - return result.isTrue(); - } - - public boolean isFalse() { - return result.isFalse(); - } - - public EventResult result() { - return result; - } - - public T object() { - return object; - } - - public InteractionResultHolder asMinecraft() { - return new InteractionResultHolder<>(result.asMinecraft(), object); - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/Event.java b/common/src/main/java/com/mrmelon54/infrastructury/event/Event.java deleted file mode 100644 index ca069aa..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/Event.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.mrmelon54.infrastructury.event; - -public interface Event { - T invoker(); - - void register(T var1); - - void unregister(T var1); - - boolean isRegistered(T var1); - - void clearListeners(); -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/EventResult.java b/common/src/main/java/com/mrmelon54/infrastructury/event/EventResult.java deleted file mode 100644 index 73fb60f..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/EventResult.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.mrmelon54.infrastructury.event; - -import net.minecraft.world.InteractionResult; -import org.apache.commons.lang3.BooleanUtils; - -public final class EventResult { - private static final EventResult TRUE = new EventResult(true, true); - private static final EventResult STOP = new EventResult(true, null); - private static final EventResult PASS = new EventResult(false, null); - private static final EventResult FALSE = new EventResult(true, false); - - #if MC_VER == MC_1_16_5 - public static InteractionResult map2(EventResult result) { - return result.asMinecraft(); - } - - public static InteractionResult map2(remapped.architectury.event.EventResult result) { - return EventResult.interrupt(result.value()).asMinecraft(); - } - #else - public static remapped.architectury.event.EventResult map2(EventResult result) { - return map(result); - } - - public static remapped.architectury.event.EventResult map2(remapped.architectury.event.EventResult result) { - return result; - } - #endif - - public static remapped.architectury.event.EventResult map(EventResult result) { - return remapped.architectury.event.EventResult.interrupt(result.interruptsFurtherEvaluation); - } - - public static remapped.architectury.event.EventResult map(remapped.architectury.event.EventResult result) { - return result; - } - - public static EventResult pass() { - return PASS; - } - - public static EventResult interrupt(Boolean value) { - if (value == null) return STOP; - if (value) return TRUE; - return FALSE; - } - - public static EventResult interruptTrue() { - return TRUE; - } - - public static EventResult interruptDefault() { - return STOP; - } - - public static EventResult interruptFalse() { - return FALSE; - } - - private final boolean interruptsFurtherEvaluation; - - private final Boolean value; - - EventResult(boolean interruptsFurtherEvaluation, Boolean value) { - this.interruptsFurtherEvaluation = interruptsFurtherEvaluation; - this.value = value; - } - - public boolean interruptsFurtherEvaluation() { - return interruptsFurtherEvaluation; - } - - public Boolean value() { - return value; - } - - public boolean isEmpty() { - return value == null; - } - - public boolean isPresent() { - return value != null; - } - - public boolean isTrue() { - return BooleanUtils.isTrue(value); - } - - public boolean isFalse() { - return BooleanUtils.isFalse(value); - } - - public InteractionResult asMinecraft() { - if (isPresent()) { - return value() ? InteractionResult.SUCCESS : InteractionResult.FAIL; - } - return InteractionResult.PASS; - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/EventWrapper.java b/common/src/main/java/com/mrmelon54/infrastructury/event/EventWrapper.java deleted file mode 100644 index c717e66..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/EventWrapper.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.mrmelon54.infrastructury.event; - -import java.lang.reflect.InvocationTargetException; -import java.util.HashMap; -import java.util.Map; -import java.util.function.Function; -import java.util.function.Supplier; - -public class EventWrapper implements Event { - private final remapped.architectury.event.Event innerEvent; - private final Function converter; - private final Map map = new HashMap<>(); - - private EventWrapper(remapped.architectury.event.Event innerEvent, Function converter) { - this.innerEvent = innerEvent; - this.converter = converter; - } - - private static Event empty(Class clazz) { - return new Event() { - @Override - public N invoker() { - try { - return clazz.getDeclaredConstructor().newInstance(); - } catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { - throw new RuntimeException(e); - } - } - - @Override - public void register(N var1) { - // Not implemented - } - - @Override - public void unregister(N var1) { - // Not implemented - } - - @Override - public boolean isRegistered(N var1) { - return false; - } - - @Override - public void clearListeners() { - // Not implemented - } - }; - } - - public static Event of(remapped.architectury.event.Event innerEvent) { - return new EventWrapper<>(innerEvent, Function.identity()); - } - - public static Event of(remapped.architectury.event.Event innerEvent, Function converter) { - return new EventWrapper<>(innerEvent, converter); - } - - public static Event select(Supplier> supplier) { - return supplier.get(); - } - - public static PartialEvent partial(Supplier> supplier) { - return PartialEvent.of(supplier.get()); - } - - @Override - public N invoker() { - throw new RuntimeException("cannot invoke EventWrapper"); - } - - @Override - public void register(N listener) { - innerEvent.register(map.computeIfAbsent(listener, converter)); - } - - @Override - public void unregister(N listener) { - innerEvent.unregister(map.remove(listener)); - } - - @Override - public boolean isRegistered(N listener) { - return innerEvent.isRegistered(map.get(listener)); - } - - @Override - public void clearListeners() { - map.values().forEach(innerEvent::unregister); - map.clear(); - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/PartialEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/PartialEvent.java deleted file mode 100644 index aa96fe7..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/PartialEvent.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.mrmelon54.infrastructury.event; - -// PartialEvent defines an Event which only operates on some versions. -// eventExists() returns true if the Event functions on the current version. -public interface PartialEvent extends Event { - static PartialEvent of(Event event) { - return event == null ? new PartialEvent() { - @Override - public boolean eventExists() { - return false; - } - - @Override - public T invoker() { - throw new UnsupportedOperationException("Invoker is not supported for partial events"); - } - - @Override - public void register(T var1) { - } - - @Override - public void unregister(T var1) { - } - - @Override - public boolean isRegistered(T var1) { - return false; - } - - @Override - public void clearListeners() { - } - } : new PartialEvent() { - @Override - public boolean eventExists() { - return true; - } - - @Override - public T invoker() { - return event.invoker(); - } - - @Override - public void register(T var1) { - event.register(var1); - } - - @Override - public void unregister(T var1) { - event.unregister(var1); - } - - @Override - public boolean isRegistered(T var1) { - return event.isRegistered(var1); - } - - @Override - public void clearListeners() { - event.clearListeners(); - } - }; - } - - boolean eventExists(); -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientChatEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientChatEvent.java deleted file mode 100644 index 6a10c6f..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientChatEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.client; - -import com.mrmelon54.infrastructury.event.CompoundEventResult; -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventResult; -import com.mrmelon54.infrastructury.event.EventWrapper; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.network.chat.ChatTypePolyfill; -import net.minecraft.network.chat.Component; -import org.jetbrains.annotations.Nullable; - -@Environment(EnvType.CLIENT) -public interface ClientChatEvent { - interface ChatEvent extends remapped.architectury.event.events.client.ClientChatEvent { - } - - Event SEND = EventWrapper.of(ChatEvent.SEND, send -> { - #if MC_VER < MC_1_19_2 - return s -> CompoundEventResult.map2(CompoundEventResult.fromEventResult(send.send(s, null))); - #else - return (s, component) -> EventResult.map(send.send(s, component)); - #endif - }); - - Event RECEIVED = EventWrapper.of(ChatEvent.RECEIVED, received -> { - #if MC_VER < MC_1_19_2 - return (bound, component, uuid) -> CompoundEventResult.map2(received.process(new ChatTypePolyfill(bound), component)); - #else - return (bound, component) -> CompoundEventResult.map(received.process(new ChatTypePolyfill(bound), component)); - #endif - }); - - @Environment(EnvType.CLIENT) - interface Send { - EventResult send(String message, @Nullable Component component); - } - - @Environment(EnvType.CLIENT) - interface Received { - CompoundEventResult process(ChatTypePolyfill type, Component message); - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientGuiEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientGuiEvent.java deleted file mode 100644 index 5123f1b..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientGuiEvent.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.client; - -import com.mrmelon54.infrastructury.event.*; -import com.mrmelon54.infrastructury.hooks.client.screen.ScreenAccess; -import com.mrmelon54.infrastructury.utils.Graphics; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.screens.Screen; -import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; - -import java.util.List; -import java.util.function.Function; - -@Environment(EnvType.CLIENT) -public interface ClientGuiEvent { - interface Inner extends remapped.architectury.event.events.client.ClientGuiEvent { - } - - static remapped.architectury.event.events.client.ClientGuiEvent.ScreenInitPre mapScreenInitPre(ScreenInitPre x) { - #if MC_VER == MC_1_16_5 - return (screen, a, b) -> EventResult.map2(x.init(screen, () -> screen)); - #else - return (screen, screenAccess) -> EventResult.map(x.init(screen, screenAccess::getScreen)); - #endif - } - - static remapped.architectury.event.events.client.ClientGuiEvent.ScreenInitPost mapScreenInitPost(ScreenInitPost x) { - #if MC_VER == MC_1_16_5 - return (screen, a, b) -> x.init(screen, () -> screen); - #else - return (screen, screenAccess) -> x.init(screen, screenAccess::getScreen); - #endif - } - - Event RENDER_HUD = EventWrapper.of(Inner.RENDER_HUD, x -> (graphics, tickDelta) -> x.renderHud(Graphics.get(graphics), tickDelta)); - Event DEBUG_TEXT_LEFT = EventWrapper.of(Inner.DEBUG_TEXT_LEFT, x -> x::gatherText); - Event DEBUG_TEXT_RIGHT = EventWrapper.of(Inner.DEBUG_TEXT_RIGHT, x -> x::gatherText); - Event INIT_PRE = EventWrapper.of(Inner.INIT_PRE, ClientGuiEvent::mapScreenInitPre); - Event INIT_POST = EventWrapper.of(Inner.INIT_POST, ClientGuiEvent::mapScreenInitPost); - Event RENDER_PRE = EventWrapper.of(Inner.RENDER_PRE, x -> (screen, graphics, mouseX, mouseY, delta) -> EventResult.map2(x.render(screen, Graphics.get(graphics), mouseX, mouseY, delta))); - Event RENDER_POST = EventWrapper.of(Inner.RENDER_POST, x -> (screen, poseStack, i, i1, v) -> x.render(screen, Graphics.get(poseStack), i, i1, v)); - PartialEvent RENDER_CONTAINER_BACKGROUND = EventWrapper.partial(() -> { - #if MC_VER > MC_1_17_1 - return EventWrapper.of(Inner.RENDER_CONTAINER_BACKGROUND, x -> (abstractContainerScreen, guiGraphics, i, i1, v) -> x.render(abstractContainerScreen, Graphics.get(guiGraphics), i, i1, v)); - #else - return null; - #endif - }); - PartialEvent RENDER_CONTAINER_FOREGROUND = EventWrapper.partial(() -> { - #if MC_VER > MC_1_17_1 - return EventWrapper.of(Inner.RENDER_CONTAINER_FOREGROUND, x -> (screen, graphics, mouseX, mouseY, delta) -> x.render(screen, Graphics.get(graphics), mouseX, mouseY, delta)); - #else - return null; - #endif - }); - Event SET_SCREEN = EventWrapper.of(Inner.SET_SCREEN, x -> screen -> CompoundEventResult.map2(x.modifyScreen(screen))); - - @Environment(EnvType.CLIENT) - interface RenderHud { - void renderHud(GuiGraphics graphics, float tickDelta); - } - - @Environment(EnvType.CLIENT) - interface DebugText { - void gatherText(List strings); - } - - @Environment(EnvType.CLIENT) - interface ScreenInitPre { - EventResult init(Screen screen, ScreenAccess access); - } - - @Environment(EnvType.CLIENT) - interface ScreenInitPost { - void init(Screen screen, ScreenAccess access); - } - - @Environment(EnvType.CLIENT) - interface ScreenRenderPre { - EventResult render(Screen screen, GuiGraphics graphics, int mouseX, int mouseY, float delta); - } - - @Environment(EnvType.CLIENT) - interface ScreenRenderPost { - void render(Screen screen, GuiGraphics graphics, int mouseX, int mouseY, float delta); - } - - @Environment(EnvType.CLIENT) - interface ContainerScreenRenderBackground { - void render(AbstractContainerScreen screen, GuiGraphics graphics, int mouseX, int mouseY, float delta); - } - - @Environment(EnvType.CLIENT) - interface ContainerScreenRenderForeground { - void render(AbstractContainerScreen screen, GuiGraphics graphics, int mouseX, int mouseY, float delta); - } - - @Environment(EnvType.CLIENT) - interface SetScreen { - CompoundEventResult modifyScreen(Screen screen); - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientLifecycleEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientLifecycleEvent.java deleted file mode 100644 index a7a8598..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientLifecycleEvent.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.client; - -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventWrapper; -import com.mrmelon54.infrastructury.event.events.common.LifecycleEvent; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.Minecraft; -import net.minecraft.client.multiplayer.ClientLevel; - -@Environment(EnvType.CLIENT) -public interface ClientLifecycleEvent { - interface Inner extends remapped.architectury.event.events.client.ClientLifecycleEvent { - } - - Event CLIENT_STARTED = EventWrapper.of(Inner.CLIENT_STARTED, clientState -> clientState::stateChanged); - Event CLIENT_STOPPING = EventWrapper.of(Inner.CLIENT_STOPPING, clientState -> clientState::stateChanged); - Event CLIENT_LEVEL_LOAD = EventWrapper.of(Inner.CLIENT_LEVEL_LOAD, clientLevelState -> clientLevelState::act); - Event CLIENT_SETUP = EventWrapper.of(Inner.CLIENT_SETUP, clientState -> clientState::stateChanged); - - @Environment(EnvType.CLIENT) - interface ClientState extends LifecycleEvent.InstanceState { - } - - @Environment(EnvType.CLIENT) - interface ClientLevelState extends LifecycleEvent.LevelState { - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientPlayerEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientPlayerEvent.java deleted file mode 100644 index 8debc8d..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientPlayerEvent.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.client; - -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventWrapper; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.player.LocalPlayer; -import org.jetbrains.annotations.Nullable; - -@Environment(EnvType.CLIENT) -public interface ClientPlayerEvent { - interface Inner extends remapped.architectury.event.events.client.ClientPlayerEvent { - } - - Event CLIENT_PLAYER_JOIN = EventWrapper.of(Inner.CLIENT_PLAYER_JOIN, clientPlayerJoin -> clientPlayerJoin::join); - Event CLIENT_PLAYER_QUIT = EventWrapper.of(Inner.CLIENT_PLAYER_QUIT, clientPlayerQuit -> clientPlayerQuit::quit); - Event CLIENT_PLAYER_RESPAWN = EventWrapper.of(Inner.CLIENT_PLAYER_RESPAWN, clientPlayerRespawn -> clientPlayerRespawn::respawn); - - @Environment(EnvType.CLIENT) - interface ClientPlayerJoin { - void join(LocalPlayer player); - } - - @Environment(EnvType.CLIENT) - interface ClientPlayerQuit { - void quit(@Nullable LocalPlayer player); - } - - @Environment(EnvType.CLIENT) - interface ClientPlayerRespawn { - void respawn(LocalPlayer oldPlayer, LocalPlayer newPlayer); - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientRawInputEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientRawInputEvent.java deleted file mode 100644 index bf1e01b..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientRawInputEvent.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.client; - -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventResult; -import com.mrmelon54.infrastructury.event.EventWrapper; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.Minecraft; - -@Environment(EnvType.CLIENT) -public interface ClientRawInputEvent { - interface Inner extends remapped.architectury.event.events.client.ClientRawInputEvent { - } - - Event MOUSE_SCROLLED = EventWrapper.of(Inner.MOUSE_SCROLLED, mouseScrolled -> { - #if MC_VER < MC_1_20_2 - return (minecraft, v) -> EventResult.map2(mouseScrolled.mouseScrolled(minecraft, v, v)); - #else - return (minecraft, v, v1) -> EventResult.map(mouseScrolled.mouseScrolled(minecraft, v, v1)); - #endif - }); - Event MOUSE_CLICKED_PRE = EventWrapper.of(Inner.MOUSE_CLICKED_PRE, mouseClicked -> (minecraft, i, i1, i2) -> EventResult.map2(mouseClicked.mouseClicked(minecraft, i, i1, i2))); - Event MOUSE_CLICKED_POST = EventWrapper.of(Inner.MOUSE_CLICKED_POST, mouseClicked -> (minecraft, i, i1, i2) -> EventResult.map2(mouseClicked.mouseClicked(minecraft, i, i1, i2))); - Event KEY_PRESSED = EventWrapper.of(Inner.KEY_PRESSED, keyPressed -> (minecraft, i, i1, i2, i3) -> EventResult.map2(keyPressed.keyPressed(minecraft, i, i1, i2, i3))); - - interface KeyPressed { - EventResult keyPressed(Minecraft client, int keyCode, int scanCode, int action, int modifiers); - } - - interface MouseScrolled { - EventResult mouseScrolled(Minecraft client, double amountX, double amountY); - } - - interface MouseClicked { - EventResult mouseClicked(Minecraft client, int button, int action, int mods); - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientRecipeUpdateEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientRecipeUpdateEvent.java deleted file mode 100644 index 58e133f..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientRecipeUpdateEvent.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.client; - -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventWrapper; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.world.item.crafting.RecipeManager; - -@Environment(EnvType.CLIENT) -public interface ClientRecipeUpdateEvent { - interface Inner extends remapped.architectury.event.events.client.ClientRecipeUpdateEvent { - } - - Event EVENT = EventWrapper.of(Inner.EVENT, clientRecipeUpdateEvent -> clientRecipeUpdateEvent::update); - - void update(RecipeManager recipeManager); -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientReloadShadersEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientReloadShadersEvent.java deleted file mode 100644 index 56896c7..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientReloadShadersEvent.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.client; - -#if MC_VER != MC_1_16_5 -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventWrapper; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.renderer.ShaderInstance; -import net.minecraft.server.packs.resources.ResourceProvider; - -import java.util.function.Consumer; - -@Environment(EnvType.CLIENT) -@FunctionalInterface -public interface ClientReloadShadersEvent { - interface Inner extends remapped.architectury.event.events.client.ClientReloadShadersEvent { - } - - Event EVENT = EventWrapper.of(Inner.EVENT, clientReloadShadersEvent -> (resourceProvider, shadersSink) -> clientReloadShadersEvent.reload(resourceProvider, shadersSink::registerShader)); - - void reload(ResourceProvider provider, ShadersSink sink); - - @FunctionalInterface - interface ShadersSink { - void registerShader(ShaderInstance shader, Consumer callback); - } -} -#endif diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientScreenInputEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientScreenInputEvent.java deleted file mode 100644 index dc09f14..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientScreenInputEvent.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.client; - -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventResult; -import com.mrmelon54.infrastructury.event.EventWrapper; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screens.Screen; - -@Environment(EnvType.CLIENT) -public interface ClientScreenInputEvent { - interface Inner extends remapped.architectury.event.events.client.ClientScreenInputEvent { - } - - static remapped.architectury.event.events.client.ClientScreenInputEvent.MouseScrolled mapMouseScrolled(MouseScrolled mouseScrolled) { - #if MC_VER < MC_1_20_2 - // only one scroll amount value exists in older versions - return ((minecraft, screen, v, v1, v2) -> EventResult.map2(mouseScrolled.mouseScrolled(minecraft, screen, v, v1, v2, v2))); - #else - return ((minecraft, screen, v, v1, v2, v3) -> EventResult.map(mouseScrolled.mouseScrolled(minecraft, screen, v, v1, v2, v3))); - #endif - } - - Event MOUSE_SCROLLED_PRE = EventWrapper.of(Inner.MOUSE_SCROLLED_PRE, ClientScreenInputEvent::mapMouseScrolled); - Event MOUSE_SCROLLED_POST = EventWrapper.of(Inner.MOUSE_SCROLLED_POST, ClientScreenInputEvent::mapMouseScrolled); - Event MOUSE_CLICKED_PRE = EventWrapper.of(Inner.MOUSE_CLICKED_PRE, mouseClicked -> ((minecraft, screen, v, v1, i) -> EventResult.map2(mouseClicked.mouseClicked(minecraft, screen, v, v1, i)))); - Event MOUSE_CLICKED_POST = EventWrapper.of(Inner.MOUSE_CLICKED_POST, mouseClicked -> ((minecraft, screen, v, v1, i) -> EventResult.map2(mouseClicked.mouseClicked(minecraft, screen, v, v1, i)))); - Event MOUSE_RELEASED_PRE = EventWrapper.of(Inner.MOUSE_RELEASED_PRE, mouseReleased -> ((minecraft, screen, v, v1, i) -> EventResult.map2(mouseReleased.mouseReleased(minecraft, screen, v, v1, i)))); - Event MOUSE_RELEASED_POST = EventWrapper.of(Inner.MOUSE_RELEASED_POST, mouseReleased -> ((minecraft, screen, v, v1, i) -> EventResult.map2(mouseReleased.mouseReleased(minecraft, screen, v, v1, i)))); - Event MOUSE_DRAGGED_PRE = EventWrapper.of(Inner.MOUSE_DRAGGED_PRE, mouseDragged -> ((minecraft, screen, v, v1, i, v2, v3) -> EventResult.map2(mouseDragged.mouseDragged(minecraft, screen, v, v1, i, v2, v3)))); - Event MOUSE_DRAGGED_POST = EventWrapper.of(Inner.MOUSE_DRAGGED_POST, mouseDragged -> ((minecraft, screen, v, v1, i, v2, v3) -> EventResult.map2(mouseDragged.mouseDragged(minecraft, screen, v, v1, i, v2, v3)))); - Event CHAR_TYPED_PRE = EventWrapper.of(Inner.CHAR_TYPED_PRE, keyTyped -> ((minecraft, screen, c, i) -> EventResult.map2(keyTyped.charTyped(minecraft, screen, c, i)))); - Event CHAR_TYPED_POST = EventWrapper.of(Inner.CHAR_TYPED_POST, keyTyped -> ((minecraft, screen, c, i) -> EventResult.map2(keyTyped.charTyped(minecraft, screen, c, i)))); - Event KEY_PRESSED_PRE = EventWrapper.of(Inner.KEY_PRESSED_PRE, keyPressed -> ((minecraft, screen, i, i1, i2) -> EventResult.map2(keyPressed.keyPressed(minecraft, screen, i, i1, i2)))); - Event KEY_PRESSED_POST = EventWrapper.of(Inner.KEY_PRESSED_POST, keyPressed -> ((minecraft, screen, i, i1, i2) -> EventResult.map2(keyPressed.keyPressed(minecraft, screen, i, i1, i2)))); - Event KEY_RELEASED_PRE = EventWrapper.of(Inner.KEY_RELEASED_PRE, keyReleased -> ((minecraft, screen, i, i1, i2) -> EventResult.map2(keyReleased.keyReleased(minecraft, screen, i, i1, i2)))); - Event KEY_RELEASED_POST = EventWrapper.of(Inner.KEY_RELEASED_POST, keyReleased -> ((minecraft, screen, i, i1, i2) -> EventResult.map2(keyReleased.keyReleased(minecraft, screen, i, i1, i2)))); - - interface KeyPressed { - EventResult keyPressed(Minecraft client, Screen screen, int keyCode, int scanCode, int modifiers); - } - - interface KeyReleased { - EventResult keyReleased(Minecraft client, Screen screen, int keyCode, int scanCode, int modifiers); - } - - interface KeyTyped { - EventResult charTyped(Minecraft client, Screen screen, char character, int keyCode); - } - - interface MouseScrolled { - EventResult mouseScrolled(Minecraft client, Screen screen, double mouseX, double mouseY, double amountX, double amountY); - } - - interface MouseReleased { - EventResult mouseReleased(Minecraft client, Screen screen, double mouseX, double mouseY, int button); - } - - interface MouseDragged { - EventResult mouseDragged(Minecraft client, Screen screen, double mouseX1, double mouseY1, int button, double mouseX2, double mouseY2); - } - - interface MouseClicked { - EventResult mouseClicked(Minecraft client, Screen screen, double mouseX, double mouseY, int button); - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientSystemMessageEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientSystemMessageEvent.java deleted file mode 100644 index 0d460a1..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientSystemMessageEvent.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.client; - -import com.mrmelon54.infrastructury.event.CompoundEventResult; -import com.mrmelon54.infrastructury.event.EventWrapper; -import com.mrmelon54.infrastructury.event.PartialEvent; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.network.chat.Component; - -@Environment(EnvType.CLIENT) -public interface ClientSystemMessageEvent { - #if MC_VER > MC_1_19_2 - interface Inner extends remapped.architectury.event.events.client.ClientSystemMessageEvent { - } - #endif - - PartialEvent RECEIVED = EventWrapper.partial(() -> { - #if MC_VER > MC_1_19_2 - return EventWrapper.of(Inner.RECEIVED, received -> component -> CompoundEventResult.map(received.process(component))); - #else - return null; - #endif - }); - - @Environment(EnvType.CLIENT) - interface Received { - CompoundEventResult process(Component message); - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientTickEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientTickEvent.java deleted file mode 100644 index 0cca6d1..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientTickEvent.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.client; - -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventWrapper; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.Minecraft; - -@Environment(EnvType.CLIENT) -public interface ClientTickEvent { - interface Inner extends remapped.architectury.event.events.client.ClientTickEvent { - } - - Event CLIENT_PRE = EventWrapper.of(Inner.CLIENT_PRE, client -> client::tick); - Event CLIENT_POST = EventWrapper.of(Inner.CLIENT_POST, client -> client::tick); - Event CLIENT_LEVEL_PRE = EventWrapper.of(Inner.CLIENT_LEVEL_PRE, clientLevel -> clientLevel::tick); - Event CLIENT_LEVEL_POST = EventWrapper.of(Inner.CLIENT_LEVEL_POST, clientLevel -> clientLevel::tick); - - void tick(T instance); - - @Environment(EnvType.CLIENT) - interface Client extends ClientTickEvent { - } - - @Environment(EnvType.CLIENT) - interface ClientLevel extends ClientTickEvent { - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientTooltipEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientTooltipEvent.java deleted file mode 100644 index ca54317..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/client/ClientTooltipEvent.java +++ /dev/null @@ -1,254 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.client; - -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventResult; -import com.mrmelon54.infrastructury.event.EventWrapper; -import com.mrmelon54.infrastructury.utils.Graphics; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.Style; -import net.minecraft.util.FormattedCharSink; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.TooltipFlag; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -#if MC_VER > MC_1_17_1 -import remapped.architectury.impl.TooltipAdditionalContextsImpl; -#endif - -#if MC_VER != MC_1_16_5 -import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; -#endif - -#if MC_VER <= MC_1_17_1 -#if MC_VER > MC_1_16_5 -import net.minecraft.client.gui.Font; -#endif -import net.minecraft.network.chat.FormattedText; -import net.minecraft.util.FormattedCharSequence; - -import java.util.function.Function; -import java.util.stream.Collectors; -#endif - -@Environment(EnvType.CLIENT) -public interface ClientTooltipEvent { - interface Inner extends remapped.architectury.event.events.client.ClientTooltipEvent { - } - - Event ITEM = EventWrapper.of(Inner.ITEM, item -> item::append); - Event RENDER_PRE = EventWrapper.select(() -> { - #if MC_VER <= MC_1_17_1 - return new Event() { - @Override - public Render invoker() { - throw new RuntimeException("cannot invoke EventWrapper"); - } - - @Override - public void register(Render render) { - #if MC_VER == MC_1_16_5 - Inner.RENDER_VANILLA_PRE.register((poseStack, list, i, i1) -> EventResult.map2(render.renderTooltip(Graphics.get(poseStack), list.stream().map((Function) formattedCharSequence -> new Render.ClientTooltipComponent() { - @Override - public boolean accept(FormattedCharSink formattedCharSink) { - return formattedCharSink.accept(i, Style.EMPTY, i1); - } - }).collect(Collectors.toList()), i, i1))); - Inner.RENDER_FORGE_PRE.register((poseStack, list, i, i1) -> EventResult.map2(render.renderTooltip(Graphics.get(poseStack), list.stream().map((Function) formattedText -> new Render.ClientTooltipComponent() { - @Override - public boolean accept(FormattedCharSink formattedCharSink) { - return formattedCharSink.accept(i, Style.EMPTY, i1); - } - }).collect(Collectors.toList()), i, i1))); - #else - Inner.RENDER_VANILLA_PRE.register((poseStack, list, i, i1) -> EventResult.map2(render.renderTooltip(Graphics.get(poseStack), list.stream().map((Function) formattedCharSequence -> new ClientTooltipComponent() { - @Override - public int getHeight() { - return 10; - } - - @Override - public int getWidth(Font font) { - return font.width(formattedCharSequence); - } - }).collect(Collectors.toList()), i, i1))); - Inner.RENDER_FORGE_PRE.register((poseStack, list, i, i1) -> EventResult.map2(render.renderTooltip(Graphics.get(poseStack), list.stream().map((Function) formattedText -> new ClientTooltipComponent() { - @Override - public int getHeight() { - return 10; - } - - @Override - public int getWidth(Font font) { - return font.width(formattedText); - } - }).collect(Collectors.toList()), i, i1))); - #endif - } - - @Override - public void unregister(Render render) { - throw new RuntimeException("cannot invoke unregister"); - } - - @Override - public boolean isRegistered(Render render) { - throw new RuntimeException("cannot invoke isRegistered"); - } - - @Override - public void clearListeners() { - - } - }; - #else - return EventWrapper.of(Inner.RENDER_PRE, render -> ((guiGraphics, list, i, i1) -> EventResult.map(render.renderTooltip(Graphics.get(guiGraphics), list, i, i1)))); - #endif - }); - - Event RENDER_MODIFY_POSITION = EventWrapper.of(Inner.RENDER_MODIFY_POSITION, renderModifyPosition -> ((guiGraphics, positionContext) -> renderModifyPosition.renderTooltip(Graphics.get(guiGraphics), new PositionContext() { - @Override - public int getTooltipX() { - return positionContext.getTooltipX(); - } - - @Override - public void setTooltipX(int x) { - positionContext.setTooltipX(x); - } - - @Override - public int getTooltipY() { - return positionContext.getTooltipY(); - } - - @Override - public void setTooltipY(int y) { - positionContext.setTooltipY(y); - } - }))); - Event RENDER_MODIFY_COLOR = EventWrapper.of(Inner.RENDER_MODIFY_COLOR, renderModifyColor -> ((guiGraphics, i, i1, colorContext) -> renderModifyColor.renderTooltip(Graphics.get(guiGraphics), i, i1, new ColorContext() { - @Override - public int getBackgroundColor() { - return colorContext.getBackgroundColor(); - } - - @Override - public void setBackgroundColor(int color) { - colorContext.setBackgroundColor(color); - } - - @Override - public int getOutlineGradientTopColor() { - return colorContext.getOutlineGradientTopColor(); - } - - @Override - public void setOutlineGradientTopColor(int color) { - colorContext.setOutlineGradientTopColor(color); - } - - @Override - public int getOutlineGradientBottomColor() { - return colorContext.getOutlineGradientBottomColor(); - } - - @Override - public void setOutlineGradientBottomColor(int color) { - colorContext.setOutlineGradientBottomColor(color); - } - }))); - - static AdditionalContexts additionalContexts() { - #if MC_VER <= MC_1_17_1 - // TODO: support additional contexts in 1.17.1 and below - return new AdditionalContexts() { - @Override - public @Nullable ItemStack getItem() { - return null; - } - - @Override - public void setItem(@Nullable ItemStack stack) { - } - }; - #else - remapped.architectury.event.events.client.ClientTooltipEvent.AdditionalContexts additionalContexts = TooltipAdditionalContextsImpl.get(); - return new AdditionalContexts() { - @Override - public @Nullable ItemStack getItem() { - return additionalContexts.getItem(); - } - - @Override - public void setItem(@Nullable ItemStack stack) { - additionalContexts.setItem(stack); - } - }; - #endif - } - - @ApiStatus.NonExtendable - interface AdditionalContexts { - @Nullable - ItemStack getItem(); - - void setItem(@Nullable ItemStack stack); - } - - @Environment(EnvType.CLIENT) - interface Item { - void append(ItemStack stack, List lines, TooltipFlag flag); - } - - @Environment(EnvType.CLIENT) - interface Render { - #if MC_VER == MC_1_16_5 - interface ClientTooltipComponent extends FormattedCharSequence { - } - #endif - - EventResult renderTooltip(GuiGraphics graphics, List texts, int x, int y); - } - - @Environment(EnvType.CLIENT) - interface RenderModifyPosition { - void renderTooltip(GuiGraphics graphics, PositionContext context); - } - - @Environment(EnvType.CLIENT) - interface RenderModifyColor { - void renderTooltip(GuiGraphics graphics, int x, int y, ColorContext context); - } - - @Environment(EnvType.CLIENT) - interface PositionContext { - int getTooltipX(); - - void setTooltipX(int x); - - int getTooltipY(); - - void setTooltipY(int y); - } - - @Environment(EnvType.CLIENT) - interface ColorContext { - int getBackgroundColor(); - - void setBackgroundColor(int color); - - int getOutlineGradientTopColor(); - - void setOutlineGradientTopColor(int color); - - int getOutlineGradientBottomColor(); - - void setOutlineGradientBottomColor(int color); - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/BlockEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/BlockEvent.java deleted file mode 100644 index 9114aee..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/BlockEvent.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.common; - -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventResult; -import com.mrmelon54.infrastructury.event.EventWrapper; -import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.item.FallingBlockEntity; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.Nullable; -import remapped.architectury.utils.value.IntValue; - -public interface BlockEvent { - interface Inner extends remapped.architectury.event.events.common.BlockEvent { - } - - Event BREAK = EventWrapper.of(Inner.BREAK, aBreak -> (level, blockPos, blockState, serverPlayer, intValue) -> EventResult.map2(aBreak.breakBlock(level, blockPos, blockState, serverPlayer, intValue))); - Event PLACE = EventWrapper.of(Inner.PLACE, place -> (level, blockPos, blockState, entity) -> EventResult.map2(place.placeBlock(level, blockPos, blockState, entity))); - Event FALLING_LAND = EventWrapper.of(Inner.FALLING_LAND, fallingLand -> fallingLand::onLand); - - interface Break { - EventResult breakBlock(Level level, BlockPos pos, BlockState state, ServerPlayer player, @Nullable IntValue xp); - } - - interface Place { - EventResult placeBlock(Level level, BlockPos pos, BlockState state, @Nullable Entity placer); - } - - interface FallingLand { - void onLand(Level level, BlockPos pos, BlockState fallState, BlockState landOn, FallingBlockEntity entity); - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/ChatEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/ChatEvent.java deleted file mode 100644 index f762f49..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/ChatEvent.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.common; - -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventResult; -import com.mrmelon54.infrastructury.event.EventWrapper; -import com.mrmelon54.infrastructury.event.PartialEvent; -import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerPlayer; - -import org.jetbrains.annotations.Nullable; - -#if MC_VER == MC_1_16_5 -import net.minecraft.world.InteractionResultHolder; -#elif MC_VER < MC_1_19_2 -import net.minecraft.network.chat.Style; -import net.minecraft.network.chat.MutableComponent; -import net.minecraft.util.FormattedCharSequence; -import java.lang.String; -import org.jetbrains.annotations.NotNull; -import java.util.List; -#endif - -public interface ChatEvent { - interface Inner extends remapped.architectury.event.events.common.ChatEvent { - } - - PartialEvent DECORATE = EventWrapper.partial(() -> { - #if MC_VER > MC_1_18_2 - return EventWrapper.of(Inner.DECORATE, decorate -> ((serverPlayer, chatComponent) -> decorate.decorate(serverPlayer, new ChatComponent() { - @Override - public Component get() { - return chatComponent.get(); - } - - @Override - public void set(Component component) { - chatComponent.set(component); - } - }))); - #else - return null; - #endif - }); - - Event RECEIVED = EventWrapper.partial(() -> { - #if MC_VER == MC_1_16_5 - return EventWrapper.of(Inner.SERVER, received -> (serverPlayer, s, component) -> new InteractionResultHolder<>(EventResult.map2(received.received(serverPlayer, component)), component)); - #elif MC_VER < MC_1_19_2 - return EventWrapper.of(Inner.SERVER, received -> (serverPlayer, filteredText, component) -> EventResult.map(received.received(serverPlayer, new Component() { - @Override - public @NotNull Style getStyle() { - return component.getFiltered().getStyle(); - } - - @Override - public @NotNull String getContents() { - return component.getFiltered().getContents(); - } - - @Override - public @NotNull List getSiblings() { - return component.getFiltered().getSiblings(); - } - - @Override - public @NotNull MutableComponent plainCopy() { - return component.getFiltered().plainCopy(); - } - - @Override - public @NotNull MutableComponent copy() { - return component.getFiltered().copy(); - } - - @Override - public @NotNull FormattedCharSequence getVisualOrderText() { - return component.getFiltered().getVisualOrderText(); - } - }))); - #else - return EventWrapper.of(Inner.RECEIVED, received -> (serverPlayer, component) -> EventResult.map(received.received(serverPlayer, component))); - #endif - }); - - @FunctionalInterface - interface Decorate { - void decorate(@Nullable ServerPlayer player, ChatComponent component); - } - - @FunctionalInterface - interface Received { - EventResult received(@Nullable ServerPlayer player, Component component); - } - - interface ChatComponent { - Component get(); - - void set(Component component); - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/ChunkEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/ChunkEvent.java deleted file mode 100644 index 072dbaa..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/ChunkEvent.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.common; - -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventWrapper; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.level.chunk.ChunkAccess; -import org.jetbrains.annotations.Nullable; - -public interface ChunkEvent { - interface Inner extends remapped.architectury.event.events.common.ChunkEvent { - } - - Event SAVE_DATA = EventWrapper.of(Inner.SAVE_DATA, saveData -> saveData::save); - Event LOAD_DATA = EventWrapper.of(Inner.LOAD_DATA, loadData -> loadData::load); - - interface SaveData { - void save(ChunkAccess chunk, ServerLevel level, CompoundTag nbt); - } - - interface LoadData { - void load(ChunkAccess chunk, @Nullable ServerLevel level, CompoundTag nbt); - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/CommandPerformEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/CommandPerformEvent.java deleted file mode 100644 index 258825e..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/CommandPerformEvent.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.common; - -import com.mojang.brigadier.ParseResults; -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventResult; -import com.mrmelon54.infrastructury.event.EventWrapper; -import net.minecraft.commands.CommandSourceStack; -import org.jetbrains.annotations.Nullable; -import remapped.architectury.event.EventActor; - -#if MC_VER == MC_1_16_5 -import remapped.architectury.event.Actor; -#endif - -public class CommandPerformEvent { - static class Inner extends remapped.architectury.event.events.common.CommandPerformEvent { - public Inner(ParseResults results, @Nullable Throwable throwable) { - super(results, throwable); - } - } - - #if MC_VER == MC_1_16_5 - private static Actor mapCommandPerformEvent(EventActor commandPerformEventEventActor) { - return commandPerformEvent -> EventResult.map2(commandPerformEventEventActor.act(new CommandPerformEvent(commandPerformEvent))); - } - #else - private static EventActor mapCommandPerformEvent(EventActor commandPerformEventEventActor) { - return commandPerformEvent -> EventResult.map2(commandPerformEventEventActor.act(new CommandPerformEvent(commandPerformEvent))); - } - #endif - - public static final Event> EVENT = EventWrapper.of(Inner.EVENT, CommandPerformEvent::mapCommandPerformEvent); - - private ParseResults results; - @Nullable - private Throwable throwable; - - public CommandPerformEvent(ParseResults results, @Nullable Throwable throwable) { - this.results = results; - this.throwable = throwable; - } - - public CommandPerformEvent(remapped.architectury.event.events.common.CommandPerformEvent commandPerformEvent) { - this.results = commandPerformEvent.getResults(); - this.throwable = commandPerformEvent.getThrowable(); - } - - public ParseResults getResults() { - return results; - } - - public void setResults(ParseResults results) { - this.results = results; - } - - @Nullable - public Throwable getThrowable() { - return throwable; - } - - public void setThrowable(@Nullable Throwable throwable) { - this.throwable = throwable; - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/CommandRegistrationEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/CommandRegistrationEvent.java deleted file mode 100644 index 53c3081..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/CommandRegistrationEvent.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.common; - -// TODO: convert to partial event - -#if MC_VER > MC_1_18_2 -import com.mojang.brigadier.CommandDispatcher; -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventWrapper; -import net.minecraft.commands.CommandBuildContext; -import net.minecraft.commands.CommandSourceStack; -import net.minecraft.commands.Commands; - -public interface CommandRegistrationEvent { - interface Inner extends remapped.architectury.event.events.common.CommandRegistrationEvent { - - } - - Event EVENT = EventWrapper.of(Inner.EVENT, x -> { - #if MC_VER < MC_1_19_2 - return ((commandDispatcher, commandSelection) -> x.register(commandDispatcher, null, commandSelection)); - #else - return x::register; - #endif - }); - - void register(CommandDispatcher dispatcher, CommandBuildContext registry, Commands.CommandSelection selection); -} -#endif diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/EntityEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/EntityEvent.java deleted file mode 100644 index 0e730c3..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/EntityEvent.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.common; - -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventResult; -import com.mrmelon54.infrastructury.event.EventWrapper; -import com.mrmelon54.infrastructury.event.PartialEvent; -import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.MobSpawnType; -import net.minecraft.world.entity.animal.Animal; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.BaseSpawner; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelAccessor; -import org.jetbrains.annotations.Nullable; - -public interface EntityEvent { - interface Inner extends remapped.architectury.event.events.common.EntityEvent { - } - - Event LIVING_DEATH = EventWrapper.of(Inner.LIVING_DEATH, livingDeath -> (entity, source) -> EventResult.map2(livingDeath.die(entity, source))); - PartialEvent LIVING_HURT = EventWrapper.partial(() -> { - #if MC_VER > MC_1_17_1 - return EventWrapper.of(Inner.LIVING_HURT, livingHurt -> (entity, source, amount) -> EventResult.map(livingHurt.hurt(entity, source, amount))); - #else - return null; - #endif - }); - Event LIVING_CHECK_SPAWN = EventWrapper.of(Inner.LIVING_CHECK_SPAWN, livingCheckSpawn -> (entity, world, x, y, z, type, spawner) -> EventResult.map(livingCheckSpawn.canSpawn(entity, world, x, y, z, type, spawner))); - Event ADD = EventWrapper.of(Inner.ADD, add -> (entity, world) -> EventResult.map2(add.add(entity, world))); - PartialEvent ENTER_SECTION = EventWrapper.partial(() -> { - #if MC_VER > MC_1_17_1 - return EventWrapper.of(Inner.ENTER_SECTION, enterSection -> enterSection::enterSection); - #else - return null; - #endif - }); - PartialEvent ANIMAL_TAME = EventWrapper.partial(() -> { - #if MC_VER > MC_1_17_1 - return EventWrapper.of(Inner.ANIMAL_TAME, animalTame -> ((animal, player) -> EventResult.map(animalTame.tame(animal, player)))); - #else - return null; - #endif - }); - - interface LivingDeath { - EventResult die(LivingEntity entity, DamageSource source); - } - - interface LivingHurt { - EventResult hurt(LivingEntity entity, DamageSource source, float amount); - } - - interface LivingCheckSpawn { - EventResult canSpawn(LivingEntity entity, LevelAccessor world, double x, double y, double z, MobSpawnType type, @Nullable BaseSpawner spawner); - } - - interface Add { - EventResult add(Entity entity, Level world); - } - - interface EnterSection { - void enterSection(Entity entity, int sectionX, int sectionY, int sectionZ, int prevX, int prevY, int prevZ); - } - - interface AnimalTame { - EventResult tame(Animal animal, Player player); - } -} diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/ExplosionEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/ExplosionEvent.java deleted file mode 100644 index 3aae5b4..0000000 --- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/ExplosionEvent.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.mrmelon54.infrastructury.event.events.common; - -import com.mrmelon54.infrastructury.event.Event; -import com.mrmelon54.infrastructury.event.EventResult; -import com.mrmelon54.infrastructury.event.EventWrapper; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.level.Explosion; -import net.minecraft.world.level.Level; - -import java.util.List; - -public interface ExplosionEvent { - interface Inner extends remapped.architectury.event.events.common.ExplosionEvent { - } - - Event
 PRE = EventWrapper.of(Inner.PRE, pre -> (level, explosion) -> EventResult.map2(pre.explode(level, explosion)));
-    Event DETONATE = EventWrapper.of(Inner.DETONATE, detonate -> detonate::explode);
-
-    interface Pre {
-        EventResult explode(Level level, Explosion explosion);
-    }
-
-    interface Detonate {
-        void explode(Level level, Explosion explosion, List affectedEntities);
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/InteractionEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/InteractionEvent.java
deleted file mode 100644
index 7b686a1..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/InteractionEvent.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.mrmelon54.infrastructury.event.events.common;
-
-import com.mrmelon54.infrastructury.event.CompoundEventResult;
-import com.mrmelon54.infrastructury.event.Event;
-import com.mrmelon54.infrastructury.event.EventResult;
-import com.mrmelon54.infrastructury.event.EventWrapper;
-import net.minecraft.core.BlockPos;
-import net.minecraft.core.Direction;
-import net.minecraft.world.InteractionHand;
-import net.minecraft.world.entity.Entity;
-import net.minecraft.world.entity.player.Player;
-import net.minecraft.world.item.ItemStack;
-import net.minecraft.world.level.Level;
-import net.minecraft.world.level.block.state.BlockState;
-
-public interface InteractionEvent {
-    interface Inner extends remapped.architectury.event.events.common.InteractionEvent {
-    }
-
-    Event LEFT_CLICK_BLOCK = EventWrapper.of(Inner.LEFT_CLICK_BLOCK, leftClickBlock -> ((player, interactionHand, blockPos, direction) -> EventResult.map2(leftClickBlock.click(player, interactionHand, blockPos, direction))));
-    Event RIGHT_CLICK_BLOCK = EventWrapper.of(Inner.RIGHT_CLICK_BLOCK, rightClickBlock -> ((player, interactionHand, blockPos, direction) -> EventResult.map2(rightClickBlock.click(player, interactionHand, blockPos, direction))));
-    Event RIGHT_CLICK_ITEM = EventWrapper.of(Inner.RIGHT_CLICK_ITEM, rightClickItem -> ((player, interactionHand) -> CompoundEventResult.map2(rightClickItem.click(player, interactionHand))));
-    Event CLIENT_LEFT_CLICK_AIR = EventWrapper.of(Inner.CLIENT_LEFT_CLICK_AIR, clientLeftClickAir -> clientLeftClickAir::click);
-    Event CLIENT_RIGHT_CLICK_AIR = EventWrapper.of(Inner.CLIENT_RIGHT_CLICK_AIR, clientRightClickAir -> clientRightClickAir::click);
-    Event INTERACT_ENTITY = EventWrapper.of(Inner.INTERACT_ENTITY, interactEntity -> ((player, entity, interactionHand) -> EventResult.map2(interactEntity.interact(player, entity, interactionHand))));
-    Event FARMLAND_TRAMPLE = EventWrapper.of(Inner.FARMLAND_TRAMPLE, farmlandTrample -> ((level, blockPos, blockState, v, entity) -> EventResult.map(farmlandTrample.trample(level, blockPos, blockState, v, entity))));
-
-    interface RightClickBlock {
-        EventResult click(Player player, InteractionHand hand, BlockPos pos, Direction face);
-    }
-
-    interface LeftClickBlock {
-        EventResult click(Player player, InteractionHand hand, BlockPos pos, Direction face);
-    }
-
-    interface RightClickItem {
-        CompoundEventResult click(Player player, InteractionHand hand);
-    }
-
-    interface ClientRightClickAir {
-        void click(Player player, InteractionHand hand);
-    }
-
-    interface ClientLeftClickAir {
-        void click(Player player, InteractionHand hand);
-    }
-
-    interface InteractEntity {
-        EventResult interact(Player player, Entity entity, InteractionHand hand);
-    }
-
-    interface FarmlandTrample {
-        EventResult trample(Level world, BlockPos pos, BlockState state, float distance, Entity entity);
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/LifecycleEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/LifecycleEvent.java
deleted file mode 100644
index a8d09e8..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/LifecycleEvent.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.mrmelon54.infrastructury.event.events.common;
-
-import com.mrmelon54.infrastructury.event.Event;
-import com.mrmelon54.infrastructury.event.EventWrapper;
-import net.minecraft.server.MinecraftServer;
-import net.minecraft.server.level.ServerLevel;
-import net.minecraft.world.level.Level;
-
-import java.util.function.Function;
-
-public interface LifecycleEvent {
-    interface Inner extends remapped.architectury.event.events.common.LifecycleEvent {
-    }
-
-    Event SERVER_BEFORE_START = EventWrapper.of(Inner.SERVER_BEFORE_START, serverState -> serverState::stateChanged);
-    Event SERVER_STARTING = EventWrapper.of(Inner.SERVER_STARTING, serverState -> serverState::stateChanged);
-    Event SERVER_STARTED = EventWrapper.of(Inner.SERVER_STARTED, serverState -> serverState::stateChanged);
-    Event SERVER_STOPPING = EventWrapper.of(Inner.SERVER_STOPPING, serverState -> serverState::stateChanged);
-    Event SERVER_STOPPED = EventWrapper.of(Inner.SERVER_STOPPED, serverState -> serverState::stateChanged);
-    Event SERVER_LEVEL_LOAD = EventWrapper.of(Inner.SERVER_LEVEL_LOAD, serverLevelState -> serverLevelState::act);
-    Event SERVER_LEVEL_UNLOAD = EventWrapper.of(Inner.SERVER_LEVEL_UNLOAD, serverLevelState -> serverLevelState::act);
-    Event SERVER_LEVEL_SAVE = EventWrapper.of(Inner.SERVER_LEVEL_SAVE, serverLevelState -> serverLevelState::act);
-    Event SETUP = EventWrapper.of(Inner.SETUP, Function.identity());
-
-    interface InstanceState {
-        void stateChanged(T instance);
-    }
-
-    interface ServerState extends InstanceState {
-    }
-
-    interface LevelState {
-        void act(T world);
-    }
-
-    interface ServerLevelState extends LevelState {
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/LightningEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/LightningEvent.java
deleted file mode 100644
index 78817a5..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/LightningEvent.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.mrmelon54.infrastructury.event.events.common;
-
-import com.mrmelon54.infrastructury.event.Event;
-import com.mrmelon54.infrastructury.event.EventWrapper;
-import net.minecraft.world.entity.Entity;
-import net.minecraft.world.entity.LightningBolt;
-import net.minecraft.world.level.Level;
-import net.minecraft.world.phys.Vec3;
-
-import java.util.List;
-
-public interface LightningEvent {
-    interface Inner extends remapped.architectury.event.events.common.LightningEvent {
-    }
-
-    Event STRIKE = EventWrapper.of(Inner.STRIKE, strike -> strike::onStrike);
-
-    interface Strike {
-        void onStrike(LightningBolt bolt, Level level, Vec3 pos, List toStrike);
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/LootEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/LootEvent.java
deleted file mode 100644
index 56a6733..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/LootEvent.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.mrmelon54.infrastructury.event.events.common;
-
-#if MC_VER != MC_1_16_5
-import com.mrmelon54.infrastructury.event.Event;
-import com.mrmelon54.infrastructury.event.EventWrapper;
-import net.minecraft.resources.ResourceLocation;
-import net.minecraft.world.level.storage.loot.LootDataManager;
-import net.minecraft.world.level.storage.loot.LootPool;
-import org.jetbrains.annotations.ApiStatus;
-import org.jetbrains.annotations.Nullable;
-
-#if MC_VER < MC_1_20_1
-import net.minecraft.world.level.storage.loot.LootTables;
-#endif
-
-#if MC_VER < MC_1_18_2
-import dev.architectury.injectables.annotations.ExpectPlatform;
-#endif
-
-public interface LootEvent {
-    #if MC_VER >= MC_1_18_2
-    interface Inner extends remapped.architectury.event.events.common.LootEvent {
-    }
-
-    private static remapped.architectury.event.events.common.LootEvent.ModifyLootTable mapModifyLootTable(ModifyLootTable modifyLootTable) {
-        #if MC_VER < MC_1_18_2
-        return null;
-        #elif MC_VER < MC_1_20_1
-        return ((lootDataManager, resourceLocation, lootTableModificationContext, b) -> modifyLootTable.modifyLootTable(new LootDataManager(lootDataManager), resourceLocation, lootTableModificationContext::addPool, b));
-        #else
-        return ((lootDataManager, resourceLocation, lootTableModificationContext, b) -> modifyLootTable.modifyLootTable(lootDataManager, resourceLocation, lootTableModificationContext::addPool, b));
-        #endif
-    }
-    #endif
-
-    Event MODIFY_LOOT_TABLE = resolveModifyLootTable();
-
-    #if MC_VER < MC_1_18_2
-    @ExpectPlatform
-    #endif
-    static Event resolveModifyLootTable() {
-        #if MC_VER < MC_1_18_2
-        throw new AssertionError("missing resolveModifyLootTable()");
-        #else
-        return EventWrapper.of(Inner.MODIFY_LOOT_TABLE, LootEvent::mapModifyLootTable);
-        #endif
-    }
-
-    @FunctionalInterface
-    interface ModifyLootTable {
-        void modifyLootTable(@Nullable LootDataManager lootDataManager, ResourceLocation id, LootTableModificationContext context, boolean builtin);
-    }
-
-    @ApiStatus.NonExtendable
-    interface LootTableModificationContext {
-        void addPool(LootPool pool);
-
-        default void addPool(LootPool.Builder pool) {
-            addPool(pool.build());
-        }
-    }
-}
-#endif
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/PlayerEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/PlayerEvent.java
deleted file mode 100644
index fc7c110..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/PlayerEvent.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.mrmelon54.infrastructury.event.events.common;
-
-import com.mrmelon54.infrastructury.event.*;
-import net.minecraft.advancements.AdvancementHolder;
-import net.minecraft.resources.ResourceKey;
-import net.minecraft.server.level.ServerPlayer;
-import net.minecraft.world.Container;
-import net.minecraft.world.InteractionHand;
-import net.minecraft.world.entity.Entity;
-import net.minecraft.world.entity.item.ItemEntity;
-import net.minecraft.world.entity.player.Player;
-import net.minecraft.world.inventory.AbstractContainerMenu;
-import net.minecraft.world.item.ItemStack;
-import net.minecraft.world.level.Level;
-import net.minecraft.world.phys.EntityHitResult;
-import net.minecraft.world.phys.HitResult;
-import org.jetbrains.annotations.Nullable;
-
-public interface PlayerEvent {
-    interface Inner extends remapped.architectury.event.events.common.PlayerEvent {
-    }
-
-    Event PLAYER_JOIN = EventWrapper.of(Inner.PLAYER_JOIN, playerJoin -> playerJoin::join);
-    Event PLAYER_QUIT = EventWrapper.of(Inner.PLAYER_QUIT, playerQuit -> playerQuit::quit);
-    Event PLAYER_RESPAWN = EventWrapper.of(Inner.PLAYER_RESPAWN, playerRespawn -> playerRespawn::respawn);
-    Event PLAYER_ADVANCEMENT = EventWrapper.of(Inner.PLAYER_ADVANCEMENT, x->{
-        #if MC_VER < MC_1_20_2
-        return ((serverPlayer, advancement) -> x.award(serverPlayer, new AdvancementHolder(advancement.getId(), advancement)));
-        #else
-        return x::award;
-        #endif
-    });
-    Event PLAYER_CLONE = EventWrapper.of(Inner.PLAYER_CLONE, playerClone -> playerClone::clone);
-    Event CRAFT_ITEM = EventWrapper.of(Inner.CRAFT_ITEM, craftItem -> craftItem::craft);
-    Event SMELT_ITEM = EventWrapper.of(Inner.SMELT_ITEM, smeltItem -> smeltItem::smelt);
-    Event PICKUP_ITEM_PRE = EventWrapper.of(Inner.PICKUP_ITEM_PRE, pickupItemPredicate -> ((player, itemEntity, itemStack) -> EventResult.map2(pickupItemPredicate.canPickup(player, itemEntity, itemStack))));
-    Event PICKUP_ITEM_POST = EventWrapper.of(Inner.PICKUP_ITEM_POST, pickupItem -> pickupItem::pickup);
-    Event CHANGE_DIMENSION = EventWrapper.of(Inner.CHANGE_DIMENSION, changeDimension -> changeDimension::change);
-    Event DROP_ITEM = EventWrapper.of(Inner.DROP_ITEM, dropItem -> ((player, itemEntity) -> EventResult.map2(dropItem.drop(player, itemEntity))));
-    Event OPEN_MENU = EventWrapper.of(Inner.OPEN_MENU, openMenu -> openMenu::open);
-    Event CLOSE_MENU = EventWrapper.of(Inner.CLOSE_MENU, closeMenu -> closeMenu::close);
-    Event FILL_BUCKET = EventWrapper.of(Inner.FILL_BUCKET, fillBucket -> ((player, level, itemStack, hitResult) -> CompoundEventResult.map(fillBucket.fill(player, level, itemStack, hitResult))));
-    PartialEvent ATTACK_ENTITY = EventWrapper.partial(() -> {
-        #if MC_VER > MC_1_17_1
-        return EventWrapper.of(Inner.ATTACK_ENTITY, attackEntity -> ((player, level, entity, interactionHand, entityHitResult) -> EventResult.map(attackEntity.attack(player, level, entity, interactionHand, entityHitResult))));
-        #else
-        return null;
-        #endif
-    });
-
-    interface PlayerJoin {
-        void join(ServerPlayer player);
-    }
-
-    interface PlayerQuit {
-        void quit(ServerPlayer player);
-    }
-
-    interface PlayerRespawn {
-        void respawn(ServerPlayer newPlayer, boolean conqueredEnd);
-    }
-
-    interface PlayerClone {
-        void clone(ServerPlayer oldPlayer, ServerPlayer newPlayer, boolean wonGame);
-    }
-
-    interface PlayerAdvancement {
-        void award(ServerPlayer player, AdvancementHolder advancement);
-    }
-
-    interface CraftItem {
-        void craft(Player player, ItemStack constructed, Container inventory);
-    }
-
-    interface SmeltItem {
-        void smelt(Player player, ItemStack smelted);
-    }
-
-    interface PickupItemPredicate {
-        EventResult canPickup(Player player, ItemEntity entity, ItemStack stack);
-    }
-
-    interface PickupItem {
-        void pickup(Player player, ItemEntity entity, ItemStack stack);
-    }
-
-    interface ChangeDimension {
-        void change(ServerPlayer player, ResourceKey oldLevel, ResourceKey newLevel);
-    }
-
-    interface DropItem {
-        EventResult drop(Player player, ItemEntity entity);
-    }
-
-    interface OpenMenu {
-        void open(Player player, AbstractContainerMenu menu);
-    }
-
-    interface CloseMenu {
-        void close(Player player, AbstractContainerMenu menu);
-    }
-
-    interface FillBucket {
-        CompoundEventResult fill(Player player, Level level, ItemStack stack, @Nullable HitResult target);
-    }
-
-    interface AttackEntity {
-        EventResult attack(Player player, Level level, Entity target, InteractionHand hand, @Nullable EntityHitResult result);
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/TickEvent.java b/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/TickEvent.java
deleted file mode 100644
index f1d9eae..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/event/events/common/TickEvent.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.mrmelon54.infrastructury.event.events.common;
-
-import com.mrmelon54.infrastructury.event.Event;
-import com.mrmelon54.infrastructury.event.EventWrapper;
-import net.minecraft.server.MinecraftServer;
-import net.minecraft.server.level.ServerLevel;
-import net.minecraft.world.level.Level;
-
-public interface TickEvent {
-    interface Inner extends remapped.architectury.event.events.common.TickEvent {
-    }
-
-    Event SERVER_PRE = EventWrapper.of(Inner.SERVER_PRE, server -> server::tick);
-    Event SERVER_POST = EventWrapper.of(Inner.SERVER_POST, server -> server::tick);
-    Event SERVER_LEVEL_PRE = EventWrapper.of(Inner.SERVER_LEVEL_PRE, serverLevelTick -> serverLevelTick::tick);
-    Event SERVER_LEVEL_POST = EventWrapper.of(Inner.SERVER_LEVEL_POST, serverLevelTick -> serverLevelTick::tick);
-    Event PLAYER_PRE = EventWrapper.of(Inner.PLAYER_PRE, player -> player::tick);
-    Event PLAYER_POST = EventWrapper.of(Inner.PLAYER_POST, player -> player::tick);
-
-    void tick(T instance);
-
-    interface Server extends TickEvent {
-    }
-
-    interface LevelTick extends TickEvent {
-    }
-
-    interface ServerLevelTick extends LevelTick {
-    }
-
-    interface Player extends TickEvent {
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/hooks/client/screen/ScreenAccess.java b/common/src/main/java/com/mrmelon54/infrastructury/hooks/client/screen/ScreenAccess.java
deleted file mode 100644
index 684e23f..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/hooks/client/screen/ScreenAccess.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.mrmelon54.infrastructury.hooks.client.screen;
-
-import net.minecraft.client.gui.screens.Screen;
-
-public interface ScreenAccess {
-    Screen getScreen();
-
-//    List getNarratables();
-//
-//    List getRenderables();
-//
-//     T addRenderableWidget(T widget);
-//
-//     T addRenderableOnly(T listener);
-//
-//     T addWidget(T listener);
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/BiomeProperties.java b/common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/BiomeProperties.java
deleted file mode 100644
index be15290..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/BiomeProperties.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package com.mrmelon54.infrastructury.hooks.level.biome;
-
-#if MC_VER >= MC_1_18_2
-public interface BiomeProperties {
-    remapped.architectury.hooks.level.biome.BiomeProperties architectury$convert();
-
-    ClimateProperties getClimateProperties();
-
-    EffectsProperties getEffectsProperties();
-
-    GenerationProperties getGenerationProperties();
-
-    SpawnProperties getSpawnProperties();
-
-    interface Mutable extends BiomeProperties {
-        remapped.architectury.hooks.level.biome.BiomeProperties.Mutable architectury$convert();
-
-        ClimateProperties.Mutable getClimateProperties();
-
-        EffectsProperties.Mutable getEffectsProperties();
-
-        GenerationProperties.Mutable getGenerationProperties();
-
-        SpawnProperties.Mutable getSpawnProperties();
-
-        static Mutable convert(remapped.architectury.hooks.level.biome.BiomeProperties.Mutable mutable) {
-            return new Mutable() {
-                @Override
-                public remapped.architectury.hooks.level.biome.BiomeProperties.Mutable architectury$convert() {
-                    return mutable;
-                }
-
-                @Override
-                public ClimateProperties.Mutable getClimateProperties() {
-                    return ClimateProperties.Mutable.convert(mutable.getClimateProperties());
-                }
-
-                @Override
-                public EffectsProperties.Mutable getEffectsProperties() {
-                    return EffectsProperties.Mutable.convert(mutable.getEffectsProperties());
-                }
-
-                @Override
-                public GenerationProperties.Mutable getGenerationProperties() {
-                    return GenerationProperties.Mutable.convert(mutable.getGenerationProperties());
-                }
-
-                @Override
-                public SpawnProperties.Mutable getSpawnProperties() {
-                    return SpawnProperties.Mutable.convert(mutable.getSpawnProperties());
-                }
-            };
-        }
-    }
-
-    static BiomeProperties convert(remapped.architectury.hooks.level.biome.BiomeProperties biomeProperties) {
-        return new BiomeProperties() {
-            @Override
-            public remapped.architectury.hooks.level.biome.BiomeProperties architectury$convert() {
-                return biomeProperties;
-            }
-
-            @Override
-            public ClimateProperties getClimateProperties() {
-                return ClimateProperties.convert(biomeProperties.getClimateProperties());
-            }
-
-            @Override
-            public EffectsProperties getEffectsProperties() {
-                return EffectsProperties.convert(biomeProperties.getEffectsProperties());
-            }
-
-            @Override
-            public GenerationProperties getGenerationProperties() {
-                return GenerationProperties.convert(biomeProperties.getGenerationProperties());
-            }
-
-            @Override
-            public SpawnProperties getSpawnProperties() {
-                return SpawnProperties.convert(biomeProperties.getSpawnProperties());
-            }
-        };
-    }
-}
-#endif
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/ClimateProperties.java b/common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/ClimateProperties.java
deleted file mode 100644
index 03e8146..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/ClimateProperties.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package com.mrmelon54.infrastructury.hooks.level.biome;
-
-#if MC_VER >= MC_1_18_2
-import net.minecraft.world.level.biome.Biome;
-
-public interface ClimateProperties {
-    remapped.architectury.hooks.level.biome.ClimateProperties architectury$convert();
-
-    boolean hasPrecipitation();
-
-    float getTemperature();
-
-    Biome.TemperatureModifier getTemperatureModifier();
-
-    float getDownfall();
-
-    interface Mutable extends ClimateProperties {
-        remapped.architectury.hooks.level.biome.ClimateProperties.Mutable architectury$convert();
-
-        Mutable setHasPrecipitation(boolean var1);
-
-        Mutable setTemperature(float var1);
-
-        Mutable setTemperatureModifier(Biome.TemperatureModifier var1);
-
-        Mutable setDownfall(float var1);
-
-        static Mutable convert(remapped.architectury.hooks.level.biome.ClimateProperties.Mutable mutable) {
-            return new Mutable() {
-                @Override
-                public remapped.architectury.hooks.level.biome.ClimateProperties.Mutable architectury$convert() {
-                    return mutable;
-                }
-
-                @Override
-                public boolean hasPrecipitation() {
-                    #if MC_VER <= MC_1_19_2
-                    return mutable.getPrecipitation() != Biome.Precipitation.NONE;
-                    #else
-                    return mutable.hasPrecipitation();
-                    #endif
-                }
-
-                @Override
-                public float getTemperature() {
-                    return mutable.getTemperature();
-                }
-
-                @Override
-                public Biome.TemperatureModifier getTemperatureModifier() {
-                    return mutable.getTemperatureModifier();
-                }
-
-                @Override
-                public float getDownfall() {
-                    return mutable.getDownfall();
-                }
-
-                @Override
-                public Mutable setHasPrecipitation(boolean var1) {
-                    #if MC_VER <= MC_1_19_2
-                    mutable.setPrecipitation(var1 ? Biome.Precipitation.RAIN : Biome.Precipitation.NONE);
-                    #else
-                    mutable.setHasPrecipitation(var1);
-                    #endif
-                    return this;
-                }
-
-                @Override
-                public Mutable setTemperature(float var1) {
-                    mutable.setTemperature(var1);
-                    return this;
-                }
-
-                @Override
-                public Mutable setTemperatureModifier(Biome.TemperatureModifier var1) {
-                    mutable.setTemperatureModifier(var1);
-                    return this;
-                }
-
-                @Override
-                public Mutable setDownfall(float var1) {
-                    mutable.setDownfall(var1);
-                    return this;
-                }
-            };
-        }
-    }
-
-    static ClimateProperties convert(remapped.architectury.hooks.level.biome.ClimateProperties climateProperties) {
-        return new ClimateProperties() {
-            @Override
-            public remapped.architectury.hooks.level.biome.ClimateProperties architectury$convert() {
-                return climateProperties;
-            }
-
-            @Override
-            public boolean hasPrecipitation() {
-                #if MC_VER <= MC_1_19_2
-                return climateProperties.getPrecipitation() != Biome.Precipitation.NONE;
-                #else
-                return climateProperties.hasPrecipitation();
-                #endif
-            }
-
-            @Override
-            public float getTemperature() {
-                return climateProperties.getTemperature();
-            }
-
-            @Override
-            public Biome.TemperatureModifier getTemperatureModifier() {
-                return climateProperties.getTemperatureModifier();
-            }
-
-            @Override
-            public float getDownfall() {
-                return climateProperties.getDownfall();
-            }
-        };
-    }
-}
-#endif
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/EffectsProperties.java b/common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/EffectsProperties.java
deleted file mode 100644
index f2a55e2..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/EffectsProperties.java
+++ /dev/null
@@ -1,294 +0,0 @@
-package com.mrmelon54.infrastructury.hooks.level.biome;
-
-#if MC_VER >= MC_1_18_2
-import net.minecraft.core.Holder;
-import net.minecraft.sounds.Music;
-import net.minecraft.sounds.SoundEvent;
-import net.minecraft.world.level.biome.AmbientAdditionsSettings;
-import net.minecraft.world.level.biome.AmbientMoodSettings;
-import net.minecraft.world.level.biome.AmbientParticleSettings;
-import net.minecraft.world.level.biome.BiomeSpecialEffects;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.Optional;
-import java.util.OptionalInt;
-import java.util.function.Function;
-
-public interface EffectsProperties {
-    remapped.architectury.hooks.level.biome.EffectsProperties architectury$convert();
-
-    int getFogColor();
-
-    int getWaterColor();
-
-    int getWaterFogColor();
-
-    int getSkyColor();
-
-    OptionalInt getFoliageColorOverride();
-
-    OptionalInt getGrassColorOverride();
-
-    BiomeSpecialEffects.GrassColorModifier getGrassColorModifier();
-
-    Optional getAmbientParticle();
-
-    Optional> getAmbientLoopSound();
-
-    Optional getAmbientMoodSound();
-
-    Optional getAmbientAdditionsSound();
-
-    Optional getBackgroundMusic();
-
-    interface Mutable extends EffectsProperties {
-        remapped.architectury.hooks.level.biome.EffectsProperties.Mutable architectury$convert();
-
-        Mutable setFogColor(int var1);
-
-        Mutable setWaterColor(int var1);
-
-        Mutable setWaterFogColor(int var1);
-
-        Mutable setSkyColor(int var1);
-
-        Mutable setFoliageColorOverride(@Nullable Integer var1);
-
-        Mutable setGrassColorOverride(@Nullable Integer var1);
-
-        Mutable setGrassColorModifier(BiomeSpecialEffects.GrassColorModifier var1);
-
-        Mutable setAmbientParticle(@Nullable AmbientParticleSettings var1);
-
-        Mutable setAmbientLoopSound(@Nullable Holder var1);
-
-        Mutable setAmbientMoodSound(@Nullable AmbientMoodSettings var1);
-
-        Mutable setAmbientAdditionsSound(@Nullable AmbientAdditionsSettings var1);
-
-        Mutable setBackgroundMusic(@Nullable Music var1);
-
-        static Mutable convert(remapped.architectury.hooks.level.biome.EffectsProperties.Mutable mutable) {
-            return new Mutable() {
-                @Override
-                public remapped.architectury.hooks.level.biome.EffectsProperties.Mutable architectury$convert() {
-                    return mutable;
-                }
-
-                @Override
-                public int getFogColor() {
-                    return mutable.getFogColor();
-                }
-
-                @Override
-                public int getWaterColor() {
-                    return mutable.getWaterColor();
-                }
-
-                @Override
-                public int getWaterFogColor() {
-                    return mutable.getWaterFogColor();
-                }
-
-                @Override
-                public int getSkyColor() {
-                    return mutable.getSkyColor();
-                }
-
-                @Override
-                public OptionalInt getFoliageColorOverride() {
-                    return mutable.getFoliageColorOverride();
-                }
-
-                @Override
-                public OptionalInt getGrassColorOverride() {
-                    return mutable.getGrassColorOverride();
-                }
-
-                @Override
-                public BiomeSpecialEffects.GrassColorModifier getGrassColorModifier() {
-                    return mutable.getGrassColorModifier();
-                }
-
-                @Override
-                public Optional getAmbientParticle() {
-                    return mutable.getAmbientParticle();
-                }
-
-                @Override
-                public Optional> getAmbientLoopSound() {
-                    #if MC_VER <= MC_1_19_2
-                    return mutable.getAmbientLoopSound().map(Holder::direct);
-                    #else
-                    return mutable.getAmbientLoopSound();
-                    #endif
-                }
-
-                @Override
-                public Optional getAmbientMoodSound() {
-                    return mutable.getAmbientMoodSound();
-                }
-
-                @Override
-                public Optional getAmbientAdditionsSound() {
-                    return mutable.getAmbientAdditionsSound();
-                }
-
-                @Override
-                public Optional getBackgroundMusic() {
-                    return mutable.getBackgroundMusic();
-                }
-
-                @Override
-                public Mutable setFogColor(int var1) {
-                    mutable.setFogColor(var1);
-                    return this;
-                }
-
-                @Override
-                public Mutable setWaterColor(int var1) {
-                    mutable.setWaterColor(var1);
-                    return this;
-                }
-
-                @Override
-                public Mutable setWaterFogColor(int var1) {
-                    mutable.setWaterFogColor(var1);
-                    return this;
-                }
-
-                @Override
-                public Mutable setSkyColor(int var1) {
-                    mutable.setSkyColor(var1);
-                    return this;
-                }
-
-                @Override
-                public Mutable setFoliageColorOverride(@Nullable Integer var1) {
-                    mutable.setFoliageColorOverride(var1);
-                    return this;
-                }
-
-                @Override
-                public Mutable setGrassColorOverride(@Nullable Integer var1) {
-                    mutable.setGrassColorOverride(var1);
-                    return this;
-                }
-
-                @Override
-                public Mutable setGrassColorModifier(BiomeSpecialEffects.GrassColorModifier var1) {
-                    mutable.setGrassColorModifier(var1);
-                    return this;
-                }
-
-                @Override
-                public Mutable setAmbientParticle(@Nullable AmbientParticleSettings var1) {
-                    mutable.setAmbientParticle(var1);
-                    return this;
-                }
-
-                @Override
-                public Mutable setAmbientLoopSound(@Nullable Holder var1) {
-                    #if MC_VER <= MC_1_19_2
-                    if (var1 != null && var1.isBound()) mutable.setAmbientLoopSound(var1.value());
-                    #else
-                    mutable.setAmbientLoopSound(var1);
-                    #endif
-                    return this;
-                }
-
-                @Override
-                public Mutable setAmbientMoodSound(@Nullable AmbientMoodSettings var1) {
-                    mutable.setAmbientMoodSound(var1);
-                    return this;
-                }
-
-                @Override
-                public Mutable setAmbientAdditionsSound(@Nullable AmbientAdditionsSettings var1) {
-                    mutable.setAmbientAdditionsSound(var1);
-                    return this;
-                }
-
-                @Override
-                public Mutable setBackgroundMusic(@Nullable Music var1) {
-                    mutable.setBackgroundMusic(var1);
-                    return this;
-                }
-            };
-        }
-    }
-
-    static EffectsProperties convert(remapped.architectury.hooks.level.biome.EffectsProperties effectsProperties) {
-        return new EffectsProperties() {
-            @Override
-            public remapped.architectury.hooks.level.biome.EffectsProperties architectury$convert() {
-                return effectsProperties;
-            }
-
-            @Override
-            public int getFogColor() {
-                return effectsProperties.getFogColor();
-            }
-
-            @Override
-            public int getWaterColor() {
-                return effectsProperties.getWaterColor();
-            }
-
-            @Override
-            public int getWaterFogColor() {
-                return effectsProperties.getWaterFogColor();
-            }
-
-            @Override
-            public int getSkyColor() {
-                return effectsProperties.getSkyColor();
-            }
-
-            @Override
-            public OptionalInt getFoliageColorOverride() {
-                return effectsProperties.getFoliageColorOverride();
-            }
-
-            @Override
-            public OptionalInt getGrassColorOverride() {
-                return effectsProperties.getGrassColorOverride();
-            }
-
-            @Override
-            public BiomeSpecialEffects.GrassColorModifier getGrassColorModifier() {
-                return effectsProperties.getGrassColorModifier();
-            }
-
-            @Override
-            public Optional getAmbientParticle() {
-                return effectsProperties.getAmbientParticle();
-            }
-
-            @Override
-            public Optional> getAmbientLoopSound() {
-                #if MC_VER <= MC_1_19_2
-                return effectsProperties.getAmbientLoopSound().map(Holder::direct);
-                #else
-                return effectsProperties.getAmbientLoopSound();
-                #endif
-            }
-
-            @Override
-            public Optional getAmbientMoodSound() {
-                return effectsProperties.getAmbientMoodSound();
-            }
-
-            @Override
-            public Optional getAmbientAdditionsSound() {
-                return effectsProperties.getAmbientAdditionsSound();
-            }
-
-            @Override
-            public Optional getBackgroundMusic() {
-                return effectsProperties.getBackgroundMusic();
-            }
-        };
-    }
-}
-#endif
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/GenerationProperties.java b/common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/GenerationProperties.java
deleted file mode 100644
index 4bec792..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/GenerationProperties.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package com.mrmelon54.infrastructury.hooks.level.biome;
-
-#if MC_VER >= MC_1_18_2
-import net.minecraft.core.Holder;
-import net.minecraft.resources.ResourceKey;
-import net.minecraft.world.level.levelgen.GenerationStep;
-import net.minecraft.world.level.levelgen.carver.ConfiguredWorldCarver;
-import net.minecraft.world.level.levelgen.placement.PlacedFeature;
-import org.jetbrains.annotations.ApiStatus;
-
-import java.util.List;
-
-#if MC_VER <= MC_1_19_2
-import net.minecraft.data.BuiltinRegistries;
-#endif
-
-public interface GenerationProperties {
-    remapped.architectury.hooks.level.biome.GenerationProperties architectury$convert();
-
-    Iterable>> getCarvers(GenerationStep.Carving var1);
-
-    Iterable> getFeatures(GenerationStep.Decoration var1);
-
-    List>> getFeatures();
-
-    interface Mutable extends GenerationProperties {
-        remapped.architectury.hooks.level.biome.GenerationProperties.Mutable architectury$convert();
-
-        Mutable addFeature(GenerationStep.Decoration var1, Holder var2);
-
-        @ApiStatus.Experimental
-        Mutable addFeature(GenerationStep.Decoration var1, ResourceKey var2);
-
-        Mutable addCarver(GenerationStep.Carving var1, Holder> var2);
-
-        @ApiStatus.Experimental
-        Mutable addCarver(GenerationStep.Carving var1, ResourceKey> var2);
-
-        Mutable removeFeature(GenerationStep.Decoration var1, ResourceKey var2);
-
-        Mutable removeCarver(GenerationStep.Carving var1, ResourceKey> var2);
-
-        static Mutable convert(remapped.architectury.hooks.level.biome.GenerationProperties.Mutable mutable) {
-            return new Mutable() {
-                @Override
-                public remapped.architectury.hooks.level.biome.GenerationProperties.Mutable architectury$convert() {
-                    return mutable;
-                }
-
-                @Override
-                public Iterable>> getCarvers(GenerationStep.Carving var1) {
-                    return mutable.getCarvers(var1);
-                }
-
-                @Override
-                public Iterable> getFeatures(GenerationStep.Decoration var1) {
-                    return mutable.getFeatures(var1);
-                }
-
-                @Override
-                public List>> getFeatures() {
-                    return mutable.getFeatures();
-                }
-
-                @Override
-                public Mutable addFeature(GenerationStep.Decoration var1, Holder var2) {
-                    mutable.addFeature(var1, var2);
-                    return this;
-                }
-
-                @Override
-                public Mutable addFeature(GenerationStep.Decoration var1, ResourceKey var2) {
-                    #if MC_VER <= MC_1_19_2
-                    mutable.addFeature(var1, BuiltinRegistries.PLACED_FEATURE.get(var2));
-                    #else
-                    mutable.addFeature(var1, var2);
-                    #endif
-                    return this;
-                }
-
-                @Override
-                public Mutable addCarver(GenerationStep.Carving var1, Holder> var2) {
-                    mutable.addCarver(var1, var2);
-                    return this;
-                }
-
-                @Override
-                public Mutable addCarver(GenerationStep.Carving var1, ResourceKey> var2) {
-                    #if MC_VER <= MC_1_19_2
-                    mutable.addCarver(var1, BuiltinRegistries.CONFIGURED_CARVER.get(var2));
-                    #else
-                    mutable.addCarver(var1, var2);
-                    #endif
-                    return this;
-                }
-
-                @Override
-                public Mutable removeFeature(GenerationStep.Decoration var1, ResourceKey var2) {
-                    mutable.removeFeature(var1, var2);
-                    return this;
-                }
-
-                @Override
-                public Mutable removeCarver(GenerationStep.Carving var1, ResourceKey> var2) {
-                    mutable.removeCarver(var1, var2);
-                    return this;
-                }
-            };
-        }
-    }
-
-    static GenerationProperties convert(remapped.architectury.hooks.level.biome.GenerationProperties genericProperties) {
-        return new GenerationProperties() {
-            @Override
-            public remapped.architectury.hooks.level.biome.GenerationProperties architectury$convert() {
-                return genericProperties;
-            }
-
-            @Override
-            public Iterable>> getCarvers(GenerationStep.Carving var1) {
-                return genericProperties.getCarvers(var1);
-            }
-
-            @Override
-            public Iterable> getFeatures(GenerationStep.Decoration var1) {
-                return genericProperties.getFeatures(var1);
-            }
-
-            @Override
-            public List>> getFeatures() {
-                return genericProperties.getFeatures();
-            }
-        };
-    }
-}
-#endif
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/SpawnProperties.java b/common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/SpawnProperties.java
deleted file mode 100644
index 59bc3c5..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/hooks/level/biome/SpawnProperties.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package com.mrmelon54.infrastructury.hooks.level.biome;
-
-#if MC_VER >= MC_1_18_2
-import net.minecraft.world.entity.EntityType;
-import net.minecraft.world.entity.MobCategory;
-import net.minecraft.world.level.biome.MobSpawnSettings;
-
-import java.util.List;
-import java.util.Map;
-import java.util.function.BiPredicate;
-
-public interface SpawnProperties {
-    remapped.architectury.hooks.level.biome.SpawnProperties architectury$convert();
-
-    float getCreatureProbability();
-
-    Map> getSpawners();
-
-    Map, MobSpawnSettings.MobSpawnCost> getMobSpawnCosts();
-
-    interface Mutable extends SpawnProperties {
-        remapped.architectury.hooks.level.biome.SpawnProperties.Mutable architectury$convert();
-
-        Mutable setCreatureProbability(float var1);
-
-        Mutable addSpawn(MobCategory var1, MobSpawnSettings.SpawnerData var2);
-
-        boolean removeSpawns(BiPredicate var1);
-
-        Mutable setSpawnCost(EntityType var1, MobSpawnSettings.MobSpawnCost var2);
-
-        Mutable setSpawnCost(EntityType var1, double var2, double var4);
-
-        Mutable clearSpawnCost(EntityType var1);
-
-        static Mutable convert(remapped.architectury.hooks.level.biome.SpawnProperties.Mutable mutable) {
-            return new Mutable() {
-
-                @Override
-                public remapped.architectury.hooks.level.biome.SpawnProperties.Mutable architectury$convert() {
-                    return mutable;
-                }
-
-                @Override
-                public float getCreatureProbability() {
-                    return mutable.getCreatureProbability();
-                }
-
-                @Override
-                public Map> getSpawners() {
-                    return mutable.getSpawners();
-                }
-
-                @Override
-                public Map, MobSpawnSettings.MobSpawnCost> getMobSpawnCosts() {
-                    return mutable.getMobSpawnCosts();
-                }
-
-                @Override
-                public Mutable setCreatureProbability(float var1) {
-                    mutable.setCreatureProbability(var1);
-                    return this;
-                }
-
-                @Override
-                public Mutable addSpawn(MobCategory var1, MobSpawnSettings.SpawnerData var2) {
-                    mutable.addSpawn(var1, var2);
-                    return this;
-                }
-
-                @Override
-                public boolean removeSpawns(BiPredicate var1) {
-                    return mutable.removeSpawns(var1);
-                }
-
-                @Override
-                public Mutable setSpawnCost(EntityType var1, MobSpawnSettings.MobSpawnCost var2) {
-                    mutable.setSpawnCost(var1, var2);
-                    return this;
-                }
-
-                @Override
-                public Mutable setSpawnCost(EntityType var1, double var2, double var4) {
-                    mutable.setSpawnCost(var1, var2, var4);
-                    return this;
-                }
-
-                @Override
-                public Mutable clearSpawnCost(EntityType var1) {
-                    mutable.clearSpawnCost(var1);
-                    return this;
-                }
-            };
-        }
-    }
-
-    static SpawnProperties convert(remapped.architectury.hooks.level.biome.SpawnProperties spawnProperties) {
-        return new SpawnProperties() {
-            @Override
-            public remapped.architectury.hooks.level.biome.SpawnProperties architectury$convert() {
-                return spawnProperties;
-            }
-
-            @Override
-            public float getCreatureProbability() {
-                return spawnProperties.getCreatureProbability();
-            }
-
-            @Override
-            public Map> getSpawners() {
-                return spawnProperties.getSpawners();
-            }
-
-            @Override
-            public Map, MobSpawnSettings.MobSpawnCost> getMobSpawnCosts() {
-                return spawnProperties.getMobSpawnCosts();
-            }
-        };
-    }
-}
-#endif
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/mixin/.gitkeep b/common/src/main/java/com/mrmelon54/infrastructury/mixin/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/networking/NetworkChannel.java b/common/src/main/java/com/mrmelon54/infrastructury/networking/NetworkChannel.java
deleted file mode 100644
index 292e6ec..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/networking/NetworkChannel.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.mrmelon54.infrastructury.networking;
-
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
-import net.minecraft.network.FriendlyByteBuf;
-import net.minecraft.network.protocol.Packet;
-import net.minecraft.resources.ResourceLocation;
-import net.minecraft.server.level.ServerPlayer;
-
-import java.util.function.BiConsumer;
-import java.util.function.Function;
-import java.util.function.Supplier;
-
-public final class NetworkChannel {
-    private final remapped.architectury.networking.NetworkChannel channel;
-
-    private NetworkChannel(remapped.architectury.networking.NetworkChannel channel) {
-        this.channel = channel;
-    }
-
-    public static NetworkChannel create(ResourceLocation id) {
-        return new NetworkChannel(remapped.architectury.networking.NetworkChannel.create(id));
-    }
-
-    public  void register(Class type, BiConsumer encoder, Function decoder, BiConsumer> messageConsumer) {
-        channel.register(type, encoder, decoder, (t, packetContextSupplier) -> messageConsumer.accept(t, () -> NetworkManager.PacketContext.convert(packetContextSupplier.get())));
-    }
-
-    public static long hashCodeString(String str) {
-        return remapped.architectury.networking.NetworkChannel.hashCodeString(str);
-    }
-
-    public  Packet toPacket(NetworkManager.Side side, T message) {
-        return channel.toPacket(side.architectury$side(), message);
-    }
-
-    public  void sendToPlayer(ServerPlayer player, T message) {
-        channel.sendToPlayer(player, message);
-    }
-
-    public  void sendToPlayers(Iterable players, T message) {
-        channel.sendToPlayers(players, message);
-    }
-
-    @Environment(EnvType.CLIENT)
-    public  void sendToServer(T message) {
-        channel.sendToServer(message);
-    }
-
-    @Environment(EnvType.CLIENT)
-    public  boolean canServerReceive(Class type) {
-        return channel.canServerReceive(type);
-    }
-
-    public  boolean canPlayerReceive(ServerPlayer player, Class type) {
-        return channel.canPlayerReceive(player, type);
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/networking/NetworkManager.java b/common/src/main/java/com/mrmelon54/infrastructury/networking/NetworkManager.java
deleted file mode 100644
index 33ec385..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/networking/NetworkManager.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package com.mrmelon54.infrastructury.networking;
-
-import com.mrmelon54.infrastructury.networking.transformers.PacketCollector;
-import com.mrmelon54.infrastructury.networking.transformers.PacketSink;
-import com.mrmelon54.infrastructury.networking.transformers.PacketTransformer;
-import com.mrmelon54.infrastructury.networking.transformers.SinglePacketCollector;
-import com.mrmelon54.infrastructury.utils.Env;
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
-import net.minecraft.network.FriendlyByteBuf;
-import net.minecraft.network.protocol.Packet;
-import net.minecraft.network.protocol.game.ClientGamePacketListener;
-import net.minecraft.resources.ResourceLocation;
-import net.minecraft.server.level.ServerPlayer;
-import net.minecraft.world.entity.Entity;
-import net.minecraft.world.entity.player.Player;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-
-public final class NetworkManager {
-    private NetworkManager() {
-    }
-
-    @Deprecated
-    public static Packet toPacket(Side side, ResourceLocation id, FriendlyByteBuf buf) {
-        SinglePacketCollector sink = new SinglePacketCollector(null);
-        NetworkManager.collectPackets(sink, side, id, buf);
-        return sink.getPacket();
-    }
-
-    @Deprecated
-    public static List> toPackets(Side side, ResourceLocation id, FriendlyByteBuf buf) {
-        PacketCollector sink = new PacketCollector(null);
-        collectPackets(sink, side, id, buf);
-        return sink.collect();
-    }
-
-    public static void registerReceiver(Side side, ResourceLocation id, NetworkReceiver receiver) {
-        registerReceiver(side, id, Collections.emptyList(), receiver);
-    }
-
-    public static void registerReceiver(Side side, ResourceLocation id, List packetTransformers, NetworkReceiver receiver) {
-        remapped.architectury.networking.NetworkManager.registerReceiver(side.side, id, packetTransformers.stream().map(x -> x.convert()) #if JAVA_8 .collect(Collectors.toList()) #else .toList() #endif , (friendlyByteBuf, packetContext) -> receiver.receive(friendlyByteBuf, PacketContext.convert(packetContext)));
-    }
-
-    public static void collectPackets(PacketSink sink, Side side, ResourceLocation id, FriendlyByteBuf buf) {
-        remapped.architectury.networking.NetworkManager.collectPackets(PacketSink.convert(sink), side.side, id, buf);
-    }
-
-    public static void sendToPlayer(ServerPlayer player, ResourceLocation id, FriendlyByteBuf buf) {
-        collectPackets(PacketSink.ofPlayer(player), serverToClient(), id, buf);
-    }
-
-    public static void sendToPlayers(Iterable players, ResourceLocation id, FriendlyByteBuf buf) {
-        collectPackets(PacketSink.ofPlayers(players), serverToClient(), id, buf);
-    }
-
-    @Environment(EnvType.CLIENT)
-    public static void sendToServer(ResourceLocation id, FriendlyByteBuf buf) {
-        collectPackets(PacketSink.client(), clientToServer(), id, buf);
-    }
-
-    @Environment(EnvType.CLIENT)
-    public static boolean canServerReceive(ResourceLocation id) {
-        return remapped.architectury.networking.NetworkManager.canServerReceive(id);
-    }
-
-    public static boolean canPlayerReceive(ServerPlayer player, ResourceLocation id) {
-        return remapped.architectury.networking.NetworkManager.canPlayerReceive(player, id);
-    }
-
-    public static Packet createAddEntityPacket(Entity entity) {
-        #if MC_VER <= MC_1_19_2
-        return (Packet) remapped.architectury.networking.NetworkManager.createAddEntityPacket(entity);
-        #else
-        return remapped.architectury.networking.NetworkManager.createAddEntityPacket(entity);
-        #endif
-    }
-
-    public static Side serverToClient() {
-        return Side.S2C;
-    }
-
-    public static Side clientToServer() {
-        return Side.C2S;
-    }
-
-    public enum Side {
-        S2C(remapped.architectury.networking.NetworkManager.Side.S2C),
-        C2S(remapped.architectury.networking.NetworkManager.Side.C2S);
-
-        private final remapped.architectury.networking.NetworkManager.Side side;
-
-        Side(remapped.architectury.networking.NetworkManager.Side side) {
-            this.side = side;
-        }
-
-        public static Side convert(remapped.architectury.networking.NetworkManager.Side side) {
-            return side == remapped.architectury.networking.NetworkManager.Side.S2C ? S2C : C2S;
-        }
-
-        public remapped.architectury.networking.NetworkManager.Side architectury$side() {
-            return side;
-        }
-    }
-
-    @FunctionalInterface
-    public interface NetworkReceiver {
-        void receive(FriendlyByteBuf var1, NetworkManager.PacketContext var2);
-    }
-
-    public interface PacketContext {
-        remapped.architectury.networking.NetworkManager.PacketContext architectury$convert();
-
-        Player getPlayer();
-
-        void queue(Runnable var1);
-
-        Env getEnvironment();
-
-        default EnvType getEnv() {
-            return this.getEnvironment().toPlatform();
-        }
-
-        static PacketContext convert(remapped.architectury.networking.NetworkManager.PacketContext packetContext) {
-            return new PacketContext() {
-                @Override
-                public remapped.architectury.networking.NetworkManager.PacketContext architectury$convert() {
-                    return packetContext;
-                }
-
-                @Override
-                public Player getPlayer() {
-                    return packetContext.getPlayer();
-                }
-
-                @Override
-                public void queue(Runnable var1) {
-                    packetContext.queue(var1);
-                }
-
-                @Override
-                public Env getEnvironment() {
-                    return Env.convert(packetContext.getEnvironment());
-                }
-            };
-        }
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/BaseC2SMessage.java b/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/BaseC2SMessage.java
deleted file mode 100644
index 3224628..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/BaseC2SMessage.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.mrmelon54.infrastructury.networking.simple;
-
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
-import net.minecraft.client.Minecraft;
-
-public abstract class BaseC2SMessage extends Message {
-    @Environment(EnvType.CLIENT)
-    public final void sendToServer() {
-        if (Minecraft.getInstance().getConnection() == null) throw new IllegalStateException("Unable to send packet to the server while not in game!");
-        Minecraft.getInstance().getConnection().send(toPacket());
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/BaseS2CMessage.java b/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/BaseS2CMessage.java
deleted file mode 100644
index 71a8874..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/BaseS2CMessage.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.mrmelon54.infrastructury.networking.simple;
-
-import net.minecraft.network.protocol.Packet;
-import net.minecraft.server.MinecraftServer;
-import net.minecraft.server.level.ServerChunkCache;
-import net.minecraft.server.level.ServerLevel;
-import net.minecraft.server.level.ServerPlayer;
-import net.minecraft.world.level.chunk.LevelChunk;
-
-public abstract class BaseS2CMessage extends Message {
-    private void sendTo(ServerPlayer player, Packet packet) {
-        if (player == null) throw new NullPointerException("Unable to send packet '" + getType().getId() + "' to a 'null' player!");
-        player.connection.send(packet);
-    }
-
-    public final void sendTo(ServerPlayer player) {
-        sendTo(player, toPacket());
-    }
-
-    public final void sendTo(Iterable players) {
-        Packet packet = toPacket();
-        players.forEach(player -> sendTo(player, packet));
-    }
-
-    public final void sendToAll(MinecraftServer server) {
-        sendTo(server.getPlayerList().getPlayers());
-    }
-
-    public final void sendToLevel(ServerLevel level) {
-        sendTo(level.players());
-    }
-
-    public final void sendToChunkListeners(LevelChunk chunk) {
-        Packet packet = toPacket();
-        ((ServerChunkCache) chunk.getLevel().getChunkSource()).chunkMap.getPlayers(chunk.getPos(), false).forEach(player -> sendTo(player, packet));
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/Message.java b/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/Message.java
deleted file mode 100644
index 5cb2ce5..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/Message.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.mrmelon54.infrastructury.networking.simple;
-
-import com.mrmelon54.infrastructury.networking.NetworkManager;
-import io.netty.buffer.Unpooled;
-import net.minecraft.network.FriendlyByteBuf;
-import net.minecraft.network.protocol.Packet;
-
-public abstract class Message {
-    Message() {
-    }
-
-    public abstract MessageType getType();
-
-    public abstract void write(FriendlyByteBuf buf);
-
-    public abstract void handle(NetworkManager.PacketContext context);
-
-    public final Packet toPacket() {
-        FriendlyByteBuf buf = new FriendlyByteBuf(Unpooled.buffer());
-        write(buf);
-        return NetworkManager.toPacket(getType().getSide(), getType().getId(), buf);
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/MessageDecoder.java b/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/MessageDecoder.java
deleted file mode 100644
index a924ee0..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/MessageDecoder.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.mrmelon54.infrastructury.networking.simple;
-
-import com.mrmelon54.infrastructury.networking.NetworkManager;
-import net.minecraft.network.FriendlyByteBuf;
-
-@FunctionalInterface
-public interface MessageDecoder {
-    T decode(FriendlyByteBuf buf);
-
-    default NetworkManager.NetworkReceiver createReceiver() {
-        return (buf, context) -> {
-            Message packet = decode(buf);
-            context.queue(() -> packet.handle(context));
-        };
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/MessageType.java b/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/MessageType.java
deleted file mode 100644
index 078fb6c..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/MessageType.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.mrmelon54.infrastructury.networking.simple;
-
-import com.mrmelon54.infrastructury.networking.NetworkManager;
-import net.minecraft.resources.ResourceLocation;
-
-import java.util.Objects;
-
-public final class MessageType {
-    private final SimpleNetworkManager manager;
-    private final ResourceLocation id;
-    private final NetworkManager.Side side;
-
-    MessageType(SimpleNetworkManager manager, ResourceLocation id, NetworkManager.Side side) {
-        this.manager = manager;
-        this.id = id;
-        this.side = side;
-    }
-
-    public SimpleNetworkManager getManager() {
-        return manager;
-    }
-
-    public ResourceLocation getId() {
-        return id;
-    }
-
-    public NetworkManager.Side getSide() {
-        return side;
-    }
-
-    @Override
-    public String toString() {
-        return id.toString() + ":" + side.name().toLowerCase();
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) {
-            return true;
-        } else if (o == null || getClass() != o.getClass()) {
-            return false;
-        }
-
-        MessageType messageType = (MessageType) o;
-        return id.equals(messageType.id) && side.equals(messageType.side);
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(id, side);
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/SimpleNetworkManager.java b/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/SimpleNetworkManager.java
deleted file mode 100644
index 093611a..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/networking/simple/SimpleNetworkManager.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.mrmelon54.infrastructury.networking.simple;
-
-import com.mrmelon54.infrastructury.networking.NetworkManager;
-import com.mrmelon54.infrastructury.networking.transformers.PacketTransformer;
-import com.mrmelon54.infrastructury.platform.Platform;
-import com.mrmelon54.infrastructury.utils.Env;
-import net.minecraft.resources.ResourceLocation;
-
-#if JAVA_8
-import java.util.ArrayList;
-#endif
-import java.util.List;
-
-public class SimpleNetworkManager {
-    public static SimpleNetworkManager create(String namespace) {
-        return new SimpleNetworkManager(namespace);
-    }
-
-    private final String namespace;
-
-    private SimpleNetworkManager(String namespace) {
-        this.namespace = namespace;
-    }
-
-    public MessageType registerS2C(String id, MessageDecoder decoder) {
-        return registerS2C(id, decoder, #if JAVA_8 new ArrayList<>() #else List.of() #endif );
-    }
-
-    public MessageType registerS2C(String id, MessageDecoder decoder, List transformers) {
-        MessageType messageType = new MessageType(this, new ResourceLocation(namespace, id), NetworkManager.Side.S2C);
-
-        if (Platform.getEnvironment() == Env.CLIENT) {
-            NetworkManager.NetworkReceiver receiver = decoder.createReceiver();
-            NetworkManager.registerReceiver(NetworkManager.Side.S2C, messageType.getId(), transformers, receiver);
-        }
-
-        return messageType;
-    }
-
-    public MessageType registerC2S(String id, MessageDecoder decoder) {
-        return registerC2S(id, decoder, #if JAVA_8 new ArrayList<>() #else List.of() #endif );
-    }
-
-    public MessageType registerC2S(String id, MessageDecoder decoder, List transformers) {
-        MessageType messageType = new MessageType(this, new ResourceLocation(namespace, id), NetworkManager.Side.C2S);
-        NetworkManager.NetworkReceiver receiver = decoder.createReceiver();
-        NetworkManager.registerReceiver(NetworkManager.Side.C2S, messageType.getId(), transformers, receiver);
-        return messageType;
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/PacketCollector.java b/common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/PacketCollector.java
deleted file mode 100644
index 728e6de..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/PacketCollector.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.mrmelon54.infrastructury.networking.transformers;
-
-import net.minecraft.network.protocol.Packet;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.function.Consumer;
-
-public class PacketCollector implements PacketSink {
-    @Nullable
-    private final Consumer> consumer;
-    private final List> packets = new ArrayList<>();
-
-    public PacketCollector(@Nullable Consumer> consumer) {
-        this.consumer = consumer;
-    }
-
-    @Override
-    public void accept(Packet packet) {
-        packets.add(packet);
-        if (this.consumer != null) this.consumer.accept(packet);
-    }
-
-    public List> collect() {
-        return packets;
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/PacketSink.java b/common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/PacketSink.java
deleted file mode 100644
index 5f618cf..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/PacketSink.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.mrmelon54.infrastructury.networking.transformers;
-
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
-import net.minecraft.network.protocol.Packet;
-import net.minecraft.server.level.ServerPlayer;
-
-@FunctionalInterface
-public interface PacketSink {
-    static PacketSink ofPlayer(ServerPlayer player) {
-        return remapped.architectury.networking.transformers.PacketSink.ofPlayer(player)::accept;
-    }
-
-    static PacketSink ofPlayers(Iterable players) {
-        return remapped.architectury.networking.transformers.PacketSink.ofPlayers(players)::accept;
-    }
-
-    @Environment(EnvType.CLIENT)
-    static PacketSink client() {
-        return remapped.architectury.networking.transformers.PacketSink.client()::accept;
-    }
-
-    void accept(Packet packet);
-
-    static remapped.architectury.networking.transformers.PacketSink convert(PacketSink sink) {
-        return sink::accept;
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/PacketTransformer.java b/common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/PacketTransformer.java
deleted file mode 100644
index 2f88151..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/PacketTransformer.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package com.mrmelon54.infrastructury.networking.transformers;
-
-import com.mrmelon54.infrastructury.networking.NetworkManager;
-import com.mrmelon54.infrastructury.utils.Mapper;
-import net.minecraft.network.FriendlyByteBuf;
-import net.minecraft.resources.ResourceLocation;
-
-public interface PacketTransformer {
-    void inbound(NetworkManager.Side side, ResourceLocation id, FriendlyByteBuf buf, NetworkManager.PacketContext context, TransformationSink sink);
-
-    void outbound(NetworkManager.Side side, ResourceLocation id, FriendlyByteBuf buf, TransformationSink sink);
-
-    @FunctionalInterface
-    interface TransformationSink {
-        void accept(NetworkManager.Side side, ResourceLocation id, FriendlyByteBuf buf);
-
-        static TransformationSink convert(remapped.architectury.networking.transformers.PacketTransformer.TransformationSink transformationSink) {
-            return (side, id, buf) -> transformationSink.accept(side.architectury$side(), id, buf);
-        }
-
-        static remapped.architectury.networking.transformers.PacketTransformer.TransformationSink convert(TransformationSink sink) {
-            return (side, resourceLocation, friendlyByteBuf) -> sink.accept(NetworkManager.Side.convert(side), resourceLocation, friendlyByteBuf);
-        }
-    }
-
-    static PacketTransformer none() {
-        return new PacketTransformer() {
-            @Override
-            public void inbound(NetworkManager.Side side, ResourceLocation id, FriendlyByteBuf buf, NetworkManager.PacketContext context, TransformationSink sink) {
-                sink.accept(side, id, buf);
-            }
-
-            @Override
-            public void outbound(NetworkManager.Side side, ResourceLocation id, FriendlyByteBuf buf, TransformationSink sink) {
-                sink.accept(side, id, buf);
-            }
-        };
-    }
-
-    static PacketTransformer concat(Iterable transformers) {
-        return PacketTransformer.convert(remapped.architectury.networking.transformers.PacketTransformer.concat(Mapper.map(transformers, PacketTransformer::convert)));
-    }
-
-    static PacketTransformer convert(remapped.architectury.networking.transformers.PacketTransformer packetTransformer) {
-        return new PacketTransformer() {
-            @Override
-            public void inbound(NetworkManager.Side side, ResourceLocation id, FriendlyByteBuf buf, NetworkManager.PacketContext context, TransformationSink sink) {
-                packetTransformer.inbound(side.architectury$side(), id, buf, context.architectury$convert(), TransformationSink.convert(sink));
-            }
-
-            @Override
-            public void outbound(NetworkManager.Side side, ResourceLocation id, FriendlyByteBuf buf, TransformationSink sink) {
-                packetTransformer.outbound(side.architectury$side(), id, buf, TransformationSink.convert(sink));
-            }
-        };
-    }
-
-    default remapped.architectury.networking.transformers.PacketTransformer convert() {
-        return new remapped.architectury.networking.transformers.PacketTransformer() {
-            @Override
-            public void inbound(remapped.architectury.networking.NetworkManager.Side side, ResourceLocation resourceLocation, FriendlyByteBuf friendlyByteBuf, remapped.architectury.networking.NetworkManager.PacketContext packetContext, TransformationSink transformationSink) {
-                PacketTransformer.this.inbound(NetworkManager.Side.convert(side), resourceLocation, friendlyByteBuf, NetworkManager.PacketContext.convert(packetContext), PacketTransformer.TransformationSink.convert(transformationSink));
-            }
-
-            @Override
-            public void outbound(remapped.architectury.networking.NetworkManager.Side side, ResourceLocation resourceLocation, FriendlyByteBuf friendlyByteBuf, TransformationSink transformationSink) {
-                PacketTransformer.this.outbound(NetworkManager.Side.convert(side), resourceLocation, friendlyByteBuf, PacketTransformer.TransformationSink.convert(transformationSink));
-            }
-        };
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/SinglePacketCollector.java b/common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/SinglePacketCollector.java
deleted file mode 100644
index 873af03..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/SinglePacketCollector.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.mrmelon54.infrastructury.networking.transformers;
-
-import net.minecraft.network.protocol.Packet;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.function.Consumer;
-
-public class SinglePacketCollector implements PacketSink {
-    @Nullable
-    private final Consumer> consumer;
-    private Packet packet;
-
-    public SinglePacketCollector(@Nullable Consumer> consumer) {
-        this.consumer = consumer;
-    }
-
-    @Override
-    public void accept(Packet packet) {
-        if (this.packet != null) throw new IllegalStateException("Already accepted one packet!");
-        this.packet = packet;
-        if (this.consumer != null) this.consumer.accept(packet);
-    }
-
-    public Packet getPacket() {
-        return packet;
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/SplitPacketTransformer.java b/common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/SplitPacketTransformer.java
deleted file mode 100644
index 803f485..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/networking/transformers/SplitPacketTransformer.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.mrmelon54.infrastructury.networking.transformers;
-
-import com.mrmelon54.infrastructury.networking.NetworkManager;
-import net.minecraft.network.FriendlyByteBuf;
-import net.minecraft.resources.ResourceLocation;
-
-public class SplitPacketTransformer implements PacketTransformer {
-    private final remapped.architectury.networking.transformers.SplitPacketTransformer splitPacketTransformer;
-
-    public SplitPacketTransformer() {
-        splitPacketTransformer = new remapped.architectury.networking.transformers.SplitPacketTransformer();
-    }
-
-    @Override
-    public void inbound(NetworkManager.Side side, ResourceLocation id, FriendlyByteBuf buf, NetworkManager.PacketContext context, TransformationSink sink) {
-        splitPacketTransformer.inbound(side.architectury$side(), id, buf, context.architectury$convert(), TransformationSink.convert(sink));
-    }
-
-    @Override
-    public void outbound(NetworkManager.Side side, ResourceLocation id, FriendlyByteBuf buf, TransformationSink sink) {
-        splitPacketTransformer.outbound(side.architectury$side(), id, buf, TransformationSink.convert(sink));
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/platform/Mod.java b/common/src/main/java/com/mrmelon54/infrastructury/platform/Mod.java
deleted file mode 100644
index e7735c8..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/platform/Mod.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package com.mrmelon54.infrastructury.platform;
-
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
-import net.minecraft.client.gui.screens.Screen;
-import org.jetbrains.annotations.Nullable;
-
-import java.nio.file.Path;
-import java.util.Collection;
-import java.util.List;
-import java.util.Optional;
-
-public interface Mod {
-    String getModId();
-
-    String getVersion();
-
-    String getName();
-
-    String getDescription();
-
-    Optional getLogoFile(int preferredSize);
-
-    List getFilePaths();
-
-    Optional findResource(String... path);
-
-    Collection getAuthors();
-
-    @Nullable
-    Collection getLicense();
-
-    Optional getHomepage();
-
-    Optional getSources();
-
-    Optional getIssueTracker();
-
-    @Environment(EnvType.CLIENT)
-    void registerConfigurationScreen(ConfigurationScreenProvider provider);
-
-    @Environment(EnvType.CLIENT)
-    @FunctionalInterface
-    interface ConfigurationScreenProvider {
-        Screen provide(Screen parent);
-    }
-
-    static Mod convert(remapped.architectury.platform.Mod mod) {
-        return new Mod() {
-            @Override
-            public String getModId() {
-                return mod.getModId();
-            }
-
-            @Override
-            public String getVersion() {
-                return mod.getVersion();
-            }
-
-            @Override
-            public String getName() {
-                return mod.getName();
-            }
-
-            @Override
-            public String getDescription() {
-                return mod.getDescription();
-            }
-
-            @Override
-            public Optional getLogoFile(int preferredSize) {
-                return mod.getLogoFile(preferredSize);
-            }
-
-            @Override
-            public List getFilePaths() {
-                return mod.getFilePaths();
-            }
-
-            @Override
-            public Optional findResource(String... path) {
-                #if MC_VER <= MC_1_18_2
-                return Optional.empty();
-                #else
-                return mod.findResource(path);
-                #endif
-            }
-
-            @Override
-            public Collection getAuthors() {
-                return mod.getAuthors();
-            }
-
-            @Override
-            public @Nullable Collection getLicense() {
-                return mod.getLicense();
-            }
-
-            @Override
-            public Optional getHomepage() {
-                return mod.getHomepage();
-            }
-
-            @Override
-            public Optional getSources() {
-                return mod.getSources();
-            }
-
-            @Override
-            public Optional getIssueTracker() {
-                return mod.getIssueTracker();
-            }
-
-            @Override
-            public void registerConfigurationScreen(ConfigurationScreenProvider provider) {
-                mod.registerConfigurationScreen(provider::provide);
-            }
-        };
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/platform/Platform.java b/common/src/main/java/com/mrmelon54/infrastructury/platform/Platform.java
deleted file mode 100644
index 10cdbd7..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/platform/Platform.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package com.mrmelon54.infrastructury.platform;
-
-import com.mrmelon54.infrastructury.utils.Env;
-import net.fabricmc.api.EnvType;
-import net.minecraft.SharedConstants;
-
-import java.nio.file.Path;
-import java.util.Collection;
-import java.util.NoSuchElementException;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-public final class Platform {
-    private Platform() {
-    }
-
-    public static boolean isFabric() {
-        return remapped.architectury.platform.Platform.isFabric();
-    }
-
-    public static boolean isForgeLike() {
-        return isMinecraftForge() || isNeoForge();
-    }
-
-    public static boolean isMinecraftForge() {
-        #if MC_VER > MC_1_20_1
-        return remapped.architectury.platform.Platform.isMinecraftForge();
-        #else
-        return remapped.architectury.platform.Platform.isForge();
-        #endif
-    }
-
-    public static boolean isNeoForge() {
-        #if MC_VER > MC_1_20_1
-        return remapped.architectury.platform.Platform.isNeoForge();
-        #else
-        return false;
-        #endif
-    }
-
-    public static String getMinecraftVersion() {
-        return SharedConstants.getCurrentVersion().getId();
-    }
-
-    public static Path getGameFolder() {
-        return remapped.architectury.platform.Platform.getGameFolder();
-    }
-
-    public static Path getConfigFolder() {
-        return remapped.architectury.platform.Platform.getConfigFolder();
-    }
-
-    public static Path getModsFolder() {
-        return remapped.architectury.platform.Platform.getModsFolder();
-    }
-
-    public static Env getEnvironment() {
-        return Env.convert(remapped.architectury.platform.Platform.getEnvironment());
-    }
-
-    public static EnvType getEnv() {
-        return remapped.architectury.platform.Platform.getEnv();
-    }
-
-    public static boolean isModLoaded(String id) {
-        return remapped.architectury.platform.Platform.isModLoaded(id);
-    }
-
-    public static Mod getMod(String id) {
-        return Mod.convert(remapped.architectury.platform.Platform.getMod(id));
-    }
-
-    public static Optional getOptionalMod(String id) {
-        try {
-            return Optional.of(getMod(id));
-        } catch (NoSuchElementException e) {
-            return Optional.empty();
-        }
-    }
-
-    public static Collection getMods() {
-        return remapped.architectury.platform.Platform.getMods().stream().map(Mod::convert).collect(Collectors.toList());
-    }
-
-    public static Collection getModIds() {
-        return remapped.architectury.platform.Platform.getModIds();
-    }
-
-    public static boolean isDevelopmentEnvironment() {
-        return remapped.architectury.platform.Platform.isDevelopmentEnvironment();
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/utils/Env.java b/common/src/main/java/com/mrmelon54/infrastructury/utils/Env.java
deleted file mode 100644
index 6db2dbd..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/utils/Env.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.mrmelon54.infrastructury.utils;
-
-import net.fabricmc.api.EnvType;
-
-public enum Env {
-    CLIENT(remapped.architectury.utils.Env.CLIENT),
-    SERVER(remapped.architectury.utils.Env.SERVER);
-
-    private final remapped.architectury.utils.Env env;
-
-    Env(remapped.architectury.utils.Env env) {
-        this.env = env;
-    }
-
-    public static Env fromPlatform(Object type) {
-        return type == EnvType.CLIENT ? CLIENT : (type == EnvType.SERVER ? SERVER : null);
-    }
-
-    public EnvType toPlatform() {
-        return this == CLIENT ? EnvType.CLIENT : EnvType.SERVER;
-    }
-
-    public static Env convert(remapped.architectury.utils.Env env) {
-        return env == remapped.architectury.utils.Env.CLIENT ? CLIENT : SERVER;
-    }
-
-    public remapped.architectury.utils.Env convert() {
-        return env;
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/utils/Graphics.java b/common/src/main/java/com/mrmelon54/infrastructury/utils/Graphics.java
deleted file mode 100644
index 86a70f5..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/utils/Graphics.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.mrmelon54.infrastructury.utils;
-
-import net.minecraft.client.gui.GuiGraphics;
-
-#if MC_VER < MC_1_20_1
-import com.mojang.blaze3d.vertex.PoseStack;
-#endif
-
-public class Graphics {
-    #if MC_VER < MC_1_20_1
-    public static GuiGraphics get(PoseStack matrices) {
-        return new GuiGraphics(matrices);
-    }
-    #else
-    public static GuiGraphics get(GuiGraphics guiGraphics) {
-        return guiGraphics;
-    }
-    #endif
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/utils/Mapper.java b/common/src/main/java/com/mrmelon54/infrastructury/utils/Mapper.java
deleted file mode 100644
index 214da4f..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/utils/Mapper.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.mrmelon54.infrastructury.utils;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.util.Iterator;
-import java.util.function.Function;
-
-public final class Mapper {
-    public static  Iterable map(Iterable iterable, Function mapper) {
-        return new Iterable() {
-            @NotNull
-            @Override
-            public Iterator iterator() {
-                return map(iterable.iterator(), mapper);
-            }
-        };
-    }
-
-    public static  Iterator map(Iterator iterator, Function mapper) {
-        return new Iterator() {
-            @Override
-            public boolean hasNext() {
-                return iterator.hasNext();
-            }
-
-            @Override
-            public N next() {
-                return mapper.apply(iterator.next());
-            }
-        };
-    }
-}
diff --git a/common/src/main/java/com/mrmelon54/infrastructury/utils/OptionalSupplier.java b/common/src/main/java/com/mrmelon54/infrastructury/utils/OptionalSupplier.java
deleted file mode 100644
index 48b2ca1..0000000
--- a/common/src/main/java/com/mrmelon54/infrastructury/utils/OptionalSupplier.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.mrmelon54.infrastructury.utils;
-
-import org.jetbrains.annotations.Nullable;
-
-import java.util.Optional;
-import java.util.function.Consumer;
-import java.util.function.Supplier;
-import java.util.stream.Stream;
-
-public interface OptionalSupplier extends Supplier {
-    boolean isPresent();
-
-    @Nullable
-    default T getOrNull() {
-        return isPresent() ? get() : null;
-    }
-
-    default Optional toOptional() {
-        return Optional.ofNullable(getOrNull());
-    }
-
-    default void ifPresent(Consumer action) {
-        if (isPresent()) action.accept(get());
-    }
-
-    default void ifPresentOrElse(Consumer action, Runnable emptyAction) {
-        if (isPresent()) action.accept(get());
-        else emptyAction.run();
-    }
-
-    default Stream stream() {
-        return !isPresent() ? Stream.empty() : Stream.of(get());
-    }
-
-    default T orElse(T other) {
-        return isPresent() ? get() : other;
-    }
-
-    default T orElseGet(Supplier supplier) {
-        return isPresent() ? get() : supplier.get();
-    }
-}
diff --git a/common/src/main/java/net/minecraft/advancements/AdvancementHolder.java b/common/src/main/java/net/minecraft/advancements/AdvancementHolder.java
deleted file mode 100644
index f668632..0000000
--- a/common/src/main/java/net/minecraft/advancements/AdvancementHolder.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package net.minecraft.advancements;
-
-#if MC_VER < MC_1_20_2
-import net.minecraft.resources.ResourceLocation;
-
-#if MC_VER == MC_1_16_5
-public class AdvancementHolder {
-    ResourceLocation id;
-    Advancement value;
-
-    public AdvancementHolder(ResourceLocation id, Advancement value) {
-        this.id=id;
-        this.value=value;
-    }
-#else
-public record AdvancementHolder(ResourceLocation id, Advancement value) {
-#endif
-}
-#endif
diff --git a/common/src/main/java/net/minecraft/client/gui/GuiGraphics.java b/common/src/main/java/net/minecraft/client/gui/GuiGraphics.java
deleted file mode 100644
index ab2134a..0000000
--- a/common/src/main/java/net/minecraft/client/gui/GuiGraphics.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package net.minecraft.client.gui;
-
-#if MC_VER < MC_1_20_1
-import com.mojang.blaze3d.vertex.PoseStack;
-import net.minecraft.client.Minecraft;
-import net.minecraft.world.item.ItemStack;
-
-public class GuiGraphics extends GuiComponent {
-    private final PoseStack matrices;
-
-    public GuiGraphics(PoseStack matrices) {
-        this.matrices = matrices;
-    }
-
-    public int guiWidth() {
-        return Minecraft.getInstance().getWindow().getGuiScaledWidth();
-    }
-
-    public int guiHeight() {
-        return Minecraft.getInstance().getWindow().getGuiScaledHeight();
-    }
-
-    public void drawString(Font font, String clockText, int i, int j, int color) {
-        GuiComponent.drawString(matrices, font, clockText, i, j, color);
-    }
-
-    public void renderItem(ItemStack clockItemStack, int x, int y, int z) {
-        #if MC_VER < MC_1_19_4
-        Minecraft.getInstance().getItemRenderer().renderGuiItem(clockItemStack, x, y);
-        #elif MC_VER < MC_1_20_1
-        Minecraft.getInstance().getItemRenderer().renderGuiItem(matrices, clockItemStack, x, y);
-        #else
-        Minecraft.getInstance().getItemRenderer().renderGuiItem(clockItemStack, x, y);
-        #endif
-    }
-}
-#endif
diff --git a/common/src/main/java/net/minecraft/client/gui/screens/inventory/tooltip/ClientTooltipComponent.java b/common/src/main/java/net/minecraft/client/gui/screens/inventory/tooltip/ClientTooltipComponent.java
deleted file mode 100644
index aa036e7..0000000
--- a/common/src/main/java/net/minecraft/client/gui/screens/inventory/tooltip/ClientTooltipComponent.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package net.minecraft.client.gui.screens.inventory.tooltip;
-
-#if MC_VER == MC_1_16_5
-import com.mojang.blaze3d.vertex.PoseStack;
-import com.mojang.math.Matrix4f;
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
-import net.minecraft.client.gui.Font;
-import net.minecraft.client.renderer.MultiBufferSource;
-import net.minecraft.client.renderer.entity.ItemRenderer;
-import net.minecraft.client.renderer.texture.TextureManager;
-
-@Environment(EnvType.CLIENT)
-public interface ClientTooltipComponent {
-    int getHeight();
-
-    int getWidth(Font font);
-
-    default void renderText(Font font, int x, int y, Matrix4f matrix4f, MultiBufferSource.BufferSource bufferSource) {
-    }
-
-    default void renderImage(Font font, int mouseX, int mouseY, PoseStack poseStack, ItemRenderer itemRenderer, int blitOffset, TextureManager textureManager) {
-    }
-}
-#endif
diff --git a/common/src/main/java/net/minecraft/commands/CommandBuildContext.java b/common/src/main/java/net/minecraft/commands/CommandBuildContext.java
deleted file mode 100644
index 7ea50f0..0000000
--- a/common/src/main/java/net/minecraft/commands/CommandBuildContext.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package net.minecraft.commands;
-
-#if MC_VER > MC_1_17_1 && MC_VER < MC_1_20_1
-import net.minecraft.core.HolderLookup;
-import net.minecraft.core.Registry;
-import net.minecraft.resources.ResourceKey;
-
-public interface CommandBuildContext {
-     HolderLookup holderLookup(ResourceKey> var1);
-}
-#endif
diff --git a/common/src/main/java/net/minecraft/core/HolderGetter.java b/common/src/main/java/net/minecraft/core/HolderGetter.java
deleted file mode 100644
index dbbfc5b..0000000
--- a/common/src/main/java/net/minecraft/core/HolderGetter.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package net.minecraft.core;
-
-#if MC_VER > MC_1_17_1 && MC_VER < MC_1_20_1
-import java.util.Optional;
-
-import net.minecraft.resources.ResourceKey;
-import net.minecraft.tags.TagKey;
-
-public interface HolderGetter {
-    Optional> get(ResourceKey var1);
-
-    default Holder.Reference getOrThrow(ResourceKey var1) {
-        return (Holder.Reference) this.get(var1).orElseThrow(() -> new IllegalStateException("Missing element " + var1));
-    }
-
-    Optional> get(TagKey var1);
-
-    default HolderSet.Named getOrThrow(TagKey var1) {
-        return (HolderSet.Named) this.get(var1).orElseThrow(() -> new IllegalStateException("Missing tag " + var1));
-    }
-}
-#endif
diff --git a/common/src/main/java/net/minecraft/core/HolderLookup.java b/common/src/main/java/net/minecraft/core/HolderLookup.java
deleted file mode 100644
index accb7cb..0000000
--- a/common/src/main/java/net/minecraft/core/HolderLookup.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package net.minecraft.core;
-
-#if MC_VER > MC_1_17_1 && MC_VER < MC_1_20_1
-import net.minecraft.resources.ResourceKey;
-import net.minecraft.tags.TagKey;
-
-import java.util.Optional;
-import java.util.function.Predicate;
-import java.util.stream.Stream;
-
-public interface HolderLookup extends HolderGetter {
-    Stream> listElements();
-
-    default Stream> listElementIds() {
-        return this.listElements().map(Holder.Reference::key);
-    }
-
-    Stream> listTags();
-
-    default Stream> listTagIds() {
-        return this.listTags().map(HolderSet.Named::key);
-    }
-
-    default HolderLookup filterElements(final Predicate var1) {
-        return new HolderLookup<>() {
-            @Override
-            public Stream> listElements() {
-                return Stream.empty();
-            }
-
-            @Override
-            public Stream> listTags() {
-                return Stream.empty();
-            }
-
-            @Override
-            public Optional> get(ResourceKey var1) {
-                return Optional.empty();
-            }
-
-            @Override
-            public Optional> get(TagKey var1) {
-                return Optional.empty();
-            }
-        };
-    }
-}
-#endif
diff --git a/common/src/main/java/net/minecraft/network/chat/ChatTypePolyfill.java b/common/src/main/java/net/minecraft/network/chat/ChatTypePolyfill.java
deleted file mode 100644
index f2454dc..0000000
--- a/common/src/main/java/net/minecraft/network/chat/ChatTypePolyfill.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package net.minecraft.network.chat;
-
-import org.jetbrains.annotations.Nullable;
-
-#if MC_VER == MC_1_16_5
-public class ChatTypePolyfill {
-    public ChatType chatType;
-    public Component name;
-    public Component targetName;
-
-    public ChatTypePolyfill(ChatType chatType, Component name, @Nullable Component targetName) {
-        this.chatType = chatType;
-        this.name = name;
-        this.targetName = targetName;
-    }
-#else
-public record ChatTypePolyfill(ChatType chatType, Component name, @Nullable Component targetName) {
-#endif
-    #if MC_VER < MC_1_19_2
-    public ChatTypePolyfill(ChatType bound) {
-        this(bound, Component.nullToEmpty(bound.name()), null);
-    }
-    #else
-    public ChatTypePolyfill(ChatType.Bound bound) {
-        this(bound.chatType(), bound.name(), bound.targetName());
-    }
-    #endif
-}
diff --git a/common/src/main/java/net/minecraft/world/level/storage/loot/LootDataId.java b/common/src/main/java/net/minecraft/world/level/storage/loot/LootDataId.java
deleted file mode 100644
index 483b853..0000000
--- a/common/src/main/java/net/minecraft/world/level/storage/loot/LootDataId.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package net.minecraft.world.level.storage.loot;
-
-#if MC_VER == MC_1_16_5
-
-import net.minecraft.resources.ResourceLocation;
-
-public class LootDataId {
-    public LootDataId(LootDataType type, ResourceLocation location) {
-        this.type = type;
-        this.location = location;
-    }
-
-    LootDataType type;
-    ResourceLocation location;
-}
-#elif MC_VER < MC_1_20_1
-import net.minecraft.resources.ResourceLocation;
-
-public record LootDataId(LootDataType type, ResourceLocation location) {
-}
-#endif
diff --git a/common/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java b/common/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java
deleted file mode 100644
index c983c4d..0000000
--- a/common/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package net.minecraft.world.level.storage.loot;
-
-#if MC_VER > MC_1_16_5 && MC_VER < MC_1_20_1
-import net.minecraft.server.packs.resources.PreparableReloadListener;
-import net.minecraft.server.packs.resources.ResourceManager;
-import net.minecraft.util.profiling.ProfilerFiller;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.Executor;
-
-public class LootDataManager implements PreparableReloadListener, LootDataResolver {
-    private final LootTables lootDataManager;
-
-    public LootDataManager(LootTables lootDataManager) {
-        this.lootDataManager = lootDataManager;
-    }
-
-    public final CompletableFuture reload(PreparableReloadListener.PreparationBarrier preparationBarrier, ResourceManager resourceManager, ProfilerFiller preparationsProfiler, ProfilerFiller reloadProfiler, Executor backgroundExecutor, Executor gameExecutor) {
-        return lootDataManager.reload(preparationBarrier, resourceManager, preparationsProfiler, reloadProfiler, backgroundExecutor, gameExecutor);
-    }
-
-    @Override
-    public  @Nullable T getElement(LootDataId var1) {
-        return (T) lootDataManager.get(var1.location());
-    }
-}
-#endif
diff --git a/common/src/main/java/net/minecraft/world/level/storage/loot/LootDataResolver.java b/common/src/main/java/net/minecraft/world/level/storage/loot/LootDataResolver.java
deleted file mode 100644
index e3b05ba..0000000
--- a/common/src/main/java/net/minecraft/world/level/storage/loot/LootDataResolver.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package net.minecraft.world.level.storage.loot;
-
-#if MC_VER < MC_1_20_1
-import java.util.Optional;
-
-import net.minecraft.resources.ResourceLocation;
-import org.jetbrains.annotations.Nullable;
-
-@FunctionalInterface
-public interface LootDataResolver {
-    @Nullable
-     T getElement(LootDataId var1);
-
-    @Nullable
-    default  T getElement(LootDataType var1, ResourceLocation var2) {
-        return this.getElement(new LootDataId<>(var1, var2));
-    }
-
-    default  Optional getElementOptional(LootDataId var1) {
-        return Optional.ofNullable(this.getElement(var1));
-    }
-
-    default  Optional getElementOptional(LootDataType var1, ResourceLocation var2) {
-        return this.getElementOptional(new LootDataId<>(var1, var2));
-    }
-}
-#endif
diff --git a/common/src/main/java/net/minecraft/world/level/storage/loot/LootDataType.java b/common/src/main/java/net/minecraft/world/level/storage/loot/LootDataType.java
deleted file mode 100644
index 12bb6ce..0000000
--- a/common/src/main/java/net/minecraft/world/level/storage/loot/LootDataType.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package net.minecraft.world.level.storage.loot;
-
-#if MC_VER < MC_1_20_1
-import com.mojang.serialization.Codec;
-
-public class LootDataType {
-    private final Codec codec;
-    private final String directory;
-    private final LootDataType.Validator validator;
-
-    private LootDataType(Codec var1, String var2, LootDataType.Validator var3) {
-        this.codec = var1;
-        this.directory = var2;
-        this.validator = var3;
-    }
-
-    public String directory() {
-        return this.directory;
-    }
-
-    @FunctionalInterface
-    public interface Validator {
-        void run(ValidationContext var1, LootDataId var2, T var3);
-    }
-}
-#endif
diff --git a/fabric/src/main/java/com/mrmelon54/infrastructury/event/events/common/fabric/LootEventImpl.java b/fabric/src/main/java/com/mrmelon54/infrastructury/event/events/common/fabric/LootEventImpl.java
deleted file mode 100644
index 635a6ef..0000000
--- a/fabric/src/main/java/com/mrmelon54/infrastructury/event/events/common/fabric/LootEventImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.mrmelon54.infrastructury.event.events.common.fabric;
-
-#if MC_VER > MC_1_16_5 && MC_VER < MC_1_18_2
-import com.mrmelon54.infrastructury.event.events.common.LootEvent;
-import net.fabricmc.fabric.api.loot.v1.event.LootTableLoadingCallback;
-import net.minecraft.world.level.storage.loot.LootDataManager;
-import remapped.architectury.event.Event;
-
-public class LootEventImpl {
-    static Event resolveModifyLootTable() {
-        return new Event<>() {
-            @Override
-            public LootEvent.ModifyLootTable invoker() {
-                throw new AssertionError("cannot invoker");
-            }
-
-            @Override
-            public void register(LootEvent.ModifyLootTable modifyLootTable) {
-                LootTableLoadingCallback.EVENT.register((resourceManager, manager, id, supplier, setter) -> modifyLootTable.modifyLootTable(new LootDataManager(manager), id, supplier::withPool, false));
-            }
-
-            @Override
-            public void unregister(LootEvent.ModifyLootTable modifyLootTable) {
-                throw new AssertionError("cannot unregister");
-            }
-
-            @Override
-            public boolean isRegistered(LootEvent.ModifyLootTable modifyLootTable) {
-                throw new AssertionError("cannot isRegistered");
-            }
-
-            @Override
-            public void clearListeners() {
-                throw new AssertionError("cannot clearListeners");
-            }
-        };
-    }
-}
-#endif
diff --git a/forge/src/main/java/com/mrmelon54/infrastructury/event/events/common/forge/LootEventImpl.java b/forge/src/main/java/com/mrmelon54/infrastructury/event/events/common/forge/LootEventImpl.java
deleted file mode 100644
index 6d69de9..0000000
--- a/forge/src/main/java/com/mrmelon54/infrastructury/event/events/common/forge/LootEventImpl.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.mrmelon54.infrastructury.event.events.common.forge;
-
-#if MC_VER > MC_1_16_5 && MC_VER < MC_1_18_2
-import com.mrmelon54.infrastructury.event.events.common.LootEvent;
-import net.minecraft.world.level.storage.loot.LootDataManager;
-import net.minecraftforge.event.LootTableLoadEvent;
-import net.minecraftforge.eventbus.api.EventPriority;
-import net.minecraftforge.eventbus.api.SubscribeEvent;
-import net.minecraftforge.fml.common.Mod;
-import remapped.architectury.event.Event;
-import remapped.architectury.event.EventFactory;
-
-@Mod.EventBusSubscriber
-public class LootEventImpl {
-    private static Event EVENT = EventFactory.createLoop(LootEvent.ModifyLootTable.class);
-
-    @SubscribeEvent(priority = EventPriority.HIGH)
-    public void register(LootTableLoadEvent event) {
-        EVENT.invoker().modifyLootTable(new LootDataManager(event.getLootTableManager()), event.getName(), pool -> event.getTable().addPool(pool), true);
-    }
-
-    static Event resolveModifyLootTable() {
-        return EVENT;
-    }
-}
-#endif
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index a595206..0d18421 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/mappings/arch_12.1.3.tiny b/mappings/arch_12.1.3.tiny
new file mode 100644
index 0000000..eca3e03
--- /dev/null
+++ b/mappings/arch_12.1.3.tiny
@@ -0,0 +1,415 @@
+tiny	2	0	official	named
+c	dev/architectury/annotations/ForgeEvent	remapped/architectury/annotations/ForgeEvent
+c	dev/architectury/annotations/ForgeEventCancellable	remapped/architectury/annotations/ForgeEventCancellable
+c	dev/architectury/compat/fabric/ModMenuCompatibility	remapped/architectury/compat/fabric/ModMenuCompatibility
+c	dev/architectury/core/block/ArchitecturyLiquidBlock	remapped/architectury/core/block/ArchitecturyLiquidBlock
+c	dev/architectury/core/fluid/ArchitecturyFlowingFluid$Flowing	remapped/architectury/core/fluid/ArchitecturyFlowingFluid$Flowing
+c	dev/architectury/core/fluid/ArchitecturyFlowingFluid$Source	remapped/architectury/core/fluid/ArchitecturyFlowingFluid$Source
+c	dev/architectury/core/fluid/ArchitecturyFlowingFluid	remapped/architectury/core/fluid/ArchitecturyFlowingFluid
+c	dev/architectury/core/fluid/ArchitecturyFluidAttributes	remapped/architectury/core/fluid/ArchitecturyFluidAttributes
+c	dev/architectury/core/fluid/SimpleArchitecturyFluidAttributes	remapped/architectury/core/fluid/SimpleArchitecturyFluidAttributes
+c	dev/architectury/core/fluid/fabric/ArchitecturyFlowingFluidImpl$Client	remapped/architectury/core/fluid/fabric/ArchitecturyFlowingFluidImpl$Client
+c	dev/architectury/core/fluid/fabric/ArchitecturyFlowingFluidImpl	remapped/architectury/core/fluid/fabric/ArchitecturyFlowingFluidImpl
+c	dev/architectury/core/fluid/fabric/ArchitecturyFluidAttributesFabric	remapped/architectury/core/fluid/fabric/ArchitecturyFluidAttributesFabric
+c	dev/architectury/core/fluid/fabric/ArchitecturyFluidRenderingFabric	remapped/architectury/core/fluid/fabric/ArchitecturyFluidRenderingFabric
+c	dev/architectury/core/item/ArchitecturyBucketItem	remapped/architectury/core/item/ArchitecturyBucketItem
+c	dev/architectury/core/item/ArchitecturyMobBucketItem	remapped/architectury/core/item/ArchitecturyMobBucketItem
+c	dev/architectury/core/item/ArchitecturyRecordItem	remapped/architectury/core/item/ArchitecturyRecordItem
+c	dev/architectury/core/item/ArchitecturySpawnEggItem$1	remapped/architectury/core/item/ArchitecturySpawnEggItem$1
+c	dev/architectury/core/item/ArchitecturySpawnEggItem	remapped/architectury/core/item/ArchitecturySpawnEggItem
+c	dev/architectury/event/CompoundEventResult	remapped/architectury/event/CompoundEventResult
+c	dev/architectury/event/Event	remapped/architectury/event/Event
+c	dev/architectury/event/EventActor	remapped/architectury/event/EventActor
+c	dev/architectury/event/EventFactory$1	remapped/architectury/event/EventFactory$1
+c	dev/architectury/event/EventFactory$2	remapped/architectury/event/EventFactory$2
+c	dev/architectury/event/EventFactory$3	remapped/architectury/event/EventFactory$3
+c	dev/architectury/event/EventFactory$4	remapped/architectury/event/EventFactory$4
+c	dev/architectury/event/EventFactory$5	remapped/architectury/event/EventFactory$5
+c	dev/architectury/event/EventFactory$EventImpl	remapped/architectury/event/EventFactory$EventImpl
+c	dev/architectury/event/EventFactory	remapped/architectury/event/EventFactory
+c	dev/architectury/event/EventHandler	remapped/architectury/event/EventHandler
+c	dev/architectury/event/EventResult	remapped/architectury/event/EventResult
+c	dev/architectury/event/events/client/ClientChatEvent$Received	remapped/architectury/event/events/client/ClientChatEvent$Received
+c	dev/architectury/event/events/client/ClientChatEvent$Send	remapped/architectury/event/events/client/ClientChatEvent$Send
+c	dev/architectury/event/events/client/ClientChatEvent	remapped/architectury/event/events/client/ClientChatEvent
+c	dev/architectury/event/events/client/ClientCommandRegistrationEvent$ClientCommandSourceStack	remapped/architectury/event/events/client/ClientCommandRegistrationEvent$ClientCommandSourceStack
+c	dev/architectury/event/events/client/ClientCommandRegistrationEvent	remapped/architectury/event/events/client/ClientCommandRegistrationEvent
+c	dev/architectury/event/events/client/ClientGuiEvent$ContainerScreenRenderBackground	remapped/architectury/event/events/client/ClientGuiEvent$ContainerScreenRenderBackground
+c	dev/architectury/event/events/client/ClientGuiEvent$ContainerScreenRenderForeground	remapped/architectury/event/events/client/ClientGuiEvent$ContainerScreenRenderForeground
+c	dev/architectury/event/events/client/ClientGuiEvent$DebugText	remapped/architectury/event/events/client/ClientGuiEvent$DebugText
+c	dev/architectury/event/events/client/ClientGuiEvent$RenderHud	remapped/architectury/event/events/client/ClientGuiEvent$RenderHud
+c	dev/architectury/event/events/client/ClientGuiEvent$ScreenInitPost	remapped/architectury/event/events/client/ClientGuiEvent$ScreenInitPost
+c	dev/architectury/event/events/client/ClientGuiEvent$ScreenInitPre	remapped/architectury/event/events/client/ClientGuiEvent$ScreenInitPre
+c	dev/architectury/event/events/client/ClientGuiEvent$ScreenRenderPost	remapped/architectury/event/events/client/ClientGuiEvent$ScreenRenderPost
+c	dev/architectury/event/events/client/ClientGuiEvent$ScreenRenderPre	remapped/architectury/event/events/client/ClientGuiEvent$ScreenRenderPre
+c	dev/architectury/event/events/client/ClientGuiEvent$SetScreen	remapped/architectury/event/events/client/ClientGuiEvent$SetScreen
+c	dev/architectury/event/events/client/ClientGuiEvent	remapped/architectury/event/events/client/ClientGuiEvent
+c	dev/architectury/event/events/client/ClientLifecycleEvent$ClientLevelState	remapped/architectury/event/events/client/ClientLifecycleEvent$ClientLevelState
+c	dev/architectury/event/events/client/ClientLifecycleEvent$ClientState	remapped/architectury/event/events/client/ClientLifecycleEvent$ClientState
+c	dev/architectury/event/events/client/ClientLifecycleEvent	remapped/architectury/event/events/client/ClientLifecycleEvent
+c	dev/architectury/event/events/client/ClientPlayerEvent$ClientPlayerJoin	remapped/architectury/event/events/client/ClientPlayerEvent$ClientPlayerJoin
+c	dev/architectury/event/events/client/ClientPlayerEvent$ClientPlayerQuit	remapped/architectury/event/events/client/ClientPlayerEvent$ClientPlayerQuit
+c	dev/architectury/event/events/client/ClientPlayerEvent$ClientPlayerRespawn	remapped/architectury/event/events/client/ClientPlayerEvent$ClientPlayerRespawn
+c	dev/architectury/event/events/client/ClientPlayerEvent	remapped/architectury/event/events/client/ClientPlayerEvent
+c	dev/architectury/event/events/client/ClientRawInputEvent$KeyPressed	remapped/architectury/event/events/client/ClientRawInputEvent$KeyPressed
+c	dev/architectury/event/events/client/ClientRawInputEvent$MouseClicked	remapped/architectury/event/events/client/ClientRawInputEvent$MouseClicked
+c	dev/architectury/event/events/client/ClientRawInputEvent$MouseScrolled	remapped/architectury/event/events/client/ClientRawInputEvent$MouseScrolled
+c	dev/architectury/event/events/client/ClientRawInputEvent	remapped/architectury/event/events/client/ClientRawInputEvent
+c	dev/architectury/event/events/client/ClientRecipeUpdateEvent	remapped/architectury/event/events/client/ClientRecipeUpdateEvent
+c	dev/architectury/event/events/client/ClientReloadShadersEvent$ShadersSink	remapped/architectury/event/events/client/ClientReloadShadersEvent$ShadersSink
+c	dev/architectury/event/events/client/ClientReloadShadersEvent	remapped/architectury/event/events/client/ClientReloadShadersEvent
+c	dev/architectury/event/events/client/ClientScreenInputEvent$KeyPressed	remapped/architectury/event/events/client/ClientScreenInputEvent$KeyPressed
+c	dev/architectury/event/events/client/ClientScreenInputEvent$KeyReleased	remapped/architectury/event/events/client/ClientScreenInputEvent$KeyReleased
+c	dev/architectury/event/events/client/ClientScreenInputEvent$KeyTyped	remapped/architectury/event/events/client/ClientScreenInputEvent$KeyTyped
+c	dev/architectury/event/events/client/ClientScreenInputEvent$MouseClicked	remapped/architectury/event/events/client/ClientScreenInputEvent$MouseClicked
+c	dev/architectury/event/events/client/ClientScreenInputEvent$MouseDragged	remapped/architectury/event/events/client/ClientScreenInputEvent$MouseDragged
+c	dev/architectury/event/events/client/ClientScreenInputEvent$MouseReleased	remapped/architectury/event/events/client/ClientScreenInputEvent$MouseReleased
+c	dev/architectury/event/events/client/ClientScreenInputEvent$MouseScrolled	remapped/architectury/event/events/client/ClientScreenInputEvent$MouseScrolled
+c	dev/architectury/event/events/client/ClientScreenInputEvent	remapped/architectury/event/events/client/ClientScreenInputEvent
+c	dev/architectury/event/events/client/ClientSystemMessageEvent$Received	remapped/architectury/event/events/client/ClientSystemMessageEvent$Received
+c	dev/architectury/event/events/client/ClientSystemMessageEvent	remapped/architectury/event/events/client/ClientSystemMessageEvent
+c	dev/architectury/event/events/client/ClientTickEvent$Client	remapped/architectury/event/events/client/ClientTickEvent$Client
+c	dev/architectury/event/events/client/ClientTickEvent$ClientLevel	remapped/architectury/event/events/client/ClientTickEvent$ClientLevel
+c	dev/architectury/event/events/client/ClientTickEvent	remapped/architectury/event/events/client/ClientTickEvent
+c	dev/architectury/event/events/client/ClientTooltipEvent$AdditionalContexts	remapped/architectury/event/events/client/ClientTooltipEvent$AdditionalContexts
+c	dev/architectury/event/events/client/ClientTooltipEvent$ColorContext	remapped/architectury/event/events/client/ClientTooltipEvent$ColorContext
+c	dev/architectury/event/events/client/ClientTooltipEvent$Item	remapped/architectury/event/events/client/ClientTooltipEvent$Item
+c	dev/architectury/event/events/client/ClientTooltipEvent$PositionContext	remapped/architectury/event/events/client/ClientTooltipEvent$PositionContext
+c	dev/architectury/event/events/client/ClientTooltipEvent$Render	remapped/architectury/event/events/client/ClientTooltipEvent$Render
+c	dev/architectury/event/events/client/ClientTooltipEvent$RenderModifyColor	remapped/architectury/event/events/client/ClientTooltipEvent$RenderModifyColor
+c	dev/architectury/event/events/client/ClientTooltipEvent$RenderModifyPosition	remapped/architectury/event/events/client/ClientTooltipEvent$RenderModifyPosition
+c	dev/architectury/event/events/client/ClientTooltipEvent	remapped/architectury/event/events/client/ClientTooltipEvent
+c	dev/architectury/event/events/common/BlockEvent$Break	remapped/architectury/event/events/common/BlockEvent$Break
+c	dev/architectury/event/events/common/BlockEvent$FallingLand	remapped/architectury/event/events/common/BlockEvent$FallingLand
+c	dev/architectury/event/events/common/BlockEvent$Place	remapped/architectury/event/events/common/BlockEvent$Place
+c	dev/architectury/event/events/common/BlockEvent	remapped/architectury/event/events/common/BlockEvent
+c	dev/architectury/event/events/common/ChatEvent$ChatComponent	remapped/architectury/event/events/common/ChatEvent$ChatComponent
+c	dev/architectury/event/events/common/ChatEvent$Decorate	remapped/architectury/event/events/common/ChatEvent$Decorate
+c	dev/architectury/event/events/common/ChatEvent$Received	remapped/architectury/event/events/common/ChatEvent$Received
+c	dev/architectury/event/events/common/ChatEvent	remapped/architectury/event/events/common/ChatEvent
+c	dev/architectury/event/events/common/ChunkEvent$LoadData	remapped/architectury/event/events/common/ChunkEvent$LoadData
+c	dev/architectury/event/events/common/ChunkEvent$SaveData	remapped/architectury/event/events/common/ChunkEvent$SaveData
+c	dev/architectury/event/events/common/ChunkEvent	remapped/architectury/event/events/common/ChunkEvent
+c	dev/architectury/event/events/common/CommandPerformEvent	remapped/architectury/event/events/common/CommandPerformEvent
+c	dev/architectury/event/events/common/CommandRegistrationEvent	remapped/architectury/event/events/common/CommandRegistrationEvent
+c	dev/architectury/event/events/common/EntityEvent$Add	remapped/architectury/event/events/common/EntityEvent$Add
+c	dev/architectury/event/events/common/EntityEvent$AnimalTame	remapped/architectury/event/events/common/EntityEvent$AnimalTame
+c	dev/architectury/event/events/common/EntityEvent$EnterSection	remapped/architectury/event/events/common/EntityEvent$EnterSection
+c	dev/architectury/event/events/common/EntityEvent$LivingCheckSpawn	remapped/architectury/event/events/common/EntityEvent$LivingCheckSpawn
+c	dev/architectury/event/events/common/EntityEvent$LivingDeath	remapped/architectury/event/events/common/EntityEvent$LivingDeath
+c	dev/architectury/event/events/common/EntityEvent$LivingHurt	remapped/architectury/event/events/common/EntityEvent$LivingHurt
+c	dev/architectury/event/events/common/EntityEvent	remapped/architectury/event/events/common/EntityEvent
+c	dev/architectury/event/events/common/ExplosionEvent$Detonate	remapped/architectury/event/events/common/ExplosionEvent$Detonate
+c	dev/architectury/event/events/common/ExplosionEvent$Pre	remapped/architectury/event/events/common/ExplosionEvent$Pre
+c	dev/architectury/event/events/common/ExplosionEvent	remapped/architectury/event/events/common/ExplosionEvent
+c	dev/architectury/event/events/common/InteractionEvent$ClientLeftClickAir	remapped/architectury/event/events/common/InteractionEvent$ClientLeftClickAir
+c	dev/architectury/event/events/common/InteractionEvent$ClientRightClickAir	remapped/architectury/event/events/common/InteractionEvent$ClientRightClickAir
+c	dev/architectury/event/events/common/InteractionEvent$FarmlandTrample	remapped/architectury/event/events/common/InteractionEvent$FarmlandTrample
+c	dev/architectury/event/events/common/InteractionEvent$InteractEntity	remapped/architectury/event/events/common/InteractionEvent$InteractEntity
+c	dev/architectury/event/events/common/InteractionEvent$LeftClickBlock	remapped/architectury/event/events/common/InteractionEvent$LeftClickBlock
+c	dev/architectury/event/events/common/InteractionEvent$RightClickBlock	remapped/architectury/event/events/common/InteractionEvent$RightClickBlock
+c	dev/architectury/event/events/common/InteractionEvent$RightClickItem	remapped/architectury/event/events/common/InteractionEvent$RightClickItem
+c	dev/architectury/event/events/common/InteractionEvent	remapped/architectury/event/events/common/InteractionEvent
+c	dev/architectury/event/events/common/LifecycleEvent$InstanceState	remapped/architectury/event/events/common/LifecycleEvent$InstanceState
+c	dev/architectury/event/events/common/LifecycleEvent$LevelState	remapped/architectury/event/events/common/LifecycleEvent$LevelState
+c	dev/architectury/event/events/common/LifecycleEvent$ServerLevelState	remapped/architectury/event/events/common/LifecycleEvent$ServerLevelState
+c	dev/architectury/event/events/common/LifecycleEvent$ServerState	remapped/architectury/event/events/common/LifecycleEvent$ServerState
+c	dev/architectury/event/events/common/LifecycleEvent	remapped/architectury/event/events/common/LifecycleEvent
+c	dev/architectury/event/events/common/LightningEvent$Strike	remapped/architectury/event/events/common/LightningEvent$Strike
+c	dev/architectury/event/events/common/LightningEvent	remapped/architectury/event/events/common/LightningEvent
+c	dev/architectury/event/events/common/LootEvent$LootTableModificationContext	remapped/architectury/event/events/common/LootEvent$LootTableModificationContext
+c	dev/architectury/event/events/common/LootEvent$ModifyLootTable	remapped/architectury/event/events/common/LootEvent$ModifyLootTable
+c	dev/architectury/event/events/common/LootEvent	remapped/architectury/event/events/common/LootEvent
+c	dev/architectury/event/events/common/PlayerEvent$AttackEntity	remapped/architectury/event/events/common/PlayerEvent$AttackEntity
+c	dev/architectury/event/events/common/PlayerEvent$ChangeDimension	remapped/architectury/event/events/common/PlayerEvent$ChangeDimension
+c	dev/architectury/event/events/common/PlayerEvent$CloseMenu	remapped/architectury/event/events/common/PlayerEvent$CloseMenu
+c	dev/architectury/event/events/common/PlayerEvent$CraftItem	remapped/architectury/event/events/common/PlayerEvent$CraftItem
+c	dev/architectury/event/events/common/PlayerEvent$DropItem	remapped/architectury/event/events/common/PlayerEvent$DropItem
+c	dev/architectury/event/events/common/PlayerEvent$FillBucket	remapped/architectury/event/events/common/PlayerEvent$FillBucket
+c	dev/architectury/event/events/common/PlayerEvent$OpenMenu	remapped/architectury/event/events/common/PlayerEvent$OpenMenu
+c	dev/architectury/event/events/common/PlayerEvent$PickupItem	remapped/architectury/event/events/common/PlayerEvent$PickupItem
+c	dev/architectury/event/events/common/PlayerEvent$PickupItemPredicate	remapped/architectury/event/events/common/PlayerEvent$PickupItemPredicate
+c	dev/architectury/event/events/common/PlayerEvent$PlayerAdvancement	remapped/architectury/event/events/common/PlayerEvent$PlayerAdvancement
+c	dev/architectury/event/events/common/PlayerEvent$PlayerClone	remapped/architectury/event/events/common/PlayerEvent$PlayerClone
+c	dev/architectury/event/events/common/PlayerEvent$PlayerJoin	remapped/architectury/event/events/common/PlayerEvent$PlayerJoin
+c	dev/architectury/event/events/common/PlayerEvent$PlayerQuit	remapped/architectury/event/events/common/PlayerEvent$PlayerQuit
+c	dev/architectury/event/events/common/PlayerEvent$PlayerRespawn	remapped/architectury/event/events/common/PlayerEvent$PlayerRespawn
+c	dev/architectury/event/events/common/PlayerEvent$SmeltItem	remapped/architectury/event/events/common/PlayerEvent$SmeltItem
+c	dev/architectury/event/events/common/PlayerEvent	remapped/architectury/event/events/common/PlayerEvent
+c	dev/architectury/event/events/common/TickEvent$LevelTick	remapped/architectury/event/events/common/TickEvent$LevelTick
+c	dev/architectury/event/events/common/TickEvent$Player	remapped/architectury/event/events/common/TickEvent$Player
+c	dev/architectury/event/events/common/TickEvent$Server	remapped/architectury/event/events/common/TickEvent$Server
+c	dev/architectury/event/events/common/TickEvent$ServerLevelTick	remapped/architectury/event/events/common/TickEvent$ServerLevelTick
+c	dev/architectury/event/events/common/TickEvent	remapped/architectury/event/events/common/TickEvent
+c	dev/architectury/event/fabric/EventFactoryImpl	remapped/architectury/event/fabric/EventFactoryImpl
+c	dev/architectury/event/fabric/EventHandlerImpl	remapped/architectury/event/fabric/EventHandlerImpl
+c	dev/architectury/event/fabric/LootTableModificationContextImpl	remapped/architectury/event/fabric/LootTableModificationContextImpl
+c	dev/architectury/extensions/ItemExtension	remapped/architectury/extensions/ItemExtension
+c	dev/architectury/extensions/injected/InjectedBlockExtension	remapped/architectury/extensions/injected/InjectedBlockExtension
+c	dev/architectury/extensions/injected/InjectedBucketItemExtension	remapped/architectury/extensions/injected/InjectedBucketItemExtension
+c	dev/architectury/extensions/injected/InjectedEntityTypeExtension	remapped/architectury/extensions/injected/InjectedEntityTypeExtension
+c	dev/architectury/extensions/injected/InjectedFluidExtension	remapped/architectury/extensions/injected/InjectedFluidExtension
+c	dev/architectury/extensions/injected/InjectedFoodPropertiesBuilderExtension	remapped/architectury/extensions/injected/InjectedFoodPropertiesBuilderExtension
+c	dev/architectury/extensions/injected/InjectedItemExtension	remapped/architectury/extensions/injected/InjectedItemExtension
+c	dev/architectury/extensions/injected/InjectedItemPropertiesExtension	remapped/architectury/extensions/injected/InjectedItemPropertiesExtension
+c	dev/architectury/extensions/injected/InjectedLiquidBlockExtension	remapped/architectury/extensions/injected/InjectedLiquidBlockExtension
+c	dev/architectury/extensions/injected/InjectedRegistryEntryExtension	remapped/architectury/extensions/injected/InjectedRegistryEntryExtension
+c	dev/architectury/extensions/network/EntitySpawnExtension	remapped/architectury/extensions/network/EntitySpawnExtension
+c	dev/architectury/fluid/FluidStack$FluidStackAdapter	remapped/architectury/fluid/FluidStack$FluidStackAdapter
+c	dev/architectury/fluid/FluidStack	remapped/architectury/fluid/FluidStack
+c	dev/architectury/fluid/fabric/FluidStackImpl$Pair	remapped/architectury/fluid/fabric/FluidStackImpl$Pair
+c	dev/architectury/fluid/fabric/FluidStackImpl	remapped/architectury/fluid/fabric/FluidStackImpl
+c	dev/architectury/hooks/DyeColorHooks	remapped/architectury/hooks/DyeColorHooks
+c	dev/architectury/hooks/PackRepositoryHooks	remapped/architectury/hooks/PackRepositoryHooks
+c	dev/architectury/hooks/block/BlockEntityHooks	remapped/architectury/hooks/block/BlockEntityHooks
+c	dev/architectury/hooks/client/screen/ScreenAccess	remapped/architectury/hooks/client/screen/ScreenAccess
+c	dev/architectury/hooks/client/screen/ScreenHooks	remapped/architectury/hooks/client/screen/ScreenHooks
+c	dev/architectury/hooks/client/screen/fabric/ScreenHooksImpl	remapped/architectury/hooks/client/screen/fabric/ScreenHooksImpl
+c	dev/architectury/hooks/fabric/DyeColorHooksImpl	remapped/architectury/hooks/fabric/DyeColorHooksImpl
+c	dev/architectury/hooks/fabric/PackRepositoryHooksImpl	remapped/architectury/hooks/fabric/PackRepositoryHooksImpl
+c	dev/architectury/hooks/fabric/PersistentEntitySectionManagerHooks	remapped/architectury/hooks/fabric/PersistentEntitySectionManagerHooks
+c	dev/architectury/hooks/fluid/FluidBucketHooks	remapped/architectury/hooks/fluid/FluidBucketHooks
+c	dev/architectury/hooks/fluid/FluidStackHooks	remapped/architectury/hooks/fluid/FluidStackHooks
+c	dev/architectury/hooks/fluid/LiquidBlockHooks	remapped/architectury/hooks/fluid/LiquidBlockHooks
+c	dev/architectury/hooks/fluid/fabric/FluidBucketHooksImpl	remapped/architectury/hooks/fluid/fabric/FluidBucketHooksImpl
+c	dev/architectury/hooks/fluid/fabric/FluidStackHooksFabric	remapped/architectury/hooks/fluid/fabric/FluidStackHooksFabric
+c	dev/architectury/hooks/fluid/fabric/FluidStackHooksImpl	remapped/architectury/hooks/fluid/fabric/FluidStackHooksImpl
+c	dev/architectury/hooks/fluid/fabric/LiquidBlockHooksImpl	remapped/architectury/hooks/fluid/fabric/LiquidBlockHooksImpl
+c	dev/architectury/hooks/item/ItemStackHooks	remapped/architectury/hooks/item/ItemStackHooks
+c	dev/architectury/hooks/item/fabric/ItemStackHooksImpl	remapped/architectury/hooks/item/fabric/ItemStackHooksImpl
+c	dev/architectury/hooks/item/food/FoodPropertiesHooks	remapped/architectury/hooks/item/food/FoodPropertiesHooks
+c	dev/architectury/hooks/item/food/fabric/FoodPropertiesHooksImpl	remapped/architectury/hooks/item/food/fabric/FoodPropertiesHooksImpl
+c	dev/architectury/hooks/item/tool/AxeItemHooks	remapped/architectury/hooks/item/tool/AxeItemHooks
+c	dev/architectury/hooks/item/tool/HoeItemHooks	remapped/architectury/hooks/item/tool/HoeItemHooks
+c	dev/architectury/hooks/item/tool/ShovelItemHooks	remapped/architectury/hooks/item/tool/ShovelItemHooks
+c	dev/architectury/hooks/item/tool/fabric/HoeItemHooksImpl	remapped/architectury/hooks/item/tool/fabric/HoeItemHooksImpl
+c	dev/architectury/hooks/level/ExplosionHooks	remapped/architectury/hooks/level/ExplosionHooks
+c	dev/architectury/hooks/level/biome/BiomeHooks$BiomeWrapped	remapped/architectury/hooks/level/biome/BiomeHooks$BiomeWrapped
+c	dev/architectury/hooks/level/biome/BiomeHooks$ClimateWrapped	remapped/architectury/hooks/level/biome/BiomeHooks$ClimateWrapped
+c	dev/architectury/hooks/level/biome/BiomeHooks$EffectsWrapped	remapped/architectury/hooks/level/biome/BiomeHooks$EffectsWrapped
+c	dev/architectury/hooks/level/biome/BiomeHooks$GenerationSettingsWrapped	remapped/architectury/hooks/level/biome/BiomeHooks$GenerationSettingsWrapped
+c	dev/architectury/hooks/level/biome/BiomeHooks$MutableBiomeWrapped	remapped/architectury/hooks/level/biome/BiomeHooks$MutableBiomeWrapped
+c	dev/architectury/hooks/level/biome/BiomeHooks$SpawnSettingsWrapped	remapped/architectury/hooks/level/biome/BiomeHooks$SpawnSettingsWrapped
+c	dev/architectury/hooks/level/biome/BiomeHooks	remapped/architectury/hooks/level/biome/BiomeHooks
+c	dev/architectury/hooks/level/biome/BiomeProperties$Mutable	remapped/architectury/hooks/level/biome/BiomeProperties$Mutable
+c	dev/architectury/hooks/level/biome/BiomeProperties	remapped/architectury/hooks/level/biome/BiomeProperties
+c	dev/architectury/hooks/level/biome/ClimateProperties$Mutable	remapped/architectury/hooks/level/biome/ClimateProperties$Mutable
+c	dev/architectury/hooks/level/biome/ClimateProperties	remapped/architectury/hooks/level/biome/ClimateProperties
+c	dev/architectury/hooks/level/biome/EffectsProperties$Mutable	remapped/architectury/hooks/level/biome/EffectsProperties$Mutable
+c	dev/architectury/hooks/level/biome/EffectsProperties	remapped/architectury/hooks/level/biome/EffectsProperties
+c	dev/architectury/hooks/level/biome/GenerationProperties$Mutable	remapped/architectury/hooks/level/biome/GenerationProperties$Mutable
+c	dev/architectury/hooks/level/biome/GenerationProperties	remapped/architectury/hooks/level/biome/GenerationProperties
+c	dev/architectury/hooks/level/biome/SpawnProperties$Mutable	remapped/architectury/hooks/level/biome/SpawnProperties$Mutable
+c	dev/architectury/hooks/level/biome/SpawnProperties	remapped/architectury/hooks/level/biome/SpawnProperties
+c	dev/architectury/hooks/level/biome/fabric/BiomeHooksImpl	remapped/architectury/hooks/level/biome/fabric/BiomeHooksImpl
+c	dev/architectury/hooks/level/entity/EntityHooks	remapped/architectury/hooks/level/entity/EntityHooks
+c	dev/architectury/hooks/level/entity/ItemEntityHooks	remapped/architectury/hooks/level/entity/ItemEntityHooks
+c	dev/architectury/hooks/level/entity/PlayerHooks	remapped/architectury/hooks/level/entity/PlayerHooks
+c	dev/architectury/hooks/level/entity/fabric/EntityHooksImpl$1	remapped/architectury/hooks/level/entity/fabric/EntityHooksImpl$1
+c	dev/architectury/hooks/level/entity/fabric/EntityHooksImpl	remapped/architectury/hooks/level/entity/fabric/EntityHooksImpl
+c	dev/architectury/hooks/level/entity/fabric/FakePlayers	remapped/architectury/hooks/level/entity/fabric/FakePlayers
+c	dev/architectury/hooks/level/entity/fabric/ItemEntityHooksImpl$1	remapped/architectury/hooks/level/entity/fabric/ItemEntityHooksImpl$1
+c	dev/architectury/hooks/level/entity/fabric/ItemEntityHooksImpl	remapped/architectury/hooks/level/entity/fabric/ItemEntityHooksImpl
+c	dev/architectury/hooks/level/entity/fabric/PlayerHooksImpl	remapped/architectury/hooks/level/entity/fabric/PlayerHooksImpl
+c	dev/architectury/impl/ItemPropertiesExtensionImpl	remapped/architectury/impl/ItemPropertiesExtensionImpl
+c	dev/architectury/impl/NetworkAggregator$Adaptor	remapped/architectury/impl/NetworkAggregator$Adaptor
+c	dev/architectury/impl/NetworkAggregator$BufCustomPacketPayload	remapped/architectury/impl/NetworkAggregator$BufCustomPacketPayload
+c	dev/architectury/impl/NetworkAggregator	remapped/architectury/impl/NetworkAggregator
+c	dev/architectury/impl/RegistrySupplierImpl	remapped/architectury/impl/RegistrySupplierImpl
+c	dev/architectury/impl/ScreenAccessImpl	remapped/architectury/impl/ScreenAccessImpl
+c	dev/architectury/impl/TooltipAdditionalContextsImpl	remapped/architectury/impl/TooltipAdditionalContextsImpl
+c	dev/architectury/impl/TooltipEventColorContextImpl	remapped/architectury/impl/TooltipEventColorContextImpl
+c	dev/architectury/impl/TooltipEventPositionContextImpl	remapped/architectury/impl/TooltipEventPositionContextImpl
+c	dev/architectury/impl/fabric/ChatComponentImpl	remapped/architectury/impl/fabric/ChatComponentImpl
+c	dev/architectury/impl/fabric/ScreenInputDelegate$DelegateScreen	remapped/architectury/impl/fabric/ScreenInputDelegate$DelegateScreen
+c	dev/architectury/impl/fabric/ScreenInputDelegate	remapped/architectury/impl/fabric/ScreenInputDelegate
+c	dev/architectury/impl/package-info	remapped/architectury/impl/package-info
+c	dev/architectury/init/fabric/ArchitecturyClient	remapped/architectury/init/fabric/ArchitecturyClient
+c	dev/architectury/init/fabric/ArchitecturyServer	remapped/architectury/init/fabric/ArchitecturyServer
+c	dev/architectury/mixin/MixinLightningBolt	remapped/architectury/mixin/MixinLightningBolt
+c	dev/architectury/mixin/fabric/BiomeAccessor	remapped/architectury/mixin/fabric/BiomeAccessor
+c	dev/architectury/mixin/fabric/BucketItemAccessor	remapped/architectury/mixin/fabric/BucketItemAccessor
+c	dev/architectury/mixin/fabric/HorseTameInvoker	remapped/architectury/mixin/fabric/HorseTameInvoker
+c	dev/architectury/mixin/fabric/LiquidBlockAccessor	remapped/architectury/mixin/fabric/LiquidBlockAccessor
+c	dev/architectury/mixin/fabric/LivingDeathInvoker	remapped/architectury/mixin/fabric/LivingDeathInvoker
+c	dev/architectury/mixin/fabric/MixinBaseSpawner	remapped/architectury/mixin/fabric/MixinBaseSpawner
+c	dev/architectury/mixin/fabric/MixinBlockItem	remapped/architectury/mixin/fabric/MixinBlockItem
+c	dev/architectury/mixin/fabric/MixinBucketItem	remapped/architectury/mixin/fabric/MixinBucketItem
+c	dev/architectury/mixin/fabric/MixinCatSpawner	remapped/architectury/mixin/fabric/MixinCatSpawner
+c	dev/architectury/mixin/fabric/MixinChunkMap	remapped/architectury/mixin/fabric/MixinChunkMap
+c	dev/architectury/mixin/fabric/MixinChunkSerializer	remapped/architectury/mixin/fabric/MixinChunkSerializer
+c	dev/architectury/mixin/fabric/MixinCommands	remapped/architectury/mixin/fabric/MixinCommands
+c	dev/architectury/mixin/fabric/MixinDedicatedServer	remapped/architectury/mixin/fabric/MixinDedicatedServer
+c	dev/architectury/mixin/fabric/MixinEntity	remapped/architectury/mixin/fabric/MixinEntity
+c	dev/architectury/mixin/fabric/MixinExplosion	remapped/architectury/mixin/fabric/MixinExplosion
+c	dev/architectury/mixin/fabric/MixinFallingBlockEntity	remapped/architectury/mixin/fabric/MixinFallingBlockEntity
+c	dev/architectury/mixin/fabric/MixinFarmBlock	remapped/architectury/mixin/fabric/MixinFarmBlock
+c	dev/architectury/mixin/fabric/MixinFurnaceResultSlot	remapped/architectury/mixin/fabric/MixinFurnaceResultSlot
+c	dev/architectury/mixin/fabric/MixinInventory	remapped/architectury/mixin/fabric/MixinInventory
+c	dev/architectury/mixin/fabric/MixinItemEntity	remapped/architectury/mixin/fabric/MixinItemEntity
+c	dev/architectury/mixin/fabric/MixinLevel	remapped/architectury/mixin/fabric/MixinLevel
+c	dev/architectury/mixin/fabric/MixinLivingEntity	remapped/architectury/mixin/fabric/MixinLivingEntity
+c	dev/architectury/mixin/fabric/MixinNaturalSpawner	remapped/architectury/mixin/fabric/MixinNaturalSpawner
+c	dev/architectury/mixin/fabric/MixinOcelot	remapped/architectury/mixin/fabric/MixinOcelot
+c	dev/architectury/mixin/fabric/MixinPatrolSpawner	remapped/architectury/mixin/fabric/MixinPatrolSpawner
+c	dev/architectury/mixin/fabric/MixinPersistentEntitySectionManager	remapped/architectury/mixin/fabric/MixinPersistentEntitySectionManager
+c	dev/architectury/mixin/fabric/MixinPhantomSpawner	remapped/architectury/mixin/fabric/MixinPhantomSpawner
+c	dev/architectury/mixin/fabric/MixinPlayer	remapped/architectury/mixin/fabric/MixinPlayer
+c	dev/architectury/mixin/fabric/MixinPlayerAdvancements	remapped/architectury/mixin/fabric/MixinPlayerAdvancements
+c	dev/architectury/mixin/fabric/MixinPlayerList	remapped/architectury/mixin/fabric/MixinPlayerList
+c	dev/architectury/mixin/fabric/MixinResultSlot	remapped/architectury/mixin/fabric/MixinResultSlot
+c	dev/architectury/mixin/fabric/MixinServerLevel	remapped/architectury/mixin/fabric/MixinServerLevel
+c	dev/architectury/mixin/fabric/MixinServerPlayer	remapped/architectury/mixin/fabric/MixinServerPlayer
+c	dev/architectury/mixin/fabric/MixinServerPlayerGameMode	remapped/architectury/mixin/fabric/MixinServerPlayerGameMode
+c	dev/architectury/mixin/fabric/MixinTamableAnimal	remapped/architectury/mixin/fabric/MixinTamableAnimal
+c	dev/architectury/mixin/fabric/PlayerAttackInvoker	remapped/architectury/mixin/fabric/PlayerAttackInvoker
+c	dev/architectury/mixin/fabric/client/ClientPlayerAttackInvoker	remapped/architectury/mixin/fabric/client/ClientPlayerAttackInvoker
+c	dev/architectury/mixin/fabric/client/MixinAbstractContainerScreen	remapped/architectury/mixin/fabric/client/MixinAbstractContainerScreen
+c	dev/architectury/mixin/fabric/client/MixinChatListener	remapped/architectury/mixin/fabric/client/MixinChatListener
+c	dev/architectury/mixin/fabric/client/MixinClientLevel	remapped/architectury/mixin/fabric/client/MixinClientLevel
+c	dev/architectury/mixin/fabric/client/MixinClientPacketListener	remapped/architectury/mixin/fabric/client/MixinClientPacketListener
+c	dev/architectury/mixin/fabric/client/MixinDebugScreenOverlay	remapped/architectury/mixin/fabric/client/MixinDebugScreenOverlay
+c	dev/architectury/mixin/fabric/client/MixinEffectInstance	remapped/architectury/mixin/fabric/client/MixinEffectInstance
+c	dev/architectury/mixin/fabric/client/MixinFabricClientCommandSource	remapped/architectury/mixin/fabric/client/MixinFabricClientCommandSource
+c	dev/architectury/mixin/fabric/client/MixinGameRenderer	remapped/architectury/mixin/fabric/client/MixinGameRenderer
+c	dev/architectury/mixin/fabric/client/MixinGuiGraphics	remapped/architectury/mixin/fabric/client/MixinGuiGraphics
+c	dev/architectury/mixin/fabric/client/MixinIntegratedServer	remapped/architectury/mixin/fabric/client/MixinIntegratedServer
+c	dev/architectury/mixin/fabric/client/MixinKeyboardHandler	remapped/architectury/mixin/fabric/client/MixinKeyboardHandler
+c	dev/architectury/mixin/fabric/client/MixinMinecraft	remapped/architectury/mixin/fabric/client/MixinMinecraft
+c	dev/architectury/mixin/fabric/client/MixinMouseHandler	remapped/architectury/mixin/fabric/client/MixinMouseHandler
+c	dev/architectury/mixin/fabric/client/MixinMultiPlayerGameMode	remapped/architectury/mixin/fabric/client/MixinMultiPlayerGameMode
+c	dev/architectury/mixin/fabric/client/MixinScreen	remapped/architectury/mixin/fabric/client/MixinScreen
+c	dev/architectury/mixin/fabric/client/MixinTooltipRenderUtil	remapped/architectury/mixin/fabric/client/MixinTooltipRenderUtil
+c	dev/architectury/mixin/inject/MixinBlock	remapped/architectury/mixin/inject/MixinBlock
+c	dev/architectury/mixin/inject/MixinBucketItem	remapped/architectury/mixin/inject/MixinBucketItem
+c	dev/architectury/mixin/inject/MixinEntityType	remapped/architectury/mixin/inject/MixinEntityType
+c	dev/architectury/mixin/inject/MixinFluid	remapped/architectury/mixin/inject/MixinFluid
+c	dev/architectury/mixin/inject/MixinFoodPropertiesBuilder	remapped/architectury/mixin/inject/MixinFoodPropertiesBuilder
+c	dev/architectury/mixin/inject/MixinItem	remapped/architectury/mixin/inject/MixinItem
+c	dev/architectury/mixin/inject/MixinItemProperties	remapped/architectury/mixin/inject/MixinItemProperties
+c	dev/architectury/mixin/inject/MixinLiquidBlock	remapped/architectury/mixin/inject/MixinLiquidBlock
+c	dev/architectury/networking/NetworkChannel$MessageInfo	remapped/architectury/networking/NetworkChannel$MessageInfo
+c	dev/architectury/networking/NetworkChannel	remapped/architectury/networking/NetworkChannel
+c	dev/architectury/networking/NetworkManager$NetworkReceiver	remapped/architectury/networking/NetworkManager$NetworkReceiver
+c	dev/architectury/networking/NetworkManager$PacketContext	remapped/architectury/networking/NetworkManager$PacketContext
+c	dev/architectury/networking/NetworkManager$Side	remapped/architectury/networking/NetworkManager$Side
+c	dev/architectury/networking/NetworkManager	remapped/architectury/networking/NetworkManager
+c	dev/architectury/networking/SpawnEntityPacket$Client	remapped/architectury/networking/SpawnEntityPacket$Client
+c	dev/architectury/networking/SpawnEntityPacket$PacketPayload	remapped/architectury/networking/SpawnEntityPacket$PacketPayload
+c	dev/architectury/networking/SpawnEntityPacket	remapped/architectury/networking/SpawnEntityPacket
+c	dev/architectury/networking/fabric/NetworkManagerImpl$1$ClientPlayPayloadHandler	remapped/architectury/networking/fabric/NetworkManagerImpl$1$ClientPlayPayloadHandler
+c	dev/architectury/networking/fabric/NetworkManagerImpl$1	remapped/architectury/networking/fabric/NetworkManagerImpl$1
+c	dev/architectury/networking/fabric/NetworkManagerImpl$2	remapped/architectury/networking/fabric/NetworkManagerImpl$2
+c	dev/architectury/networking/fabric/NetworkManagerImpl	remapped/architectury/networking/fabric/NetworkManagerImpl
+c	dev/architectury/networking/simple/BaseC2SMessage	remapped/architectury/networking/simple/BaseC2SMessage
+c	dev/architectury/networking/simple/BaseS2CMessage	remapped/architectury/networking/simple/BaseS2CMessage
+c	dev/architectury/networking/simple/Message	remapped/architectury/networking/simple/Message
+c	dev/architectury/networking/simple/MessageDecoder	remapped/architectury/networking/simple/MessageDecoder
+c	dev/architectury/networking/simple/MessageType	remapped/architectury/networking/simple/MessageType
+c	dev/architectury/networking/simple/SimpleNetworkManager	remapped/architectury/networking/simple/SimpleNetworkManager
+c	dev/architectury/networking/simple/package-info	remapped/architectury/networking/simple/package-info
+c	dev/architectury/networking/transformers/PacketCollector	remapped/architectury/networking/transformers/PacketCollector
+c	dev/architectury/networking/transformers/PacketSink	remapped/architectury/networking/transformers/PacketSink
+c	dev/architectury/networking/transformers/PacketTransformer$1	remapped/architectury/networking/transformers/PacketTransformer$1
+c	dev/architectury/networking/transformers/PacketTransformer$2	remapped/architectury/networking/transformers/PacketTransformer$2
+c	dev/architectury/networking/transformers/PacketTransformer$TransformationSink	remapped/architectury/networking/transformers/PacketTransformer$TransformationSink
+c	dev/architectury/networking/transformers/PacketTransformer	remapped/architectury/networking/transformers/PacketTransformer
+c	dev/architectury/networking/transformers/SinglePacketCollector	remapped/architectury/networking/transformers/SinglePacketCollector
+c	dev/architectury/networking/transformers/SplitPacketTransformer$Client	remapped/architectury/networking/transformers/SplitPacketTransformer$Client
+c	dev/architectury/networking/transformers/SplitPacketTransformer$PartData	remapped/architectury/networking/transformers/SplitPacketTransformer$PartData
+c	dev/architectury/networking/transformers/SplitPacketTransformer$PartKey	remapped/architectury/networking/transformers/SplitPacketTransformer$PartKey
+c	dev/architectury/networking/transformers/SplitPacketTransformer	remapped/architectury/networking/transformers/SplitPacketTransformer
+c	dev/architectury/platform/Mod$ConfigurationScreenProvider	remapped/architectury/platform/Mod$ConfigurationScreenProvider
+c	dev/architectury/platform/Mod	remapped/architectury/platform/Mod
+c	dev/architectury/platform/Platform	remapped/architectury/platform/Platform
+c	dev/architectury/platform/fabric/PlatformImpl$ModImpl	remapped/architectury/platform/fabric/PlatformImpl$ModImpl
+c	dev/architectury/platform/fabric/PlatformImpl	remapped/architectury/platform/fabric/PlatformImpl
+c	dev/architectury/plugin/fabric/ArchitecturyMixinPlugin	remapped/architectury/plugin/fabric/ArchitecturyMixinPlugin
+c	dev/architectury/registry/CreativeTabOutput	remapped/architectury/registry/CreativeTabOutput
+c	dev/architectury/registry/CreativeTabRegistry$ModifyTabCallback	remapped/architectury/registry/CreativeTabRegistry$ModifyTabCallback
+c	dev/architectury/registry/CreativeTabRegistry	remapped/architectury/registry/CreativeTabRegistry
+c	dev/architectury/registry/ReloadListenerRegistry	remapped/architectury/registry/ReloadListenerRegistry
+c	dev/architectury/registry/client/gui/ClientTooltipComponentRegistry	remapped/architectury/registry/client/gui/ClientTooltipComponentRegistry
+c	dev/architectury/registry/client/gui/fabric/ClientTooltipComponentRegistryImpl	remapped/architectury/registry/client/gui/fabric/ClientTooltipComponentRegistryImpl
+c	dev/architectury/registry/client/keymappings/KeyMappingRegistry	remapped/architectury/registry/client/keymappings/KeyMappingRegistry
+c	dev/architectury/registry/client/keymappings/fabric/KeyMappingRegistryImpl	remapped/architectury/registry/client/keymappings/fabric/KeyMappingRegistryImpl
+c	dev/architectury/registry/client/level/entity/EntityModelLayerRegistry	remapped/architectury/registry/client/level/entity/EntityModelLayerRegistry
+c	dev/architectury/registry/client/level/entity/EntityRendererRegistry	remapped/architectury/registry/client/level/entity/EntityRendererRegistry
+c	dev/architectury/registry/client/level/entity/fabric/EntityModelLayerRegistryImpl	remapped/architectury/registry/client/level/entity/fabric/EntityModelLayerRegistryImpl
+c	dev/architectury/registry/client/level/entity/fabric/EntityRendererRegistryImpl	remapped/architectury/registry/client/level/entity/fabric/EntityRendererRegistryImpl
+c	dev/architectury/registry/client/particle/ParticleProviderRegistry$DeferredParticleProvider	remapped/architectury/registry/client/particle/ParticleProviderRegistry$DeferredParticleProvider
+c	dev/architectury/registry/client/particle/ParticleProviderRegistry$ExtendedSpriteSet	remapped/architectury/registry/client/particle/ParticleProviderRegistry$ExtendedSpriteSet
+c	dev/architectury/registry/client/particle/ParticleProviderRegistry	remapped/architectury/registry/client/particle/ParticleProviderRegistry
+c	dev/architectury/registry/client/particle/fabric/ParticleProviderRegistryImpl	remapped/architectury/registry/client/particle/fabric/ParticleProviderRegistryImpl
+c	dev/architectury/registry/client/rendering/BlockEntityRendererRegistry	remapped/architectury/registry/client/rendering/BlockEntityRendererRegistry
+c	dev/architectury/registry/client/rendering/ColorHandlerRegistry	remapped/architectury/registry/client/rendering/ColorHandlerRegistry
+c	dev/architectury/registry/client/rendering/RenderTypeRegistry	remapped/architectury/registry/client/rendering/RenderTypeRegistry
+c	dev/architectury/registry/client/rendering/fabric/BlockEntityRendererRegistryImpl	remapped/architectury/registry/client/rendering/fabric/BlockEntityRendererRegistryImpl
+c	dev/architectury/registry/client/rendering/fabric/ColorHandlerRegistryImpl	remapped/architectury/registry/client/rendering/fabric/ColorHandlerRegistryImpl
+c	dev/architectury/registry/client/rendering/fabric/RenderTypeRegistryImpl	remapped/architectury/registry/client/rendering/fabric/RenderTypeRegistryImpl
+c	dev/architectury/registry/fabric/CreativeTabRegistryImpl$1	remapped/architectury/registry/fabric/CreativeTabRegistryImpl$1
+c	dev/architectury/registry/fabric/CreativeTabRegistryImpl$2	remapped/architectury/registry/fabric/CreativeTabRegistryImpl$2
+c	dev/architectury/registry/fabric/CreativeTabRegistryImpl$3	remapped/architectury/registry/fabric/CreativeTabRegistryImpl$3
+c	dev/architectury/registry/fabric/CreativeTabRegistryImpl	remapped/architectury/registry/fabric/CreativeTabRegistryImpl
+c	dev/architectury/registry/fabric/ReloadListenerRegistryImpl$1	remapped/architectury/registry/fabric/ReloadListenerRegistryImpl$1
+c	dev/architectury/registry/fabric/ReloadListenerRegistryImpl	remapped/architectury/registry/fabric/ReloadListenerRegistryImpl
+c	dev/architectury/registry/fuel/FuelRegistry	remapped/architectury/registry/fuel/FuelRegistry
+c	dev/architectury/registry/fuel/fabric/FuelRegistryImpl	remapped/architectury/registry/fuel/fabric/FuelRegistryImpl
+c	dev/architectury/registry/item/ItemPropertiesRegistry	remapped/architectury/registry/item/ItemPropertiesRegistry
+c	dev/architectury/registry/item/fabric/ItemPropertiesRegistryImpl	remapped/architectury/registry/item/fabric/ItemPropertiesRegistryImpl
+c	dev/architectury/registry/level/biome/BiomeModifications$BiomeContext	remapped/architectury/registry/level/biome/BiomeModifications$BiomeContext
+c	dev/architectury/registry/level/biome/BiomeModifications	remapped/architectury/registry/level/biome/BiomeModifications
+c	dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl$1	remapped/architectury/registry/level/biome/fabric/BiomeModificationsImpl$1
+c	dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl$2	remapped/architectury/registry/level/biome/fabric/BiomeModificationsImpl$2
+c	dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl$3	remapped/architectury/registry/level/biome/fabric/BiomeModificationsImpl$3
+c	dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl$4	remapped/architectury/registry/level/biome/fabric/BiomeModificationsImpl$4
+c	dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl$MutableGenerationProperties	remapped/architectury/registry/level/biome/fabric/BiomeModificationsImpl$MutableGenerationProperties
+c	dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl$MutableSpawnProperties	remapped/architectury/registry/level/biome/fabric/BiomeModificationsImpl$MutableSpawnProperties
+c	dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl	remapped/architectury/registry/level/biome/fabric/BiomeModificationsImpl
+c	dev/architectury/registry/level/entity/EntityAttributeRegistry	remapped/architectury/registry/level/entity/EntityAttributeRegistry
+c	dev/architectury/registry/level/entity/SpawnPlacementsRegistry	remapped/architectury/registry/level/entity/SpawnPlacementsRegistry
+c	dev/architectury/registry/level/entity/fabric/EntityAttributeRegistryImpl	remapped/architectury/registry/level/entity/fabric/EntityAttributeRegistryImpl
+c	dev/architectury/registry/level/entity/fabric/SpawnPlacementsRegistryImpl	remapped/architectury/registry/level/entity/fabric/SpawnPlacementsRegistryImpl
+c	dev/architectury/registry/level/entity/trade/SimpleTrade	remapped/architectury/registry/level/entity/trade/SimpleTrade
+c	dev/architectury/registry/level/entity/trade/TradeRegistry	remapped/architectury/registry/level/entity/trade/TradeRegistry
+c	dev/architectury/registry/level/entity/trade/fabric/TradeRegistryImpl	remapped/architectury/registry/level/entity/trade/fabric/TradeRegistryImpl
+c	dev/architectury/registry/menu/ExtendedMenuProvider	remapped/architectury/registry/menu/ExtendedMenuProvider
+c	dev/architectury/registry/menu/MenuRegistry$1	remapped/architectury/registry/menu/MenuRegistry$1
+c	dev/architectury/registry/menu/MenuRegistry$ExtendedMenuTypeFactory	remapped/architectury/registry/menu/MenuRegistry$ExtendedMenuTypeFactory
+c	dev/architectury/registry/menu/MenuRegistry$ScreenFactory	remapped/architectury/registry/menu/MenuRegistry$ScreenFactory
+c	dev/architectury/registry/menu/MenuRegistry$SimpleMenuTypeFactory	remapped/architectury/registry/menu/MenuRegistry$SimpleMenuTypeFactory
+c	dev/architectury/registry/menu/MenuRegistry	remapped/architectury/registry/menu/MenuRegistry
+c	dev/architectury/registry/menu/fabric/MenuRegistryImpl$1	remapped/architectury/registry/menu/fabric/MenuRegistryImpl$1
+c	dev/architectury/registry/menu/fabric/MenuRegistryImpl	remapped/architectury/registry/menu/fabric/MenuRegistryImpl
+c	dev/architectury/registry/registries/DeferredRegister$Entry	remapped/architectury/registry/registries/DeferredRegister$Entry
+c	dev/architectury/registry/registries/DeferredRegister	remapped/architectury/registry/registries/DeferredRegister
+c	dev/architectury/registry/registries/DeferredSupplier	remapped/architectury/registry/registries/DeferredSupplier
+c	dev/architectury/registry/registries/Registrar	remapped/architectury/registry/registries/Registrar
+c	dev/architectury/registry/registries/RegistrarBuilder	remapped/architectury/registry/registries/RegistrarBuilder
+c	dev/architectury/registry/registries/RegistrarManager$RegistryProvider	remapped/architectury/registry/registries/RegistrarManager$RegistryProvider
+c	dev/architectury/registry/registries/RegistrarManager	remapped/architectury/registry/registries/RegistrarManager
+c	dev/architectury/registry/registries/RegistrySupplier	remapped/architectury/registry/registries/RegistrySupplier
+c	dev/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistrarBuilderWrapper	remapped/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistrarBuilderWrapper
+c	dev/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistrarImpl$1	remapped/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistrarImpl$1
+c	dev/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistrarImpl	remapped/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistrarImpl
+c	dev/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistryEntryId	remapped/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistryEntryId
+c	dev/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistryProviderImpl	remapped/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistryProviderImpl
+c	dev/architectury/registry/registries/fabric/RegistrarManagerImpl	remapped/architectury/registry/registries/fabric/RegistrarManagerImpl
+c	dev/architectury/registry/registries/options/DefaultIdRegistrarOption	remapped/architectury/registry/registries/options/DefaultIdRegistrarOption
+c	dev/architectury/registry/registries/options/RegistrarOption	remapped/architectury/registry/registries/options/RegistrarOption
+c	dev/architectury/registry/registries/options/StandardRegistrarOption	remapped/architectury/registry/registries/options/StandardRegistrarOption
+c	dev/architectury/utils/Amount	remapped/architectury/utils/Amount
+c	dev/architectury/utils/ArchitecturyConstants	remapped/architectury/utils/ArchitecturyConstants
+c	dev/architectury/utils/Env	remapped/architectury/utils/Env
+c	dev/architectury/utils/EnvExecutor	remapped/architectury/utils/EnvExecutor
+c	dev/architectury/utils/GameInstance	remapped/architectury/utils/GameInstance
+c	dev/architectury/utils/OptionalSupplier	remapped/architectury/utils/OptionalSupplier
+c	dev/architectury/utils/PlatformExpectedError	remapped/architectury/utils/PlatformExpectedError
+c	dev/architectury/utils/fabric/GameInstanceImpl	remapped/architectury/utils/fabric/GameInstanceImpl
+c	dev/architectury/utils/value/BooleanValue	remapped/architectury/utils/value/BooleanValue
+c	dev/architectury/utils/value/DoubleValue	remapped/architectury/utils/value/DoubleValue
+c	dev/architectury/utils/value/FloatSupplier	remapped/architectury/utils/value/FloatSupplier
+c	dev/architectury/utils/value/FloatValue	remapped/architectury/utils/value/FloatValue
+c	dev/architectury/utils/value/IntValue	remapped/architectury/utils/value/IntValue
+c	dev/architectury/utils/value/LongValue	remapped/architectury/utils/value/LongValue
+c	dev/architectury/utils/value/Value	remapped/architectury/utils/value/Value
diff --git a/mappings/arch_13.0.3.tiny b/mappings/arch_13.0.3.tiny
new file mode 100644
index 0000000..af20440
--- /dev/null
+++ b/mappings/arch_13.0.3.tiny
@@ -0,0 +1,414 @@
+tiny	2	0	official	named
+c	dev/architectury/annotations/ForgeEvent	remapped/architectury/annotations/ForgeEvent
+c	dev/architectury/annotations/ForgeEventCancellable	remapped/architectury/annotations/ForgeEventCancellable
+c	dev/architectury/compat/fabric/ModMenuCompatibility	remapped/architectury/compat/fabric/ModMenuCompatibility
+c	dev/architectury/core/block/ArchitecturyLiquidBlock	remapped/architectury/core/block/ArchitecturyLiquidBlock
+c	dev/architectury/core/fluid/ArchitecturyFlowingFluid$Flowing	remapped/architectury/core/fluid/ArchitecturyFlowingFluid$Flowing
+c	dev/architectury/core/fluid/ArchitecturyFlowingFluid$Source	remapped/architectury/core/fluid/ArchitecturyFlowingFluid$Source
+c	dev/architectury/core/fluid/ArchitecturyFlowingFluid	remapped/architectury/core/fluid/ArchitecturyFlowingFluid
+c	dev/architectury/core/fluid/ArchitecturyFluidAttributes	remapped/architectury/core/fluid/ArchitecturyFluidAttributes
+c	dev/architectury/core/fluid/SimpleArchitecturyFluidAttributes	remapped/architectury/core/fluid/SimpleArchitecturyFluidAttributes
+c	dev/architectury/core/fluid/fabric/ArchitecturyFlowingFluidImpl$Client	remapped/architectury/core/fluid/fabric/ArchitecturyFlowingFluidImpl$Client
+c	dev/architectury/core/fluid/fabric/ArchitecturyFlowingFluidImpl	remapped/architectury/core/fluid/fabric/ArchitecturyFlowingFluidImpl
+c	dev/architectury/core/fluid/fabric/ArchitecturyFluidAttributesFabric	remapped/architectury/core/fluid/fabric/ArchitecturyFluidAttributesFabric
+c	dev/architectury/core/fluid/fabric/ArchitecturyFluidRenderingFabric	remapped/architectury/core/fluid/fabric/ArchitecturyFluidRenderingFabric
+c	dev/architectury/core/item/ArchitecturyBucketItem	remapped/architectury/core/item/ArchitecturyBucketItem
+c	dev/architectury/core/item/ArchitecturyMobBucketItem	remapped/architectury/core/item/ArchitecturyMobBucketItem
+c	dev/architectury/core/item/ArchitecturySpawnEggItem$1	remapped/architectury/core/item/ArchitecturySpawnEggItem$1
+c	dev/architectury/core/item/ArchitecturySpawnEggItem	remapped/architectury/core/item/ArchitecturySpawnEggItem
+c	dev/architectury/event/CompoundEventResult	remapped/architectury/event/CompoundEventResult
+c	dev/architectury/event/Event	remapped/architectury/event/Event
+c	dev/architectury/event/EventActor	remapped/architectury/event/EventActor
+c	dev/architectury/event/EventFactory$1	remapped/architectury/event/EventFactory$1
+c	dev/architectury/event/EventFactory$2	remapped/architectury/event/EventFactory$2
+c	dev/architectury/event/EventFactory$3	remapped/architectury/event/EventFactory$3
+c	dev/architectury/event/EventFactory$4	remapped/architectury/event/EventFactory$4
+c	dev/architectury/event/EventFactory$5	remapped/architectury/event/EventFactory$5
+c	dev/architectury/event/EventFactory$EventImpl	remapped/architectury/event/EventFactory$EventImpl
+c	dev/architectury/event/EventFactory	remapped/architectury/event/EventFactory
+c	dev/architectury/event/EventHandler	remapped/architectury/event/EventHandler
+c	dev/architectury/event/EventResult	remapped/architectury/event/EventResult
+c	dev/architectury/event/events/client/ClientChatEvent$Received	remapped/architectury/event/events/client/ClientChatEvent$Received
+c	dev/architectury/event/events/client/ClientChatEvent$Send	remapped/architectury/event/events/client/ClientChatEvent$Send
+c	dev/architectury/event/events/client/ClientChatEvent	remapped/architectury/event/events/client/ClientChatEvent
+c	dev/architectury/event/events/client/ClientCommandRegistrationEvent$ClientCommandSourceStack	remapped/architectury/event/events/client/ClientCommandRegistrationEvent$ClientCommandSourceStack
+c	dev/architectury/event/events/client/ClientCommandRegistrationEvent	remapped/architectury/event/events/client/ClientCommandRegistrationEvent
+c	dev/architectury/event/events/client/ClientGuiEvent$ContainerScreenRenderBackground	remapped/architectury/event/events/client/ClientGuiEvent$ContainerScreenRenderBackground
+c	dev/architectury/event/events/client/ClientGuiEvent$ContainerScreenRenderForeground	remapped/architectury/event/events/client/ClientGuiEvent$ContainerScreenRenderForeground
+c	dev/architectury/event/events/client/ClientGuiEvent$DebugText	remapped/architectury/event/events/client/ClientGuiEvent$DebugText
+c	dev/architectury/event/events/client/ClientGuiEvent$RenderHud	remapped/architectury/event/events/client/ClientGuiEvent$RenderHud
+c	dev/architectury/event/events/client/ClientGuiEvent$ScreenInitPost	remapped/architectury/event/events/client/ClientGuiEvent$ScreenInitPost
+c	dev/architectury/event/events/client/ClientGuiEvent$ScreenInitPre	remapped/architectury/event/events/client/ClientGuiEvent$ScreenInitPre
+c	dev/architectury/event/events/client/ClientGuiEvent$ScreenRenderPost	remapped/architectury/event/events/client/ClientGuiEvent$ScreenRenderPost
+c	dev/architectury/event/events/client/ClientGuiEvent$ScreenRenderPre	remapped/architectury/event/events/client/ClientGuiEvent$ScreenRenderPre
+c	dev/architectury/event/events/client/ClientGuiEvent$SetScreen	remapped/architectury/event/events/client/ClientGuiEvent$SetScreen
+c	dev/architectury/event/events/client/ClientGuiEvent	remapped/architectury/event/events/client/ClientGuiEvent
+c	dev/architectury/event/events/client/ClientLifecycleEvent$ClientLevelState	remapped/architectury/event/events/client/ClientLifecycleEvent$ClientLevelState
+c	dev/architectury/event/events/client/ClientLifecycleEvent$ClientState	remapped/architectury/event/events/client/ClientLifecycleEvent$ClientState
+c	dev/architectury/event/events/client/ClientLifecycleEvent	remapped/architectury/event/events/client/ClientLifecycleEvent
+c	dev/architectury/event/events/client/ClientPlayerEvent$ClientPlayerJoin	remapped/architectury/event/events/client/ClientPlayerEvent$ClientPlayerJoin
+c	dev/architectury/event/events/client/ClientPlayerEvent$ClientPlayerQuit	remapped/architectury/event/events/client/ClientPlayerEvent$ClientPlayerQuit
+c	dev/architectury/event/events/client/ClientPlayerEvent$ClientPlayerRespawn	remapped/architectury/event/events/client/ClientPlayerEvent$ClientPlayerRespawn
+c	dev/architectury/event/events/client/ClientPlayerEvent	remapped/architectury/event/events/client/ClientPlayerEvent
+c	dev/architectury/event/events/client/ClientRawInputEvent$KeyPressed	remapped/architectury/event/events/client/ClientRawInputEvent$KeyPressed
+c	dev/architectury/event/events/client/ClientRawInputEvent$MouseClicked	remapped/architectury/event/events/client/ClientRawInputEvent$MouseClicked
+c	dev/architectury/event/events/client/ClientRawInputEvent$MouseScrolled	remapped/architectury/event/events/client/ClientRawInputEvent$MouseScrolled
+c	dev/architectury/event/events/client/ClientRawInputEvent	remapped/architectury/event/events/client/ClientRawInputEvent
+c	dev/architectury/event/events/client/ClientRecipeUpdateEvent	remapped/architectury/event/events/client/ClientRecipeUpdateEvent
+c	dev/architectury/event/events/client/ClientReloadShadersEvent$ShadersSink	remapped/architectury/event/events/client/ClientReloadShadersEvent$ShadersSink
+c	dev/architectury/event/events/client/ClientReloadShadersEvent	remapped/architectury/event/events/client/ClientReloadShadersEvent
+c	dev/architectury/event/events/client/ClientScreenInputEvent$KeyPressed	remapped/architectury/event/events/client/ClientScreenInputEvent$KeyPressed
+c	dev/architectury/event/events/client/ClientScreenInputEvent$KeyReleased	remapped/architectury/event/events/client/ClientScreenInputEvent$KeyReleased
+c	dev/architectury/event/events/client/ClientScreenInputEvent$KeyTyped	remapped/architectury/event/events/client/ClientScreenInputEvent$KeyTyped
+c	dev/architectury/event/events/client/ClientScreenInputEvent$MouseClicked	remapped/architectury/event/events/client/ClientScreenInputEvent$MouseClicked
+c	dev/architectury/event/events/client/ClientScreenInputEvent$MouseDragged	remapped/architectury/event/events/client/ClientScreenInputEvent$MouseDragged
+c	dev/architectury/event/events/client/ClientScreenInputEvent$MouseReleased	remapped/architectury/event/events/client/ClientScreenInputEvent$MouseReleased
+c	dev/architectury/event/events/client/ClientScreenInputEvent$MouseScrolled	remapped/architectury/event/events/client/ClientScreenInputEvent$MouseScrolled
+c	dev/architectury/event/events/client/ClientScreenInputEvent	remapped/architectury/event/events/client/ClientScreenInputEvent
+c	dev/architectury/event/events/client/ClientSystemMessageEvent$Received	remapped/architectury/event/events/client/ClientSystemMessageEvent$Received
+c	dev/architectury/event/events/client/ClientSystemMessageEvent	remapped/architectury/event/events/client/ClientSystemMessageEvent
+c	dev/architectury/event/events/client/ClientTickEvent$Client	remapped/architectury/event/events/client/ClientTickEvent$Client
+c	dev/architectury/event/events/client/ClientTickEvent$ClientLevel	remapped/architectury/event/events/client/ClientTickEvent$ClientLevel
+c	dev/architectury/event/events/client/ClientTickEvent	remapped/architectury/event/events/client/ClientTickEvent
+c	dev/architectury/event/events/client/ClientTooltipEvent$AdditionalContexts	remapped/architectury/event/events/client/ClientTooltipEvent$AdditionalContexts
+c	dev/architectury/event/events/client/ClientTooltipEvent$ColorContext	remapped/architectury/event/events/client/ClientTooltipEvent$ColorContext
+c	dev/architectury/event/events/client/ClientTooltipEvent$Item	remapped/architectury/event/events/client/ClientTooltipEvent$Item
+c	dev/architectury/event/events/client/ClientTooltipEvent$PositionContext	remapped/architectury/event/events/client/ClientTooltipEvent$PositionContext
+c	dev/architectury/event/events/client/ClientTooltipEvent$Render	remapped/architectury/event/events/client/ClientTooltipEvent$Render
+c	dev/architectury/event/events/client/ClientTooltipEvent$RenderModifyColor	remapped/architectury/event/events/client/ClientTooltipEvent$RenderModifyColor
+c	dev/architectury/event/events/client/ClientTooltipEvent$RenderModifyPosition	remapped/architectury/event/events/client/ClientTooltipEvent$RenderModifyPosition
+c	dev/architectury/event/events/client/ClientTooltipEvent	remapped/architectury/event/events/client/ClientTooltipEvent
+c	dev/architectury/event/events/common/BlockEvent$Break	remapped/architectury/event/events/common/BlockEvent$Break
+c	dev/architectury/event/events/common/BlockEvent$FallingLand	remapped/architectury/event/events/common/BlockEvent$FallingLand
+c	dev/architectury/event/events/common/BlockEvent$Place	remapped/architectury/event/events/common/BlockEvent$Place
+c	dev/architectury/event/events/common/BlockEvent	remapped/architectury/event/events/common/BlockEvent
+c	dev/architectury/event/events/common/ChatEvent$ChatComponent	remapped/architectury/event/events/common/ChatEvent$ChatComponent
+c	dev/architectury/event/events/common/ChatEvent$Decorate	remapped/architectury/event/events/common/ChatEvent$Decorate
+c	dev/architectury/event/events/common/ChatEvent$Received	remapped/architectury/event/events/common/ChatEvent$Received
+c	dev/architectury/event/events/common/ChatEvent	remapped/architectury/event/events/common/ChatEvent
+c	dev/architectury/event/events/common/ChunkEvent$LoadData	remapped/architectury/event/events/common/ChunkEvent$LoadData
+c	dev/architectury/event/events/common/ChunkEvent$SaveData	remapped/architectury/event/events/common/ChunkEvent$SaveData
+c	dev/architectury/event/events/common/ChunkEvent	remapped/architectury/event/events/common/ChunkEvent
+c	dev/architectury/event/events/common/CommandPerformEvent	remapped/architectury/event/events/common/CommandPerformEvent
+c	dev/architectury/event/events/common/CommandRegistrationEvent	remapped/architectury/event/events/common/CommandRegistrationEvent
+c	dev/architectury/event/events/common/EntityEvent$Add	remapped/architectury/event/events/common/EntityEvent$Add
+c	dev/architectury/event/events/common/EntityEvent$AnimalTame	remapped/architectury/event/events/common/EntityEvent$AnimalTame
+c	dev/architectury/event/events/common/EntityEvent$EnterSection	remapped/architectury/event/events/common/EntityEvent$EnterSection
+c	dev/architectury/event/events/common/EntityEvent$LivingCheckSpawn	remapped/architectury/event/events/common/EntityEvent$LivingCheckSpawn
+c	dev/architectury/event/events/common/EntityEvent$LivingDeath	remapped/architectury/event/events/common/EntityEvent$LivingDeath
+c	dev/architectury/event/events/common/EntityEvent$LivingHurt	remapped/architectury/event/events/common/EntityEvent$LivingHurt
+c	dev/architectury/event/events/common/EntityEvent	remapped/architectury/event/events/common/EntityEvent
+c	dev/architectury/event/events/common/ExplosionEvent$Detonate	remapped/architectury/event/events/common/ExplosionEvent$Detonate
+c	dev/architectury/event/events/common/ExplosionEvent$Pre	remapped/architectury/event/events/common/ExplosionEvent$Pre
+c	dev/architectury/event/events/common/ExplosionEvent	remapped/architectury/event/events/common/ExplosionEvent
+c	dev/architectury/event/events/common/InteractionEvent$ClientLeftClickAir	remapped/architectury/event/events/common/InteractionEvent$ClientLeftClickAir
+c	dev/architectury/event/events/common/InteractionEvent$ClientRightClickAir	remapped/architectury/event/events/common/InteractionEvent$ClientRightClickAir
+c	dev/architectury/event/events/common/InteractionEvent$FarmlandTrample	remapped/architectury/event/events/common/InteractionEvent$FarmlandTrample
+c	dev/architectury/event/events/common/InteractionEvent$InteractEntity	remapped/architectury/event/events/common/InteractionEvent$InteractEntity
+c	dev/architectury/event/events/common/InteractionEvent$LeftClickBlock	remapped/architectury/event/events/common/InteractionEvent$LeftClickBlock
+c	dev/architectury/event/events/common/InteractionEvent$RightClickBlock	remapped/architectury/event/events/common/InteractionEvent$RightClickBlock
+c	dev/architectury/event/events/common/InteractionEvent$RightClickItem	remapped/architectury/event/events/common/InteractionEvent$RightClickItem
+c	dev/architectury/event/events/common/InteractionEvent	remapped/architectury/event/events/common/InteractionEvent
+c	dev/architectury/event/events/common/LifecycleEvent$InstanceState	remapped/architectury/event/events/common/LifecycleEvent$InstanceState
+c	dev/architectury/event/events/common/LifecycleEvent$LevelState	remapped/architectury/event/events/common/LifecycleEvent$LevelState
+c	dev/architectury/event/events/common/LifecycleEvent$ServerLevelState	remapped/architectury/event/events/common/LifecycleEvent$ServerLevelState
+c	dev/architectury/event/events/common/LifecycleEvent$ServerState	remapped/architectury/event/events/common/LifecycleEvent$ServerState
+c	dev/architectury/event/events/common/LifecycleEvent	remapped/architectury/event/events/common/LifecycleEvent
+c	dev/architectury/event/events/common/LightningEvent$Strike	remapped/architectury/event/events/common/LightningEvent$Strike
+c	dev/architectury/event/events/common/LightningEvent	remapped/architectury/event/events/common/LightningEvent
+c	dev/architectury/event/events/common/LootEvent$LootTableModificationContext	remapped/architectury/event/events/common/LootEvent$LootTableModificationContext
+c	dev/architectury/event/events/common/LootEvent$ModifyLootTable	remapped/architectury/event/events/common/LootEvent$ModifyLootTable
+c	dev/architectury/event/events/common/LootEvent	remapped/architectury/event/events/common/LootEvent
+c	dev/architectury/event/events/common/PlayerEvent$AttackEntity	remapped/architectury/event/events/common/PlayerEvent$AttackEntity
+c	dev/architectury/event/events/common/PlayerEvent$ChangeDimension	remapped/architectury/event/events/common/PlayerEvent$ChangeDimension
+c	dev/architectury/event/events/common/PlayerEvent$CloseMenu	remapped/architectury/event/events/common/PlayerEvent$CloseMenu
+c	dev/architectury/event/events/common/PlayerEvent$CraftItem	remapped/architectury/event/events/common/PlayerEvent$CraftItem
+c	dev/architectury/event/events/common/PlayerEvent$DropItem	remapped/architectury/event/events/common/PlayerEvent$DropItem
+c	dev/architectury/event/events/common/PlayerEvent$FillBucket	remapped/architectury/event/events/common/PlayerEvent$FillBucket
+c	dev/architectury/event/events/common/PlayerEvent$OpenMenu	remapped/architectury/event/events/common/PlayerEvent$OpenMenu
+c	dev/architectury/event/events/common/PlayerEvent$PickupItem	remapped/architectury/event/events/common/PlayerEvent$PickupItem
+c	dev/architectury/event/events/common/PlayerEvent$PickupItemPredicate	remapped/architectury/event/events/common/PlayerEvent$PickupItemPredicate
+c	dev/architectury/event/events/common/PlayerEvent$PlayerAdvancement	remapped/architectury/event/events/common/PlayerEvent$PlayerAdvancement
+c	dev/architectury/event/events/common/PlayerEvent$PlayerClone	remapped/architectury/event/events/common/PlayerEvent$PlayerClone
+c	dev/architectury/event/events/common/PlayerEvent$PlayerJoin	remapped/architectury/event/events/common/PlayerEvent$PlayerJoin
+c	dev/architectury/event/events/common/PlayerEvent$PlayerQuit	remapped/architectury/event/events/common/PlayerEvent$PlayerQuit
+c	dev/architectury/event/events/common/PlayerEvent$PlayerRespawn	remapped/architectury/event/events/common/PlayerEvent$PlayerRespawn
+c	dev/architectury/event/events/common/PlayerEvent$SmeltItem	remapped/architectury/event/events/common/PlayerEvent$SmeltItem
+c	dev/architectury/event/events/common/PlayerEvent	remapped/architectury/event/events/common/PlayerEvent
+c	dev/architectury/event/events/common/TickEvent$LevelTick	remapped/architectury/event/events/common/TickEvent$LevelTick
+c	dev/architectury/event/events/common/TickEvent$Player	remapped/architectury/event/events/common/TickEvent$Player
+c	dev/architectury/event/events/common/TickEvent$Server	remapped/architectury/event/events/common/TickEvent$Server
+c	dev/architectury/event/events/common/TickEvent$ServerLevelTick	remapped/architectury/event/events/common/TickEvent$ServerLevelTick
+c	dev/architectury/event/events/common/TickEvent	remapped/architectury/event/events/common/TickEvent
+c	dev/architectury/event/fabric/EventFactoryImpl	remapped/architectury/event/fabric/EventFactoryImpl
+c	dev/architectury/event/fabric/EventHandlerImpl	remapped/architectury/event/fabric/EventHandlerImpl
+c	dev/architectury/event/fabric/LootTableModificationContextImpl	remapped/architectury/event/fabric/LootTableModificationContextImpl
+c	dev/architectury/extensions/ItemExtension	remapped/architectury/extensions/ItemExtension
+c	dev/architectury/extensions/injected/InjectedBlockExtension	remapped/architectury/extensions/injected/InjectedBlockExtension
+c	dev/architectury/extensions/injected/InjectedBucketItemExtension	remapped/architectury/extensions/injected/InjectedBucketItemExtension
+c	dev/architectury/extensions/injected/InjectedEntityTypeExtension	remapped/architectury/extensions/injected/InjectedEntityTypeExtension
+c	dev/architectury/extensions/injected/InjectedFluidExtension	remapped/architectury/extensions/injected/InjectedFluidExtension
+c	dev/architectury/extensions/injected/InjectedFoodPropertiesBuilderExtension	remapped/architectury/extensions/injected/InjectedFoodPropertiesBuilderExtension
+c	dev/architectury/extensions/injected/InjectedItemExtension	remapped/architectury/extensions/injected/InjectedItemExtension
+c	dev/architectury/extensions/injected/InjectedItemPropertiesExtension	remapped/architectury/extensions/injected/InjectedItemPropertiesExtension
+c	dev/architectury/extensions/injected/InjectedLiquidBlockExtension	remapped/architectury/extensions/injected/InjectedLiquidBlockExtension
+c	dev/architectury/extensions/injected/InjectedRegistryEntryExtension	remapped/architectury/extensions/injected/InjectedRegistryEntryExtension
+c	dev/architectury/extensions/network/EntitySpawnExtension	remapped/architectury/extensions/network/EntitySpawnExtension
+c	dev/architectury/fluid/FluidStack$FluidStackAdapter	remapped/architectury/fluid/FluidStack$FluidStackAdapter
+c	dev/architectury/fluid/FluidStack	remapped/architectury/fluid/FluidStack
+c	dev/architectury/fluid/fabric/FluidStackImpl$Pair	remapped/architectury/fluid/fabric/FluidStackImpl$Pair
+c	dev/architectury/fluid/fabric/FluidStackImpl	remapped/architectury/fluid/fabric/FluidStackImpl
+c	dev/architectury/hooks/DyeColorHooks	remapped/architectury/hooks/DyeColorHooks
+c	dev/architectury/hooks/PackRepositoryHooks	remapped/architectury/hooks/PackRepositoryHooks
+c	dev/architectury/hooks/block/BlockEntityHooks	remapped/architectury/hooks/block/BlockEntityHooks
+c	dev/architectury/hooks/client/screen/ScreenAccess	remapped/architectury/hooks/client/screen/ScreenAccess
+c	dev/architectury/hooks/client/screen/ScreenHooks	remapped/architectury/hooks/client/screen/ScreenHooks
+c	dev/architectury/hooks/client/screen/fabric/ScreenHooksImpl	remapped/architectury/hooks/client/screen/fabric/ScreenHooksImpl
+c	dev/architectury/hooks/fabric/DyeColorHooksImpl	remapped/architectury/hooks/fabric/DyeColorHooksImpl
+c	dev/architectury/hooks/fabric/PackRepositoryHooksImpl	remapped/architectury/hooks/fabric/PackRepositoryHooksImpl
+c	dev/architectury/hooks/fabric/PersistentEntitySectionManagerHooks	remapped/architectury/hooks/fabric/PersistentEntitySectionManagerHooks
+c	dev/architectury/hooks/fluid/FluidBucketHooks	remapped/architectury/hooks/fluid/FluidBucketHooks
+c	dev/architectury/hooks/fluid/FluidStackHooks	remapped/architectury/hooks/fluid/FluidStackHooks
+c	dev/architectury/hooks/fluid/LiquidBlockHooks	remapped/architectury/hooks/fluid/LiquidBlockHooks
+c	dev/architectury/hooks/fluid/fabric/FluidBucketHooksImpl	remapped/architectury/hooks/fluid/fabric/FluidBucketHooksImpl
+c	dev/architectury/hooks/fluid/fabric/FluidStackHooksFabric	remapped/architectury/hooks/fluid/fabric/FluidStackHooksFabric
+c	dev/architectury/hooks/fluid/fabric/FluidStackHooksImpl	remapped/architectury/hooks/fluid/fabric/FluidStackHooksImpl
+c	dev/architectury/hooks/fluid/fabric/LiquidBlockHooksImpl	remapped/architectury/hooks/fluid/fabric/LiquidBlockHooksImpl
+c	dev/architectury/hooks/item/ItemStackHooks	remapped/architectury/hooks/item/ItemStackHooks
+c	dev/architectury/hooks/item/fabric/ItemStackHooksImpl	remapped/architectury/hooks/item/fabric/ItemStackHooksImpl
+c	dev/architectury/hooks/item/food/FoodPropertiesHooks	remapped/architectury/hooks/item/food/FoodPropertiesHooks
+c	dev/architectury/hooks/item/food/fabric/FoodPropertiesHooksImpl	remapped/architectury/hooks/item/food/fabric/FoodPropertiesHooksImpl
+c	dev/architectury/hooks/item/tool/AxeItemHooks	remapped/architectury/hooks/item/tool/AxeItemHooks
+c	dev/architectury/hooks/item/tool/HoeItemHooks	remapped/architectury/hooks/item/tool/HoeItemHooks
+c	dev/architectury/hooks/item/tool/ShovelItemHooks	remapped/architectury/hooks/item/tool/ShovelItemHooks
+c	dev/architectury/hooks/item/tool/fabric/HoeItemHooksImpl	remapped/architectury/hooks/item/tool/fabric/HoeItemHooksImpl
+c	dev/architectury/hooks/level/ExplosionHooks	remapped/architectury/hooks/level/ExplosionHooks
+c	dev/architectury/hooks/level/biome/BiomeHooks$BiomeWrapped	remapped/architectury/hooks/level/biome/BiomeHooks$BiomeWrapped
+c	dev/architectury/hooks/level/biome/BiomeHooks$ClimateWrapped	remapped/architectury/hooks/level/biome/BiomeHooks$ClimateWrapped
+c	dev/architectury/hooks/level/biome/BiomeHooks$EffectsWrapped	remapped/architectury/hooks/level/biome/BiomeHooks$EffectsWrapped
+c	dev/architectury/hooks/level/biome/BiomeHooks$GenerationSettingsWrapped	remapped/architectury/hooks/level/biome/BiomeHooks$GenerationSettingsWrapped
+c	dev/architectury/hooks/level/biome/BiomeHooks$MutableBiomeWrapped	remapped/architectury/hooks/level/biome/BiomeHooks$MutableBiomeWrapped
+c	dev/architectury/hooks/level/biome/BiomeHooks$SpawnSettingsWrapped	remapped/architectury/hooks/level/biome/BiomeHooks$SpawnSettingsWrapped
+c	dev/architectury/hooks/level/biome/BiomeHooks	remapped/architectury/hooks/level/biome/BiomeHooks
+c	dev/architectury/hooks/level/biome/BiomeProperties$Mutable	remapped/architectury/hooks/level/biome/BiomeProperties$Mutable
+c	dev/architectury/hooks/level/biome/BiomeProperties	remapped/architectury/hooks/level/biome/BiomeProperties
+c	dev/architectury/hooks/level/biome/ClimateProperties$Mutable	remapped/architectury/hooks/level/biome/ClimateProperties$Mutable
+c	dev/architectury/hooks/level/biome/ClimateProperties	remapped/architectury/hooks/level/biome/ClimateProperties
+c	dev/architectury/hooks/level/biome/EffectsProperties$Mutable	remapped/architectury/hooks/level/biome/EffectsProperties$Mutable
+c	dev/architectury/hooks/level/biome/EffectsProperties	remapped/architectury/hooks/level/biome/EffectsProperties
+c	dev/architectury/hooks/level/biome/GenerationProperties$Mutable	remapped/architectury/hooks/level/biome/GenerationProperties$Mutable
+c	dev/architectury/hooks/level/biome/GenerationProperties	remapped/architectury/hooks/level/biome/GenerationProperties
+c	dev/architectury/hooks/level/biome/SpawnProperties$Mutable	remapped/architectury/hooks/level/biome/SpawnProperties$Mutable
+c	dev/architectury/hooks/level/biome/SpawnProperties	remapped/architectury/hooks/level/biome/SpawnProperties
+c	dev/architectury/hooks/level/biome/fabric/BiomeHooksImpl	remapped/architectury/hooks/level/biome/fabric/BiomeHooksImpl
+c	dev/architectury/hooks/level/entity/EntityHooks	remapped/architectury/hooks/level/entity/EntityHooks
+c	dev/architectury/hooks/level/entity/ItemEntityHooks	remapped/architectury/hooks/level/entity/ItemEntityHooks
+c	dev/architectury/hooks/level/entity/PlayerHooks	remapped/architectury/hooks/level/entity/PlayerHooks
+c	dev/architectury/hooks/level/entity/fabric/EntityHooksImpl$1	remapped/architectury/hooks/level/entity/fabric/EntityHooksImpl$1
+c	dev/architectury/hooks/level/entity/fabric/EntityHooksImpl	remapped/architectury/hooks/level/entity/fabric/EntityHooksImpl
+c	dev/architectury/hooks/level/entity/fabric/FakePlayers	remapped/architectury/hooks/level/entity/fabric/FakePlayers
+c	dev/architectury/hooks/level/entity/fabric/ItemEntityHooksImpl$1	remapped/architectury/hooks/level/entity/fabric/ItemEntityHooksImpl$1
+c	dev/architectury/hooks/level/entity/fabric/ItemEntityHooksImpl	remapped/architectury/hooks/level/entity/fabric/ItemEntityHooksImpl
+c	dev/architectury/hooks/level/entity/fabric/PlayerHooksImpl	remapped/architectury/hooks/level/entity/fabric/PlayerHooksImpl
+c	dev/architectury/impl/ItemPropertiesExtensionImpl	remapped/architectury/impl/ItemPropertiesExtensionImpl
+c	dev/architectury/impl/NetworkAggregator$Adaptor	remapped/architectury/impl/NetworkAggregator$Adaptor
+c	dev/architectury/impl/NetworkAggregator$BufCustomPacketPayload	remapped/architectury/impl/NetworkAggregator$BufCustomPacketPayload
+c	dev/architectury/impl/NetworkAggregator	remapped/architectury/impl/NetworkAggregator
+c	dev/architectury/impl/RegistrySupplierImpl	remapped/architectury/impl/RegistrySupplierImpl
+c	dev/architectury/impl/ScreenAccessImpl	remapped/architectury/impl/ScreenAccessImpl
+c	dev/architectury/impl/TooltipAdditionalContextsImpl	remapped/architectury/impl/TooltipAdditionalContextsImpl
+c	dev/architectury/impl/TooltipEventColorContextImpl	remapped/architectury/impl/TooltipEventColorContextImpl
+c	dev/architectury/impl/TooltipEventPositionContextImpl	remapped/architectury/impl/TooltipEventPositionContextImpl
+c	dev/architectury/impl/fabric/ChatComponentImpl	remapped/architectury/impl/fabric/ChatComponentImpl
+c	dev/architectury/impl/fabric/ScreenInputDelegate$DelegateScreen	remapped/architectury/impl/fabric/ScreenInputDelegate$DelegateScreen
+c	dev/architectury/impl/fabric/ScreenInputDelegate	remapped/architectury/impl/fabric/ScreenInputDelegate
+c	dev/architectury/impl/package-info	remapped/architectury/impl/package-info
+c	dev/architectury/init/fabric/ArchitecturyClient	remapped/architectury/init/fabric/ArchitecturyClient
+c	dev/architectury/init/fabric/ArchitecturyServer	remapped/architectury/init/fabric/ArchitecturyServer
+c	dev/architectury/mixin/MixinLightningBolt	remapped/architectury/mixin/MixinLightningBolt
+c	dev/architectury/mixin/fabric/BiomeAccessor	remapped/architectury/mixin/fabric/BiomeAccessor
+c	dev/architectury/mixin/fabric/BucketItemAccessor	remapped/architectury/mixin/fabric/BucketItemAccessor
+c	dev/architectury/mixin/fabric/HorseTameInvoker	remapped/architectury/mixin/fabric/HorseTameInvoker
+c	dev/architectury/mixin/fabric/LiquidBlockAccessor	remapped/architectury/mixin/fabric/LiquidBlockAccessor
+c	dev/architectury/mixin/fabric/LivingDeathInvoker	remapped/architectury/mixin/fabric/LivingDeathInvoker
+c	dev/architectury/mixin/fabric/MixinBaseSpawner	remapped/architectury/mixin/fabric/MixinBaseSpawner
+c	dev/architectury/mixin/fabric/MixinBlockItem	remapped/architectury/mixin/fabric/MixinBlockItem
+c	dev/architectury/mixin/fabric/MixinBucketItem	remapped/architectury/mixin/fabric/MixinBucketItem
+c	dev/architectury/mixin/fabric/MixinCatSpawner	remapped/architectury/mixin/fabric/MixinCatSpawner
+c	dev/architectury/mixin/fabric/MixinChunkMap	remapped/architectury/mixin/fabric/MixinChunkMap
+c	dev/architectury/mixin/fabric/MixinChunkSerializer	remapped/architectury/mixin/fabric/MixinChunkSerializer
+c	dev/architectury/mixin/fabric/MixinCommands	remapped/architectury/mixin/fabric/MixinCommands
+c	dev/architectury/mixin/fabric/MixinDedicatedServer	remapped/architectury/mixin/fabric/MixinDedicatedServer
+c	dev/architectury/mixin/fabric/MixinEntity	remapped/architectury/mixin/fabric/MixinEntity
+c	dev/architectury/mixin/fabric/MixinExplosion	remapped/architectury/mixin/fabric/MixinExplosion
+c	dev/architectury/mixin/fabric/MixinFallingBlockEntity	remapped/architectury/mixin/fabric/MixinFallingBlockEntity
+c	dev/architectury/mixin/fabric/MixinFarmBlock	remapped/architectury/mixin/fabric/MixinFarmBlock
+c	dev/architectury/mixin/fabric/MixinFurnaceResultSlot	remapped/architectury/mixin/fabric/MixinFurnaceResultSlot
+c	dev/architectury/mixin/fabric/MixinInventory	remapped/architectury/mixin/fabric/MixinInventory
+c	dev/architectury/mixin/fabric/MixinItemEntity	remapped/architectury/mixin/fabric/MixinItemEntity
+c	dev/architectury/mixin/fabric/MixinLevel	remapped/architectury/mixin/fabric/MixinLevel
+c	dev/architectury/mixin/fabric/MixinLivingEntity	remapped/architectury/mixin/fabric/MixinLivingEntity
+c	dev/architectury/mixin/fabric/MixinNaturalSpawner	remapped/architectury/mixin/fabric/MixinNaturalSpawner
+c	dev/architectury/mixin/fabric/MixinOcelot	remapped/architectury/mixin/fabric/MixinOcelot
+c	dev/architectury/mixin/fabric/MixinPatrolSpawner	remapped/architectury/mixin/fabric/MixinPatrolSpawner
+c	dev/architectury/mixin/fabric/MixinPersistentEntitySectionManager	remapped/architectury/mixin/fabric/MixinPersistentEntitySectionManager
+c	dev/architectury/mixin/fabric/MixinPhantomSpawner	remapped/architectury/mixin/fabric/MixinPhantomSpawner
+c	dev/architectury/mixin/fabric/MixinPlayer	remapped/architectury/mixin/fabric/MixinPlayer
+c	dev/architectury/mixin/fabric/MixinPlayerAdvancements	remapped/architectury/mixin/fabric/MixinPlayerAdvancements
+c	dev/architectury/mixin/fabric/MixinPlayerList	remapped/architectury/mixin/fabric/MixinPlayerList
+c	dev/architectury/mixin/fabric/MixinResultSlot	remapped/architectury/mixin/fabric/MixinResultSlot
+c	dev/architectury/mixin/fabric/MixinServerLevel	remapped/architectury/mixin/fabric/MixinServerLevel
+c	dev/architectury/mixin/fabric/MixinServerPlayer	remapped/architectury/mixin/fabric/MixinServerPlayer
+c	dev/architectury/mixin/fabric/MixinServerPlayerGameMode	remapped/architectury/mixin/fabric/MixinServerPlayerGameMode
+c	dev/architectury/mixin/fabric/MixinTamableAnimal	remapped/architectury/mixin/fabric/MixinTamableAnimal
+c	dev/architectury/mixin/fabric/PlayerAttackInvoker	remapped/architectury/mixin/fabric/PlayerAttackInvoker
+c	dev/architectury/mixin/fabric/client/ClientPlayerAttackInvoker	remapped/architectury/mixin/fabric/client/ClientPlayerAttackInvoker
+c	dev/architectury/mixin/fabric/client/MixinAbstractContainerScreen	remapped/architectury/mixin/fabric/client/MixinAbstractContainerScreen
+c	dev/architectury/mixin/fabric/client/MixinChatListener	remapped/architectury/mixin/fabric/client/MixinChatListener
+c	dev/architectury/mixin/fabric/client/MixinClientLevel	remapped/architectury/mixin/fabric/client/MixinClientLevel
+c	dev/architectury/mixin/fabric/client/MixinClientPacketListener	remapped/architectury/mixin/fabric/client/MixinClientPacketListener
+c	dev/architectury/mixin/fabric/client/MixinDebugScreenOverlay	remapped/architectury/mixin/fabric/client/MixinDebugScreenOverlay
+c	dev/architectury/mixin/fabric/client/MixinEffectInstance	remapped/architectury/mixin/fabric/client/MixinEffectInstance
+c	dev/architectury/mixin/fabric/client/MixinFabricClientCommandSource	remapped/architectury/mixin/fabric/client/MixinFabricClientCommandSource
+c	dev/architectury/mixin/fabric/client/MixinGameRenderer	remapped/architectury/mixin/fabric/client/MixinGameRenderer
+c	dev/architectury/mixin/fabric/client/MixinGuiGraphics	remapped/architectury/mixin/fabric/client/MixinGuiGraphics
+c	dev/architectury/mixin/fabric/client/MixinIntegratedServer	remapped/architectury/mixin/fabric/client/MixinIntegratedServer
+c	dev/architectury/mixin/fabric/client/MixinKeyboardHandler	remapped/architectury/mixin/fabric/client/MixinKeyboardHandler
+c	dev/architectury/mixin/fabric/client/MixinMinecraft	remapped/architectury/mixin/fabric/client/MixinMinecraft
+c	dev/architectury/mixin/fabric/client/MixinMouseHandler	remapped/architectury/mixin/fabric/client/MixinMouseHandler
+c	dev/architectury/mixin/fabric/client/MixinMultiPlayerGameMode	remapped/architectury/mixin/fabric/client/MixinMultiPlayerGameMode
+c	dev/architectury/mixin/fabric/client/MixinScreen	remapped/architectury/mixin/fabric/client/MixinScreen
+c	dev/architectury/mixin/fabric/client/MixinTooltipRenderUtil	remapped/architectury/mixin/fabric/client/MixinTooltipRenderUtil
+c	dev/architectury/mixin/inject/MixinBlock	remapped/architectury/mixin/inject/MixinBlock
+c	dev/architectury/mixin/inject/MixinBucketItem	remapped/architectury/mixin/inject/MixinBucketItem
+c	dev/architectury/mixin/inject/MixinEntityType	remapped/architectury/mixin/inject/MixinEntityType
+c	dev/architectury/mixin/inject/MixinFluid	remapped/architectury/mixin/inject/MixinFluid
+c	dev/architectury/mixin/inject/MixinFoodPropertiesBuilder	remapped/architectury/mixin/inject/MixinFoodPropertiesBuilder
+c	dev/architectury/mixin/inject/MixinItem	remapped/architectury/mixin/inject/MixinItem
+c	dev/architectury/mixin/inject/MixinItemProperties	remapped/architectury/mixin/inject/MixinItemProperties
+c	dev/architectury/mixin/inject/MixinLiquidBlock	remapped/architectury/mixin/inject/MixinLiquidBlock
+c	dev/architectury/networking/NetworkChannel$MessageInfo	remapped/architectury/networking/NetworkChannel$MessageInfo
+c	dev/architectury/networking/NetworkChannel	remapped/architectury/networking/NetworkChannel
+c	dev/architectury/networking/NetworkManager$NetworkReceiver	remapped/architectury/networking/NetworkManager$NetworkReceiver
+c	dev/architectury/networking/NetworkManager$PacketContext	remapped/architectury/networking/NetworkManager$PacketContext
+c	dev/architectury/networking/NetworkManager$Side	remapped/architectury/networking/NetworkManager$Side
+c	dev/architectury/networking/NetworkManager	remapped/architectury/networking/NetworkManager
+c	dev/architectury/networking/SpawnEntityPacket$Client	remapped/architectury/networking/SpawnEntityPacket$Client
+c	dev/architectury/networking/SpawnEntityPacket$PacketPayload	remapped/architectury/networking/SpawnEntityPacket$PacketPayload
+c	dev/architectury/networking/SpawnEntityPacket	remapped/architectury/networking/SpawnEntityPacket
+c	dev/architectury/networking/fabric/NetworkManagerImpl$1$ClientPlayPayloadHandler	remapped/architectury/networking/fabric/NetworkManagerImpl$1$ClientPlayPayloadHandler
+c	dev/architectury/networking/fabric/NetworkManagerImpl$1	remapped/architectury/networking/fabric/NetworkManagerImpl$1
+c	dev/architectury/networking/fabric/NetworkManagerImpl$2	remapped/architectury/networking/fabric/NetworkManagerImpl$2
+c	dev/architectury/networking/fabric/NetworkManagerImpl	remapped/architectury/networking/fabric/NetworkManagerImpl
+c	dev/architectury/networking/simple/BaseC2SMessage	remapped/architectury/networking/simple/BaseC2SMessage
+c	dev/architectury/networking/simple/BaseS2CMessage	remapped/architectury/networking/simple/BaseS2CMessage
+c	dev/architectury/networking/simple/Message	remapped/architectury/networking/simple/Message
+c	dev/architectury/networking/simple/MessageDecoder	remapped/architectury/networking/simple/MessageDecoder
+c	dev/architectury/networking/simple/MessageType	remapped/architectury/networking/simple/MessageType
+c	dev/architectury/networking/simple/SimpleNetworkManager	remapped/architectury/networking/simple/SimpleNetworkManager
+c	dev/architectury/networking/simple/package-info	remapped/architectury/networking/simple/package-info
+c	dev/architectury/networking/transformers/PacketCollector	remapped/architectury/networking/transformers/PacketCollector
+c	dev/architectury/networking/transformers/PacketSink	remapped/architectury/networking/transformers/PacketSink
+c	dev/architectury/networking/transformers/PacketTransformer$1	remapped/architectury/networking/transformers/PacketTransformer$1
+c	dev/architectury/networking/transformers/PacketTransformer$2	remapped/architectury/networking/transformers/PacketTransformer$2
+c	dev/architectury/networking/transformers/PacketTransformer$TransformationSink	remapped/architectury/networking/transformers/PacketTransformer$TransformationSink
+c	dev/architectury/networking/transformers/PacketTransformer	remapped/architectury/networking/transformers/PacketTransformer
+c	dev/architectury/networking/transformers/SinglePacketCollector	remapped/architectury/networking/transformers/SinglePacketCollector
+c	dev/architectury/networking/transformers/SplitPacketTransformer$Client	remapped/architectury/networking/transformers/SplitPacketTransformer$Client
+c	dev/architectury/networking/transformers/SplitPacketTransformer$PartData	remapped/architectury/networking/transformers/SplitPacketTransformer$PartData
+c	dev/architectury/networking/transformers/SplitPacketTransformer$PartKey	remapped/architectury/networking/transformers/SplitPacketTransformer$PartKey
+c	dev/architectury/networking/transformers/SplitPacketTransformer	remapped/architectury/networking/transformers/SplitPacketTransformer
+c	dev/architectury/platform/Mod$ConfigurationScreenProvider	remapped/architectury/platform/Mod$ConfigurationScreenProvider
+c	dev/architectury/platform/Mod	remapped/architectury/platform/Mod
+c	dev/architectury/platform/Platform	remapped/architectury/platform/Platform
+c	dev/architectury/platform/fabric/PlatformImpl$ModImpl	remapped/architectury/platform/fabric/PlatformImpl$ModImpl
+c	dev/architectury/platform/fabric/PlatformImpl	remapped/architectury/platform/fabric/PlatformImpl
+c	dev/architectury/plugin/fabric/ArchitecturyMixinPlugin	remapped/architectury/plugin/fabric/ArchitecturyMixinPlugin
+c	dev/architectury/registry/CreativeTabOutput	remapped/architectury/registry/CreativeTabOutput
+c	dev/architectury/registry/CreativeTabRegistry$ModifyTabCallback	remapped/architectury/registry/CreativeTabRegistry$ModifyTabCallback
+c	dev/architectury/registry/CreativeTabRegistry	remapped/architectury/registry/CreativeTabRegistry
+c	dev/architectury/registry/ReloadListenerRegistry	remapped/architectury/registry/ReloadListenerRegistry
+c	dev/architectury/registry/client/gui/ClientTooltipComponentRegistry	remapped/architectury/registry/client/gui/ClientTooltipComponentRegistry
+c	dev/architectury/registry/client/gui/fabric/ClientTooltipComponentRegistryImpl	remapped/architectury/registry/client/gui/fabric/ClientTooltipComponentRegistryImpl
+c	dev/architectury/registry/client/keymappings/KeyMappingRegistry	remapped/architectury/registry/client/keymappings/KeyMappingRegistry
+c	dev/architectury/registry/client/keymappings/fabric/KeyMappingRegistryImpl	remapped/architectury/registry/client/keymappings/fabric/KeyMappingRegistryImpl
+c	dev/architectury/registry/client/level/entity/EntityModelLayerRegistry	remapped/architectury/registry/client/level/entity/EntityModelLayerRegistry
+c	dev/architectury/registry/client/level/entity/EntityRendererRegistry	remapped/architectury/registry/client/level/entity/EntityRendererRegistry
+c	dev/architectury/registry/client/level/entity/fabric/EntityModelLayerRegistryImpl	remapped/architectury/registry/client/level/entity/fabric/EntityModelLayerRegistryImpl
+c	dev/architectury/registry/client/level/entity/fabric/EntityRendererRegistryImpl	remapped/architectury/registry/client/level/entity/fabric/EntityRendererRegistryImpl
+c	dev/architectury/registry/client/particle/ParticleProviderRegistry$DeferredParticleProvider	remapped/architectury/registry/client/particle/ParticleProviderRegistry$DeferredParticleProvider
+c	dev/architectury/registry/client/particle/ParticleProviderRegistry$ExtendedSpriteSet	remapped/architectury/registry/client/particle/ParticleProviderRegistry$ExtendedSpriteSet
+c	dev/architectury/registry/client/particle/ParticleProviderRegistry	remapped/architectury/registry/client/particle/ParticleProviderRegistry
+c	dev/architectury/registry/client/particle/fabric/ParticleProviderRegistryImpl	remapped/architectury/registry/client/particle/fabric/ParticleProviderRegistryImpl
+c	dev/architectury/registry/client/rendering/BlockEntityRendererRegistry	remapped/architectury/registry/client/rendering/BlockEntityRendererRegistry
+c	dev/architectury/registry/client/rendering/ColorHandlerRegistry	remapped/architectury/registry/client/rendering/ColorHandlerRegistry
+c	dev/architectury/registry/client/rendering/RenderTypeRegistry	remapped/architectury/registry/client/rendering/RenderTypeRegistry
+c	dev/architectury/registry/client/rendering/fabric/BlockEntityRendererRegistryImpl	remapped/architectury/registry/client/rendering/fabric/BlockEntityRendererRegistryImpl
+c	dev/architectury/registry/client/rendering/fabric/ColorHandlerRegistryImpl	remapped/architectury/registry/client/rendering/fabric/ColorHandlerRegistryImpl
+c	dev/architectury/registry/client/rendering/fabric/RenderTypeRegistryImpl	remapped/architectury/registry/client/rendering/fabric/RenderTypeRegistryImpl
+c	dev/architectury/registry/fabric/CreativeTabRegistryImpl$1	remapped/architectury/registry/fabric/CreativeTabRegistryImpl$1
+c	dev/architectury/registry/fabric/CreativeTabRegistryImpl$2	remapped/architectury/registry/fabric/CreativeTabRegistryImpl$2
+c	dev/architectury/registry/fabric/CreativeTabRegistryImpl$3	remapped/architectury/registry/fabric/CreativeTabRegistryImpl$3
+c	dev/architectury/registry/fabric/CreativeTabRegistryImpl	remapped/architectury/registry/fabric/CreativeTabRegistryImpl
+c	dev/architectury/registry/fabric/ReloadListenerRegistryImpl$1	remapped/architectury/registry/fabric/ReloadListenerRegistryImpl$1
+c	dev/architectury/registry/fabric/ReloadListenerRegistryImpl	remapped/architectury/registry/fabric/ReloadListenerRegistryImpl
+c	dev/architectury/registry/fuel/FuelRegistry	remapped/architectury/registry/fuel/FuelRegistry
+c	dev/architectury/registry/fuel/fabric/FuelRegistryImpl	remapped/architectury/registry/fuel/fabric/FuelRegistryImpl
+c	dev/architectury/registry/item/ItemPropertiesRegistry	remapped/architectury/registry/item/ItemPropertiesRegistry
+c	dev/architectury/registry/item/fabric/ItemPropertiesRegistryImpl	remapped/architectury/registry/item/fabric/ItemPropertiesRegistryImpl
+c	dev/architectury/registry/level/biome/BiomeModifications$BiomeContext	remapped/architectury/registry/level/biome/BiomeModifications$BiomeContext
+c	dev/architectury/registry/level/biome/BiomeModifications	remapped/architectury/registry/level/biome/BiomeModifications
+c	dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl$1	remapped/architectury/registry/level/biome/fabric/BiomeModificationsImpl$1
+c	dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl$2	remapped/architectury/registry/level/biome/fabric/BiomeModificationsImpl$2
+c	dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl$3	remapped/architectury/registry/level/biome/fabric/BiomeModificationsImpl$3
+c	dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl$4	remapped/architectury/registry/level/biome/fabric/BiomeModificationsImpl$4
+c	dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl$MutableGenerationProperties	remapped/architectury/registry/level/biome/fabric/BiomeModificationsImpl$MutableGenerationProperties
+c	dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl$MutableSpawnProperties	remapped/architectury/registry/level/biome/fabric/BiomeModificationsImpl$MutableSpawnProperties
+c	dev/architectury/registry/level/biome/fabric/BiomeModificationsImpl	remapped/architectury/registry/level/biome/fabric/BiomeModificationsImpl
+c	dev/architectury/registry/level/entity/EntityAttributeRegistry	remapped/architectury/registry/level/entity/EntityAttributeRegistry
+c	dev/architectury/registry/level/entity/SpawnPlacementsRegistry	remapped/architectury/registry/level/entity/SpawnPlacementsRegistry
+c	dev/architectury/registry/level/entity/fabric/EntityAttributeRegistryImpl	remapped/architectury/registry/level/entity/fabric/EntityAttributeRegistryImpl
+c	dev/architectury/registry/level/entity/fabric/SpawnPlacementsRegistryImpl	remapped/architectury/registry/level/entity/fabric/SpawnPlacementsRegistryImpl
+c	dev/architectury/registry/level/entity/trade/SimpleTrade	remapped/architectury/registry/level/entity/trade/SimpleTrade
+c	dev/architectury/registry/level/entity/trade/TradeRegistry	remapped/architectury/registry/level/entity/trade/TradeRegistry
+c	dev/architectury/registry/level/entity/trade/fabric/TradeRegistryImpl	remapped/architectury/registry/level/entity/trade/fabric/TradeRegistryImpl
+c	dev/architectury/registry/menu/ExtendedMenuProvider	remapped/architectury/registry/menu/ExtendedMenuProvider
+c	dev/architectury/registry/menu/MenuRegistry$1	remapped/architectury/registry/menu/MenuRegistry$1
+c	dev/architectury/registry/menu/MenuRegistry$ExtendedMenuTypeFactory	remapped/architectury/registry/menu/MenuRegistry$ExtendedMenuTypeFactory
+c	dev/architectury/registry/menu/MenuRegistry$ScreenFactory	remapped/architectury/registry/menu/MenuRegistry$ScreenFactory
+c	dev/architectury/registry/menu/MenuRegistry$SimpleMenuTypeFactory	remapped/architectury/registry/menu/MenuRegistry$SimpleMenuTypeFactory
+c	dev/architectury/registry/menu/MenuRegistry	remapped/architectury/registry/menu/MenuRegistry
+c	dev/architectury/registry/menu/fabric/MenuRegistryImpl$1	remapped/architectury/registry/menu/fabric/MenuRegistryImpl$1
+c	dev/architectury/registry/menu/fabric/MenuRegistryImpl	remapped/architectury/registry/menu/fabric/MenuRegistryImpl
+c	dev/architectury/registry/registries/DeferredRegister$Entry	remapped/architectury/registry/registries/DeferredRegister$Entry
+c	dev/architectury/registry/registries/DeferredRegister	remapped/architectury/registry/registries/DeferredRegister
+c	dev/architectury/registry/registries/DeferredSupplier	remapped/architectury/registry/registries/DeferredSupplier
+c	dev/architectury/registry/registries/Registrar	remapped/architectury/registry/registries/Registrar
+c	dev/architectury/registry/registries/RegistrarBuilder	remapped/architectury/registry/registries/RegistrarBuilder
+c	dev/architectury/registry/registries/RegistrarManager$RegistryProvider	remapped/architectury/registry/registries/RegistrarManager$RegistryProvider
+c	dev/architectury/registry/registries/RegistrarManager	remapped/architectury/registry/registries/RegistrarManager
+c	dev/architectury/registry/registries/RegistrySupplier	remapped/architectury/registry/registries/RegistrySupplier
+c	dev/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistrarBuilderWrapper	remapped/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistrarBuilderWrapper
+c	dev/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistrarImpl$1	remapped/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistrarImpl$1
+c	dev/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistrarImpl	remapped/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistrarImpl
+c	dev/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistryEntryId	remapped/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistryEntryId
+c	dev/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistryProviderImpl	remapped/architectury/registry/registries/fabric/RegistrarManagerImpl$RegistryProviderImpl
+c	dev/architectury/registry/registries/fabric/RegistrarManagerImpl	remapped/architectury/registry/registries/fabric/RegistrarManagerImpl
+c	dev/architectury/registry/registries/options/DefaultIdRegistrarOption	remapped/architectury/registry/registries/options/DefaultIdRegistrarOption
+c	dev/architectury/registry/registries/options/RegistrarOption	remapped/architectury/registry/registries/options/RegistrarOption
+c	dev/architectury/registry/registries/options/StandardRegistrarOption	remapped/architectury/registry/registries/options/StandardRegistrarOption
+c	dev/architectury/utils/Amount	remapped/architectury/utils/Amount
+c	dev/architectury/utils/ArchitecturyConstants	remapped/architectury/utils/ArchitecturyConstants
+c	dev/architectury/utils/Env	remapped/architectury/utils/Env
+c	dev/architectury/utils/EnvExecutor	remapped/architectury/utils/EnvExecutor
+c	dev/architectury/utils/GameInstance	remapped/architectury/utils/GameInstance
+c	dev/architectury/utils/OptionalSupplier	remapped/architectury/utils/OptionalSupplier
+c	dev/architectury/utils/PlatformExpectedError	remapped/architectury/utils/PlatformExpectedError
+c	dev/architectury/utils/fabric/GameInstanceImpl	remapped/architectury/utils/fabric/GameInstanceImpl
+c	dev/architectury/utils/value/BooleanValue	remapped/architectury/utils/value/BooleanValue
+c	dev/architectury/utils/value/DoubleValue	remapped/architectury/utils/value/DoubleValue
+c	dev/architectury/utils/value/FloatSupplier	remapped/architectury/utils/value/FloatSupplier
+c	dev/architectury/utils/value/FloatValue	remapped/architectury/utils/value/FloatValue
+c	dev/architectury/utils/value/IntValue	remapped/architectury/utils/value/IntValue
+c	dev/architectury/utils/value/LongValue	remapped/architectury/utils/value/LongValue
+c	dev/architectury/utils/value/Value	remapped/architectury/utils/value/Value
\ No newline at end of file
diff --git a/neoforge/src/main/java/com/mrmelon54/infrastructury/neoforge/InfrastructuryImpl.java b/neoforge/src/main/java/com/mrmelon54/infrastructury/neoforge/InfrastructuryImpl.java
index c4c0138..371ad9a 100644
--- a/neoforge/src/main/java/com/mrmelon54/infrastructury/neoforge/InfrastructuryImpl.java
+++ b/neoforge/src/main/java/com/mrmelon54/infrastructury/neoforge/InfrastructuryImpl.java
@@ -2,10 +2,18 @@
 
 import com.mrmelon54.infrastructury.utils.ConfigScreenRegistrar;
 import net.neoforged.fml.ModLoadingContext;
+#if MC_VER <= MC_1_20_4
 import net.neoforged.neoforge.client.ConfigScreenHandler.ConfigScreenFactory;
+#else
+import net.neoforged.neoforge.client.gui.IConfigScreenFactory;
+#endif
 
 public class InfrastructuryImpl {
     public static void registerConfigScreen(ConfigScreenRegistrar registrar) {
-        ModLoadingContext.get().registerExtensionPoint(ConfigScreenFactory.class,()->new ConfigScreenFactory(registrar::registerConfigScreen));
+        #if MC_VER <= MC_1_20_4
+        ModLoadingContext.get().registerExtensionPoint(ConfigScreenFactory.class, () -> new ConfigScreenFactory(registrar::registerConfigScreen));
+        #else
+        ModLoadingContext.get().registerExtensionPoint(IConfigScreenFactory.class, () -> registrar::registerConfigScreen);
+        #endif
     }
 }
diff --git a/versionProperties/1.20.6.properties b/versionProperties/1.20.6.properties
new file mode 100644
index 0000000..11989ed
--- /dev/null
+++ b/versionProperties/1.20.6.properties
@@ -0,0 +1,23 @@
+# 1.20.6 version
+java_version=21
+minecraft_version=1.20.6
+parchment_version=1.20.6:2024.06.16
+compatible_minecraft_versions=["1.20.6"]
+accessWidenerVersion=1_20_6
+builds_for=fabric,neoforge
+
+architectury_group=dev.architectury
+architectury_version=12.1.3
+
+# Fabric
+fabric_loader_version=0.15.10
+fabric_api_version=0.97.8+1.20.6
+
+# NeoForge
+neoforge_version=20.6.119
+
+# Libraries
+cloth_config_version=14.0.126
+modmenu_version=10.0.0
+
+mcVer=1.20.6
diff --git a/versionProperties/1.21.properties b/versionProperties/1.21.properties
new file mode 100644
index 0000000..3845d15
--- /dev/null
+++ b/versionProperties/1.21.properties
@@ -0,0 +1,23 @@
+# 1.21 version
+java_version=21
+minecraft_version=1.21
+parchment_version=1.21:2024.06.23
+compatible_minecraft_versions=["1.21.0"]
+accessWidenerVersion=1_21
+builds_for=fabric,neoforge
+
+architectury_group=dev.architectury
+architectury_version=13.0.3
+
+# Fabric
+fabric_loader_version=0.15.11
+fabric_api_version=0.100.1+1.21
+
+# NeoForge
+neoforge_version=21.0.42-beta
+
+# Libraries
+cloth_config_version=15.0.127
+modmenu_version=11.0.1
+
+mcVer=1.21