diff --git a/bukkit/src/main/java/nl/matsv/viabackwards/BukkitPlugin.java b/bukkit/src/main/java/nl/matsv/viabackwards/BukkitPlugin.java index 845ebb00..9056db2c 100644 --- a/bukkit/src/main/java/nl/matsv/viabackwards/BukkitPlugin.java +++ b/bukkit/src/main/java/nl/matsv/viabackwards/BukkitPlugin.java @@ -16,7 +16,7 @@ import org.bukkit.plugin.java.JavaPlugin; public class BukkitPlugin extends JavaPlugin implements ViaBackwardsPlatform { @Override public void onEnable() { - this.init(); + this.init(getDataFolder()); } @Override diff --git a/bungee/src/main/java/nl/matsv/viabackwards/BungeePlugin.java b/bungee/src/main/java/nl/matsv/viabackwards/BungeePlugin.java index 53ce97f4..dd900aae 100644 --- a/bungee/src/main/java/nl/matsv/viabackwards/BungeePlugin.java +++ b/bungee/src/main/java/nl/matsv/viabackwards/BungeePlugin.java @@ -17,7 +17,7 @@ public class BungeePlugin extends Plugin implements ViaBackwardsPlatform { @Override public void onEnable() { - this.init(); + this.init(getDataFolder()); } // Why is this not a thing in Bungee? O_o diff --git a/core/src/main/java/nl/matsv/viabackwards/ViaBackwards.java b/core/src/main/java/nl/matsv/viabackwards/ViaBackwards.java index c7eec7f8..a01135a5 100644 --- a/core/src/main/java/nl/matsv/viabackwards/ViaBackwards.java +++ b/core/src/main/java/nl/matsv/viabackwards/ViaBackwards.java @@ -11,17 +11,26 @@ package nl.matsv.viabackwards; import com.google.common.base.Preconditions; -import lombok.Getter; +import nl.matsv.viabackwards.api.ViaBackwardsConfig; import nl.matsv.viabackwards.api.ViaBackwardsPlatform; public class ViaBackwards { - @Getter - private static ViaBackwardsPlatform platform; - public static void init(ViaBackwardsPlatform platform) { + private static ViaBackwardsPlatform platform; + private static ViaBackwardsConfig config; + + public static void init(ViaBackwardsPlatform platform, ViaBackwardsConfig config) { Preconditions.checkArgument(platform != null, "ViaBackwards is already initialized"); ViaBackwards.platform = platform; + ViaBackwards.config = config; } + public static ViaBackwardsPlatform getPlatform() { + return platform; + } + + public static ViaBackwardsConfig getConfig() { + return config; + } } diff --git a/core/src/main/java/nl/matsv/viabackwards/ViaBackwardsConfig.java b/core/src/main/java/nl/matsv/viabackwards/ViaBackwardsConfig.java new file mode 100644 index 00000000..8eabf3bd --- /dev/null +++ b/core/src/main/java/nl/matsv/viabackwards/ViaBackwardsConfig.java @@ -0,0 +1,35 @@ +package nl.matsv.viabackwards; + +import us.myles.ViaVersion.util.Config; + +import java.io.File; +import java.net.URL; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +public final class ViaBackwardsConfig extends Config implements nl.matsv.viabackwards.api.ViaBackwardsConfig { + + public ViaBackwardsConfig(File configFile) { + super(configFile); + } + + @Override + public boolean addCustomEnchantsToLore() { + return getBoolean("add-custom-enchants-into-lore", true); + } + + @Override + public URL getDefaultConfigURL() { + return getClass().getClassLoader().getResource("assets/viabackwards/config.yml"); + } + + @Override + protected void handleConfig(Map map) { + } + + @Override + public List getUnsupportedOptions() { + return Collections.emptyList(); + } +} diff --git a/core/src/main/java/nl/matsv/viabackwards/api/ViaBackwardsConfig.java b/core/src/main/java/nl/matsv/viabackwards/api/ViaBackwardsConfig.java new file mode 100644 index 00000000..6065969f --- /dev/null +++ b/core/src/main/java/nl/matsv/viabackwards/api/ViaBackwardsConfig.java @@ -0,0 +1,11 @@ +package nl.matsv.viabackwards.api; + +public interface ViaBackwardsConfig { + + /** + * Mimics name and level of a custom enchant through the item's lore. + * + * @return true if enabled + */ + boolean addCustomEnchantsToLore(); +} diff --git a/core/src/main/java/nl/matsv/viabackwards/api/ViaBackwardsPlatform.java b/core/src/main/java/nl/matsv/viabackwards/api/ViaBackwardsPlatform.java index c9600993..e831b469 100644 --- a/core/src/main/java/nl/matsv/viabackwards/api/ViaBackwardsPlatform.java +++ b/core/src/main/java/nl/matsv/viabackwards/api/ViaBackwardsPlatform.java @@ -11,6 +11,7 @@ package nl.matsv.viabackwards.api; import nl.matsv.viabackwards.ViaBackwards; +import nl.matsv.viabackwards.ViaBackwardsConfig; import nl.matsv.viabackwards.protocol.protocol1_10to1_11.Protocol1_10To1_11; import nl.matsv.viabackwards.protocol.protocol1_11_1to1_12.Protocol1_11_1To1_12; import nl.matsv.viabackwards.protocol.protocol1_11to1_11_1.Protocol1_11To1_11_1; @@ -29,32 +30,37 @@ import us.myles.ViaVersion.api.protocol.ProtocolRegistry; import us.myles.ViaVersion.api.protocol.ProtocolVersion; import us.myles.ViaVersion.update.Version; +import java.io.File; import java.util.Collections; import java.util.logging.Logger; public interface ViaBackwardsPlatform { + /** * Initialize ViaBackwards */ - default void init() { - ViaBackwards.init(this); + default void init(File dataFolder) { + ViaBackwardsConfig config = new ViaBackwardsConfig(new File(dataFolder, "config.yml")); + config.reloadConfig(); - if (!isOutdated()) { - ProtocolRegistry.registerProtocol(new Protocol1_9_4To1_10(), Collections.singletonList(ProtocolVersion.v1_9_3.getId()), ProtocolVersion.v1_10.getId()); - ProtocolRegistry.registerProtocol(new Protocol1_10To1_11(), Collections.singletonList(ProtocolVersion.v1_10.getId()), ProtocolVersion.v1_11.getId()); - ProtocolRegistry.registerProtocol(new Protocol1_11To1_11_1(), Collections.singletonList(ProtocolVersion.v1_11.getId()), ProtocolVersion.v1_11_1.getId()); - ProtocolRegistry.registerProtocol(new Protocol1_11_1To1_12(), Collections.singletonList(ProtocolVersion.v1_11_1.getId()), ProtocolVersion.v1_12.getId()); - ProtocolRegistry.registerProtocol(new Protocol1_12To1_12_1(), Collections.singletonList(ProtocolVersion.v1_12.getId()), ProtocolVersion.v1_12_1.getId()); - ProtocolRegistry.registerProtocol(new Protocol1_12_1To1_12_2(), Collections.singletonList(ProtocolVersion.v1_12_1.getId()), ProtocolVersion.v1_12_2.getId()); - ProtocolRegistry.registerProtocol(new Protocol1_12_2To1_13(), Collections.singletonList(ProtocolVersion.v1_12_2.getId()), ProtocolVersion.v1_13.getId()); - ProtocolRegistry.registerProtocol(new Protocol1_13To1_13_1(), Collections.singletonList(ProtocolVersion.v1_13.getId()), ProtocolVersion.v1_13_1.getId()); - ProtocolRegistry.registerProtocol(new Protocol1_13_1To1_13_2(), Collections.singletonList(ProtocolVersion.v1_13_1.getId()), ProtocolVersion.v1_13_2.getId()); - ProtocolRegistry.registerProtocol(new Protocol1_13_2To1_14(), Collections.singletonList(ProtocolVersion.v1_13_2.getId()), ProtocolVersion.v1_14.getId()); - ProtocolRegistry.registerProtocol(new Protocol1_14To1_14_1(), Collections.singletonList(ProtocolVersion.v1_14.getId()), ProtocolVersion.v1_14_1.getId()); - ProtocolRegistry.registerProtocol(new Protocol1_14_1To1_14_2(), Collections.singletonList(ProtocolVersion.v1_14_1.getId()), ProtocolVersion.v1_14_2.getId()); - ProtocolRegistry.registerProtocol(new Protocol1_14_2To1_14_3(), Collections.singletonList(ProtocolVersion.v1_14_2.getId()), ProtocolVersion.v1_14_3.getId()); - ProtocolRegistry.registerProtocol(new Protocol1_14_3To1_14_4(), Collections.singletonList(ProtocolVersion.v1_14_3.getId()), ProtocolVersion.v1_14_4.getId()); - } + ViaBackwards.init(this, config); + + if (isOutdated()) return; + + ProtocolRegistry.registerProtocol(new Protocol1_9_4To1_10(), Collections.singletonList(ProtocolVersion.v1_9_3.getId()), ProtocolVersion.v1_10.getId()); + ProtocolRegistry.registerProtocol(new Protocol1_10To1_11(), Collections.singletonList(ProtocolVersion.v1_10.getId()), ProtocolVersion.v1_11.getId()); + ProtocolRegistry.registerProtocol(new Protocol1_11To1_11_1(), Collections.singletonList(ProtocolVersion.v1_11.getId()), ProtocolVersion.v1_11_1.getId()); + ProtocolRegistry.registerProtocol(new Protocol1_11_1To1_12(), Collections.singletonList(ProtocolVersion.v1_11_1.getId()), ProtocolVersion.v1_12.getId()); + ProtocolRegistry.registerProtocol(new Protocol1_12To1_12_1(), Collections.singletonList(ProtocolVersion.v1_12.getId()), ProtocolVersion.v1_12_1.getId()); + ProtocolRegistry.registerProtocol(new Protocol1_12_1To1_12_2(), Collections.singletonList(ProtocolVersion.v1_12_1.getId()), ProtocolVersion.v1_12_2.getId()); + ProtocolRegistry.registerProtocol(new Protocol1_12_2To1_13(), Collections.singletonList(ProtocolVersion.v1_12_2.getId()), ProtocolVersion.v1_13.getId()); + ProtocolRegistry.registerProtocol(new Protocol1_13To1_13_1(), Collections.singletonList(ProtocolVersion.v1_13.getId()), ProtocolVersion.v1_13_1.getId()); + ProtocolRegistry.registerProtocol(new Protocol1_13_1To1_13_2(), Collections.singletonList(ProtocolVersion.v1_13_1.getId()), ProtocolVersion.v1_13_2.getId()); + ProtocolRegistry.registerProtocol(new Protocol1_13_2To1_14(), Collections.singletonList(ProtocolVersion.v1_13_2.getId()), ProtocolVersion.v1_14.getId()); + ProtocolRegistry.registerProtocol(new Protocol1_14To1_14_1(), Collections.singletonList(ProtocolVersion.v1_14.getId()), ProtocolVersion.v1_14_1.getId()); + ProtocolRegistry.registerProtocol(new Protocol1_14_1To1_14_2(), Collections.singletonList(ProtocolVersion.v1_14_1.getId()), ProtocolVersion.v1_14_2.getId()); + ProtocolRegistry.registerProtocol(new Protocol1_14_2To1_14_3(), Collections.singletonList(ProtocolVersion.v1_14_2.getId()), ProtocolVersion.v1_14_3.getId()); + ProtocolRegistry.registerProtocol(new Protocol1_14_3To1_14_4(), Collections.singletonList(ProtocolVersion.v1_14_3.getId()), ProtocolVersion.v1_14_4.getId()); } /** diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java index 3cdcb631..9dc6369a 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java @@ -605,10 +605,10 @@ public class BlockItemPackets1_13 extends BlockItemRewriter iterator = oldLore.iterator(); - - while (iterator.hasNext()) { - loreTag.add(iterator.next()); - } - display.remove("Lore"); - display.put(loreTag); - display.remove(NBT_TAG_NAME + "|OldLore"); - } + Tag display = tag.get("display"); + if (display instanceof CompoundTag) { + CompoundTag displayTag = (CompoundTag) display; + StringTag name = displayTag.get("Name"); + if (name instanceof StringTag) { + displayTag.put(new StringTag(NBT_TAG_NAME + "|Name", name.getValue())); + name.setValue( + ChatRewriter.legacyTextToJson( + name.getValue() + ) + ); } } + // ench is now Enchantments and now uses identifiers if (tag.get("ench") instanceof ListTag) { rewriteEnchantmentsToServer(tag, false); @@ -1002,18 +1014,22 @@ public class BlockItemPackets1_13 extends BlockItemRewriter us.myles viaversion - 2.1.3 + 2.1.4-SNAPSHOT provided diff --git a/sponge/src/main/java/nl/matsv/viabackwards/SpongePlugin.java b/sponge/src/main/java/nl/matsv/viabackwards/SpongePlugin.java index f3c43287..aa98d27c 100644 --- a/sponge/src/main/java/nl/matsv/viabackwards/SpongePlugin.java +++ b/sponge/src/main/java/nl/matsv/viabackwards/SpongePlugin.java @@ -14,6 +14,7 @@ import com.google.inject.Inject; import lombok.Getter; import nl.matsv.viabackwards.api.ViaBackwardsPlatform; import nl.matsv.viabackwards.sponge.VersionInfo; +import org.spongepowered.api.config.ConfigDir; import org.spongepowered.api.event.Listener; import org.spongepowered.api.event.Order; import org.spongepowered.api.event.game.state.GameInitializationEvent; @@ -21,6 +22,7 @@ import org.spongepowered.api.plugin.Dependency; import org.spongepowered.api.plugin.Plugin; import us.myles.ViaVersion.sponge.util.LoggerWrapper; +import java.nio.file.Path; import java.util.logging.Logger; @Plugin(id = "viabackwards", @@ -35,13 +37,16 @@ public class SpongePlugin implements ViaBackwardsPlatform { private Logger logger; @Inject private org.slf4j.Logger loggerSlf4j; + @Inject + @ConfigDir(sharedRoot = false) + private Path configPath; @Listener(order = Order.LATE) public void onGameStart(GameInitializationEvent e) { // Setup Logger this.logger = new LoggerWrapper(loggerSlf4j); // Init! - this.init(); + this.init(configPath.resolve("config.yml").toFile()); } @Override diff --git a/velocity/src/main/java/nl/matsv/viabackwards/VelocityPlugin.java b/velocity/src/main/java/nl/matsv/viabackwards/VelocityPlugin.java index 5ff4691e..4099522a 100644 --- a/velocity/src/main/java/nl/matsv/viabackwards/VelocityPlugin.java +++ b/velocity/src/main/java/nl/matsv/viabackwards/VelocityPlugin.java @@ -16,11 +16,13 @@ import com.velocitypowered.api.event.Subscribe; import com.velocitypowered.api.event.proxy.ProxyInitializeEvent; import com.velocitypowered.api.plugin.Dependency; import com.velocitypowered.api.plugin.Plugin; +import com.velocitypowered.api.plugin.annotation.DataDirectory; import lombok.Getter; import nl.matsv.viabackwards.api.ViaBackwardsPlatform; import nl.matsv.viabackwards.velocity.VersionInfo; import us.myles.ViaVersion.sponge.util.LoggerWrapper; +import java.nio.file.Path; import java.util.logging.Logger; @Plugin(id = "viabackwards", @@ -35,13 +37,16 @@ public class VelocityPlugin implements ViaBackwardsPlatform { private Logger logger; @Inject private org.slf4j.Logger loggerSlf4j; + @Inject + @DataDirectory + private Path configPath; @Subscribe(order = PostOrder.LATE) public void onProxyStart(ProxyInitializeEvent e) { // Setup Logger this.logger = new LoggerWrapper(loggerSlf4j); // Init! - this.init(); + this.init(configPath.resolve("config.yml").toFile()); } @Override