diff --git a/api/src/main/java/com/alttd/chat/util/Utility.java b/api/src/main/java/com/alttd/chat/util/Utility.java
index f3b948f..dd61937 100755
--- a/api/src/main/java/com/alttd/chat/util/Utility.java
+++ b/api/src/main/java/com/alttd/chat/util/Utility.java
@@ -13,6 +13,7 @@ import net.luckperms.api.model.user.User;
import net.luckperms.api.node.Node;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
+import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.awt.*;
@@ -186,4 +187,39 @@ public class Utility {
: miniMessage.parse(stringBuilder.toString());
}
+ public static void noPermission(CommandSender sender) {
+ sender.sendMessage(MiniMessage.get().parse("You don't have permission to use this command.")); //TODO config?
+ }
+
+ public static void sendBlockedNotification(String prefix, Player player, String input, String target) {
+ MiniMessage miniMessage = MiniMessage.get();
+ Bukkit.getOnlinePlayers().forEach(a ->{
+ Component blockedNotification = miniMessage.parse("[" + prefix + "] "
+ + Utility.getDisplayName(player.getUniqueId())
+ + (target.isEmpty() ? " tried to say: " : " -> " + target + ": ")
+ + input + "");
+ if (a.hasPermission("chat.alert-blocked")) {
+ a.sendMessage(blockedNotification);//TODO make configurable (along with all the messages)
+ }
+ });
+ player.sendMessage(miniMessage.parse("The language you used in your message is not allowed, " +
+ "this constitutes as your only warning. Any further attempts at bypassing the filter will result in staff intervention."));
+ }
+
+ public static void sendMutedNotification(String prefix, Player player, String input) {
+ MiniMessage miniMessage = MiniMessage.get();
+ Bukkit.getOnlinePlayers().forEach(a ->{
+ Component blockedNotification = miniMessage.parse("[" + prefix + "] "
+ + Utility.getDisplayName(player.getUniqueId())
+ + " tried to say: "
+ + input + "");
+ if (a.hasPermission("chat.alert-blocked")) {
+ a.sendMessage(blockedNotification);//TODO make configurable (along with all the messages)
+ }
+ });
+ }
+
+ public static void sendBlockedNotification(String prefix, Player player, Component input, String target) {
+ sendBlockedNotification(prefix, player, PlainComponentSerializer.plain().serialize(input), target);
+ }
}
diff --git a/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java b/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java
index af8edc7..a7479c9 100755
--- a/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java
+++ b/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java
@@ -41,6 +41,7 @@ public class ChatPlugin extends JavaPlugin {
registerCommand("reply", new Reply());
registerCommand("ignore", new Ignore());
registerCommand("unignore", new Unignore());
+ registerCommand("muteserver", new MuteServer());
messageChannel = Config.MESSAGECHANNEL;
getServer().getMessenger().registerOutgoingPluginChannel(this, messageChannel);
@@ -77,4 +78,12 @@ public class ChatPlugin extends JavaPlugin {
public boolean serverGlobalChatEnabled() {
return serverConfig.GLOBALCHAT;
}
+
+ public boolean serverMuted() {
+ return serverConfig.MUTED;
+ }
+
+ public void toggleServerMuted() {
+ serverConfig.MUTED = !serverConfig.MUTED;
+ }
}
diff --git a/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java b/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java
index b53e0ad..ebbf1da 100755
--- a/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java
+++ b/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java
@@ -6,7 +6,6 @@ import com.alttd.chat.managers.ChatUserManager;
import com.alttd.chat.managers.RegexManager;
import com.alttd.chat.objects.ChatUser;
import com.alttd.chat.util.Utility;
-import com.alttd.chat.util.Utils;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
import litebans.api.Database;
@@ -42,7 +41,7 @@ public class ChatHandler {
user.setReplyTarget(target);
String updatedMessage = RegexManager.replaceText(player, message); // todo a better way for this
if(updatedMessage == null) {
- Utils.sendBlockedNotification("DM Language", player, message, target);
+ Utility.sendBlockedNotification("DM Language", player, message, target);
return; // the message was blocked
}
@@ -77,8 +76,8 @@ public class ChatHandler {
return;
}
- if (Database.get().isPlayerMuted(player.getUniqueId(), null)) {
- Utils.sendBlockedNotification("Muted" ,player, message, "");
+ if (Database.get().isPlayerMuted(player.getUniqueId(), null) || ChatPlugin.getInstance().serverMuted()) {
+ Utility.sendMutedNotification("GC Muted", player, message);
return;
}
@@ -93,7 +92,7 @@ public class ChatHandler {
String updatedMessage = RegexManager.replaceText(player, message); // todo a better way for this
if(updatedMessage == null) {
- Utils.sendBlockedNotification("GC Language", player, message, "");
+ Utility.sendBlockedNotification("GC Language", player, message, "");
return; // the message was blocked
}
@@ -119,6 +118,7 @@ public class ChatHandler {
private void sendPluginMessage(Player player, String channel, Component component) {
ByteArrayDataOutput out = ByteStreams.newDataOutput();
out.writeUTF(channel);
+ out.writeUTF(player.getUniqueId().toString());
out.writeUTF(GsonComponentSerializer.gson().serialize(component));
player.sendPluginMessage(plugin, Config.MESSAGECHANNEL, out.toByteArray());
}
diff --git a/galaxy/src/main/java/com/alttd/chat/listeners/ChatListener.java b/galaxy/src/main/java/com/alttd/chat/listeners/ChatListener.java
index 2d018ff..c06e965 100755
--- a/galaxy/src/main/java/com/alttd/chat/listeners/ChatListener.java
+++ b/galaxy/src/main/java/com/alttd/chat/listeners/ChatListener.java
@@ -6,7 +6,6 @@ import com.alttd.chat.managers.ChatUserManager;
import com.alttd.chat.managers.RegexManager;
import com.alttd.chat.objects.ChatUser;
import com.alttd.chat.util.Utility;
-import com.alttd.chat.util.Utils;
import io.papermc.paper.chat.ChatRenderer;
import io.papermc.paper.event.player.AsyncChatEvent;
import net.kyori.adventure.audience.Audience;
@@ -40,7 +39,7 @@ public class ChatListener implements Listener, ChatRenderer {
message = RegexManager.replaceText(event.getPlayer(), message); // todo a better way for this
if(message == null) {
event.setCancelled(true);
- Utils.sendBlockedNotification("Language", player, input, "");
+ Utility.sendBlockedNotification("Language", player, input, "");
return; // the message was blocked
}
diff --git a/galaxy/src/main/java/com/alttd/chat/listeners/PlayerListener.java b/galaxy/src/main/java/com/alttd/chat/listeners/PlayerListener.java
index bab69a8..70fbe63 100755
--- a/galaxy/src/main/java/com/alttd/chat/listeners/PlayerListener.java
+++ b/galaxy/src/main/java/com/alttd/chat/listeners/PlayerListener.java
@@ -1,11 +1,9 @@
package com.alttd.chat.listeners;
-import com.alttd.chat.database.Queries;
import com.alttd.chat.managers.ChatUserManager;
import com.alttd.chat.managers.RegexManager;
import com.alttd.chat.objects.ChatUser;
import com.alttd.chat.util.Utility;
-import com.alttd.chat.util.Utils;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.plain.PlainComponentSerializer;
import org.bukkit.event.EventHandler;
@@ -14,7 +12,6 @@ import org.bukkit.event.block.SignChangeEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
-import java.util.List;
import java.util.UUID;
public class PlayerListener implements Listener {
@@ -47,7 +44,7 @@ public class PlayerListener implements Listener {
message = RegexManager.replaceText(event.getPlayer(), message); // todo a better way for this
if (message == null) {
- Utils.sendBlockedNotification("Sign Language" ,event.getPlayer(), PlainComponentSerializer.plain().serialize(component), "");
+ Utility.sendBlockedNotification("Sign Language" ,event.getPlayer(), PlainComponentSerializer.plain().serialize(component), "");
}
component = message == null ? Component.empty() : Component.text(message);
diff --git a/galaxy/src/main/java/com/alttd/chat/util/Utils.java b/galaxy/src/main/java/com/alttd/chat/util/Utils.java
deleted file mode 100644
index 3aec34d..0000000
--- a/galaxy/src/main/java/com/alttd/chat/util/Utils.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.alttd.chat.util;
-
-import net.kyori.adventure.text.Component;
-import net.kyori.adventure.text.minimessage.MiniMessage;
-import net.kyori.adventure.text.serializer.plain.PlainComponentSerializer;
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-
-public class Utils {
-
- public static void sendBlockedNotification(String prefix, Player player, String input, String target) {
- MiniMessage miniMessage = MiniMessage.get();
- Bukkit.getOnlinePlayers().forEach(a ->{
- Component blockedNotification = miniMessage.parse("[" + prefix + "] "
- + Utility.getDisplayName(player.getUniqueId())
- + (target.isEmpty() ? " tried to say: " : " -> " + target + ": ")
- + input + "");
- if (a.hasPermission("chat.alert-blocked")) {
- a.sendMessage(blockedNotification);//TODO make configurable (along with all the messages)
- }
- });
- player.sendMessage(miniMessage.parse("The language you used in your message is not allowed, " +
- "this constitutes as your only warning. Any further attempts at bypassing the filter will result in staff intervention."));
- }
-
- public static void sendBlockedNotification(String prefix, Player player, Component input, String target) {
- sendBlockedNotification(prefix, player, PlainComponentSerializer.plain().serialize(input), target);
- }
-
-}