package com.alttd.chat.handler; import com.alttd.chat.ChatPlugin; import com.alttd.chat.commands.ChatChannel; import com.alttd.chat.config.Config; import com.alttd.chat.managers.ChatUserManager; import com.alttd.chat.managers.RegexManager; import com.alttd.chat.objects.Channel; import com.alttd.chat.objects.ChatUser; 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 litebans.api.Database; 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.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; 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 { private final ChatPlugin plugin; private final MiniMessage miniMessage; private final Component GCNOTENABLED; public ChatHandler() { plugin = ChatPlugin.getInstance(); miniMessage = MiniMessage.get(); GCNOTENABLED = miniMessage.parse(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 = miniMessage.stripTokens(updatedMessage); } else { updatedMessage = Utility.parseColors(updatedMessage); } if(updatedMessage.contains("[i]")) updatedMessage = updatedMessage.replace("[i]", "<[i]>"); List