TotalFreedomMod/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerData.java
Robinson Gallego 521825024e omg maga tease
Signed-off-by: Robinson Gallego <robinson.leal7@gmail.com>
2019-07-28 02:04:16 -04:00

84 lines
2 KiB
Java

package me.totalfreedom.totalfreedommod.player;
import com.google.common.collect.Lists;
import java.util.Collections;
import java.util.List;
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.lang.Validate;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
public class PlayerData implements ConfigLoadable, ConfigSavable, Validatable
{
@Getter
@Setter
private String username;
@Getter
@Setter
private long firstJoinUnix;
@Getter
@Setter
private long lastJoinUnix;
private final List<String> ips = Lists.newArrayList();
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);
}
public List<String> getIps()
{
return Collections.unmodifiableList(ips);
}
// IP utils
public boolean addIp(String ip)
{
return ips.contains(ip) ? false : 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();
}
}