From dfcf8de34ef63bab90a0434ebb183e9286420b45 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Sun, 1 Aug 2021 03:20:49 +0200 Subject: [PATCH] Removed Bukkit stuff I missed from the general use API --- .../java/com/alttd/chat/database/Queries.java | 26 +++++++++++++++++++ .../com/alttd/chat/managers/RegexManager.java | 19 ++++++++++---- .../java/com/alttd/chat/objects/ChatUser.java | 11 ++------ .../com/alttd/chat/handler/ChatHandler.java | 4 +-- .../alttd/chat/listeners/ChatListener.java | 2 +- .../alttd/chat/listeners/PlayerListener.java | 7 ++--- 6 files changed, 49 insertions(+), 20 deletions(-) diff --git a/api/src/main/java/com/alttd/chat/database/Queries.java b/api/src/main/java/com/alttd/chat/database/Queries.java index b34a00c..0011366 100755 --- a/api/src/main/java/com/alttd/chat/database/Queries.java +++ b/api/src/main/java/com/alttd/chat/database/Queries.java @@ -434,4 +434,30 @@ public class Queries { e.printStackTrace(); } } + + public static String getDisplayName(UUID uuid) { + String nickname = getNickname(uuid); + if (nickname != null) return nickname; + + // View has been created. + String query = "SELECT Username FROM utility_users WHERE uuid = ?"; + + try { + Connection connection = DatabaseConnection.getConnection(); + + PreparedStatement statement = connection.prepareStatement(query); + + statement.setString(1, uuid.toString()); + + ResultSet resultSet = statement.executeQuery(); + + if (resultSet.next()) { + return resultSet.getString("Username"); + } + + } catch (SQLException e) { + e.printStackTrace(); + } + return null; + } } diff --git a/api/src/main/java/com/alttd/chat/managers/RegexManager.java b/api/src/main/java/com/alttd/chat/managers/RegexManager.java index f133d20..e1d0bfa 100755 --- a/api/src/main/java/com/alttd/chat/managers/RegexManager.java +++ b/api/src/main/java/com/alttd/chat/managers/RegexManager.java @@ -1,13 +1,16 @@ package com.alttd.chat.managers; +import com.alttd.chat.ChatAPI; import com.alttd.chat.config.RegexConfig; import com.alttd.chat.objects.ChatFilter; import com.alttd.chat.util.ALogger; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; +import net.luckperms.api.LuckPerms; +import net.luckperms.api.cacheddata.CachedPermissionData; +import net.luckperms.api.model.user.User; import java.util.ArrayList; import java.util.List; +import java.util.UUID; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -26,7 +29,13 @@ public class RegexManager { chatFilters.add(filter); } - public static String replaceText(Player player, String text) { // TODO loop all objects in the list and check if they violate based on the MATCHER + public static String replaceText(String playerName, UUID uuid, String text) { // TODO loop all objects in the list and check if they violate based on the MATCHER + User user = ChatAPI.get().getLuckPerms().getUserManager().getUser(uuid); + if (user == null) { + ALogger.warn("Tried to check chat filters for a user who doesn't exist in LuckPerms"); + return null; + } + CachedPermissionData permissionData = user.getCachedData().getPermissionData(); for(ChatFilter chatFilter : chatFilters) { switch (chatFilter.getType()) { case CHAT: @@ -35,8 +44,8 @@ public class RegexManager { text = chatFilter.replaceText(text); break; case BLOCK: - if(chatFilter.matches(text) && !player.hasPermission("chat.bypass-filter." + chatFilter.getName())) { // todo find a better way to do this? - ALogger.info(player.getName() + " triggered the chat filter for " + chatFilter.getName() + "."); + if(chatFilter.matches(text) && !permissionData.checkPermission("chat.bypass-filter." + chatFilter.getName()).asBoolean()) { // todo find a better way to do this? + ALogger.info(playerName + " triggered the chat filter for " + chatFilter.getName() + "."); return null; } break; diff --git a/api/src/main/java/com/alttd/chat/objects/ChatUser.java b/api/src/main/java/com/alttd/chat/objects/ChatUser.java index 92e235b..3b3d135 100755 --- a/api/src/main/java/com/alttd/chat/objects/ChatUser.java +++ b/api/src/main/java/com/alttd/chat/objects/ChatUser.java @@ -3,8 +3,6 @@ package com.alttd.chat.objects; import com.alttd.chat.database.Queries; import com.alttd.chat.util.Utility; import net.kyori.adventure.text.Component; -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; import java.util.ArrayList; import java.util.List; @@ -32,14 +30,9 @@ public class ChatUser { this.partyId = partyId; this.toggledPartyChat = toggledChat; - name = Queries.getNickname(uuid); + name = Queries.getDisplayName(uuid); if (name == null) { - OfflinePlayer player = Bukkit.getPlayer(uuid); - String playerName = ""; - if (player != null && player.hasPlayedBefore()) { - playerName = player.getName(); - } - name = Utility.getDisplayName(uuid, playerName); + name = Utility.getDisplayName(uuid, ""); } setDisplayName(name); 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 db53ed7..6f191ef 100755 --- a/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java +++ b/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java @@ -40,7 +40,7 @@ public class ChatHandler { public void privateMessage(Player player, String target, String message) { ChatUser user = ChatUserManager.getChatUser(player.getUniqueId()); user.setReplyTarget(target); - String updatedMessage = RegexManager.replaceText(player, message); // todo a better way for this + String updatedMessage = RegexManager.replaceText(player.getName(), player.getUniqueId(), message); // todo a better way for this if(updatedMessage == null) { GalaxyUtility.sendBlockedNotification("DM Language", player, message, target); return; // the message was blocked @@ -100,7 +100,7 @@ public class ChatHandler { Component senderName = user.getDisplayName(); Component prefix = user.getPrefix(); - String updatedMessage = RegexManager.replaceText(player, message); // todo a better way for this + String updatedMessage = RegexManager.replaceText(player.getName(), player.getUniqueId(), message); // todo a better way for this if(updatedMessage == null) { GalaxyUtility.sendBlockedNotification("GC Language", player, message, ""); return; // the message was blocked 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 c47d868..90046d5 100755 --- a/galaxy/src/main/java/com/alttd/chat/listeners/ChatListener.java +++ b/galaxy/src/main/java/com/alttd/chat/listeners/ChatListener.java @@ -37,7 +37,7 @@ public class ChatListener implements Listener, ChatRenderer { MiniMessage miniMessage = MiniMessage.get(); - message = RegexManager.replaceText(event.getPlayer(), message); // todo a better way for this + message = RegexManager.replaceText(player.getName(), player.getUniqueId(), message); // todo a better way for this if(message == null) { event.setCancelled(true); GalaxyUtility.sendBlockedNotification("Language", player, input, ""); 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 a29bae5..05aac2d 100755 --- a/galaxy/src/main/java/com/alttd/chat/listeners/PlayerListener.java +++ b/galaxy/src/main/java/com/alttd/chat/listeners/PlayerListener.java @@ -7,6 +7,7 @@ import com.alttd.chat.util.GalaxyUtility; import com.alttd.chat.util.Utility; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.plain.PlainComponentSerializer; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.SignChangeEvent; @@ -41,11 +42,11 @@ public class PlayerListener implements Listener { Component component = event.line(i); if (component != null) { String message = PlainComponentSerializer.plain().serialize(component); - - message = RegexManager.replaceText(event.getPlayer(), message); // todo a better way for this + Player player = event.getPlayer(); + message = RegexManager.replaceText(player.getName(), player.getUniqueId(), message); // todo a better way for this if (message == null) { - GalaxyUtility.sendBlockedNotification("Sign Language" ,event.getPlayer(), PlainComponentSerializer.plain().serialize(component), ""); + GalaxyUtility.sendBlockedNotification("Sign Language" , player, PlainComponentSerializer.plain().serialize(component), ""); } component = message == null ? Component.empty() : Component.text(message);