diff --git a/pom.xml b/pom.xml index ece7ae1c..1e8f053b 100644 --- a/pom.xml +++ b/pom.xml @@ -17,8 +17,8 @@ https://repo.onarandombox.com/content/groups/public - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + papermc + https://papermc.io/repo/repository/maven-public/ jitpack.io @@ -173,8 +173,7 @@ and adjust the build number accordingly --> com.dumptruckman.minecraft.util.Logging - com.onarandombox.multiverseinventories.utils.InvLogging - + com.onarandombox.multiverseinventories.utils.InvLogging com.dumptruckman.minecraft.util.DebugLog @@ -186,7 +185,11 @@ and adjust the build number accordingly --> net.minidev.json - com.onarandombox.multiverseinventories.util.json + com.onarandombox.multiverseinventories.utils.json + + + io.papermc.lib + com.onarandombox.multiverseinventories.utils.paperlib @@ -225,6 +228,12 @@ and adjust the build number accordingly --> + + io.papermc + paperlib + 1.0.7 + compile + com.onarandombox.multiverseadventure Multiverse-Adventure diff --git a/src/main/java/com/onarandombox/multiverseinventories/InventoriesConfig.java b/src/main/java/com/onarandombox/multiverseinventories/InventoriesConfig.java index 14a66cae..867e1a97 100644 --- a/src/main/java/com/onarandombox/multiverseinventories/InventoriesConfig.java +++ b/src/main/java/com/onarandombox/multiverseinventories/InventoriesConfig.java @@ -4,6 +4,7 @@ import com.onarandombox.multiverseinventories.share.Sharables; import com.onarandombox.multiverseinventories.share.Shares; import com.onarandombox.multiverseinventories.util.CommentedYamlConfiguration; +import io.papermc.lib.PaperLib; import org.bukkit.configuration.file.FileConfiguration; import java.io.File; @@ -104,8 +105,8 @@ private List getComments() { } } - private CommentedYamlConfiguration config; - private MultiverseInventories plugin; + private final CommentedYamlConfiguration config; + private final MultiverseInventories plugin; InventoriesConfig(MultiverseInventories plugin) throws IOException { this.plugin = plugin; @@ -114,15 +115,17 @@ private List getComments() { Logging.fine("Created data folder."); } - // Check if the config file exists. If not, create it. + // Check if the config file exists. If not, create it. File configFile = new File(plugin.getDataFolder(), "config.yml"); - if (!configFile.exists()) { + boolean configFileExists = configFile.exists(); + if (!configFileExists) { Logging.fine("Created config file."); configFile.createNewFile(); } // Load the configuration file into memory - config = new CommentedYamlConfiguration(configFile, true); + boolean supportsCommentsNatively = PaperLib.getMinecraftVersion() > 17; + config = new CommentedYamlConfiguration(configFile, !configFileExists || !supportsCommentsNatively); // Sets defaults config values this.setDefaults(); diff --git a/src/main/java/com/onarandombox/multiverseinventories/MultiverseInventories.java b/src/main/java/com/onarandombox/multiverseinventories/MultiverseInventories.java index 83d0262a..d3d37d1c 100644 --- a/src/main/java/com/onarandombox/multiverseinventories/MultiverseInventories.java +++ b/src/main/java/com/onarandombox/multiverseinventories/MultiverseInventories.java @@ -342,8 +342,7 @@ public InventoriesConfig getMVIConfig() { public void reloadConfig() { try { this.config = new InventoriesConfig(this); - this.worldGroupManager = new YamlWorldGroupManager(this, new File(getDataFolder(), "groups.yml"), - ((InventoriesConfig) config).getConfig()); + this.worldGroupManager = new YamlWorldGroupManager(this, this.config.getConfig()); this.worldProfileContainerStore = new WeakProfileContainerStore(this, ContainerType.WORLD); this.groupProfileContainerStore = new WeakProfileContainerStore(this, ContainerType.GROUP); diff --git a/src/main/java/com/onarandombox/multiverseinventories/YamlWorldGroupManager.java b/src/main/java/com/onarandombox/multiverseinventories/YamlWorldGroupManager.java index e70f4417..a4ce12cf 100644 --- a/src/main/java/com/onarandombox/multiverseinventories/YamlWorldGroupManager.java +++ b/src/main/java/com/onarandombox/multiverseinventories/YamlWorldGroupManager.java @@ -5,6 +5,7 @@ import com.onarandombox.multiverseinventories.share.Sharables; import com.onarandombox.multiverseinventories.util.CommentedYamlConfiguration; import com.onarandombox.multiverseinventories.util.DeserializationException; +import io.papermc.lib.PaperLib; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.configuration.Configuration; @@ -30,19 +31,21 @@ final class YamlWorldGroupManager extends AbstractWorldGroupManager { private final CommentedYamlConfiguration groupsConfig; - YamlWorldGroupManager(final MultiverseInventories inventories, final File groupConfigFile, final Configuration config) - throws IOException { + YamlWorldGroupManager(final MultiverseInventories inventories, final Configuration config) throws IOException { super(inventories); - // Check if the group config file exists. If not, create it and migrate group data. + // Check if the group config file exists. If not, create it and migrate group data. + File groupsConfigFile = new File(plugin.getDataFolder(), "groups.yml"); + boolean groupsConfigFileExists = groupsConfigFile.exists(); boolean migrateGroups = false; - if (!groupConfigFile.exists()) { + if (!groupsConfigFile.exists()) { Logging.fine("Created groups file."); - groupConfigFile.createNewFile(); + groupsConfigFile.createNewFile(); migrateGroups = true; } // Load the configuration file into memory - groupsConfig = new CommentedYamlConfiguration(groupConfigFile, true); + boolean supportsCommentsNatively = PaperLib.getMinecraftVersion() > 17; + groupsConfig = new CommentedYamlConfiguration(groupsConfigFile, !groupsConfigFileExists || !supportsCommentsNatively); if (migrateGroups) { migrateGroups(config); diff --git a/src/test/java/com/onarandombox/multiverseinventories/util/TestInstanceCreator.java b/src/test/java/com/onarandombox/multiverseinventories/util/TestInstanceCreator.java index 57a5b743..82fb2bc5 100644 --- a/src/test/java/com/onarandombox/multiverseinventories/util/TestInstanceCreator.java +++ b/src/test/java/com/onarandombox/multiverseinventories/util/TestInstanceCreator.java @@ -84,13 +84,16 @@ public boolean setUp() { // Initialize the Mock server. mockServer = mock(Server.class); - JavaPluginLoader mockPluginLoader = mock(JavaPluginLoader.class); - new ReflectionMemberAccessor().set(JavaPluginLoader.class.getDeclaredField("server"), mockPluginLoader, mockServer); when(mockServer.getName()).thenReturn("TestBukkit"); + when(mockServer.getVersion()).thenReturn("git-TestBukkit-0 (MC: 1.18.1)"); Logger.getLogger("Minecraft").setParent(Util.logger); when(mockServer.getLogger()).thenReturn(Util.logger); when(mockServer.getWorldContainer()).thenReturn(worldsDirectory); + // Initialize the Mock Plugin Loader. + JavaPluginLoader mockPluginLoader = mock(JavaPluginLoader.class); + new ReflectionMemberAccessor().set(JavaPluginLoader.class.getDeclaredField("server"), mockPluginLoader, mockServer); + // Return a fake PDF file. PluginDescriptionFile pdf = spy(new PluginDescriptionFile("Multiverse-Inventories", "2.4-test", "com.onarandombox.multiverseinventories.MultiverseInventories")); @@ -141,12 +144,7 @@ public boolean setUp() { world2File.mkdirs(); MockWorldFactory.makeNewMockWorld("world2", Environment.NORMAL, WorldType.NORMAL); - // Initialize the Mock server. - mockServer = mock(Server.class); - when(mockServer.getName()).thenReturn("TestBukkit"); - Logger.getLogger("Minecraft").setParent(Util.logger); - when(mockServer.getLogger()).thenReturn(Util.logger); - when(mockServer.getWorldContainer()).thenReturn(worldsDirectory); + // Finish initializing. when(plugin.getServer()).thenReturn(mockServer); when(core.getServer()).thenReturn(mockServer); when(mockServer.getPluginManager()).thenReturn(mockPluginManager);