diff --git a/build.gradle b/build.gradle index a9c758d..769593e 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group = 'net.momirealms' -version = '3.0.1' +version = '3.0.2' repositories { mavenCentral() diff --git a/src/main/java/net/momirealms/customcrops/api/object/basic/ConfigManager.java b/src/main/java/net/momirealms/customcrops/api/object/basic/ConfigManager.java index adb0972..c0f1120 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/basic/ConfigManager.java +++ b/src/main/java/net/momirealms/customcrops/api/object/basic/ConfigManager.java @@ -90,7 +90,7 @@ public class ConfigManager extends Function { } private void loadWorlds(ConfigurationSection section) { - worldFolderPath = section.getString("folder", ""); + worldFolderPath = section.getString("absolute-world-folder-path", ""); whiteListWorlds = section.getString("mode", "whitelist").equalsIgnoreCase("whitelist"); worldList = new HashSet<>(section.getStringList("list")); } diff --git a/src/main/java/net/momirealms/customcrops/api/object/migrate/MigrateWorld.java b/src/main/java/net/momirealms/customcrops/api/object/migrate/MigrateWorld.java index 7b4edad..9502948 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/migrate/MigrateWorld.java +++ b/src/main/java/net/momirealms/customcrops/api/object/migrate/MigrateWorld.java @@ -27,6 +27,7 @@ import net.momirealms.customcrops.api.object.sprinkler.Sprinkler; import net.momirealms.customcrops.api.object.world.CCChunk; import net.momirealms.customcrops.api.object.world.ChunkCoordinate; import net.momirealms.customcrops.api.object.world.SimpleLocation; +import net.momirealms.customcrops.api.util.ConfigUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -47,7 +48,7 @@ public class MigrateWorld extends Function { @Override @SuppressWarnings("ResultOfMethodCallIgnored") public void init() { - File chunks_folder = new File(CustomCrops.getInstance().getDataFolder().getParentFile().getParentFile(), ConfigManager.worldFolderPath + worldName + File.separator + "customcrops" + File.separator + "chunks"); + File chunks_folder = ConfigUtils.getChunkFolder(worldName); if (!chunks_folder.exists()) chunks_folder.mkdirs(); File[] data_files = chunks_folder.listFiles(); if (data_files == null) return; @@ -69,7 +70,7 @@ public class MigrateWorld extends Function { @Override @SuppressWarnings("ResultOfMethodCallIgnored") public void disable() { - File chunks_folder = new File(CustomCrops.getInstance().getDataFolder().getParentFile().getParentFile(), ConfigManager.worldFolderPath + worldName + File.separator + "customcrops" + File.separator + "chunks"); + File chunks_folder = ConfigUtils.getChunkFolder(worldName); if (!chunks_folder.exists()) chunks_folder.mkdirs(); for (Map.Entry entry : chunkMap.entrySet()) { ChunkCoordinate chunkCoordinate = entry.getKey(); diff --git a/src/main/java/net/momirealms/customcrops/api/object/world/CCWorld.java b/src/main/java/net/momirealms/customcrops/api/object/world/CCWorld.java index 19901da..66998df 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/world/CCWorld.java +++ b/src/main/java/net/momirealms/customcrops/api/object/world/CCWorld.java @@ -99,7 +99,7 @@ public class CCWorld extends Function { @Override @SuppressWarnings("ResultOfMethodCallIgnored") public void init() { - File chunks_folder = new File(CustomCrops.getInstance().getDataFolder().getParentFile().getParentFile(), ConfigManager.worldFolderPath + worldName + File.separator + "customcrops" + File.separator + "chunks"); + File chunks_folder = ConfigUtils.getChunkFolder(worldName); if (!chunks_folder.exists()) chunks_folder.mkdirs(); File[] data_files = chunks_folder.listFiles(); if (data_files == null) return; @@ -131,14 +131,14 @@ public class CCWorld extends Function { } @Override - @SuppressWarnings("ResultOfMethodCallIgnored") public void disable() { closePool(); saveCache(); } + @SuppressWarnings("ResultOfMethodCallIgnored") public void saveCache() { - File chunks_folder = new File(CustomCrops.getInstance().getDataFolder().getParentFile().getParentFile(), ConfigManager.worldFolderPath + worldName + File.separator + "customcrops" + File.separator + "chunks"); + File chunks_folder = ConfigUtils.getChunkFolder(worldName); if (!chunks_folder.exists()) chunks_folder.mkdirs(); for (Map.Entry entry : chunkMap.entrySet()) { ChunkCoordinate chunkCoordinate = entry.getKey(); diff --git a/src/main/java/net/momirealms/customcrops/api/util/ConfigUtils.java b/src/main/java/net/momirealms/customcrops/api/util/ConfigUtils.java index 15af91b..b7c733c 100644 --- a/src/main/java/net/momirealms/customcrops/api/util/ConfigUtils.java +++ b/src/main/java/net/momirealms/customcrops/api/util/ConfigUtils.java @@ -32,6 +32,7 @@ import net.momirealms.customcrops.api.object.InteractWithItem; import net.momirealms.customcrops.api.object.ItemMode; import net.momirealms.customcrops.api.object.Pair; import net.momirealms.customcrops.api.object.action.*; +import net.momirealms.customcrops.api.object.basic.ConfigManager; import net.momirealms.customcrops.api.object.condition.Random; import net.momirealms.customcrops.api.object.condition.*; import net.momirealms.customcrops.api.object.crop.VariationCrop; @@ -454,4 +455,14 @@ public class ConfigUtils { int a = Integer.parseInt(split[3]); return (a << 24) | (r << 16) | (g << 8) | b; } + + public static File getChunkFolder(String world) { + File chunks_folder; + if (ConfigManager.worldFolderPath.equals("")) { + chunks_folder = new File(CustomCrops.getInstance().getDataFolder().getParentFile().getParentFile(), world + File.separator + "customcrops" + File.separator + "chunks"); + } else { + chunks_folder = new File(ConfigManager.worldFolderPath, world + File.separator + "customcrops" + File.separator + "chunks"); + } + return chunks_folder; + } } \ No newline at end of file diff --git a/src/main/java/net/momirealms/customcrops/command/subcmd/HelpCommand.java b/src/main/java/net/momirealms/customcrops/command/subcmd/HelpCommand.java index 8a4460a..bde93e5 100644 --- a/src/main/java/net/momirealms/customcrops/command/subcmd/HelpCommand.java +++ b/src/main/java/net/momirealms/customcrops/command/subcmd/HelpCommand.java @@ -40,7 +40,13 @@ public class HelpCommand extends AbstractSubCommand { AdventureUtils.sendMessage(sender, " ├─help"); AdventureUtils.sendMessage(sender, " ├─about"); AdventureUtils.sendMessage(sender, " ├─reload <#87CEFA>Reload the plugin"); - AdventureUtils.sendMessage(sender, " └─setseason <#FFFACD> <#87CEFA>Set a world's season"); + AdventureUtils.sendMessage(sender, " ├─migrate <#87CEFA>Migrate data from 2.0->3.0"); + AdventureUtils.sendMessage(sender, " ├─convert <#87CEFA>Convert config from 2.0->3.0"); + AdventureUtils.sendMessage(sender, " ├─setseason <#FFFACD> <#87CEFA>Set a world's season"); + AdventureUtils.sendMessage(sender, " ├─setdate <#FFFACD> <#87CEFA>Set a world's date"); + AdventureUtils.sendMessage(sender, " └─force"); + AdventureUtils.sendMessage(sender, " ├─sprinklerwork <#FFFACD> <#87CEFA>Forced sprinklers to work"); + AdventureUtils.sendMessage(sender, " └─consume <#FFFACD> <#87CEFA>Forced pots to reduce water amount and the remaining use of fertilizers"); return true; } } diff --git a/src/main/java/net/momirealms/customcrops/command/subcmd/MigrateCommand.java b/src/main/java/net/momirealms/customcrops/command/subcmd/MigrateCommand.java index 71ecb5f..836212f 100644 --- a/src/main/java/net/momirealms/customcrops/command/subcmd/MigrateCommand.java +++ b/src/main/java/net/momirealms/customcrops/command/subcmd/MigrateCommand.java @@ -76,7 +76,13 @@ public class MigrateCommand extends AbstractSubCommand { @Override public void run() { - File outer_folder = new File(CustomCrops.getInstance().getDataFolder().getAbsoluteFile().getParentFile().getParentFile() + ConfigManager.worldFolderPath); + + File outer_folder; + if (ConfigManager.worldFolderPath.equals("")) { + outer_folder = CustomCrops.getInstance().getDataFolder().getAbsoluteFile().getParentFile().getParentFile(); + } else { + outer_folder = new File(ConfigManager.worldFolderPath); + } if (!outer_folder.isDirectory()) { AdventureUtils.consoleMessage("[CustomCrops] World folder is not detected"); return; diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 1090481..234aff3 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,5 +1,5 @@ # Don't change -config-version: '25' +config-version: '26' # BStats metrics: true # Language: english / spanish / chinese / turkish @@ -9,9 +9,8 @@ debug: false worlds: # This is designed for servers that using a separate folder for worlds - # The default folder is your server's root folder - # 如果你的服务器使用独立文件夹存储世界,请在此填入根目录下的文件地址 - folder: '' + # 如果你的服务器使用独立文件夹存储世界,请在此填入绝对地址 + absolute-world-folder-path: '' # Mode: whitelist/blacklist # Requires a restart when changing mode or editing world list for the safety of data # 模式:白名单/黑名单 @@ -33,7 +32,7 @@ schedule-system: # Save cache to file interval (seconds) # set "-1" to disable # 保存缓存的时间间隔 (秒) - cache-save-interval: 7200 + cache-save-interval: 7500 # Thread pool settings # 线程池设置 thread-pool-settings: diff --git a/src/main/resources/contents/watering-cans/default.yml b/src/main/resources/contents/watering-cans/default.yml index 121a33a..8122032 100644 --- a/src/main/resources/contents/watering-cans/default.yml +++ b/src/main/resources/contents/watering-cans/default.yml @@ -1,3 +1,4 @@ +# Watering can key name watering_can_1: # 物品 id item: customcrops:watering_can_1 diff --git a/src/main/resources/messages/messages_english.yml b/src/main/resources/messages/messages_english.yml index 8e3886c..bdf991b 100644 --- a/src/main/resources/messages/messages_english.yml +++ b/src/main/resources/messages/messages_english.yml @@ -21,4 +21,4 @@ messages: world-not-exist: 'World {world} does not exist.' season-not-exist: 'Season {season} does not exist.' force-sprinkler-work: "Forced {world}'s sprinklers to work" - force-consume: "Forced {world}'s pot to reduce water amount and the remaining use of fertilizers" \ No newline at end of file + force-consume: "Forced {world}'s pots to reduce water amount and the remaining use of fertilizers" \ No newline at end of file