1
1
package Commands .CustomCommands ;
2
2
3
+ import Commands .CustomCommands .Subscribers .RiotGuild ;
4
+ import Commands .CustomCommands .Subscribers .RiotNewsScheduler ;
3
5
import Constants .Configuration ;
4
6
import Utils .Pair ;
5
7
import net .dv8tion .jda .api .events .message .MessageReceivedEvent ;
6
8
import net .dv8tion .jda .api .hooks .ListenerAdapter ;
7
9
import org .slf4j .Logger ;
8
10
import org .slf4j .LoggerFactory ;
9
11
12
+ import java .sql .Connection ;
13
+ import java .sql .DriverManager ;
14
+ import java .sql .ResultSet ;
15
+ import java .sql .SQLException ;
10
16
import java .util .ArrayList ;
11
17
12
18
public class LeagueNewsCommand extends ListenerAdapter {
@@ -23,9 +29,90 @@ public void onMessageReceived(MessageReceivedEvent event) {
23
29
return ;
24
30
}
25
31
26
- if (event .getMessage ().getContentDisplay ().contains (Configuration .kBotPrefix + "rss" )) {
27
- event .getChannel ().sendMessage ("Currently the RSS Feed is unavailable!" ).queue ();
32
+ if (event .getMessage ().getContentDisplay ().contains (Configuration .kBotPrefix + "newsenable" )) {
33
+ if (alreadyAdded (event )) {
34
+ event .getChannel ().sendMessage ("News is already enabled!" ).queue ();
35
+ } else {
36
+ boolean found = false ;
37
+ for (RiotGuild guild : RiotNewsScheduler .riotGuilds ) {
38
+ if (guild .getGuildId ().equalsIgnoreCase (event .getGuild ().getId ())) {
39
+ found = true ;
40
+
41
+ guild .setNewsEnabled (true );
42
+ guild .setAnnouncementChannelId (event .getTextChannel ().getId ());
43
+
44
+ event .getChannel ().sendMessage ("Enabled news output for " + event .getGuild ().getName ()).queue ();
45
+
46
+ try {
47
+ Connection connection = DriverManager .getConnection (Configuration .kDatabaseUrl );
48
+ connection .createStatement ().execute ("UPDATE MAIN_GUILD_DATA SET Riot_Rss_Enable=1, Riot_Rss_Channel=" + event .getTextChannel ().getId () + ", Riot_Rss_Last_Message=\" " + guild .getLastShownTitle () + "\" WHERE Guild_ID=" + event .getGuild ().getId ());
49
+ } catch (SQLException e ) {
50
+ logger .error ("Error connecting to database" , e );
51
+ }
52
+ break ;
53
+ }
54
+ }
55
+
56
+ if (!found ) {
57
+ RiotNewsScheduler .riotGuilds .add (new RiotGuild (event .getGuild ().getId (), event .getChannel ().getId (), true , "" ));
58
+ try {
59
+ Connection connection = DriverManager .getConnection (Configuration .kDatabaseUrl );
60
+ ResultSet data = connection .createStatement ().executeQuery ("SELECT * FROM MAIN_GUILD_DATA WHERE Guild_ID=\" " +event .getGuild ().getId () +"\" " );
61
+
62
+ if (!data .next ()) {
63
+ connection .createStatement ().execute ("INSERT INTO MAIN_GUILD_DATA (Guild_ID, Member_Id, Member_Name, Member_Xp, Riot_Rss_Enable, Riot_Rss_Channel, Bot_Prefix) VALUES (" + event .getGuild ().getId () + ", NULL, NULL, NULL, 1," + event .getTextChannel ().getId () + ", NULL)" );
64
+ } else {
65
+ //connection.createStatement().execute("UPDATE MAIN_GUILD_DATA SET Riot_Rss_Enable=1, Riot_Rss_Channel=" + event.getTextChannel().getId() + ", Riot_Rss_Last_Message=\"" + + "\" WHERE Guild_ID=" + event.getGuild().getId());
66
+ }
67
+
68
+ } catch (SQLException e ) {
69
+ logger .error ("Error connecting to database" , e );
70
+ }
71
+ event .getChannel ().sendMessage ("Enabled news output for " + event .getGuild ().getName ()).queue ();
72
+ }
73
+ //TODO add to database!
74
+ }
75
+ } else if (event .getMessage ().getContentDisplay ().contains (Configuration .kBotPrefix + "newsdisable" )) {
76
+ boolean found = false ;
77
+ for (RiotGuild guild : RiotNewsScheduler .riotGuilds ) {
78
+ if (guild .getGuildId ().equalsIgnoreCase (event .getGuild ().getId ())) {
79
+ found = true ;
80
+
81
+ guild .setNewsEnabled (false );
82
+
83
+ event .getChannel ().sendMessage ("Disabled news output for " + event .getGuild ().getName ()).queue ();
84
+ try {
85
+ Connection connection = DriverManager .getConnection (Configuration .kDatabaseUrl );
86
+ connection .createStatement ().execute ("UPDATE MAIN_GUILD_DATA SET Riot_Rss_Enable=0, Riot_Rss_Channel=" + event .getTextChannel ().getId () + " WHERE Guild_ID=" + event .getGuild ().getId ());
87
+ } catch (SQLException e ) {
88
+ logger .error ("Error connecting to database" , e );
89
+ }
90
+ break ;
91
+ }
92
+ }
93
+
94
+ if (!found ) {
95
+ event .getChannel ().sendMessage ("News is already disabled on this server!" ).queue ();
96
+ }
97
+ } else {
98
+ //unknown command ignore
99
+ }
100
+
101
+ }
102
+
103
+ public boolean alreadyAdded (MessageReceivedEvent event ) {
104
+ for (RiotGuild guild : RiotNewsScheduler .riotGuilds ) {
105
+ if (guild .getGuildId ().equalsIgnoreCase (event .getGuild ().getId ())) {
106
+ if (guild .newsEnabled ()) {
107
+ return true ;
108
+ } else {
109
+ return false ;
110
+ }
111
+ } else {
112
+ return false ;
113
+ }
28
114
}
29
115
116
+ return false ;
30
117
}
31
118
}
0 commit comments