From 045343da88d5a6346e841605795bf2e0a59594b7 Mon Sep 17 00:00:00 2001
From: Emibergo02 <36164338+Emibergo02@users.noreply.github.com>
Date: Fri, 16 Aug 2024 02:23:33 +0200
Subject: [PATCH] Added command to change channel displayname
---
.../dev/unnm3d/redischat/Permissions.java | 1 +
.../redischat/channels/ChannelCommand.java | 19 +++++++++++++++++++
.../unnm3d/redischat/settings/Messages.java | 1 +
3 files changed, 21 insertions(+)
diff --git a/src/main/java/dev/unnm3d/redischat/Permissions.java b/src/main/java/dev/unnm3d/redischat/Permissions.java
index 7608241..fe94907 100644
--- a/src/main/java/dev/unnm3d/redischat/Permissions.java
+++ b/src/main/java/dev/unnm3d/redischat/Permissions.java
@@ -30,6 +30,7 @@ public enum Permissions {
CHANNEL_PREFIX("redischat.channel."),
CHANNEL_PUBLIC("redischat.channel.public"),
CHANNEL_CREATE("redischat.createchannel"),
+ CHANNEL_CHANGE_DISPLAYNAME("redischat.changedisplayname"),
CHANNEL_DELETE("redischat.deletechannel"),
CHANNEL_TOGGLE_PLAYER("redischat.playerchannel"),
CHANNEL_LIST("redischat.listchannel"),
diff --git a/src/main/java/dev/unnm3d/redischat/channels/ChannelCommand.java b/src/main/java/dev/unnm3d/redischat/channels/ChannelCommand.java
index 4811331..6f466ed 100644
--- a/src/main/java/dev/unnm3d/redischat/channels/ChannelCommand.java
+++ b/src/main/java/dev/unnm3d/redischat/channels/ChannelCommand.java
@@ -19,6 +19,7 @@ public CommandAPICommand getCommand() {
return new CommandAPICommand("channel")
.withAliases(plugin.config.getCommandAliases("channel"))
.withSubcommand(getCreateSubCommand())
+ .withSubcommand(getSetDisplayNameCommand())
.withSubcommand(getSetFormatSubCommand())
.withSubcommand(getDeleteSubCommand())
.withSubcommand(getListenSubCommand())
@@ -129,6 +130,24 @@ public CommandAPICommand getSetFormatSubCommand() {
});
}
+ public CommandAPICommand getSetDisplayNameCommand() {
+ return new CommandAPICommand("setdisplayname")
+ .withPermission(Permissions.CHANNEL_CHANGE_DISPLAYNAME.getPermission())
+ .withArguments(new StringArgument("name")
+ .replaceSuggestions(ArgumentSuggestions.strings(commandSenderSuggestionInfo ->
+ plugin.getChannelManager().getRegisteredChannels().keySet().stream()
+ .filter(s -> s.toLowerCase().startsWith(commandSenderSuggestionInfo.currentArg()))
+ .toArray(String[]::new)
+ )))
+ .withArguments(new GreedyStringArgument("displayname"))
+ .executesPlayer((sender, args) -> {
+ Channel channel = plugin.getChannelManager().getRegisteredChannels().get((String) args.get(0));
+ channel.setDisplayName((String) args.get(1));
+ plugin.getChannelManager().registerChannel(channel);
+ plugin.messages.sendMessage(sender, plugin.messages.channelChangedDisplayName.replace("%displayname%", (String) args.get(1)));
+ });
+ }
+
public CommandAPICommand getListenSubCommand() {
return new CommandAPICommand("force-listen")
.withPermission(Permissions.CHANNEL_TOGGLE_PLAYER.getPermission())
diff --git a/src/main/java/dev/unnm3d/redischat/settings/Messages.java b/src/main/java/dev/unnm3d/redischat/settings/Messages.java
index 60ecee4..0fa1988 100644
--- a/src/main/java/dev/unnm3d/redischat/settings/Messages.java
+++ b/src/main/java/dev/unnm3d/redischat/settings/Messages.java
@@ -75,6 +75,7 @@ public final class Messages {
public String itemSet = "RedisChat » Item set!";
public String noPermission = "RedisChat » You do not have permission to execute this command";
public String channelCreated = "RedisChat » Channel created!";
+ public String channelChangedDisplayName = "RedisChat » Channel changed name to %displayname%!";
public String channelRemoved = "RedisChat » Channel removed!";
public String channelListHeader = "Channel list:";
public String channelListTransmitting = "%channel% Status: Transmitting";