Fix nicknames and prefixes

This commit is contained in:
destro174
2021-07-18 00:48:55 +02:00
parent 3f7084eeb7
commit 96dbdc6dd0
18 changed files with 178 additions and 109 deletions
@@ -22,5 +22,4 @@ public class Message implements CommandExecutor {
return false;
}
// Teri, is Tabcompleter needed here? we already have spigot setup to complete playernames on tab, doesn't work for crossserver stuff and offline players
}
@@ -42,8 +42,6 @@ public class ChatHandler {
if(!player.hasPermission("chat.format")) {
message = miniMessage.stripTokens(message);
} else {
message = Utility.parseColors(message);
}
if(message.contains("[i]"))
@@ -71,16 +69,14 @@ public class ChatHandler {
return;
}
Component senderName = player.displayName();
String prefix = user.getPrefix();
Component senderName = user.getDisplayName();
Component prefix = user.getPrefix();
message = RegexManager.replaceText(message); // todo a better way for this
if(message == null) return; // the message was blocked
if(!player.hasPermission("chat.format")) {
message = miniMessage.stripTokens(message);
} else {
message = Utility.parseColors(message);
}
if(message.contains("[i]"))
@@ -5,9 +5,9 @@ import com.alttd.chat.handler.ChatHandler;
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 io.papermc.paper.chat.ChatRenderer;
import io.papermc.paper.event.player.AsyncChatEvent;
import me.clip.placeholderapi.PlaceholderAPI;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
@@ -24,25 +24,12 @@ import java.util.List;
public class ChatListener implements Listener, ChatRenderer {
@EventHandler(ignoreCancelled = true)
public void onPlayerChat(AsyncChatEvent event) { // this should also include a way to prevent a player from seeing chat
// @teri what about mutes?
public void onPlayerChat(AsyncChatEvent event) {
Player player = event.getPlayer();
ChatUser user = ChatUserManager.getChatUser(player.getUniqueId());
// tweak this to make this slightly better:/
event.viewers().removeIf(audience -> audience instanceof Player
&& user.getIgnoredPlayers().contains(((Player) audience).getUniqueId()));
/* Set<Audience> viewers = event.viewers();
Set<Audience> ignores = new HashSet<>();
for(Audience audience : viewers) { // I don't like this setup, might alter this API to expose players...
if(audience instanceof Player) { // the player option is removed in 1.17=/ bad paper devs
UUID uuid = ((Player) audience).getUniqueId();
if(user.getIgnoredPlayers().contains(uuid)) {
ignores.add(audience);
}
}
}
event.viewers().removeAll(ignores);*/
Component input = event.message();
String message = PlainComponentSerializer.plain().serialize(input);
@@ -53,8 +40,6 @@ public class ChatListener implements Listener, ChatRenderer {
MiniMessage miniMessage = MiniMessage.get();
if(!player.hasPermission("chat.format")) {
message = miniMessage.stripTokens(message);
} else {
message = Utility.parseColors(message);
}
if(message.contains("[i]"))
+1 -1
View File
@@ -3,7 +3,7 @@ version: ${project.version}
main: com.alttd.chat.ChatPlugin
api-version: 1.16
authors: [Destro, Teriuihi]
depend: [LuckPerms]
depend: [LuckPerms, PlaceholderAPI]
commands:
globalchat:
permission: command.globalchat