2015-10-19 17:43:46 +00:00
|
|
|
package me.totalfreedom.totalfreedommod.player;
|
|
|
|
|
|
|
|
import com.google.common.collect.Sets;
|
|
|
|
import java.util.Set;
|
|
|
|
import lombok.Getter;
|
|
|
|
import lombok.Setter;
|
|
|
|
import net.pravian.aero.base.ConfigLoadable;
|
|
|
|
import net.pravian.aero.base.ConfigSavable;
|
|
|
|
import net.pravian.aero.base.Validatable;
|
|
|
|
import org.apache.commons.lang3.Validate;
|
|
|
|
import org.bukkit.configuration.ConfigurationSection;
|
|
|
|
import org.bukkit.entity.Player;
|
|
|
|
|
|
|
|
public class PlayerData implements ConfigLoadable, ConfigSavable, Validatable
|
|
|
|
{
|
2015-11-22 18:26:47 +00:00
|
|
|
|
2015-10-19 17:43:46 +00:00
|
|
|
@Getter
|
|
|
|
@Setter
|
|
|
|
private String username;
|
|
|
|
@Getter
|
|
|
|
@Setter
|
|
|
|
private long firstJoinUnix;
|
|
|
|
@Getter
|
|
|
|
@Setter
|
|
|
|
private long lastJoinUnix;
|
|
|
|
@Getter
|
|
|
|
private final Set<String> ips = Sets.newHashSet();
|
|
|
|
|
|
|
|
public PlayerData(Player player)
|
|
|
|
{
|
|
|
|
this(player.getName());
|
|
|
|
}
|
|
|
|
|
|
|
|
public PlayerData(String username)
|
|
|
|
{
|
|
|
|
this.username = username;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void loadFrom(ConfigurationSection cs)
|
|
|
|
{
|
|
|
|
this.username = cs.getString("username", username);
|
|
|
|
this.ips.clear();
|
|
|
|
this.ips.addAll(cs.getStringList("ips"));
|
|
|
|
this.firstJoinUnix = cs.getLong("first_join", 0);
|
|
|
|
this.lastJoinUnix = cs.getLong("last_join", 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void saveTo(ConfigurationSection cs)
|
|
|
|
{
|
|
|
|
Validate.isTrue(isValid(), "Could not save player entry: " + username + ". Entry not valid!");
|
|
|
|
cs.set("username", username);
|
|
|
|
cs.set("ips", ips);
|
|
|
|
cs.set("first_join", firstJoinUnix);
|
|
|
|
cs.set("last_join", lastJoinUnix);
|
|
|
|
}
|
|
|
|
|
|
|
|
// IP utils
|
|
|
|
public boolean addIp(String ip)
|
|
|
|
{
|
|
|
|
return ips.add(ip);
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean removeIp(String ip)
|
|
|
|
{
|
|
|
|
return ips.remove(ip);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean isValid()
|
|
|
|
{
|
|
|
|
return username != null
|
|
|
|
&& firstJoinUnix != 0
|
|
|
|
&& lastJoinUnix != 0
|
|
|
|
&& !ips.isEmpty();
|
|
|
|
}
|
|
|
|
}
|