Compare commits

...
2 Commits
4 changed files with 29 additions and 4 deletions

No files matched your search

@@ -2,15 +2,15 @@ package net.sacredlabyrinth.phaed.simpleclans.chat;
import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
import net.sacredlabyrinth.phaed.simpleclans.managers.ChatManager;
import net.sacredlabyrinth.phaed.simpleclans.managers.PermissionsManager;
import net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager;
public interface ChatHandler {
SimpleClans plugin = SimpleClans.getInstance();
SettingsManager settingsManager = plugin.getSettingsManager();
ChatManager chatManager = plugin.getChatManager();
PermissionsManager permissionsManager = plugin.getPermissionsManager();
void sendMessage(SCMessage message);
@@ -13,6 +13,7 @@ import static net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager.Con
import static net.sacredlabyrinth.phaed.simpleclans.managers.SettingsManager.ConfigField.PERFORMANCE_USE_BUNGEECORD;
import static org.bukkit.Bukkit.getPluginManager;
@SuppressWarnings("unused")
public class SpigotChatHandler implements ChatHandler {
@Override
@@ -30,7 +31,7 @@ public class SpigotChatHandler implements ChatHandler {
if (event.isCancelled()) {
return;
}
message.setContent(event.getMessage());
message.setContent(stripColorsAndFormatsPerPermission(message.getSender(),event.getMessage()));
ConfigField configField = ConfigField.valueOf(String.format("%sCHAT_FORMAT",
message.getSource() == DISCORD ? "DISCORD" : message.getChannel()));
@@ -47,6 +48,24 @@ public class SpigotChatHandler implements ChatHandler {
}.runTask(plugin);
}
private String stripColorsAndFormatsPerPermission(ClanPlayer sender, String message) {
if (!permissionsManager.has(sender.toPlayer(), "simpleclans.member.chat.color")) {
message = stripColors(message);
}
if (!permissionsManager.has(sender.toPlayer(), "simpleclans.member.chat.format")) {
message = stripFormats(message);
}
return message;
}
private String stripColors(String message) {
return message.replaceAll("[§&][0-9a-fA-FxX]", "");
}
private String stripFormats(String message) {
return message.replaceAll("[§&][k-orK-OR]", "");
}
@Override
public boolean canHandle(SCMessage.Source source) {
return source == SPIGOT || (source == PROXY && settingsManager.is(PERFORMANCE_USE_BUNGEECORD))
@@ -45,7 +45,7 @@ public class SpyChatHandler implements ChatHandler {
private List<ClanPlayer> getOnlineSpies() {
return Bukkit.getOnlinePlayers().stream().
filter(Objects::nonNull).
filter(player -> plugin.getPermissionsManager().has(player, "simpleclans.admin.all-seeing-eye")).
filter(player -> permissionsManager.has(player, "simpleclans.admin.all-seeing-eye")).
map(player -> plugin.getClanManager().getCreateClanPlayer(player.getUniqueId())).
filter(Objects::nonNull).
filter(clanPlayer -> !clanPlayer.isMuted()).
+6
View File
@@ -103,6 +103,11 @@ permissions:
description: Can use ally chat
simpleclans.member.chat:
description: Can use clan chat
simpleclans.member.chat.color:
description: Can use colors in chat
simpleclans.member.chat.format:
description: Can use formats in chat
default: false
simpleclans.member.can-join:
description: Can join clans
simpleclans.member.home:
@@ -298,6 +303,7 @@ permissions:
simpleclans.member.kills: true
simpleclans.member.bank: true
simpleclans.member.fee-check: true
simpleclans.member.chat.color: true
simpleclans.leader.*:
description: Permissions for those who can be clan leaders
default: true