Skip to content

Commit

Permalink
Improve rename
Browse files Browse the repository at this point in the history
  • Loading branch information
T14D3 committed Jan 15, 2025
1 parent 8ef64c0 commit 5702861
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 24 deletions.
51 changes: 29 additions & 22 deletions src/main/java/de/t14d3/zones/brigadier/Command.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,37 +69,44 @@ public static LiteralCommandNode<CommandSourceStack> node() {
ctx.getSource().getSender().sendMessage(String.join(", ", ctx.getInput().split(" ")));
return com.mojang.brigadier.Command.SINGLE_SUCCESS;
})
.then(Commands.argument("player", StringArgumentType.word())
.then(Commands.argument("name", StringArgumentType.string())
.suggests((ctx, builder) -> {
if (arg(ctx, 1).equalsIgnoreCase("INFO") || arg(ctx, 1).equalsIgnoreCase("DELETE") || arg(ctx, 1).equalsIgnoreCase("SELECT")) {
if (arg(ctx, 1).equalsIgnoreCase("RENAME")) {
builder.suggest("<New Name>", MessageComponentSerializer.message().serialize(Component.text("Type the new name for the region")));
return builder.buildFuture();
}
for (OfflinePlayer offlinePlayer : Bukkit.getOfflinePlayers()) {
if (ctx.getInput().split(" ").length <= 3 || (offlinePlayer.getName() != null ? offlinePlayer.getName() : offlinePlayer.getUniqueId().toString()).toLowerCase().startsWith(arg(ctx, 3).toLowerCase())) {
builder.suggest(offlinePlayer.getName());
}
}
for (Map.Entry<String, Region> region : Zones.getInstance().getRegionManager().regions().entrySet()) {
if (!ctx.getInput().split(" ")[2].equalsIgnoreCase(region.getKey())) {
continue;
if (arg(ctx, 1).equalsIgnoreCase("SET")) {
for (OfflinePlayer offlinePlayer : Bukkit.getOfflinePlayers()) {
if (ctx.getInput().split(" ").length <= 3 || (offlinePlayer.getName() != null ? offlinePlayer.getName() : offlinePlayer.getUniqueId().toString()).toLowerCase().startsWith(arg(ctx, 3).toLowerCase())) {
builder.suggest(offlinePlayer.getName());
}
}
if (ctx.getSource().getSender().hasPermission("zones.info.other")
|| (ctx.getSource().getSender() instanceof Player player && region.getValue().isAdmin(player.getUniqueId()))) {
region.getValue().getGroupNames().forEach(group -> {
List<String> groupMembers = new ArrayList<>();
region.getValue().getGroupMembers(group).forEach(val -> {
groupMembers.add(Bukkit.getOfflinePlayer(UUID.fromString(val)).getName());
for (Map.Entry<String, Region> region : Zones.getInstance().getRegionManager().regions().entrySet()) {
if (!ctx.getInput().split(" ")[2].equalsIgnoreCase(region.getKey())) {
continue;
}
if (ctx.getSource().getSender().hasPermission("zones.info.other")
|| (ctx.getSource().getSender() instanceof Player player && region.getValue().isAdmin(player.getUniqueId()))) {
region.getValue().getGroupNames().forEach(group -> {
List<String> groupMembers = new ArrayList<>();
region.getValue().getGroupMembers(group).forEach(val -> {
groupMembers.add(Bukkit.getOfflinePlayer(UUID.fromString(val)).getName());
});
if (ctx.getInput().split(" ").length <= 3
|| group.toLowerCase().startsWith(arg(ctx, 3).toLowerCase())
|| group.toLowerCase().replace("+", "").startsWith(arg(ctx, 3).toLowerCase())) {
builder.suggest(group, MessageComponentSerializer.message().serialize(Component.text(groupMembers.toString())));
}
});
if (ctx.getInput().split(" ").length <= 3
|| group.toLowerCase().startsWith(arg(ctx, 3).toLowerCase())
|| group.toLowerCase().replace("+", "").startsWith(arg(ctx, 3).toLowerCase())) {
builder.suggest(group, MessageComponentSerializer.message().serialize(Component.text(groupMembers.toString())));
}
});
}
}
}
return builder.buildFuture();
})
.executes(ctx -> {
Zones.getInstance().getCommandListener().execute(ctx.getSource(), ctx.getInput());
return com.mojang.brigadier.Command.SINGLE_SUCCESS;
})
.then(Commands.argument("flag", new FlagArgument())
.suggests((ctx, builder) -> {
for (Actions action : Actions.values()) {
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/de/t14d3/zones/listeners/CommandListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -415,10 +415,11 @@ public void handleRenameCommand(CommandSender sender, String[] args) {
sender.sendMessage(miniMessage.deserialize(messages.get("commands.rename.provide-name")));
return;
}
region.setName(args[2], regionManager);
String name = String.join(" ", args).substring(16).replace("\"", "").replace("'", "");
region.setName(name, regionManager);
sender.sendMessage(miniMessage.deserialize(messages.get("commands.rename.success"),
parsed("region", regionKey),
parsed("name", args[2])));
parsed("name", name)));

}

Expand Down

0 comments on commit 5702861

Please sign in to comment.