package net.diamonddominion.esaych.global;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import com.massivecraft.factions.entity.Faction;
import com.massivecraft.factions.entity.UPlayer;
import com.palmergames.bukkit.towny.exceptions.NotRegisteredException;
import com.palmergames.bukkit.towny.object.Resident;
import com.palmergames.bukkit.towny.object.TownyUniverse;
public class ChatFacsTowns {
static Chat chatPlugin = null;
public ChatFacsTowns(Chat chat) {
ChatUtils.chatPlugin = chat;
}
public String getFacName(Player p) {
return UPlayer.get(p).getFactionName();
}
@SuppressWarnings("static-access")
public String getFactionColorsName(Player player, Player rec) {
UPlayer uplayer = UPlayer.get(player);
Faction faction = uplayer.getFaction();
String role = uplayer.getRole().getPrefix();
String fac = role + faction.getName();
if (faction.isNone()) {
return "";
} else {
ChatColor color = faction.getColorTo(UPlayer.get(rec));
return color + chatPlugin.utils.removeCussWords(fac, false,
player, true, color + "") + " ";
}
}
public ArrayList<Player> getFacPlayers(Player player) {
if (getFacName(player).equals("")) {
return new ArrayList<Player>();
} else {
List<Player> fplayers = UPlayer.get(player).getFaction().getOnlinePlayers();
ArrayList<Player> players = new ArrayList<Player>();
for (Player p : Bukkit.getOnlinePlayers()) {
if (p.hasPermission("ddchat.staffchat") || fplayers.contains(p))
players.add(p);
}
return players;
}
}
public boolean testTown(Player p) {
try {
Resident r = TownyUniverse.getDataSource().getResident(p.getName());
if (r.getTown() == null) {
return false;
}
} catch (NotRegisteredException e) {
return false;
}
return true;
}
public String getTown(Player player) {
try {
Resident r = TownyUniverse.getDataSource().getResident(player.getName());
//Resident re = TownyUniverse.getDataSource().getResident(rec.getName());
// List<String> ranks = r.getTownRanks();
// String title = "";
// if (ranks.size() > 0) {
// String t = ranks.get(0);
// title = ":" + String.valueOf(t.charAt(0)).toUpperCase() + t.substring(1, t.length());
// }
//some type of relational string
ChatColor color = ChatColor.AQUA;
String str = r.getTown().getName() + " ";
// if (str.startsWith("|")) {
// str = str.substring(1, str.length());
// }
if (str.length() > 0) {
return color + "\u00BB" + str;
}
} catch (NotRegisteredException e) {}
return "";
}
public ArrayList<Player> getTownPlayers(Player player) {
if (!testTown(player)) {
return new ArrayList<Player>();
} else {
ArrayList<Player> players = new ArrayList<Player>();
try {
Resident r = TownyUniverse.getDataSource().getResident(player.getName());
//Resident re = TownyUniverse.getDataSource().getResident(rec.getName());
for (Resident res : r.getTown().getResidents()) {
Player member = Bukkit.getPlayer(res.getName());
if (member != null)
players.add(member);
}
for (Player p : Bukkit.getOnlinePlayers()) {
if (p.hasPermission("ddchat.staffchat") && !players.contains(p))
players.add(p);
}
} catch (NotRegisteredException e) {}
return players;
}
}
public boolean testNation(Player p) {
try {
Resident r = TownyUniverse.getDataSource().getResident(p.getName());
if (r.getTown().getNation() == null) {
return false;
}
} catch (NotRegisteredException e) {
return false;
}
return true;
}
public ArrayList<Player> getNationPlayers(Player player) {
if (!testNation(player)) {
return new ArrayList<Player>();
} else {
ArrayList<Player> players = new ArrayList<Player>();
try {
Resident r = TownyUniverse.getDataSource().getResident(player.getName());
if (r.getTown().getNation() == null || r.getTown().getNation().getName().equals("")) {
return new ArrayList<Player>();
} else {
for (Resident res : r.getTown().getNation().getResidents()) {
Player member = Bukkit.getPlayer(res.getName());
if (member != null)
players.add(member);
}
for (Player p : Bukkit.getOnlinePlayers()) {
if (p.hasPermission("ddchat.staffchat") && !players.contains(p))
players.add(p);
}
return players;
}
} catch (NotRegisteredException e) {}
return players;
}
}
@SuppressWarnings("static-access")
public String getFaction(Player player, Player rec) {
UPlayer uplayer = UPlayer.get(player);
Faction faction = uplayer.getFaction();
String role = uplayer.getRole().getPrefix();
String fac = role + faction.getName();
if (faction.isNone()) {
return "";
} else {
ChatColor color = faction.getColorTo(UPlayer.get(rec));
return color + chatPlugin.utils.removeCussWords(fac, false,
player, true, color + "") + " ";
}
}
}