From 0d1fdccb79c6576faa97fee685ae4f09a0bf588b Mon Sep 17 00:00:00 2001 From: carm Date: Sun, 19 Feb 2023 04:52:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(rename):=20=E6=94=AF=E6=8C=81=E5=9C=B0?= =?UTF-8?q?=E6=A0=87=E7=82=B9=E4=B8=8E=E5=AE=B6=E4=BC=A0=E9=80=81=E7=82=B9?= =?UTF-8?q?=E7=9A=84=E9=87=8D=E5=91=BD=E5=90=8D=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 4 +- .../moeteleport/command/MainCommands.java | 2 +- .../command/{sub => base}/HomeSubCommand.java | 4 +- .../{sub => base}/TeleportSubCommand.java | 4 +- .../command/{sub => base}/WarpSubCommand.java | 4 +- .../command/{parent => sub}/BackCommand.java | 2 +- .../command/{parent => sub}/HomeCommands.java | 8 +-- .../{parent => sub}/ReloadCommand.java | 2 +- .../{parent => sub}/TeleportCommands.java | 8 +-- .../command/{parent => sub}/WarpCommands.java | 5 +- .../{ => sub}/home/HomeCreateCommand.java | 6 +- .../{ => sub}/home/HomeDeleteCommand.java | 6 +- .../{ => sub}/home/HomeListCommand.java | 6 +- .../command/sub/home/HomeRenameCommand.java | 71 +++++++++++++++++++ .../{ => sub}/home/HomeTeleportCommand.java | 6 +- .../teleport/TeleportCancelCommand.java | 6 +- .../teleport/TeleportHandleCommand.java | 6 +- .../teleport/TeleportRandomCommand.java | 6 +- .../teleport/TeleportRequestCommand.java | 6 +- .../{ => sub}/warp/WarpCreateCommand.java | 6 +- .../{ => sub}/warp/WarpDeleteCommand.java | 6 +- .../{ => sub}/warp/WarpInfoCommand.java | 6 +- .../{ => sub}/warp/WarpListCommand.java | 6 +- .../command/sub/warp/WarpRenameCommand.java | 71 +++++++++++++++++++ .../{ => sub}/warp/WarpTeleportCommand.java | 7 +- .../plugin/moeteleport/conf/PluginConfig.java | 2 + .../moeteleport/conf/PluginMessages.java | 33 ++++++++- 27 files changed, 235 insertions(+), 64 deletions(-) rename src/main/java/cc/carm/plugin/moeteleport/command/{sub => base}/HomeSubCommand.java (92%) rename src/main/java/cc/carm/plugin/moeteleport/command/{sub => base}/TeleportSubCommand.java (93%) rename src/main/java/cc/carm/plugin/moeteleport/command/{sub => base}/WarpSubCommand.java (94%) rename src/main/java/cc/carm/plugin/moeteleport/command/{parent => sub}/BackCommand.java (96%) rename src/main/java/cc/carm/plugin/moeteleport/command/{parent => sub}/HomeCommands.java (83%) rename src/main/java/cc/carm/plugin/moeteleport/command/{parent => sub}/ReloadCommand.java (96%) rename src/main/java/cc/carm/plugin/moeteleport/command/{parent => sub}/TeleportCommands.java (83%) rename src/main/java/cc/carm/plugin/moeteleport/command/{parent => sub}/WarpCommands.java (90%) rename src/main/java/cc/carm/plugin/moeteleport/command/{ => sub}/home/HomeCreateCommand.java (92%) rename src/main/java/cc/carm/plugin/moeteleport/command/{ => sub}/home/HomeDeleteCommand.java (90%) rename src/main/java/cc/carm/plugin/moeteleport/command/{ => sub}/home/HomeListCommand.java (86%) create mode 100644 src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeRenameCommand.java rename src/main/java/cc/carm/plugin/moeteleport/command/{ => sub}/home/HomeTeleportCommand.java (90%) rename src/main/java/cc/carm/plugin/moeteleport/command/{ => sub}/teleport/TeleportCancelCommand.java (88%) rename src/main/java/cc/carm/plugin/moeteleport/command/{ => sub}/teleport/TeleportHandleCommand.java (94%) rename src/main/java/cc/carm/plugin/moeteleport/command/{ => sub}/teleport/TeleportRandomCommand.java (71%) rename src/main/java/cc/carm/plugin/moeteleport/command/{ => sub}/teleport/TeleportRequestCommand.java (92%) rename src/main/java/cc/carm/plugin/moeteleport/command/{ => sub}/warp/WarpCreateCommand.java (93%) rename src/main/java/cc/carm/plugin/moeteleport/command/{ => sub}/warp/WarpDeleteCommand.java (90%) rename src/main/java/cc/carm/plugin/moeteleport/command/{ => sub}/warp/WarpInfoCommand.java (88%) rename src/main/java/cc/carm/plugin/moeteleport/command/{ => sub}/warp/WarpListCommand.java (92%) create mode 100644 src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpRenameCommand.java rename src/main/java/cc/carm/plugin/moeteleport/command/{ => sub}/warp/WarpTeleportCommand.java (86%) diff --git a/pom.xml b/pom.xml index 244b648..1c95347 100644 --- a/pom.xml +++ b/pom.xml @@ -11,9 +11,9 @@ UTF-8 UTF-8 - 1.4.19 + 1.5.2 0.4.6 - 2.3.1 + 2.3.3 cc.carm.plugin diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/MainCommands.java b/src/main/java/cc/carm/plugin/moeteleport/command/MainCommands.java index ad02a04..dfb0aaa 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/MainCommands.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/MainCommands.java @@ -1,7 +1,7 @@ package cc.carm.plugin.moeteleport.command; import cc.carm.lib.easyplugin.command.CommandHandler; -import cc.carm.plugin.moeteleport.command.parent.*; +import cc.carm.plugin.moeteleport.command.sub.*; import cc.carm.plugin.moeteleport.conf.PluginMessages; import org.bukkit.command.CommandSender; import org.bukkit.plugin.java.JavaPlugin; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/sub/HomeSubCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/base/HomeSubCommand.java similarity index 92% rename from src/main/java/cc/carm/plugin/moeteleport/command/sub/HomeSubCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/base/HomeSubCommand.java index f94c4b0..229b804 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/sub/HomeSubCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/base/HomeSubCommand.java @@ -1,8 +1,8 @@ -package cc.carm.plugin.moeteleport.command.sub; +package cc.carm.plugin.moeteleport.command.base; import cc.carm.lib.easyplugin.command.SubCommand; import cc.carm.plugin.moeteleport.MoeTeleport; -import cc.carm.plugin.moeteleport.command.parent.HomeCommands; +import cc.carm.plugin.moeteleport.command.sub.HomeCommands; import cc.carm.plugin.moeteleport.storage.UserData; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/sub/TeleportSubCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/base/TeleportSubCommand.java similarity index 93% rename from src/main/java/cc/carm/plugin/moeteleport/command/sub/TeleportSubCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/base/TeleportSubCommand.java index bf97ee4..1aa7437 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/sub/TeleportSubCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/base/TeleportSubCommand.java @@ -1,8 +1,8 @@ -package cc.carm.plugin.moeteleport.command.sub; +package cc.carm.plugin.moeteleport.command.base; import cc.carm.lib.easyplugin.command.SubCommand; import cc.carm.plugin.moeteleport.MoeTeleport; -import cc.carm.plugin.moeteleport.command.parent.TeleportCommands; +import cc.carm.plugin.moeteleport.command.sub.TeleportCommands; import cc.carm.plugin.moeteleport.storage.UserData; import cc.carm.plugin.moeteleport.teleport.TeleportRequest; import org.bukkit.Bukkit; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/sub/WarpSubCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/base/WarpSubCommand.java similarity index 94% rename from src/main/java/cc/carm/plugin/moeteleport/command/sub/WarpSubCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/base/WarpSubCommand.java index d7e2fe9..4e4c50c 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/sub/WarpSubCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/base/WarpSubCommand.java @@ -1,8 +1,8 @@ -package cc.carm.plugin.moeteleport.command.sub; +package cc.carm.plugin.moeteleport.command.base; import cc.carm.lib.easyplugin.command.SubCommand; import cc.carm.plugin.moeteleport.MoeTeleport; -import cc.carm.plugin.moeteleport.command.parent.WarpCommands; +import cc.carm.plugin.moeteleport.command.sub.WarpCommands; import cc.carm.plugin.moeteleport.manager.WarpManager; import cc.carm.plugin.moeteleport.model.WarpInfo; import org.bukkit.command.CommandSender; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/parent/BackCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/BackCommand.java similarity index 96% rename from src/main/java/cc/carm/plugin/moeteleport/command/parent/BackCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/BackCommand.java index 6b0f62c..771a0ca 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/parent/BackCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/BackCommand.java @@ -1,4 +1,4 @@ -package cc.carm.plugin.moeteleport.command.parent; +package cc.carm.plugin.moeteleport.command.sub; import cc.carm.lib.easyplugin.command.SubCommand; import cc.carm.plugin.moeteleport.MoeTeleport; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/parent/HomeCommands.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/HomeCommands.java similarity index 83% rename from src/main/java/cc/carm/plugin/moeteleport/command/parent/HomeCommands.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/HomeCommands.java index 61c4bd4..49a6760 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/parent/HomeCommands.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/HomeCommands.java @@ -1,11 +1,8 @@ -package cc.carm.plugin.moeteleport.command.parent; +package cc.carm.plugin.moeteleport.command.sub; import cc.carm.lib.easyplugin.command.CommandHandler; import cc.carm.plugin.moeteleport.command.MainCommands; -import cc.carm.plugin.moeteleport.command.home.HomeCreateCommand; -import cc.carm.plugin.moeteleport.command.home.HomeDeleteCommand; -import cc.carm.plugin.moeteleport.command.home.HomeListCommand; -import cc.carm.plugin.moeteleport.command.home.HomeTeleportCommand; +import cc.carm.plugin.moeteleport.command.sub.home.*; import cc.carm.plugin.moeteleport.conf.PluginConfig; import cc.carm.plugin.moeteleport.conf.PluginMessages; import org.bukkit.command.Command; @@ -26,6 +23,7 @@ public class HomeCommands extends CommandHandler { registerSubCommand(new HomeListCommand(this, "list", "ls")); registerSubCommand(new HomeCreateCommand(this, "set", "create")); registerSubCommand(new HomeDeleteCommand(this, "delete", "remove", "del")); + registerSubCommand(new HomeRenameCommand(this, "rename", "rn")); } diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/parent/ReloadCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/ReloadCommand.java similarity index 96% rename from src/main/java/cc/carm/plugin/moeteleport/command/parent/ReloadCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/ReloadCommand.java index e86c9bb..6094573 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/parent/ReloadCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/ReloadCommand.java @@ -1,4 +1,4 @@ -package cc.carm.plugin.moeteleport.command.parent; +package cc.carm.plugin.moeteleport.command.sub; import cc.carm.lib.easyplugin.command.SubCommand; import cc.carm.plugin.moeteleport.Main; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/parent/TeleportCommands.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/TeleportCommands.java similarity index 83% rename from src/main/java/cc/carm/plugin/moeteleport/command/parent/TeleportCommands.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/TeleportCommands.java index 0cdac94..45bbbda 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/parent/TeleportCommands.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/TeleportCommands.java @@ -1,10 +1,10 @@ -package cc.carm.plugin.moeteleport.command.parent; +package cc.carm.plugin.moeteleport.command.sub; import cc.carm.lib.easyplugin.command.CommandHandler; import cc.carm.plugin.moeteleport.command.MainCommands; -import cc.carm.plugin.moeteleport.command.teleport.TeleportCancelCommand; -import cc.carm.plugin.moeteleport.command.teleport.TeleportHandleCommand; -import cc.carm.plugin.moeteleport.command.teleport.TeleportRequestCommand; +import cc.carm.plugin.moeteleport.command.sub.teleport.TeleportCancelCommand; +import cc.carm.plugin.moeteleport.command.sub.teleport.TeleportHandleCommand; +import cc.carm.plugin.moeteleport.command.sub.teleport.TeleportRequestCommand; import cc.carm.plugin.moeteleport.conf.PluginMessages; import cc.carm.plugin.moeteleport.teleport.TeleportRequest; import org.bukkit.command.CommandSender; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/parent/WarpCommands.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/WarpCommands.java similarity index 90% rename from src/main/java/cc/carm/plugin/moeteleport/command/parent/WarpCommands.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/WarpCommands.java index 30f773b..1e31806 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/parent/WarpCommands.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/WarpCommands.java @@ -1,8 +1,8 @@ -package cc.carm.plugin.moeteleport.command.parent; +package cc.carm.plugin.moeteleport.command.sub; import cc.carm.lib.easyplugin.command.CommandHandler; import cc.carm.plugin.moeteleport.command.MainCommands; -import cc.carm.plugin.moeteleport.command.warp.*; +import cc.carm.plugin.moeteleport.command.sub.warp.*; import cc.carm.plugin.moeteleport.conf.PluginConfig; import cc.carm.plugin.moeteleport.conf.PluginMessages; import org.bukkit.command.Command; @@ -24,6 +24,7 @@ public class WarpCommands extends CommandHandler { registerSubCommand(new WarpInfoCommand(this, "info", "i")); registerSubCommand(new WarpCreateCommand(this, "set", "create")); registerSubCommand(new WarpDeleteCommand(this, "delete", "remove", "del")); + registerSubCommand(new WarpRenameCommand(this, "rename", "rn")); } diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/home/HomeCreateCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeCreateCommand.java similarity index 92% rename from src/main/java/cc/carm/plugin/moeteleport/command/home/HomeCreateCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeCreateCommand.java index 9c115c7..930afc1 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/home/HomeCreateCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeCreateCommand.java @@ -1,9 +1,9 @@ -package cc.carm.plugin.moeteleport.command.home; +package cc.carm.plugin.moeteleport.command.sub.home; import cc.carm.lib.easyplugin.command.SimpleCompleter; import cc.carm.plugin.moeteleport.MoeTeleport; -import cc.carm.plugin.moeteleport.command.parent.HomeCommands; -import cc.carm.plugin.moeteleport.command.sub.HomeSubCommand; +import cc.carm.plugin.moeteleport.command.sub.HomeCommands; +import cc.carm.plugin.moeteleport.command.base.HomeSubCommand; import cc.carm.plugin.moeteleport.conf.PluginMessages; import cc.carm.plugin.moeteleport.conf.location.DataLocation; import cc.carm.plugin.moeteleport.storage.UserData; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/home/HomeDeleteCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeDeleteCommand.java similarity index 90% rename from src/main/java/cc/carm/plugin/moeteleport/command/home/HomeDeleteCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeDeleteCommand.java index 4e8ec18..0ad4814 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/home/HomeDeleteCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeDeleteCommand.java @@ -1,7 +1,7 @@ -package cc.carm.plugin.moeteleport.command.home; +package cc.carm.plugin.moeteleport.command.sub.home; -import cc.carm.plugin.moeteleport.command.parent.HomeCommands; -import cc.carm.plugin.moeteleport.command.sub.HomeSubCommand; +import cc.carm.plugin.moeteleport.command.sub.HomeCommands; +import cc.carm.plugin.moeteleport.command.base.HomeSubCommand; import cc.carm.plugin.moeteleport.conf.PluginMessages; import cc.carm.plugin.moeteleport.conf.location.DataLocation; import cc.carm.plugin.moeteleport.storage.UserData; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/home/HomeListCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeListCommand.java similarity index 86% rename from src/main/java/cc/carm/plugin/moeteleport/command/home/HomeListCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeListCommand.java index 72d0052..ee3ea20 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/home/HomeListCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeListCommand.java @@ -1,7 +1,7 @@ -package cc.carm.plugin.moeteleport.command.home; +package cc.carm.plugin.moeteleport.command.sub.home; -import cc.carm.plugin.moeteleport.command.parent.HomeCommands; -import cc.carm.plugin.moeteleport.command.sub.HomeSubCommand; +import cc.carm.plugin.moeteleport.command.sub.HomeCommands; +import cc.carm.plugin.moeteleport.command.base.HomeSubCommand; import cc.carm.plugin.moeteleport.conf.PluginMessages; import cc.carm.plugin.moeteleport.storage.UserData; import org.bukkit.command.CommandSender; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeRenameCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeRenameCommand.java new file mode 100644 index 0000000..9807505 --- /dev/null +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeRenameCommand.java @@ -0,0 +1,71 @@ +package cc.carm.plugin.moeteleport.command.sub.home; + +import cc.carm.plugin.moeteleport.command.sub.HomeCommands; +import cc.carm.plugin.moeteleport.command.base.HomeSubCommand; +import cc.carm.plugin.moeteleport.conf.PluginMessages; +import cc.carm.plugin.moeteleport.conf.location.DataLocation; +import cc.carm.plugin.moeteleport.storage.UserData; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; +import org.jetbrains.annotations.NotNull; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +public class HomeRenameCommand extends HomeSubCommand { + + public HomeRenameCommand(@NotNull HomeCommands parent, String name, String... aliases) { + super(parent, name, aliases); + } + + @Override + public Void execute(JavaPlugin plugin, CommandSender sender, String[] args) throws Exception { + if (!(sender instanceof Player)) { + PluginMessages.NOT_PLAYER.send(sender); + return null; + } + + if (args.length < 2) return getParent().noArgs(sender); + + String homeName = args[0]; + String newName = args[1]; + + if (homeName.equals(newName)) return getParent().noArgs(sender); + if (newName.length() > 32) { // 超过家的名字长度限定 + PluginMessages.HOME.NAME_TOO_LONG.send(sender); + return null; + } + + Player player = (Player) sender; + UserData data = getData(player); + + Map.Entry locationInfo = data.getHomeLocation(homeName); + if (locationInfo == null) { + PluginMessages.HOME.NOT_FOUND.send(player); + return null; + } + + Map.Entry newInfo = data.getHomeLocation(newName); + if (newInfo != null) { + PluginMessages.HOME.ALREADY_EXITS.send(player); + return null; + } + + PluginMessages.HOME.RENAMED.send(player, newName, locationInfo.getKey()); + + data.setHomeLocation(newName, locationInfo.getValue().getBukkitLocation()); + data.delHomeLocation(homeName); + + return null; + } + + @Override + public List tabComplete(JavaPlugin plugin, CommandSender sender, String[] args) { + if (args.length == 1) { + return listHomes(sender, args[args.length - 1]); + } else return Collections.emptyList(); + } + +} diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/home/HomeTeleportCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeTeleportCommand.java similarity index 90% rename from src/main/java/cc/carm/plugin/moeteleport/command/home/HomeTeleportCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeTeleportCommand.java index f82413d..045166f 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/home/HomeTeleportCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/home/HomeTeleportCommand.java @@ -1,8 +1,8 @@ -package cc.carm.plugin.moeteleport.command.home; +package cc.carm.plugin.moeteleport.command.sub.home; import cc.carm.plugin.moeteleport.MoeTeleport; -import cc.carm.plugin.moeteleport.command.parent.HomeCommands; -import cc.carm.plugin.moeteleport.command.sub.HomeSubCommand; +import cc.carm.plugin.moeteleport.command.sub.HomeCommands; +import cc.carm.plugin.moeteleport.command.base.HomeSubCommand; import cc.carm.plugin.moeteleport.conf.PluginMessages; import cc.carm.plugin.moeteleport.conf.location.DataLocation; import cc.carm.plugin.moeteleport.storage.UserData; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/teleport/TeleportCancelCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/teleport/TeleportCancelCommand.java similarity index 88% rename from src/main/java/cc/carm/plugin/moeteleport/command/teleport/TeleportCancelCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/teleport/TeleportCancelCommand.java index 1606638..eaa8342 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/teleport/TeleportCancelCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/teleport/TeleportCancelCommand.java @@ -1,8 +1,8 @@ -package cc.carm.plugin.moeteleport.command.teleport; +package cc.carm.plugin.moeteleport.command.sub.teleport; import cc.carm.plugin.moeteleport.MoeTeleport; -import cc.carm.plugin.moeteleport.command.parent.TeleportCommands; -import cc.carm.plugin.moeteleport.command.sub.TeleportSubCommand; +import cc.carm.plugin.moeteleport.command.sub.TeleportCommands; +import cc.carm.plugin.moeteleport.command.base.TeleportSubCommand; import cc.carm.plugin.moeteleport.conf.PluginMessages; import cc.carm.plugin.moeteleport.teleport.TeleportRequest; import org.bukkit.command.CommandSender; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/teleport/TeleportHandleCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/teleport/TeleportHandleCommand.java similarity index 94% rename from src/main/java/cc/carm/plugin/moeteleport/command/teleport/TeleportHandleCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/teleport/TeleportHandleCommand.java index 6b2c2c2..b6069d4 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/teleport/TeleportHandleCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/teleport/TeleportHandleCommand.java @@ -1,8 +1,8 @@ -package cc.carm.plugin.moeteleport.command.teleport; +package cc.carm.plugin.moeteleport.command.sub.teleport; import cc.carm.plugin.moeteleport.MoeTeleport; -import cc.carm.plugin.moeteleport.command.parent.TeleportCommands; -import cc.carm.plugin.moeteleport.command.sub.TeleportSubCommand; +import cc.carm.plugin.moeteleport.command.sub.TeleportCommands; +import cc.carm.plugin.moeteleport.command.base.TeleportSubCommand; import cc.carm.plugin.moeteleport.conf.PluginMessages; import cc.carm.plugin.moeteleport.storage.UserData; import cc.carm.plugin.moeteleport.teleport.TeleportRequest; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/teleport/TeleportRandomCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/teleport/TeleportRandomCommand.java similarity index 71% rename from src/main/java/cc/carm/plugin/moeteleport/command/teleport/TeleportRandomCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/teleport/TeleportRandomCommand.java index 70241cf..526a600 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/teleport/TeleportRandomCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/teleport/TeleportRandomCommand.java @@ -1,7 +1,7 @@ -package cc.carm.plugin.moeteleport.command.teleport; +package cc.carm.plugin.moeteleport.command.sub.teleport; -import cc.carm.plugin.moeteleport.command.parent.TeleportCommands; -import cc.carm.plugin.moeteleport.command.sub.TeleportSubCommand; +import cc.carm.plugin.moeteleport.command.sub.TeleportCommands; +import cc.carm.plugin.moeteleport.command.base.TeleportSubCommand; import org.bukkit.command.CommandSender; import org.bukkit.plugin.java.JavaPlugin; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/teleport/TeleportRequestCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/teleport/TeleportRequestCommand.java similarity index 92% rename from src/main/java/cc/carm/plugin/moeteleport/command/teleport/TeleportRequestCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/teleport/TeleportRequestCommand.java index 53942e7..580e959 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/teleport/TeleportRequestCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/teleport/TeleportRequestCommand.java @@ -1,9 +1,9 @@ -package cc.carm.plugin.moeteleport.command.teleport; +package cc.carm.plugin.moeteleport.command.sub.teleport; import cc.carm.lib.easyplugin.command.SimpleCompleter; import cc.carm.plugin.moeteleport.MoeTeleport; -import cc.carm.plugin.moeteleport.command.parent.TeleportCommands; -import cc.carm.plugin.moeteleport.command.sub.TeleportSubCommand; +import cc.carm.plugin.moeteleport.command.sub.TeleportCommands; +import cc.carm.plugin.moeteleport.command.base.TeleportSubCommand; import cc.carm.plugin.moeteleport.conf.PluginMessages; import cc.carm.plugin.moeteleport.teleport.TeleportRequest; import org.bukkit.Bukkit; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/warp/WarpCreateCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpCreateCommand.java similarity index 93% rename from src/main/java/cc/carm/plugin/moeteleport/command/warp/WarpCreateCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpCreateCommand.java index ee7abaf..1274641 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/warp/WarpCreateCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpCreateCommand.java @@ -1,9 +1,9 @@ -package cc.carm.plugin.moeteleport.command.warp; +package cc.carm.plugin.moeteleport.command.sub.warp; import cc.carm.lib.easyplugin.command.SimpleCompleter; import cc.carm.plugin.moeteleport.MoeTeleport; -import cc.carm.plugin.moeteleport.command.parent.WarpCommands; -import cc.carm.plugin.moeteleport.command.sub.WarpSubCommand; +import cc.carm.plugin.moeteleport.command.sub.WarpCommands; +import cc.carm.plugin.moeteleport.command.base.WarpSubCommand; import cc.carm.plugin.moeteleport.conf.PluginMessages; import cc.carm.plugin.moeteleport.model.WarpInfo; import org.bukkit.command.CommandSender; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/warp/WarpDeleteCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpDeleteCommand.java similarity index 90% rename from src/main/java/cc/carm/plugin/moeteleport/command/warp/WarpDeleteCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpDeleteCommand.java index 071737b..bc7a6df 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/warp/WarpDeleteCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpDeleteCommand.java @@ -1,7 +1,7 @@ -package cc.carm.plugin.moeteleport.command.warp; +package cc.carm.plugin.moeteleport.command.sub.warp; -import cc.carm.plugin.moeteleport.command.parent.WarpCommands; -import cc.carm.plugin.moeteleport.command.sub.WarpSubCommand; +import cc.carm.plugin.moeteleport.command.sub.WarpCommands; +import cc.carm.plugin.moeteleport.command.base.WarpSubCommand; import cc.carm.plugin.moeteleport.conf.PluginMessages; import cc.carm.plugin.moeteleport.model.WarpInfo; import org.bukkit.command.CommandSender; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/warp/WarpInfoCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpInfoCommand.java similarity index 88% rename from src/main/java/cc/carm/plugin/moeteleport/command/warp/WarpInfoCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpInfoCommand.java index e50ceb1..112c255 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/warp/WarpInfoCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpInfoCommand.java @@ -1,7 +1,7 @@ -package cc.carm.plugin.moeteleport.command.warp; +package cc.carm.plugin.moeteleport.command.sub.warp; -import cc.carm.plugin.moeteleport.command.parent.WarpCommands; -import cc.carm.plugin.moeteleport.command.sub.WarpSubCommand; +import cc.carm.plugin.moeteleport.command.sub.WarpCommands; +import cc.carm.plugin.moeteleport.command.base.WarpSubCommand; import cc.carm.plugin.moeteleport.conf.PluginMessages; import cc.carm.plugin.moeteleport.model.WarpInfo; import org.bukkit.command.CommandSender; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/warp/WarpListCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpListCommand.java similarity index 92% rename from src/main/java/cc/carm/plugin/moeteleport/command/warp/WarpListCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpListCommand.java index 3eec5b5..a91a0ee 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/warp/WarpListCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpListCommand.java @@ -1,8 +1,8 @@ -package cc.carm.plugin.moeteleport.command.warp; +package cc.carm.plugin.moeteleport.command.sub.warp; import cc.carm.lib.easyplugin.command.SimpleCompleter; -import cc.carm.plugin.moeteleport.command.parent.WarpCommands; -import cc.carm.plugin.moeteleport.command.sub.WarpSubCommand; +import cc.carm.plugin.moeteleport.command.sub.WarpCommands; +import cc.carm.plugin.moeteleport.command.base.WarpSubCommand; import cc.carm.plugin.moeteleport.conf.PluginMessages; import cc.carm.plugin.moeteleport.model.WarpInfo; import org.bukkit.command.CommandSender; diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpRenameCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpRenameCommand.java new file mode 100644 index 0000000..632f9ff --- /dev/null +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpRenameCommand.java @@ -0,0 +1,71 @@ +package cc.carm.plugin.moeteleport.command.sub.warp; + +import cc.carm.plugin.moeteleport.Main; +import cc.carm.plugin.moeteleport.command.sub.WarpCommands; +import cc.carm.plugin.moeteleport.command.base.WarpSubCommand; +import cc.carm.plugin.moeteleport.conf.PluginMessages; +import cc.carm.plugin.moeteleport.model.WarpInfo; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; +import org.jetbrains.annotations.NotNull; + +import java.util.Collections; +import java.util.List; + +public class WarpRenameCommand extends WarpSubCommand { + + public WarpRenameCommand(@NotNull WarpCommands parent, String name, String... aliases) { + super(parent, name, aliases); + } + + @Override + public Void execute(JavaPlugin plugin, CommandSender sender, String[] args) throws Exception { + if (!(sender instanceof Player)) { + PluginMessages.NOT_PLAYER.send(sender); + return null; + } + + if (args.length < 2) return getParent().noArgs(sender); + + String oldName = args[0]; + String newName = args[1]; + + if (oldName.equals(newName)) return getParent().noArgs(sender); + if (newName.length() > 16) { // 超过地标的名字长度限定 + PluginMessages.WARP.NAME_TOO_LONG.send(sender); + return null; + } + + Player player = (Player) sender; + + + WarpInfo info = getWarp(oldName); + if (info == null) { + PluginMessages.WARP.NOT_FOUND.send(player); + return null; + } + + WarpInfo newInfo = getWarp(oldName); + if (newInfo != null) { + PluginMessages.WARP.ALREADY_EXITS.send(player); + return null; + } + + PluginMessages.WARP.RENAMED.send(player, newName, info.getLocation()); + Main.getInstance().getScheduler().runAsync(() -> { + getManager().setWarp(newName, player.getUniqueId(), info.getLocation()); + getManager().delWarp(oldName); + }); + + return null; + } + + @Override + public List tabComplete(JavaPlugin plugin, CommandSender sender, String[] args) { + if (args.length == 1) { + return listWarpNames(sender, args[args.length - 1], true); + } else return Collections.emptyList(); + } + +} diff --git a/src/main/java/cc/carm/plugin/moeteleport/command/warp/WarpTeleportCommand.java b/src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpTeleportCommand.java similarity index 86% rename from src/main/java/cc/carm/plugin/moeteleport/command/warp/WarpTeleportCommand.java rename to src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpTeleportCommand.java index 47ae4b5..8dbcfe9 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/command/warp/WarpTeleportCommand.java +++ b/src/main/java/cc/carm/plugin/moeteleport/command/sub/warp/WarpTeleportCommand.java @@ -1,10 +1,9 @@ -package cc.carm.plugin.moeteleport.command.warp; +package cc.carm.plugin.moeteleport.command.sub.warp; import cc.carm.plugin.moeteleport.MoeTeleport; -import cc.carm.plugin.moeteleport.command.parent.WarpCommands; -import cc.carm.plugin.moeteleport.command.sub.WarpSubCommand; +import cc.carm.plugin.moeteleport.command.sub.WarpCommands; +import cc.carm.plugin.moeteleport.command.base.WarpSubCommand; import cc.carm.plugin.moeteleport.conf.PluginMessages; -import cc.carm.plugin.moeteleport.manager.TeleportManager; import cc.carm.plugin.moeteleport.model.WarpInfo; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; diff --git a/src/main/java/cc/carm/plugin/moeteleport/conf/PluginConfig.java b/src/main/java/cc/carm/plugin/moeteleport/conf/PluginConfig.java index 15dcfe2..3f883e9 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/conf/PluginConfig.java +++ b/src/main/java/cc/carm/plugin/moeteleport/conf/PluginConfig.java @@ -54,6 +54,7 @@ public class PluginConfig extends ConfigurationRoot { map.put("delHome", "home delete"); map.put("listHomes", "home list"); map.put("listHome", "home list"); + map.put("renameHome", "home rename"); map.put("warp", "warp to"); map.put("setWarp", "warp set"); @@ -61,6 +62,7 @@ public class PluginConfig extends ConfigurationRoot { map.put("warpInfo", "warp info"); map.put("listWarps", "warp list"); map.put("listWarp", "warp list"); + map.put("renameWarp", "warp rename"); }).build(); } diff --git a/src/main/java/cc/carm/plugin/moeteleport/conf/PluginMessages.java b/src/main/java/cc/carm/plugin/moeteleport/conf/PluginMessages.java index c3f7446..c5d3077 100644 --- a/src/main/java/cc/carm/plugin/moeteleport/conf/PluginMessages.java +++ b/src/main/java/cc/carm/plugin/moeteleport/conf/PluginMessages.java @@ -1,6 +1,7 @@ package cc.carm.plugin.moeteleport.conf; import cc.carm.lib.configuration.core.ConfigurationRoot; +import cc.carm.lib.configuration.core.annotation.HeaderComment; import cc.carm.lib.easyplugin.utils.ColorParser; import cc.carm.lib.mineconfiguration.bukkit.builder.message.CraftMessageListBuilder; import cc.carm.lib.mineconfiguration.bukkit.builder.message.CraftMessageValueBuilder; @@ -17,6 +18,13 @@ import org.jetbrains.annotations.NotNull; import java.util.function.BiFunction; + +@HeaderComment({ + "MoeTeleport 传送插件的消息配置文件", + "如特定的消息不需要任何提示,可直接留下单行空内容消息。", + "支持 支持 &+颜色代码(原版颜色)、§(#XXXXXX)(RGB颜色) 与 &<#XXXXXX>(前后标注RGB颜色渐变)。", + " " +}) public class PluginMessages extends ConfigurationRoot { public static @NotNull CraftMessageListBuilder list() { @@ -95,7 +103,9 @@ public class PluginMessages extends ConfigurationRoot { "&8-&7&o 若地标点已存在,且您是地标点的设立者,", "&8-&7&o 则会覆盖原有的地标点位置。", "&8#&f warp delete &d[地标名]", - "&8-&7 删除一个自己设立的地标点。" + "&8-&7 删除一个自己设立的地标点。", + "&8#&f warp rename &d<原地标名> &d<新地标名>", + "&8-&7 重命名一个自己设立的地标点。" ).build(); public static final ConfiguredMessageList HOMES = list().defaults( @@ -110,7 +120,9 @@ public class PluginMessages extends ConfigurationRoot { "&8-&7 设定一个家的位置。", "&8-&7&o 若不填写家的名称则默认为“home”", "&8#&f home delete &d[家名]", - "&8-&7 删除一个家的位置。" + "&8-&7 删除一个家的位置。", + "&8#&f home rename &d<原家名> &d<新家名>", + "&8-&7 重命名一个家传送点的名称。" ).build(); } @@ -257,6 +269,11 @@ public class PluginMessages extends ConfigurationRoot { "&7或输入 &5/setHome <家名称> &7覆盖之前的家传送点。" ).params("max").build(); + public static final ConfiguredMessageList ALREADY_EXITS = list() + .defaults("&f您已存在名为 &d%(name) &f的家传送点,换个名字叭~") + .params("name") + .build(); + public static final ConfiguredMessageList NOT_FOUND = list() .defaults("&f您还没有设置这个家,请先输入 &5/setHome <家名称> &f设置一个吧!") .build(); @@ -275,6 +292,10 @@ public class PluginMessages extends ConfigurationRoot { "&8原先位置为 &5%(location) &8。" ).params("name", "location").build(); + public static final ConfiguredMessageList RENAMED = list().defaults( + "&f成功以 &d%(newName) 重命名原先的家传送点 &d&o%(oldName) &f。" + ).params("newName", "oldName").build(); + public static class LIST extends ConfigurationRoot { public static final ConfiguredMessageList HEADER = list().defaults( @@ -336,6 +357,14 @@ public class PluginMessages extends ConfigurationRoot { "&8原先位置为 &5%(location) &8。" ).params("name", "location").build(); + public static final ConfiguredMessageList ALREADY_EXITS = list() + .defaults("&f已存在名为 &d%(name) &f的地标点,换个名字叭~") + .params("name") + .build(); + + public static final ConfiguredMessageList RENAMED = list().defaults( + "&f成功以 &d%(newName) 重命名原先的地标点 &d&o%(oldName) &f。" + ).params("newName", "oldName").build(); public static class LIST extends ConfigurationRoot {