Make ignore work in ChatChannel

This commit is contained in:
Teriuihi 2021-08-08 07:11:00 +02:00
parent 76c24828dd
commit 351515ab55
2 changed files with 9 additions and 2 deletions

View File

@ -26,6 +26,7 @@ import org.bukkit.util.StringUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
public class ChatHandler {
@ -158,15 +159,16 @@ public class ChatHandler {
if (channel.isProxy()) {
sendChatChannelMessage(player, channel.getChannelName(), "chatchannel", component);
} else {
sendChatChannelMessage(channel, component);
sendChatChannelMessage(channel, player.getUniqueId(), component);
}
}
private void sendChatChannelMessage(Channel chatChannel, Component component) {
private void sendChatChannelMessage(Channel chatChannel, UUID uuid, Component component) {
if (!chatChannel.getServers().contains(Bukkit.getServerName())) return;
Bukkit.getServer().getOnlinePlayers().stream()
.filter(p -> p.hasPermission(chatChannel.getPermission()))
.filter(p -> !ChatUserManager.getChatUser(p.getUniqueId()).getIgnoredPlayers().contains(uuid))
.forEach(p -> p.sendMessage(component));
}
@ -191,6 +193,7 @@ public class ChatHandler {
ByteArrayDataOutput out = ByteStreams.newDataOutput();
out.writeUTF(channel);
out.writeUTF(chatChannelName);
out.writeUTF(player.getUniqueId().toString());
out.writeUTF(GsonComponentSerializer.gson().serialize(component));
player.sendPluginMessage(plugin, Config.MESSAGECHANNEL, out.toByteArray());
}

View File

@ -80,9 +80,11 @@ public class PluginMessage implements PluginMessageListener {
private void chatChannel(ByteArrayDataInput in) {
Channel chatChannel = null;
UUID uuid = null;
Component component = null;
try {
chatChannel = Channel.getChatChannel(in.readUTF());
uuid = UUID.fromString(in.readUTF());
component = GsonComponentSerializer.gson().deserialize(in.readUTF());
} catch (Exception e) { //Idk the exception for reading too far into in.readUTF()
e.printStackTrace();
@ -102,12 +104,14 @@ public class PluginMessage implements PluginMessageListener {
final Channel finalChatChannel = chatChannel;
final Component finalComponent = component;
final UUID finalUuid = uuid;
new BukkitRunnable() {
@Override
public void run() {
Bukkit.getOnlinePlayers().stream()
.filter(p -> p.hasPermission(finalChatChannel.getPermission()))
.filter(p -> !ChatUserManager.getChatUser(p.getUniqueId()).getIgnoredPlayers().contains(finalUuid))
.forEach(p -> p.sendMessage(finalComponent));
}
}.runTaskAsynchronously(ChatPlugin.getInstance());