· 6 years ago · Jul 20, 2019, 06:00 PM
1ublic class DAOWarnList extends DAO {
2
3 @Override
4 public void generateTables() {
5
6 super.getMySQLConnection().update(" CREATE TABLE IF NOT EXISTS 'warn' ( `id` INT NOT NULL AUTO_INCREMENT , `guildid` VARCHAR(18) NOT NULL , `userid` VARCHAR(18) NOT NULL , `reason` VARCHAR(100) NOT NULL , UNIQUE (`id`)) ENGINE = InnoDB;");
7 }
8
9 public HashMap<String, Warn> getWarnsByID() {
10
11 HashMap<String, Warn> warnsByUser = new HashMap<>();
12 ResultSet rs = super.getMySQLConnection().query("SELECT * FROM 'warn'");
13 try {
14 while (rs.next()) {
15
16 warnsByUser.put(rs.getString("id"), new Warn(Main.getJda().getGuildById(rs.getString("guildid")).getMemberById(rs.getString("userid")), rs.getString("reason")));
17 }
18 } catch (SQLException e ) {
19 e.printStackTrace();
20 }
21 return warnsByUser;
22 }
23
24 public ArrayList<Warn> getWarnsByMember(Member member) {
25
26 ArrayList<Warn> warns = new ArrayList<>();
27 ResultSet rs = super.getMySQLConnection().query("SELECT reason FROM `warn` WHERE userid = '" + member.getUser().getId() + "' AND guildid = '" + member.getGuild().getId() + "'");
28 try {
29 while (rs.next()) {
30
31 warns.add(new Warn(member, rs.getString("reason")));
32 }
33 } catch (SQLException e ) {
34 e.printStackTrace();
35 }
36 return warns;
37 }
38
39 public HashMap<Member, ArrayList<Warn>> getWarnsByMembersForGuild(Guild guild) {
40
41 ArrayList<String> warnedUserIDs = new ArrayList<>();
42 ResultSet rs = super.getMySQLConnection().query("SELECT userid FROM warn WHERE guildid = '" + guild.getId() + "'");
43 try {
44 while (rs.next()) {
45
46 warnedUserIDs.add(rs.getString("userid"));
47 }
48 } catch (SQLException e ) {
49 e.printStackTrace();
50 }
51
52 HashMap<Member, ArrayList<Warn>> warnsByMembers = new HashMap<>();
53
54 for (String id : warnedUserIDs) {
55
56 Member currentMember = guild.getMemberById(id);
57 warnsByMembers.put(currentMember, getWarnsByMember(currentMember));
58 }
59 return warnsByMembers;
60 }
61
62 // CRUD
63
64 public void deleteWarnForMember(Member member) {
65
66 super.getMySQLConnection().update("DELETE FROM warn WHERE guildid = '" + member.getGuild().getId() + "' AND userid = '" + member.getUser().getId() + "'");
67 }
68
69 public void addWarnForMember(Member member, String reason) {
70
71 super.getMySQLConnection().update("INSERT INTO warn (userid, guildid, reason) VALUES ('" + member.getUser().getId() + "', '" + member.getGuild().getId() + "', '" + reason + "')");
72 }
73}