Skip to content

Commit a45009d

Browse files
Update JDA, add ability to specify bot token
1 parent 20b4300 commit a45009d

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ repositories {
4343
dependencies {
4444
compile group: 'org.spigotmc', name: 'spigot-api', version:'1.8.8-R0.1-SNAPSHOT'
4545
compile group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib', version:'1.0.0-rc-1036'
46-
compile group: 'net.dv8tion', name: 'JDA', version:'1.3.0_188'
46+
compile group: 'net.dv8tion', name: 'JDA', version:'1.4.0_238'
4747
}
4848

4949
processResources {

src/main/kotlin/gg/obsidian/discordbridge/Configuration.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ class Configuration(val plugin: Plugin) {
77
var USERNAME: String = ""
88
var EMAIL: String = ""
99
var PASSWORD: String = ""
10+
var TOKEN: String = ""
1011
var DEBUG: Boolean = false
1112
var RELAY_CANCELLED_MESSAGES = true
1213

@@ -39,6 +40,7 @@ class Configuration(val plugin: Plugin) {
3940
USERNAME = plugin.config.getString("settings.username")
4041
EMAIL = plugin.config.getString("settings.email")
4142
PASSWORD = plugin.config.getString("settings.password")
43+
TOKEN = plugin.config.getString("settings.token")
4244
DEBUG = plugin.config.getBoolean("settings.debug", false)
4345
RELAY_CANCELLED_MESSAGES = plugin.config.getBoolean("settings.relay_cancelled_messages", true)
4446

src/main/kotlin/gg/obsidian/discordbridge/DiscordConnection.kt

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
package gg.obsidian.discordbridge
22

3+
import net.dv8tion.jda.JDA
34
import net.dv8tion.jda.JDABuilder
45
import net.dv8tion.jda.entities.Guild
56
import net.dv8tion.jda.entities.TextChannel
67

78
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
1011
var server: Guild? = null
1112
var channel: TextChannel? = null
1213

1314
override fun run() {
1415
try {
15-
api.addEventListener(listener)
16+
connect()
1617
} catch (e: Exception) {
1718
plugin.logger.severe("Error connecting to Discord: " + e)
1819
}
@@ -30,15 +31,29 @@ class DiscordConnection(val plugin: Plugin) : Runnable {
3031
}
3132

3233
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)
3853
}
3954

4055
private fun getServerById(id: String): Guild? {
41-
for (server in api.guilds)
56+
for (server in api!!.guilds)
4257
if (server.id.equals(id, true))
4358
return server
4459
return null

0 commit comments

Comments
 (0)