Custom command denied message for the group

This commit is contained in:
kforbro
2021-10-26 12:48:59 +03:00
parent 48fbd59a50
commit d43bde0750
6 changed files with 43 additions and 10 deletions
@@ -126,4 +126,19 @@ public class CommandWhitelistBukkit extends JavaPlugin {
}
return suggestionList;
}
/**
* @param command command
* @return custom command denied message
*/
public static String getCommandDeniedMessage(String command) {
String commandDeniedMessage = "";
HashMap<String, CWGroup> groups = configCache.getGroupList();
for (Map.Entry<String, CWGroup> s : groups.entrySet()) {
if (s.getValue().getCommands().contains(command)) {
commandDeniedMessage = s.getValue().getCustomCommandDeniedMessage();
}
}
return commandDeniedMessage;
}
}
@@ -24,7 +24,12 @@ public class PlayerCommandPreProcessListener implements Listener {
HashSet<String> commands = CommandWhitelistBukkit.getCommands(player);
if (!commands.contains(label)) {
event.setCancelled(true);
audiences.player(player).sendMessage(CWCommand.miniMessage.parse(config.prefix + config.command_denied));
String customCommandDeniedMessage = CommandWhitelistBukkit.getCommandDeniedMessage(label);
if (!customCommandDeniedMessage.equals("")) {
audiences.player(player).sendMessage(CWCommand.miniMessage.parse(config.prefix + customCommandDeniedMessage));
} else {
audiences.player(player).sendMessage(CWCommand.miniMessage.parse(config.prefix + config.command_denied));
}
return;
}
@@ -12,6 +12,7 @@ import eu.endermite.commandwhitelist.common.CWPermission;
import eu.endermite.commandwhitelist.common.CommandUtil;
import eu.endermite.commandwhitelist.common.ConfigCache;
import eu.endermite.commandwhitelist.common.commands.CWCommand;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
@@ -37,9 +38,15 @@ public class PacketCommandPreProcessListener {
ConfigCache config = CommandWhitelistBukkit.getConfigCache();
String label = CommandUtil.getCommandLabel(string.toLowerCase());
HashSet<String> commands = CommandWhitelistBukkit.getCommands(player);
BukkitAudiences audiences = CommandWhitelistBukkit.getAudiences();
if (!commands.contains(label)) {
event.setCancelled(true);
CommandWhitelistBukkit.getAudiences().player(player).sendMessage(CWCommand.miniMessage.parse(config.prefix + config.command_denied));
String customCommandDeniedMessage = CommandWhitelistBukkit.getCommandDeniedMessage(label);
if (!customCommandDeniedMessage.equals("")) {
audiences.player(player).sendMessage(CWCommand.miniMessage.parse(config.prefix + customCommandDeniedMessage));
} else {
audiences.player(player).sendMessage(CWCommand.miniMessage.parse(config.prefix + config.command_denied));
}
return;
}