TF-Marriage/src/main/java/com/lenis0012/bukkit/marriage2/internal/data/MarriagePlayer.java

103 lines
2.2 KiB
Java
Raw Normal View History

2014-11-13 16:45:41 +00:00
package com.lenis0012.bukkit.marriage2.internal.data;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.UUID;
2015-05-26 21:58:01 +00:00
import com.google.common.collect.Lists;
2014-11-13 16:45:41 +00:00
import com.lenis0012.bukkit.marriage2.Gender;
import com.lenis0012.bukkit.marriage2.MData;
import com.lenis0012.bukkit.marriage2.MPlayer;
2014-12-14 02:36:33 +00:00
import com.lenis0012.bukkit.marriage2.Marriage;
import com.lenis0012.bukkit.marriage2.internal.MarriagePlugin;
2014-11-13 16:45:41 +00:00
public class MarriagePlayer implements MPlayer {
private final List<UUID> requests = Lists.newArrayList();
private final UUID uuid;
private MData marriage;
2015-01-08 21:19:17 +00:00
private Gender gender = Gender.UNKNOWN;
2014-11-13 16:45:41 +00:00
private boolean inChat;
public MarriagePlayer(UUID uuid, ResultSet data) throws SQLException {
this.uuid = uuid;
if(data.next()) {
this.gender = Gender.valueOf(data.getString("gender"));
}
}
2014-11-14 19:37:31 +00:00
public void addMarriage(MarriageData data) {
2014-11-13 16:45:41 +00:00
this.marriage = data;
}
void save(PreparedStatement ps) throws SQLException {
ps.setString(1, uuid.toString());
ps.setString(2, gender.toString());
ps.setLong(3, System.currentTimeMillis());
}
@Override
public UUID getUniqueId() {
return uuid;
}
@Override
public void requestMarriage(UUID from) {
requests.add(from);
}
@Override
public boolean isMarriageRequested(UUID from) {
return requests.contains(from);
}
@Override
public Gender getGender() {
return gender;
}
@Override
public void setGender(Gender gender) {
this.gender = gender;
}
@Override
public MData getMarriage() {
return marriage;
}
@Override
public boolean isMarried() {
return marriage != null;
}
@Override
public boolean isInChat() {
return inChat;
}
@Override
public void setInChat(boolean inChat) {
this.inChat = inChat;
}
2014-12-14 02:36:33 +00:00
@Override
public MPlayer getPartner() {
Marriage core = MarriagePlugin.getInstance();
UUID id = null;
if(marriage != null) {
id = uuid.equals(marriage.getPlayer1Id()) ? marriage.getPllayer2Id() : marriage.getPlayer1Id();
}
return core.getMPlayer(id);
}
@Override
public void divorce() {
MarriagePlayer partner = (MarriagePlayer) getPartner();
partner.marriage = null;
this.marriage = null;
}
2014-11-13 16:45:41 +00:00
}