diff --git a/build.gradle b/build.gradle
index d6c3604..6080444 100644
--- a/build.gradle
+++ b/build.gradle
@@ -23,8 +23,8 @@ repositories {
}
dependencies {
- compileOnly "com.viaversion:viaversion-common:4.10.0-24w07a-SNAPSHOT"
- compileOnly "com.viaversion:viabackwards-common:4.10.0-24w07a-SNAPSHOT"
+ compileOnly "com.viaversion:viaversion-common:4.10.0-24w09a-SNAPSHOT"
+ compileOnly "com.viaversion:viabackwards-common:4.10.0-24w09a-SNAPSHOT"
compileOnly "org.yaml:snakeyaml:2.2"
compileOnly "com.google.guava:guava:33.1.0-jre"
compileOnly "io.netty:netty-handler:4.1.108.Final"
diff --git a/src/main/java/net/raphimc/viaaprilfools/api/AprilFoolsMappings.java b/src/main/java/net/raphimc/viaaprilfools/api/AprilFoolsMappings.java
new file mode 100644
index 0000000..261bbc6
--- /dev/null
+++ b/src/main/java/net/raphimc/viaaprilfools/api/AprilFoolsMappings.java
@@ -0,0 +1,51 @@
+/*
+ * This file is part of ViaAprilFools - https://github.com/RaphiMC/ViaAprilFools
+ * Copyright (C) 2021-2024 RK_01/RaphiMC and contributors
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package net.raphimc.viaaprilfools.api;
+
+import com.viaversion.viabackwards.api.data.BackwardsMappingDataLoader;
+import com.viaversion.viabackwards.api.data.BackwardsMappings;
+import com.viaversion.viaversion.api.protocol.Protocol;
+import com.viaversion.viaversion.libs.opennbt.tag.builtin.CompoundTag;
+import net.raphimc.viaaprilfools.ViaAprilFools;
+import org.checkerframework.checker.nullness.qual.Nullable;
+
+import java.util.logging.Logger;
+
+public class AprilFoolsMappings extends BackwardsMappings {
+
+ private static final BackwardsMappingDataLoader LOADER = new BackwardsMappingDataLoader(AprilFoolsMappings.class, "assets/viaaprilfools/data/");
+
+ public AprilFoolsMappings(String unmappedVersion, String mappedVersion, @Nullable Class extends Protocol, ?, ?, ?>> vvProtocolClass) {
+ super(unmappedVersion, mappedVersion, vvProtocolClass);
+ }
+
+ @Override
+ protected @Nullable CompoundTag readMappingsFile(String name) {
+ return LOADER.loadNBT(name);
+ }
+
+ @Override
+ protected @Nullable CompoundTag readUnmappedIdentifiersFile(String name) {
+ return LOADER.loadNBT(name, true);
+ }
+
+ @Override
+ protected Logger getLogger() {
+ return ViaAprilFools.getPlatform().getLogger();
+ }
+}
diff --git a/src/main/java/net/raphimc/viaaprilfools/protocols/protocol1_14to3D_Shareware/Protocol1_14to3D_Shareware.java b/src/main/java/net/raphimc/viaaprilfools/protocols/protocol1_14to3D_Shareware/Protocol1_14to3D_Shareware.java
index 43bca2f..c864457 100644
--- a/src/main/java/net/raphimc/viaaprilfools/protocols/protocol1_14to3D_Shareware/Protocol1_14to3D_Shareware.java
+++ b/src/main/java/net/raphimc/viaaprilfools/protocols/protocol1_14to3D_Shareware/Protocol1_14to3D_Shareware.java
@@ -28,13 +28,14 @@ import com.viaversion.viaversion.api.type.types.chunk.ChunkType1_14;
import com.viaversion.viaversion.protocols.protocol1_14to1_13_2.ClientboundPackets1_14;
import com.viaversion.viaversion.protocols.protocol1_14to1_13_2.Protocol1_14To1_13_2;
import com.viaversion.viaversion.protocols.protocol1_14to1_13_2.ServerboundPackets1_14;
+import net.raphimc.viaaprilfools.api.AprilFoolsMappings;
import net.raphimc.viaaprilfools.protocols.protocol1_14to3D_Shareware.packets.BlockItemPackets3D_Shareware;
import net.raphimc.viaaprilfools.protocols.protocol1_14to3D_Shareware.packets.EntityPackets3D_Shareware;
import net.raphimc.viaaprilfools.protocols.protocol1_14to3D_Shareware.storage.ChunkCenterTracker3D_Shareware;
public class Protocol1_14to3D_Shareware extends BackwardsProtocol {
- public static final BackwardsMappings MAPPINGS = new BackwardsMappings("3D_Shareware", "1.14", Protocol1_14To1_13_2.class);
+ public static final BackwardsMappings MAPPINGS = new AprilFoolsMappings("3D_Shareware", "1.14", Protocol1_14To1_13_2.class);
private static final int SERVERSIDE_VIEW_DISTANCE = 64;
private final BlockItemPackets3D_Shareware blockItemPackets = new BlockItemPackets3D_Shareware(this);
diff --git a/src/main/java/net/raphimc/viaaprilfools/protocols/protocol1_16to20w14infinite/Protocol1_16to20w14infinite.java b/src/main/java/net/raphimc/viaaprilfools/protocols/protocol1_16to20w14infinite/Protocol1_16to20w14infinite.java
index 44c1f79..4a6f963 100644
--- a/src/main/java/net/raphimc/viaaprilfools/protocols/protocol1_16to20w14infinite/Protocol1_16to20w14infinite.java
+++ b/src/main/java/net/raphimc/viaaprilfools/protocols/protocol1_16to20w14infinite/Protocol1_16to20w14infinite.java
@@ -35,6 +35,7 @@ import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.provider.PlayerA
import com.viaversion.viaversion.rewriter.RecipeRewriter;
import com.viaversion.viaversion.rewriter.StatisticsRewriter;
import com.viaversion.viaversion.rewriter.TagRewriter;
+import net.raphimc.viaaprilfools.api.AprilFoolsMappings;
import net.raphimc.viaaprilfools.protocols.protocol1_16to20w14infinite.metadata.MetadataRewriter1_16to20w14infinite;
import net.raphimc.viaaprilfools.protocols.protocol1_16to20w14infinite.packets.BlockItemPackets20w14infinite;
import net.raphimc.viaaprilfools.protocols.protocol1_16to20w14infinite.packets.EntityPackets20w14infinite;
@@ -43,7 +44,7 @@ import java.util.UUID;
public class Protocol1_16to20w14infinite extends BackwardsProtocol {
- public static final BackwardsMappings MAPPINGS = new BackwardsMappings("20w14infinite", "1.16", Protocol1_16To1_15_2.class);
+ public static final BackwardsMappings MAPPINGS = new AprilFoolsMappings("20w14infinite", "1.16", Protocol1_16To1_15_2.class);
private static final UUID ZERO_UUID = new UUID(0, 0);
private final BlockItemPackets20w14infinite blockItemPackets = new BlockItemPackets20w14infinite(this);
diff --git a/src/main/resources/assets/viaversion/data/identifiers-20w14infinite.nbt b/src/main/resources/assets/viaaprilfools/data/identifiers-20w14infinite.nbt
similarity index 100%
rename from src/main/resources/assets/viaversion/data/identifiers-20w14infinite.nbt
rename to src/main/resources/assets/viaaprilfools/data/identifiers-20w14infinite.nbt
diff --git a/src/main/resources/assets/viaversion/data/identifiers-3D_Shareware.nbt b/src/main/resources/assets/viaaprilfools/data/identifiers-3D_Shareware.nbt
similarity index 100%
rename from src/main/resources/assets/viaversion/data/identifiers-3D_Shareware.nbt
rename to src/main/resources/assets/viaaprilfools/data/identifiers-3D_Shareware.nbt
diff --git a/src/main/resources/assets/viabackwards/data/mappings-20w14infiniteto1.16.nbt b/src/main/resources/assets/viaaprilfools/data/mappings-20w14infiniteto1.16.nbt
similarity index 100%
rename from src/main/resources/assets/viabackwards/data/mappings-20w14infiniteto1.16.nbt
rename to src/main/resources/assets/viaaprilfools/data/mappings-20w14infiniteto1.16.nbt
diff --git a/src/main/resources/assets/viabackwards/data/mappings-3D_Sharewareto1.14.nbt b/src/main/resources/assets/viaaprilfools/data/mappings-3D_Sharewareto1.14.nbt
similarity index 100%
rename from src/main/resources/assets/viabackwards/data/mappings-3D_Sharewareto1.14.nbt
rename to src/main/resources/assets/viaaprilfools/data/mappings-3D_Sharewareto1.14.nbt