diff --git a/bukkit/src/main/java/com/viaversion/viabackwards/BukkitPlugin.java b/bukkit/src/main/java/com/viaversion/viabackwards/BukkitPlugin.java index ed33e9de..921a6769 100644 --- a/bukkit/src/main/java/com/viaversion/viabackwards/BukkitPlugin.java +++ b/bukkit/src/main/java/com/viaversion/viabackwards/BukkitPlugin.java @@ -24,12 +24,18 @@ import com.viaversion.viabackwards.listener.FireExtinguishListener; import com.viaversion.viabackwards.listener.LecternInteractListener; import com.viaversion.viaversion.ViaVersionPlugin; import com.viaversion.viaversion.api.Via; +import com.viaversion.viaversion.api.data.MappingDataLoader; import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; import com.viaversion.viaversion.bukkit.platform.BukkitViaLoader; import org.bukkit.plugin.java.JavaPlugin; public class BukkitPlugin extends JavaPlugin implements ViaBackwardsPlatform { + public BukkitPlugin() { + // MappingDataLoader caching is enabled in ViaVersion on versions that construct the plugin on load + MappingDataLoader.enableMappingsCache(); + } + @Override public void onLoad() { if (!ViaVersionPlugin.getInstance().isLateBind()) { @@ -50,11 +56,6 @@ public class BukkitPlugin extends JavaPlugin implements ViaBackwardsPlatform { } private void onServerLoaded() { - if (isOutdatedPostLoad()) { - disable(); - return; - } - BukkitViaLoader loader = (BukkitViaLoader) Via.getManager().getLoader(); int protocolVersion = Via.getAPI().getServerVersion().highestSupportedVersion(); if (protocolVersion >= ProtocolVersion.v1_16.getVersion()) { diff --git a/bungee/src/main/java/com/viaversion/viabackwards/BungeePlugin.java b/bungee/src/main/java/com/viaversion/viabackwards/BungeePlugin.java index 2311772f..620704a5 100644 --- a/bungee/src/main/java/com/viaversion/viabackwards/BungeePlugin.java +++ b/bungee/src/main/java/com/viaversion/viabackwards/BungeePlugin.java @@ -20,15 +20,18 @@ package com.viaversion.viabackwards; import com.viaversion.viabackwards.api.ViaBackwardsPlatform; import com.viaversion.viaversion.api.Via; +import com.viaversion.viaversion.api.data.MappingDataLoader; import net.md_5.bungee.api.plugin.Plugin; public class BungeePlugin extends Plugin implements ViaBackwardsPlatform { @Override public void onLoad() { + MappingDataLoader.enableMappingsCache(); Via.getManager().addEnableListener(() -> this.init(getDataFolder())); } + @Override public void disable() { } diff --git a/common/src/main/java/com/viaversion/viabackwards/api/BackwardsProtocol.java b/common/src/main/java/com/viaversion/viabackwards/api/BackwardsProtocol.java index 6e551e9c..39cc6e76 100644 --- a/common/src/main/java/com/viaversion/viabackwards/api/BackwardsProtocol.java +++ b/common/src/main/java/com/viaversion/viabackwards/api/BackwardsProtocol.java @@ -44,6 +44,16 @@ public abstract class BackwardsProtocol vvProtocolClass; + private final Class> vvProtocolClass; private Int2ObjectMap backwardsItemMappings; private Map backwardsSoundMappings; private Map entityNames; - public BackwardsMappings(String oldVersion, String newVersion, @Nullable Class vvProtocolClass) { + public BackwardsMappings(String oldVersion, String newVersion, @Nullable Class> vvProtocolClass) { this(oldVersion, newVersion, vvProtocolClass, false); } - public BackwardsMappings(String oldVersion, String newVersion, @Nullable Class vvProtocolClass, boolean hasDiffFile) { + public BackwardsMappings(String oldVersion, String newVersion, @Nullable Class> vvProtocolClass, boolean hasDiffFile) { super(oldVersion, newVersion, hasDiffFile); Preconditions.checkArgument(vvProtocolClass == null || !vvProtocolClass.isAssignableFrom(BackwardsProtocol.class)); this.vvProtocolClass = vvProtocolClass; @@ -168,4 +168,8 @@ public class BackwardsMappings extends MappingDataBase { public @Nullable Map getBackwardsSoundMappings() { return backwardsSoundMappings; } + + public @Nullable Class> getViaVersionProtocolClass() { + return vvProtocolClass; + } } diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/Protocol1_13_2To1_14.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/Protocol1_13_2To1_14.java index ac9d8bb4..6bc314be 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/Protocol1_13_2To1_14.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/Protocol1_13_2To1_14.java @@ -43,8 +43,8 @@ public class Protocol1_13_2To1_14 extends BackwardsProtocol translatableRewriter = new TranslatableRewriter<>(this); - private BlockItemPackets1_14 blockItemPackets; public Protocol1_13_2To1_14() { super(ClientboundPackets1_14.class, ClientboundPackets1_13.class, ServerboundPackets1_14.class, ServerboundPackets1_13.class); @@ -52,7 +52,7 @@ public class Protocol1_13_2To1_14 extends BackwardsProtocol translatableRewriter = new TranslatableRewriter<>(this); diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_14_4to1_15/Protocol1_14_4To1_15.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_14_4to1_15/Protocol1_14_4To1_15.java index bc88d454..bb99b7e2 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_14_4to1_15/Protocol1_14_4To1_15.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_14_4to1_15/Protocol1_14_4To1_15.java @@ -42,8 +42,8 @@ public class Protocol1_14_4To1_15 extends BackwardsProtocol translatableRewriter = new TranslatableRewriter<>(this); - private BlockItemPackets1_15 blockItemPackets; public Protocol1_14_4To1_15() { super(ClientboundPackets1_15.class, ClientboundPackets1_14.class, ServerboundPackets1_14.class, ServerboundPackets1_14.class); @@ -51,7 +51,7 @@ public class Protocol1_14_4To1_15 extends BackwardsProtocol soundRewriter = new SoundRewriter<>(this); soundRewriter.registerSound(ClientboundPackets1_15.SOUND); soundRewriter.registerSound(ClientboundPackets1_15.ENTITY_SOUND); diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/Protocol1_15_2To1_16.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/Protocol1_15_2To1_16.java index 13c1b11f..dd920d59 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/Protocol1_15_2To1_16.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/Protocol1_15_2To1_16.java @@ -38,7 +38,6 @@ import com.viaversion.viaversion.libs.gson.JsonObject; import com.viaversion.viaversion.protocols.protocol1_14to1_13_2.ServerboundPackets1_14; import com.viaversion.viaversion.protocols.protocol1_15to1_14_4.ClientboundPackets1_15; import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.ClientboundPackets1_16; -import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.Protocol1_16To1_15_2; import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.ServerboundPackets1_16; import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld; import com.viaversion.viaversion.rewriter.StatisticsRewriter; @@ -50,8 +49,8 @@ public class Protocol1_15_2To1_16 extends BackwardsProtocol { String original = wrapper.passthrough(Type.STRING); JsonObject object = GsonUtil.getGson().fromJson(original, JsonObject.class); diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_1to1_16_2/Protocol1_16_1To1_16_2.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_1to1_16_2/Protocol1_16_1To1_16_2.java index eb9be8e7..d93e7b44 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_1to1_16_2/Protocol1_16_1To1_16_2.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_1to1_16_2/Protocol1_16_1To1_16_2.java @@ -44,8 +44,8 @@ public class Protocol1_16_1To1_16_2 extends BackwardsProtocol translatableRewriter = new TranslatableRewriter<>(this); - private BlockItemPackets1_16_2 blockItemPackets; public Protocol1_16_1To1_16_2() { super(ClientboundPackets1_16_2.class, ClientboundPackets1_16.class, ServerboundPackets1_16_2.class, ServerboundPackets1_16.class); @@ -53,7 +53,7 @@ public class Protocol1_16_1To1_16_2 extends BackwardsProtocol soundRewriter = new SoundRewriter<>(this); soundRewriter.registerSound(ClientboundPackets1_16_2.SOUND); soundRewriter.registerSound(ClientboundPackets1_16_2.ENTITY_SOUND); diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/Protocol1_16_4To1_17.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/Protocol1_16_4To1_17.java index f5729f0d..5458dfab 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/Protocol1_16_4To1_17.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/Protocol1_16_4To1_17.java @@ -54,8 +54,8 @@ public final class Protocol1_16_4To1_17 extends BackwardsProtocol translatableRewriter = new TranslatableRewriter<>(this); - private BlockItemPackets1_17 blockItemPackets; public Protocol1_16_4To1_17() { super(ClientboundPackets1_17.class, ClientboundPackets1_16_2.class, ServerboundPackets1_17.class, ServerboundPackets1_16_2.class); @@ -63,7 +63,7 @@ public final class Protocol1_16_4To1_17 extends BackwardsProtocol soundRewriter = new SoundRewriter<>(this); soundRewriter.registerSound(ClientboundPackets1_17.SOUND); soundRewriter.registerSound(ClientboundPackets1_17.ENTITY_SOUND); diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_17_1to1_18/Protocol1_17_1To1_18.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_17_1to1_18/Protocol1_17_1To1_18.java index e64a12cb..4e47b6a9 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_17_1to1_18/Protocol1_17_1To1_18.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_17_1to1_18/Protocol1_17_1To1_18.java @@ -33,15 +33,14 @@ import com.viaversion.viaversion.data.entity.EntityTrackerBase; import com.viaversion.viaversion.protocols.protocol1_17_1to1_17.ClientboundPackets1_17_1; import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.ServerboundPackets1_17; import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.ClientboundPackets1_18; -import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.Protocol1_18To1_17_1; import com.viaversion.viaversion.rewriter.TagRewriter; public final class Protocol1_17_1To1_18 extends BackwardsProtocol { private static final BackwardsMappings MAPPINGS = new BackwardsMappings(); private final EntityPackets1_18 entityRewriter = new EntityPackets1_18(this); + private final BlockItemPackets1_18 itemRewriter = new BlockItemPackets1_18(this); private final TranslatableRewriter translatableRewriter = new TranslatableRewriter<>(this); - private BlockItemPackets1_18 itemRewriter; public Protocol1_17_1To1_18() { super(ClientboundPackets1_18.class, ClientboundPackets1_17_1.class, ServerboundPackets1_17.class, ServerboundPackets1_17.class); @@ -49,7 +48,7 @@ public final class Protocol1_17_1To1_18 extends BackwardsProtocol soundRewriter = new SoundRewriter<>(this); soundRewriter.registerSound(ClientboundPackets1_18.SOUND); soundRewriter.registerSound(ClientboundPackets1_18.ENTITY_SOUND); diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/Protocol1_18_2To1_19.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/Protocol1_18_2To1_19.java index 75850b5d..d3a5f75a 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/Protocol1_18_2To1_19.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_18_2to1_19/Protocol1_18_2To1_19.java @@ -43,7 +43,6 @@ import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.ClientboundPacke import com.viaversion.viaversion.protocols.protocol1_19_1to1_19.ChatDecorationResult; import com.viaversion.viaversion.protocols.protocol1_19_1to1_19.Protocol1_19_1To1_19; import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.ClientboundPackets1_19; -import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.Protocol1_19To1_18_2; import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.ServerboundPackets1_19; import com.viaversion.viaversion.rewriter.CommandRewriter; import com.viaversion.viaversion.rewriter.StatisticsRewriter; @@ -66,10 +65,7 @@ public final class Protocol1_18_2To1_19 extends BackwardsProtocol { - MAPPINGS.load(); - entityRewriter.onMappingDataLoaded(); - }); + super.registerPackets(); translatableRewriter.registerComponentPacket(ClientboundPackets1_19.ACTIONBAR); translatableRewriter.registerComponentPacket(ClientboundPackets1_19.TITLE_TEXT); @@ -81,9 +77,6 @@ public final class Protocol1_18_2To1_19 extends BackwardsProtocol soundRewriter = new SoundRewriter<>(this); soundRewriter.registerStopSound(ClientboundPackets1_19.STOP_SOUND); registerClientbound(ClientboundPackets1_19.SOUND, new PacketHandlers() { diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_1to1_19_3/Protocol1_19_1To1_19_3.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_1to1_19_3/Protocol1_19_1To1_19_3.java index 7c09032f..3a5e3d89 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_1to1_19_3/Protocol1_19_1To1_19_3.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_1to1_19_3/Protocol1_19_1To1_19_3.java @@ -46,7 +46,6 @@ import com.viaversion.viaversion.protocols.base.ServerboundLoginPackets; import com.viaversion.viaversion.protocols.protocol1_19_1to1_19.ClientboundPackets1_19_1; import com.viaversion.viaversion.protocols.protocol1_19_1to1_19.ServerboundPackets1_19_1; import com.viaversion.viaversion.protocols.protocol1_19_3to1_19_1.ClientboundPackets1_19_3; -import com.viaversion.viaversion.protocols.protocol1_19_3to1_19_1.Protocol1_19_3To1_19_1; import com.viaversion.viaversion.protocols.protocol1_19_3to1_19_1.ServerboundPackets1_19_3; import com.viaversion.viaversion.rewriter.CommandRewriter; import com.viaversion.viaversion.rewriter.StatisticsRewriter; @@ -69,10 +68,7 @@ public final class Protocol1_19_1To1_19_3 extends BackwardsProtocol { - MAPPINGS.load(); - entityRewriter.onMappingDataLoaded(); - }); + super.registerPackets(); translatableRewriter.registerComponentPacket(ClientboundPackets1_19_3.SYSTEM_CHAT); translatableRewriter.registerComponentPacket(ClientboundPackets1_19_3.ACTIONBAR); @@ -85,9 +81,6 @@ public final class Protocol1_19_1To1_19_3 extends BackwardsProtocol soundRewriter = new SoundRewriter<>(this); soundRewriter.registerStopSound(ClientboundPackets1_19_3.STOP_SOUND); registerClientbound(ClientboundPackets1_19_3.SOUND, wrapper -> { diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_3to1_19_4/Protocol1_19_3To1_19_4.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_3to1_19_4/Protocol1_19_3To1_19_4.java index 9330cd08..19f2d690 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_3to1_19_4/Protocol1_19_3To1_19_4.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_3to1_19_4/Protocol1_19_3To1_19_4.java @@ -52,20 +52,14 @@ public final class Protocol1_19_3To1_19_4 extends BackwardsProtocol { - MAPPINGS.load(); - entityRewriter.onMappingDataLoaded(); - }); - - entityRewriter.register(); - itemRewriter.register(); + super.registerPackets(); final SoundRewriter soundRewriter = new SoundRewriter<>(this); soundRewriter.registerStopSound(ClientboundPackets1_19_4.STOP_SOUND); soundRewriter.register1_19_3Sound(ClientboundPackets1_19_4.SOUND); soundRewriter.registerSound(ClientboundPackets1_19_4.ENTITY_SOUND); + // TODO fallback field in components translatableRewriter.registerComponentPacket(ClientboundPackets1_19_4.ACTIONBAR); translatableRewriter.registerComponentPacket(ClientboundPackets1_19_4.TITLE_TEXT); translatableRewriter.registerComponentPacket(ClientboundPackets1_19_4.TITLE_SUBTITLE); @@ -128,4 +122,9 @@ public final class Protocol1_19_3To1_19_4 extends BackwardsProtocol getTranslatableRewriter() { + return translatableRewriter; + } } \ No newline at end of file diff --git a/sponge/src/main/java/com/viaversion/viabackwards/SpongePlugin.java b/sponge/src/main/java/com/viaversion/viabackwards/SpongePlugin.java index 7bbec1a6..0f6a1bd3 100644 --- a/sponge/src/main/java/com/viaversion/viabackwards/SpongePlugin.java +++ b/sponge/src/main/java/com/viaversion/viabackwards/SpongePlugin.java @@ -21,6 +21,7 @@ package com.viaversion.viabackwards; import com.google.inject.Inject; import com.viaversion.viabackwards.api.ViaBackwardsPlatform; import com.viaversion.viaversion.api.Via; +import com.viaversion.viaversion.api.data.MappingDataLoader; import com.viaversion.viaversion.sponge.util.LoggerWrapper; import java.io.File; import java.nio.file.Path; @@ -46,7 +47,7 @@ public class SpongePlugin implements ViaBackwardsPlatform { @Listener public void constructPlugin(ConstructPluginEvent event) { - // Init! + MappingDataLoader.enableMappingsCache(); Via.getManager().addEnableListener(() -> this.init(getDataFolder())); } diff --git a/velocity/src/main/java/com/viaversion/viabackwards/VelocityPlugin.java b/velocity/src/main/java/com/viaversion/viabackwards/VelocityPlugin.java index 8dcf2916..3419a1e0 100644 --- a/velocity/src/main/java/com/viaversion/viabackwards/VelocityPlugin.java +++ b/velocity/src/main/java/com/viaversion/viabackwards/VelocityPlugin.java @@ -28,6 +28,7 @@ import com.velocitypowered.api.plugin.annotation.DataDirectory; import com.viaversion.viabackwards.api.ViaBackwardsPlatform; import com.viaversion.viabackwards.utils.VersionInfo; import com.viaversion.viaversion.api.Via; +import com.viaversion.viaversion.api.data.MappingDataLoader; import com.viaversion.viaversion.velocity.util.LoggerWrapper; import java.io.File; import java.nio.file.Path; @@ -49,9 +50,9 @@ public class VelocityPlugin implements ViaBackwardsPlatform { private Path configPath; @Subscribe(order = PostOrder.LATE) - public void onProxyStart(ProxyInitializeEvent e) { - // Setup Logger + public void onProxyStart(ProxyInitializeEvent event) { this.logger = new LoggerWrapper(loggerSlf4j); + MappingDataLoader.enableMappingsCache(); Via.getManager().addEnableListener(() -> this.init(getDataFolder())); }