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 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 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 } }