package me.rkfg.ns2gather.dto;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
public class PlayerDTO extends CheckedDTO {
Long lastPing;
String profileUrl;
String nick;
Long lastHiveUpdate = 0L;
HiveStatsDTO hiveStats;
Side side = Side.NONE;
Long loginTimestamp = 0L;
public PlayerDTO(Long id, String name, String profileUrl, Long lastPing) {
super();
this.id = id;
this.name = name;
this.profileUrl = profileUrl;
this.lastPing = lastPing;
}
public PlayerDTO() {
}
public Long getLastPing() {
return lastPing;
}
public void setLastPing(Long lastPing) {
this.lastPing = lastPing;
}
public String getProfileUrl() {
return profileUrl;
}
public void setProfileUrl(String profileUrl) {
this.profileUrl = profileUrl;
}
public String getNick() {
return nick;
}
public void setNick(String nick) {
this.nick = nick;
}
public Long getLastHiveUpdate() {
return lastHiveUpdate;
}
public void setLastHiveUpdate(Long lastHiveUpdate) {
this.lastHiveUpdate = lastHiveUpdate;
}
public HiveStatsDTO getHiveStats() {
return hiveStats;
}
public void setHiveStats(HiveStatsDTO hiveStats) {
this.hiveStats = hiveStats;
}
public Side getSide() {
return side;
}
public void setSide(Side side) {
this.side = side;
}
public Long getLoginTimestamp() {
return loginTimestamp;
}
public void setLoginTimestamp(Long loginTimestamp) {
this.loginTimestamp = loginTimestamp;
}
@Override
public String toString() {
return name;
}
public PlayerDTO clone() {
PlayerDTO result = new PlayerDTO(id, name, profileUrl, lastPing);
result.setNick(getNick());
result.setLoginTimestamp(getLoginTimestamp());
return result;
}
public String getEffectiveName() {
if (nick != null && !nick.isEmpty()) {
return nick;
}
return name;
}
public void buildLink(SafeHtmlBuilder sb, boolean skills) {
if (getProfileUrl() != null && !getProfileUrl().isEmpty()) {
sb.appendHtmlConstant(
"<a href=\"" + getProfileUrl() + "\" target=\"_blank\" title=\"" + SafeHtmlUtils.fromString(getName()).asString()
+ "\">").appendEscaped(getEffectiveName()).appendHtmlConstant("</a>");
} else {
sb.appendEscaped(getEffectiveName());
}
if (skills) {
addHiveStat(sb);
}
}
private void addHiveStat(SafeHtmlBuilder sb) {
if (hiveStats != null && hiveStats.getHoursPlayed() != null && hiveStats.getSkill() != null) {
sb.appendEscaped(" [Часов:" + hiveStats.getHoursPlayed() + "] [Скилл:" + hiveStats.getSkill() + "]");
}
}
public void buildInfo(SafeHtmlBuilder sb) {
sb.appendEscaped(getEffectiveName());
addHiveStat(sb);
}
}