EAA_MOD/src/main/java/net/saltymc/eaa/util/database/DB_Tag.java
2021-06-12 18:00:44 +02:00

78 lines
2.2 KiB
Java

package net.saltymc.eaa.util.database;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class DB_Tag {
public static final String tableName = "Tag";
int id;
DB_Player player;
int grade;
Type type;
Date tagDate;
public DB_Tag(DB_Player db_player){
this.player = db_player;
}
public DB_Tag(DB_Player db_player, Type type, int grade){
this.player = db_player;
this.type = type;
this.grade = grade;
}
public void put(){
putTag(this);
}
public static void putTag(DB_Tag tag){
try {
PreparedStatement statement = Postgre.getInstance().connect().prepareStatement(
"INSERT INTO " + tableName + " (Player_ID, Grade, TagType, TagDate) " +
"VALUES (?, ?, ?, ?);");
statement.setInt(1, tag.player.getId());
statement.setInt(2,tag.grade);
statement.setString(3, tag.type.name());
statement.setDate(4 , new java.sql.Date(new Date().getTime()));
} catch (SQLException e){
throw new RuntimeException("Could not save Tag!", e);
}
}
public static List<DB_Tag> getTagsFromPlayer(DB_Player player){
try {
PreparedStatement statement = Postgre.getInstance().connect().prepareStatement("SELECT * FROM " + tableName + " WHERE Player_ID = ? ORDER BY TagDate ASC;");
statement.setInt(1, player.getId());
ResultSet rs = statement.executeQuery();
List<DB_Tag> ret = new ArrayList<>();
while (rs.next()){
DB_Tag tmp = new DB_Tag(player);
tmp.id = rs.getInt("ID");
tmp.grade = rs.getInt("Grade");
tmp.type = Type.valueOf(rs.getString("TagType"));
tmp.tagDate = rs.getDate("TagDate");
ret.add(tmp);
}
return ret;
} catch (SQLException e){
throw new RuntimeException("Error getting Tag!", e);
}
}
public enum Type {
HACKER, FRIENDLY, GOODPLAYER, IDIOT
}
}