package com.alttd.chat.handler; import com.alttd.chat.ChatPlugin; import com.alttd.chat.config.Config; import com.alttd.chat.managers.ChatUserManager; import com.alttd.chat.managers.RegexManager; import com.alttd.chat.objects.ChatUser; import com.alttd.chat.objects.Party; import com.alttd.chat.objects.channels.CustomChannel; import com.alttd.chat.util.GalaxyUtility; import com.alttd.chat.util.Utility; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.Template; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import java.util.ArrayList; import java.util.List; import java.util.UUID; import java.util.concurrent.TimeUnit; public class ChatHandler { private final ChatPlugin plugin; private final Component GCNOTENABLED; public ChatHandler() { plugin = ChatPlugin.getInstance(); GCNOTENABLED = Utility.parseMiniMessage(Config.GCNOTENABLED); } public void privateMessage(Player player, String target, String message) { // ChatUser user = ChatUserManager.getChatUser(player.getUniqueId()); // user.setReplyTarget(target); 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 } if(!player.hasPermission("chat.format")) { updatedMessage = Utility.stripTokens(updatedMessage); } else { updatedMessage = Utility.parseColors(updatedMessage); } if(updatedMessage.contains("[i]")) updatedMessage = updatedMessage.replace("[i]", "<[i]>"); updatedMessage = Utility.formatText(updatedMessage); List