package org.xfurkanadenia.creusa.Commands; import com.google.gson.JsonObject; import net.kyori.adventure.audience.Audience; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextReplacementConfig; import net.kyori.adventure.text.format.TextColor; import net.md_5.bungee.api.ChatColor; import org.bukkit.Color; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; import org.xfurkanadenia.creusa.Creusa; import org.xfurkanadenia.creusa.Utils.Utils; import java.util.function.Consumer; import java.util.regex.Pattern; public class YetkiliSohbet implements CommandExecutor { private final Creusa plugin; public YetkiliSohbet(Creusa plugin) { this.plugin = plugin; } public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { Utils utils = new Utils(plugin); JsonObject vars = new JsonObject(); vars.addProperty("player", sender.getName()); vars.addProperty("prefix", plugin.getConfig().getString("prefix")); if(!(sender instanceof Player)) { var cSender = plugin.adventure().console(); cSender.sendMessage(utils.translateColorCodes(utils.placeholders(plugin.getConfig().getString("only-players"), vars, (Player) sender))); return true; } Audience player = plugin.adventure().player((Player) sender); if(!sender.hasPermission("creusa.yetkili.sohbet")) { player.sendMessage(utils.translateColorCodes(utils.placeholders(plugin.getConfig().getString("no-permission"), vars, (Player) sender))); return true; } if (args.length >= 1) { // Komutla birlikte gelen argümanları birleştir String msg = String.join(" ", args); for (Player p : plugin.getServer().getOnlinePlayers()) { Audience ap = plugin.adventure().player(p); // Eğer oyuncunun "yetkili sohbet" yetkisi varsa if (p.hasPermission("creusa.yetkili.sohbet")) { // İzin kontrolü: Eğer oyuncunun renkli mesaj yetkisi yoksa mesajı renklendirmeden gönder if (!sender.hasPermission("creusa.yetkili.sohbet.color")) { String serializer = plugin.getConfig().getString("serializer"); } // Eğer renkli yetkisi varsa placeholderlarla mesajı işleyip renkli hale getir vars.addProperty("message", msg); String formattedMessage = utils.placeholders(plugin.getConfig().getString("yetkili-sohbet"), vars, (Player) sender); // Renkli mesajı Component'e çevir Component message = utils.translateColorCodes(formattedMessage); // Mesajı oyuncuya gönder ap.sendMessage(message); } } return true; } return false; } }