1
1
package gg.obsidian.discordbridge
2
2
3
+ import net.dv8tion.jda.JDA
3
4
import net.dv8tion.jda.JDABuilder
4
5
import net.dv8tion.jda.entities.Guild
5
6
import net.dv8tion.jda.entities.TextChannel
6
7
7
8
class DiscordConnection (val plugin : Plugin ) : Runnable {
8
- var api = JDABuilder (plugin.configuration. EMAIL , plugin.configuration. PASSWORD ).setAudioEnabled( false ).buildBlocking()
9
- var listener = DiscordListener (plugin, api, this )
9
+ var api: JDA ? = null
10
+ var listener: DiscordListener ? = null
10
11
var server: Guild ? = null
11
12
var channel: TextChannel ? = null
12
13
13
14
override fun run () {
14
15
try {
15
- api.addEventListener(listener )
16
+ connect( )
16
17
} catch (e: Exception ) {
17
18
plugin.logger.severe(" Error connecting to Discord: " + e)
18
19
}
@@ -30,15 +31,29 @@ class DiscordConnection(val plugin: Plugin) : Runnable {
30
31
}
31
32
32
33
fun reconnect () {
33
- api.removeEventListener(listener)
34
- api.shutdown(false )
35
- api = JDABuilder (plugin.configuration.EMAIL , plugin.configuration.PASSWORD ).setAudioEnabled(false ).buildBlocking()
36
- listener = DiscordListener (plugin, api, this )
37
- api.addEventListener(listener)
34
+ disconnect()
35
+ connect()
36
+ }
37
+
38
+ private fun disconnect () {
39
+ api?.removeEventListener(listener)
40
+ api?.shutdown(false )
41
+ }
42
+
43
+ private fun connect () {
44
+ var builder = JDABuilder ().setAudioEnabled(false )
45
+ if (plugin.configuration.TOKEN != " " ) {
46
+ builder = builder.setBotToken(plugin.configuration.TOKEN )
47
+ } else {
48
+ builder = builder.setEmail(plugin.configuration.EMAIL ).setPassword(plugin.configuration.PASSWORD )
49
+ }
50
+ api = builder.buildBlocking()
51
+ listener = DiscordListener (plugin, api as JDA , this )
52
+ api!! .addEventListener(listener)
38
53
}
39
54
40
55
private fun getServerById (id : String ): Guild ? {
41
- for (server in api.guilds)
56
+ for (server in api!! .guilds)
42
57
if (server.id.equals(id, true ))
43
58
return server
44
59
return null
0 commit comments