diff --git a/src/main/java/rip/iwakura/civilcore/commands/TeamChatCommand.java b/src/main/java/rip/iwakura/civilcore/commands/TeamChatCommand.java index 5da2f3f..f1a5e66 100644 --- a/src/main/java/rip/iwakura/civilcore/commands/TeamChatCommand.java +++ b/src/main/java/rip/iwakura/civilcore/commands/TeamChatCommand.java @@ -10,7 +10,9 @@ import net.md_5.bungee.api.ChatColor; import org.jetbrains.annotations.NotNull; import rip.iwakura.civilcore.Utils; import rip.iwakura.civilcore.CivilCore; +import rip.iwakura.civilcore.types.DbPlayer; +import java.util.List; import java.util.Objects; public class TeamChatCommand implements CommandExecutor { @@ -20,6 +22,14 @@ public class TeamChatCommand implements CommandExecutor { this.civilCore = civilCore; } + private String getPrefix(String name, boolean inTeamChat) { + DbPlayer dbPlayer = civilCore.db.getPlayerByName(name); + return (inTeamChat ? ChatColor.DARK_GREEN + "TEAM >" + ChatColor.RESET : "") + + (dbPlayer.team.prefix == null ? + "" : + ChatColor.translateAlternateColorCodes('&', inTeamChat ? "" : "[" + dbPlayer.team.prefix + "]")); + } + @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { args = Objects.requireNonNull(Utils.parser(args)).toArray(new String[0]); @@ -37,18 +47,52 @@ public class TeamChatCommand implements CommandExecutor { } String message = String.join(" ", args); - if (civilCore.teamChatRegister.contains(p)) { + + String player_name = p.getName(); + boolean inTeamChat = civilCore.teamChatRegister.contains(p); + + DbPlayer dbPlayer = civilCore.db.getPlayerByName(player_name); + /*String prefix = (inTeamChat ? ChatColor.DARK_GREEN + "TEAM >" + ChatColor.RESET : "") + + (dbPlayer.team.prefix == null ? + "" : + ChatColor.translateAlternateColorCodes('&', inTeamChat ? "" : "[" + dbPlayer.team.prefix + "]"));*/ + + /*if (civilCore.teamChatRegister.contains(p)) { civilCore.teamChatRegister.remove(p); - Bukkit.broadcastMessage(ChatColor.DARK_GREEN + "TEAM > " + ChatColor.GREEN + p.getName() + ": " + message); + // Bukkit.broadcastMessage(ChatColor.DARK_GREEN + "TEAM > " + ChatColor.GREEN + p.getName() + ": " + message); + String formatted = String.format("%s%s: %s", getPrefix(player_name, inTeamChat) + " ", player_name, message); + Bukkit.broadcastMessage(formatted); civilCore.teamChatRegister.add(p); } else { civilCore.teamChatRegister.add(p); - Bukkit.broadcastMessage(p.getName() + ": " + message); + String formatted = String.format("%s%s: %s", getPrefix(player_name, inTeamChat) + " ", player_name, message); + Bukkit.broadcastMessage(formatted); + civilCore.teamChatRegister.remove(p); + }*/ + + String formatted = String.format("%s%s: %s", getPrefix(player_name, inTeamChat) + " ", player_name, message); + + if (!inTeamChat) { + civilCore.teamChatRegister.remove(p); + Bukkit.broadcastMessage(formatted); + civilCore.teamChatRegister.add(p); + } else { + civilCore.teamChatRegister.add(p); + List players = civilCore.db.getPlayersInTeam(dbPlayer.team.name); + + if (players == null) return true; + + for (DbPlayer team_dbp : players) { + Player team_p = Bukkit.getPlayer(team_dbp.name); + + if (team_p == null) continue; + + team_p.sendMessage(message); + } civilCore.teamChatRegister.remove(p); } - return true; } }