Removed Bukkit stuff I missed from the general use API

This commit is contained in:
Teriuihi 2021-08-01 03:20:49 +02:00
parent e253894a77
commit dfcf8de34e
6 changed files with 49 additions and 20 deletions

View File

@ -434,4 +434,30 @@ public class Queries {
e.printStackTrace(); 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;
}
} }

View File

@ -1,13 +1,16 @@
package com.alttd.chat.managers; package com.alttd.chat.managers;
import com.alttd.chat.ChatAPI;
import com.alttd.chat.config.RegexConfig; import com.alttd.chat.config.RegexConfig;
import com.alttd.chat.objects.ChatFilter; import com.alttd.chat.objects.ChatFilter;
import com.alttd.chat.util.ALogger; import com.alttd.chat.util.ALogger;
import org.bukkit.Bukkit; import net.luckperms.api.LuckPerms;
import org.bukkit.entity.Player; import net.luckperms.api.cacheddata.CachedPermissionData;
import net.luckperms.api.model.user.User;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.UUID;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -26,7 +29,13 @@ public class RegexManager {
chatFilters.add(filter); 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) { for(ChatFilter chatFilter : chatFilters) {
switch (chatFilter.getType()) { switch (chatFilter.getType()) {
case CHAT: case CHAT:
@ -35,8 +44,8 @@ public class RegexManager {
text = chatFilter.replaceText(text); text = chatFilter.replaceText(text);
break; break;
case BLOCK: case BLOCK:
if(chatFilter.matches(text) && !player.hasPermission("chat.bypass-filter." + chatFilter.getName())) { // todo find a better way to do this? if(chatFilter.matches(text) && !permissionData.checkPermission("chat.bypass-filter." + chatFilter.getName()).asBoolean()) { // todo find a better way to do this?
ALogger.info(player.getName() + " triggered the chat filter for " + chatFilter.getName() + "."); ALogger.info(playerName + " triggered the chat filter for " + chatFilter.getName() + ".");
return null; return null;
} }
break; break;

View File

@ -3,8 +3,6 @@ package com.alttd.chat.objects;
import com.alttd.chat.database.Queries; import com.alttd.chat.database.Queries;
import com.alttd.chat.util.Utility; import com.alttd.chat.util.Utility;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -32,14 +30,9 @@ public class ChatUser {
this.partyId = partyId; this.partyId = partyId;
this.toggledPartyChat = toggledChat; this.toggledPartyChat = toggledChat;
name = Queries.getNickname(uuid); name = Queries.getDisplayName(uuid);
if (name == null) { if (name == null) {
OfflinePlayer player = Bukkit.getPlayer(uuid); name = Utility.getDisplayName(uuid, "");
String playerName = "";
if (player != null && player.hasPlayedBefore()) {
playerName = player.getName();
}
name = Utility.getDisplayName(uuid, playerName);
} }
setDisplayName(name); setDisplayName(name);

View File

@ -40,7 +40,7 @@ public class ChatHandler {
public void privateMessage(Player player, String target, String message) { public void privateMessage(Player player, String target, String message) {
ChatUser user = ChatUserManager.getChatUser(player.getUniqueId()); ChatUser user = ChatUserManager.getChatUser(player.getUniqueId());
user.setReplyTarget(target); 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) { if(updatedMessage == null) {
GalaxyUtility.sendBlockedNotification("DM Language", player, message, target); GalaxyUtility.sendBlockedNotification("DM Language", player, message, target);
return; // the message was blocked return; // the message was blocked
@ -100,7 +100,7 @@ public class ChatHandler {
Component senderName = user.getDisplayName(); Component senderName = user.getDisplayName();
Component prefix = user.getPrefix(); 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) { if(updatedMessage == null) {
GalaxyUtility.sendBlockedNotification("GC Language", player, message, ""); GalaxyUtility.sendBlockedNotification("GC Language", player, message, "");
return; // the message was blocked return; // the message was blocked

View File

@ -37,7 +37,7 @@ public class ChatListener implements Listener, ChatRenderer {
MiniMessage miniMessage = MiniMessage.get(); 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) { if(message == null) {
event.setCancelled(true); event.setCancelled(true);
GalaxyUtility.sendBlockedNotification("Language", player, input, ""); GalaxyUtility.sendBlockedNotification("Language", player, input, "");

View File

@ -7,6 +7,7 @@ import com.alttd.chat.util.GalaxyUtility;
import com.alttd.chat.util.Utility; import com.alttd.chat.util.Utility;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.plain.PlainComponentSerializer; import net.kyori.adventure.text.serializer.plain.PlainComponentSerializer;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.block.SignChangeEvent; import org.bukkit.event.block.SignChangeEvent;
@ -41,11 +42,11 @@ public class PlayerListener implements Listener {
Component component = event.line(i); Component component = event.line(i);
if (component != null) { if (component != null) {
String message = PlainComponentSerializer.plain().serialize(component); String message = PlainComponentSerializer.plain().serialize(component);
Player player = event.getPlayer();
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) { 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); component = message == null ? Component.empty() : Component.text(message);