diff --git a/api/src/main/java/net/momirealms/customcrops/api/mechanic/world/level/CustomCropsWorld.java b/api/src/main/java/net/momirealms/customcrops/api/mechanic/world/level/CustomCropsWorld.java index 66d5984..c70e4e6 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/mechanic/world/level/CustomCropsWorld.java +++ b/api/src/main/java/net/momirealms/customcrops/api/mechanic/world/level/CustomCropsWorld.java @@ -70,6 +70,8 @@ public interface CustomCropsWorld { WorldInfoData getInfoData(); + int getDate(); + @Nullable Season getSeason(); diff --git a/plugin/src/main/java/net/momirealms/customcrops/compatibility/season/InBuiltSeason.java b/plugin/src/main/java/net/momirealms/customcrops/compatibility/season/InBuiltSeason.java index 5e713f0..16a0346 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/compatibility/season/InBuiltSeason.java +++ b/plugin/src/main/java/net/momirealms/customcrops/compatibility/season/InBuiltSeason.java @@ -50,7 +50,7 @@ public class InBuiltSeason implements SeasonInterface { return 0; return worldManager .getCustomCropsWorld(world) - .map(cropsWorld -> cropsWorld.getInfoData().getDate()) + .map(CustomCropsWorld::getDate) .orElse(0); } diff --git a/plugin/src/main/java/net/momirealms/customcrops/manager/CommandManager.java b/plugin/src/main/java/net/momirealms/customcrops/manager/CommandManager.java index 0cdfc5c..7b2aa1f 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/manager/CommandManager.java +++ b/plugin/src/main/java/net/momirealms/customcrops/manager/CommandManager.java @@ -126,7 +126,11 @@ public class CommandManager implements Initable { return new CommandAPICommand("date") .withSubcommands( new CommandAPICommand("get") - .withArguments(new StringArgument("world").replaceSuggestions(ArgumentSuggestions.strings(commandSenderSuggestionInfo -> Bukkit.getWorlds().stream().map(WorldInfo::getName).toList().toArray(new String[0])))) + .withArguments(new StringArgument("world").replaceSuggestions(ArgumentSuggestions.strings(commandSenderSuggestionInfo -> plugin.getWorldManager().getCustomCropsWorlds().stream() + .filter(customCropsWorld -> customCropsWorld.getWorldSetting().isEnableSeason()) + .map(CustomCropsWorld::getWorldName) + .toList() + .toArray(new String[0])))) .executes((sender, args) -> { String worldName = (String) args.get("world"); World world = Bukkit.getWorld(worldName); @@ -137,7 +141,11 @@ public class CommandManager implements Initable { plugin.getAdventure().sendMessageWithPrefix(sender, String.valueOf(plugin.getIntegrationManager().getDate(world))); }), new CommandAPICommand("set") - .withArguments(new StringArgument("world").replaceSuggestions(ArgumentSuggestions.strings(commandSenderSuggestionInfo -> Bukkit.getWorlds().stream().map(WorldInfo::getName).toList().toArray(new String[0])))) + .withArguments(new StringArgument("world").replaceSuggestions(ArgumentSuggestions.strings(commandSenderSuggestionInfo -> plugin.getWorldManager().getCustomCropsWorlds().stream() + .filter(customCropsWorld -> customCropsWorld.getWorldSetting().isEnableSeason()) + .map(CustomCropsWorld::getWorldName) + .toList() + .toArray(new String[0])))) .withArguments(new IntegerArgument("date",1)) .executes((sender, args) -> { String worldName = (String) args.get("world"); @@ -176,7 +184,11 @@ public class CommandManager implements Initable { return new CommandAPICommand("season") .withSubcommands( new CommandAPICommand("get") - .withArguments(new StringArgument("world").replaceSuggestions(ArgumentSuggestions.strings(commandSenderSuggestionInfo -> Bukkit.getWorlds().stream().map(WorldInfo::getName).toList().toArray(new String[0])))) + .withArguments(new StringArgument("world").replaceSuggestions(ArgumentSuggestions.strings(commandSenderSuggestionInfo -> plugin.getWorldManager().getCustomCropsWorlds().stream() + .filter(customCropsWorld -> customCropsWorld.getWorldSetting().isEnableSeason()) + .map(CustomCropsWorld::getWorldName) + .toList() + .toArray(new String[0])))) .executes((sender, args) -> { String worldName = (String) args.get("world"); World world = Bukkit.getWorld(worldName); @@ -191,7 +203,11 @@ public class CommandManager implements Initable { if (ConfigManager.syncSeasons()) { return new String[]{ConfigManager.referenceWorld().getName()}; } - return Bukkit.getWorlds().stream().map(WorldInfo::getName).toList().toArray(new String[0]); + return plugin.getWorldManager().getCustomCropsWorlds().stream() + .filter(customCropsWorld -> customCropsWorld.getWorldSetting().isEnableSeason()) + .map(CustomCropsWorld::getWorldName) + .toList() + .toArray(new String[0]); }))) .withArguments(new StringArgument("season") .replaceSuggestions(ArgumentSuggestions.stringsWithTooltips(info -> diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/CWorld.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/CWorld.java index f2f2805..d693fa0 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/CWorld.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/CWorld.java @@ -259,6 +259,18 @@ public class CWorld implements CustomCropsWorld { return infoData; } + @Override + public int getDate() { + if (setting.isEnableSeason()) { + if (ConfigManager.syncSeasons() && ConfigManager.referenceWorld() != world) { + return worldManager.getCustomCropsWorld(ConfigManager.referenceWorld()).map(customCropsWorld -> customCropsWorld.getInfoData().getDate()).orElse(0); + } + return infoData.getDate(); + } else { + return 0; + } + } + @Override @Nullable public Season getSeason() {