diff --git a/src/main/java/net/momirealms/customcrops/CustomCrops.java b/src/main/java/net/momirealms/customcrops/CustomCrops.java index 450b176..ebef006 100644 --- a/src/main/java/net/momirealms/customcrops/CustomCrops.java +++ b/src/main/java/net/momirealms/customcrops/CustomCrops.java @@ -40,6 +40,7 @@ public final class CustomCrops extends JavaPlugin { public static JavaPlugin instance; public static BukkitAudiences adventure; + public static CustomCrops plugin; private CropTimer cropTimer; private CropManager cropManager; @@ -64,6 +65,8 @@ public final class CustomCrops extends JavaPlugin { @Override public void onEnable() { + plugin = this; + instance = this; adventure = BukkitAudiences.create(instance); diff --git a/src/main/java/net/momirealms/customcrops/api/CustomCropsAPI.java b/src/main/java/net/momirealms/customcrops/api/CustomCropsAPI.java new file mode 100644 index 0000000..7e8c16d --- /dev/null +++ b/src/main/java/net/momirealms/customcrops/api/CustomCropsAPI.java @@ -0,0 +1,24 @@ +package net.momirealms.customcrops.api; + +import net.momirealms.customcrops.CustomCrops; +import net.momirealms.customcrops.datamanager.SeasonManager; + +public class CustomCropsAPI { + + /** + * 获取插件实例 + * @return 插件实例 + */ + public static CustomCrops getPlugin(){ + return CustomCrops.plugin; + } + + /** + * 获取指定世界的季节 + * @param worldName 世界名 + * @return 那个世界的季节,若不存在则返回null + */ + public static String getSeason(String worldName){ + return SeasonManager.SEASON.get(worldName); + } +} diff --git a/src/main/java/net/momirealms/customcrops/commands/Completer.java b/src/main/java/net/momirealms/customcrops/commands/Completer.java index d25037c..4351300 100644 --- a/src/main/java/net/momirealms/customcrops/commands/Completer.java +++ b/src/main/java/net/momirealms/customcrops/commands/Completer.java @@ -24,6 +24,7 @@ import org.bukkit.command.TabCompleter; import org.jetbrains.annotations.Nullable; import javax.annotation.ParametersAreNonnullByDefault; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -36,27 +37,58 @@ public class Completer implements TabCompleter { return null; } if (args.length == 1) { - return Arrays.asList("backup", "forcegrow", "forcesave", "forcewater", "reload", "setseason"); + List arrayList = new ArrayList<>(); + for (String cmd : Arrays.asList("backup", "forcegrow", "forcesave", "forcewater", "reload", "setseason")) { + if (cmd.startsWith(args[0])) + arrayList.add(cmd); + } + return arrayList; } if(args[0].equalsIgnoreCase("setseason") && args.length == 2){ - return ConfigReader.Config.worldNames; + List arrayList = new ArrayList<>(); + for (String cmd : ConfigReader.Config.worldNames) { + if (cmd.startsWith(args[1])) + arrayList.add(cmd); + } + return arrayList; } if(args[0].equalsIgnoreCase("forcesave") && args.length == 2){ + List arrayList = new ArrayList<>(); if (ConfigReader.Season.enable){ if (ConfigReader.Season.seasonChange){ - return Arrays.asList("all","crop","pot","sprinkler"); + for (String cmd : Arrays.asList("all","crop","pot","sprinkler")) { + if (cmd.startsWith(args[1])) + arrayList.add(cmd); + } }else{ - return Arrays.asList("all","crop","pot","season","sprinkler"); + for (String cmd : Arrays.asList("all","crop","pot","season","sprinkler")) { + if (cmd.startsWith(args[1])) + arrayList.add(cmd); + } } }else { - return Arrays.asList("all","crop","pot","sprinkler"); + for (String cmd : Arrays.asList("all","crop","pot","sprinkler")) { + if (cmd.startsWith(args[1])) + arrayList.add(cmd); + } } + return arrayList; } if(args[0].equalsIgnoreCase("setseason") && args.length == 3){ - return Arrays.asList("spring","summer","autumn","winter"); + List arrayList = new ArrayList<>(); + for (String cmd : Arrays.asList("spring","summer","autumn","winter")) { + if (cmd.startsWith(args[2])) + arrayList.add(cmd); + } + return arrayList; } if(args[0].equalsIgnoreCase("forcegrow") || args[0].equalsIgnoreCase("forcewater")){ - return ConfigReader.Config.worldNames; + List arrayList = new ArrayList<>(); + for (String cmd : ConfigReader.Config.worldNames) { + if (cmd.startsWith(args[1])) + arrayList.add(cmd); + } + return arrayList; } return null; } diff --git a/src/main/java/net/momirealms/customcrops/commands/Executor.java b/src/main/java/net/momirealms/customcrops/commands/Executor.java index ac2b629..443425b 100644 --- a/src/main/java/net/momirealms/customcrops/commands/Executor.java +++ b/src/main/java/net/momirealms/customcrops/commands/Executor.java @@ -150,6 +150,7 @@ public class Executor implements CommandExecutor { case "cleandata" -> { plugin.getCropManager().cleanData(); plugin.getSprinklerManager().cleanData(); + return true; } case "setseason" -> { if (args.length < 3) {