diff --git a/src/main/scala/buttondevteam/discordplugin/DiscordPlugin.scala b/src/main/scala/buttondevteam/discordplugin/DiscordPlugin.scala
index fc388c8..7c1a97a 100644
--- a/src/main/scala/buttondevteam/discordplugin/DiscordPlugin.scala
+++ b/src/main/scala/buttondevteam/discordplugin/DiscordPlugin.scala
@@ -77,18 +77,16 @@ import scala.jdk.OptionConverters.*
/**
* The (bot) channel to use for Discord commands like /role.
*/
- var commandChannel: ConfigData[Snowflake] = DPUtils.snowflakeData(getIConfig, "commandChannel", 0L)
+ def commandChannel: ConfigData[Snowflake] = DPUtils.snowflakeData(getIConfig, "commandChannel", 0L)
/**
* The role that allows using mod-only Discord commands.
* If empty (''), then it will only allow for the owner.
*/
- var modRole: ConfigData[Mono[Role]] = null
+ def modRole: ConfigData[Mono[Role]] = DPUtils.roleData(getIConfig, "modRole", "Moderator")
/**
* The invite link to show by /discord invite. If empty, it defaults to the first invite if the bot has access.
*/
- var inviteLink: ConfigData[String] = getIConfig.getData("inviteLink", "")
-
- private def setupConfig(): Unit = modRole = DPUtils.roleData(getIConfig, "modRole", "Moderator")
+ def inviteLink: ConfigData[String] = getIConfig.getData("inviteLink", "")
override def onLoad(): Unit = { //Needed by ServerWatcher
val thread = Thread.currentThread
@@ -172,7 +170,6 @@ import scala.jdk.OptionConverters.*
mainServer.set(Option(DiscordPlugin.mainServer)) //Save in config
}
DiscordPlugin.SafeMode = false
- setupConfig()
DPUtils.disableIfConfigErrorRes(null, commandChannel, DPUtils.getMessageChannel(commandChannel))
//Won't disable, just prints the warning here
if (MinecraftChatModule.state eq DPState.STOPPING_SERVER) {
diff --git a/src/main/scala/buttondevteam/discordplugin/announcer/AnnouncerModule.scala b/src/main/scala/buttondevteam/discordplugin/announcer/AnnouncerModule.scala
index bf5cdf7..669cd36 100644
--- a/src/main/scala/buttondevteam/discordplugin/announcer/AnnouncerModule.scala
+++ b/src/main/scala/buttondevteam/discordplugin/announcer/AnnouncerModule.scala
@@ -23,21 +23,21 @@ import scala.collection.mutable
/**
* Channel to post new posts.
*/
- final val channel = DPUtils.channelData(getConfig, "channel")
+ final def channel = DPUtils.channelData(getConfig, "channel")
/**
* Channel where distinguished (moderator) posts go.
*/
- final private val modChannel = DPUtils.channelData(getConfig, "modChannel")
+ final private def modChannel = DPUtils.channelData(getConfig, "modChannel")
/**
* Automatically unpins all messages except the last few. Set to 0 or >50 to disable
*/
- final private val keepPinned = getConfig.getData("keepPinned", 40.toShort)
- final private val lastAnnouncementTime = getConfig.getData("lastAnnouncementTime", 0L)
- final private val lastSeenTime = getConfig.getData("lastSeenTime", 0L)
+ final private def keepPinned = getConfig.getData("keepPinned", 40.toShort)
+ final private def lastAnnouncementTime = getConfig.getData("lastAnnouncementTime", 0L)
+ final private def lastSeenTime = getConfig.getData("lastSeenTime", 0L)
/**
* The subreddit to pull the posts from
*/
- final private val subredditURL = getConfig.getData("subredditURL", "https://www.reddit.com/r/ChromaGamers")
+ final private def subredditURL = getConfig.getData("subredditURL", "https://www.reddit.com/r/ChromaGamers")
override protected def enable(): Unit = {
if (DPUtils.disableIfConfigError(this, channel, modChannel)) return ()
diff --git a/src/main/scala/buttondevteam/discordplugin/exceptions/ExceptionListenerModule.scala b/src/main/scala/buttondevteam/discordplugin/exceptions/ExceptionListenerModule.scala
index 3bc2db0..254d546 100644
--- a/src/main/scala/buttondevteam/discordplugin/exceptions/ExceptionListenerModule.scala
+++ b/src/main/scala/buttondevteam/discordplugin/exceptions/ExceptionListenerModule.scala
@@ -75,7 +75,7 @@ class ExceptionListenerModule extends Component[DiscordPlugin] with Listener {
/**
* The channel to post the errors to.
*/
- final private val channel = DPUtils.channelData(getConfig, "channel")
+ final private def channel = DPUtils.channelData(getConfig, "channel")
/**
* The role to ping if an error occurs. Set to empty ('') to disable.
diff --git a/src/main/scala/buttondevteam/discordplugin/fun/FunModule.scala b/src/main/scala/buttondevteam/discordplugin/fun/FunModule.scala
index 8527c0e..54177e7 100644
--- a/src/main/scala/buttondevteam/discordplugin/fun/FunModule.scala
+++ b/src/main/scala/buttondevteam/discordplugin/fun/FunModule.scala
@@ -97,7 +97,7 @@ class FunModule extends Component[DiscordPlugin] with Listener {
/**
* Questions that the bot will choose a random answer to give to.
*/
- final private val serverReady: ConfigData[Array[String]] =
+ final private def serverReady: ConfigData[Array[String]] =
getConfig.getData("serverReady", Array[String](
"when will the server be open", "when will the server be ready",
"when will the server be done", "when will the server be complete",
@@ -106,7 +106,7 @@ class FunModule extends Component[DiscordPlugin] with Listener {
/**
* Answers for a recognized question. Selected randomly.
*/
- final private val serverReadyAnswers: ConfigData[util.ArrayList[String]] =
+ final private def serverReadyAnswers: ConfigData[util.ArrayList[String]] =
getConfig.getData("serverReadyAnswers", Lists.newArrayList(FunModule.serverReadyStrings: _*))
private def createUsableServerReadyStrings(): Unit =
@@ -130,5 +130,5 @@ class FunModule extends Component[DiscordPlugin] with Listener {
/**
* The channel to post the full house to.
*/
- final private val fullHouseChannel = DPUtils.channelData(getConfig, "fullHouseChannel")
+ final private def fullHouseChannel = DPUtils.channelData(getConfig, "fullHouseChannel")
}
\ No newline at end of file
diff --git a/src/main/scala/buttondevteam/discordplugin/mcchat/MinecraftChatModule.scala b/src/main/scala/buttondevteam/discordplugin/mcchat/MinecraftChatModule.scala
index bedd55a..9dfef39 100644
--- a/src/main/scala/buttondevteam/discordplugin/mcchat/MinecraftChatModule.scala
+++ b/src/main/scala/buttondevteam/discordplugin/mcchat/MinecraftChatModule.scala
@@ -37,56 +37,56 @@ class MinecraftChatModule extends Component[DiscordPlugin] {
/**
* A list of commands that can be used in public chats - Warning: Some plugins will treat players as OPs, always test before allowing a command!
*/
- val whitelistedCommands: ConfigData[util.ArrayList[String]] = getConfig.getData("whitelistedCommands",
+ def whitelistedCommands: ConfigData[util.ArrayList[String]] = getConfig.getData("whitelistedCommands",
Lists.newArrayList("list", "u", "shrug", "tableflip", "unflip", "mwiki", "yeehaw", "lenny", "rp", "plugins"))
/**
* The channel to use as the public Minecraft chat - everything public gets broadcasted here
*/
- val chatChannel: ConfigData[Snowflake] = DPUtils.snowflakeData(getConfig, "chatChannel", 0L)
+ def chatChannel: ConfigData[Snowflake] = DPUtils.snowflakeData(getConfig, "chatChannel", 0L)
def chatChannelMono: Mono[MessageChannel] = DPUtils.getMessageChannel(chatChannel.getPath, chatChannel.get)
/**
* The channel where the plugin can log when it mutes a player on Discord because of a Minecraft mute
*/
- val modlogChannel: ConfigData[Mono[MessageChannel]] = DPUtils.channelData(getConfig, "modlogChannel")
+ def modlogChannel: ConfigData[Mono[MessageChannel]] = DPUtils.channelData(getConfig, "modlogChannel")
/**
* The plugins to exclude from fake player events used for the 'mcchat' command - some plugins may crash, add them here
*/
- val excludedPlugins: ConfigData[Array[String]] = getConfig.getData("excludedPlugins", Array[String]("ProtocolLib", "LibsDisguises", "JourneyMapServer"))
+ def excludedPlugins: ConfigData[Array[String]] = getConfig.getData("excludedPlugins", Array[String]("ProtocolLib", "LibsDisguises", "JourneyMapServer"))
/**
* If this setting is on then players logged in through the 'mcchat' command will be able to teleport using plugin commands.
* They can then use commands like /tpahere to teleport others to that place.
* If this is off, then teleporting will have no effect.
*/
- val allowFakePlayerTeleports: ConfigData[Boolean] = getConfig.getData("allowFakePlayerTeleports", false)
+ def allowFakePlayerTeleports: ConfigData[Boolean] = getConfig.getData("allowFakePlayerTeleports", false)
/**
* If this is on, each chat channel will have a player list in their description.
* It only gets added if there's no description yet or there are (at least) two lines of "----" following each other.
* Note that it will replace everything above the first and below the last "----" but it will only detect exactly four dashes.
* So if you want to use dashes for something else in the description, make sure it's either less or more dashes in one line.
*/
- val showPlayerListOnDC: ConfigData[Boolean] = getConfig.getData("showPlayerListOnDC", true)
+ def showPlayerListOnDC: ConfigData[Boolean] = getConfig.getData("showPlayerListOnDC", true)
/**
* This setting controls whether custom chat connections can be created (existing connections will always work).
* Custom chat connections can be created using the channelcon command and they allow players to display town chat in a Discord channel for example.
* See the channelcon command for more details.
*/
- val allowCustomChat: ConfigData[Boolean] = getConfig.getData("allowCustomChat", true)
+ def allowCustomChat: ConfigData[Boolean] = getConfig.getData("allowCustomChat", true)
/**
* This setting allows you to control if players can DM the bot to log on the server from Discord.
* This allows them to both chat and perform any command they can in-game.
*/
- val allowPrivateChat: ConfigData[Boolean] = getConfig.getData("allowPrivateChat", true)
+ def allowPrivateChat: ConfigData[Boolean] = getConfig.getData("allowPrivateChat", true)
/**
* If set, message authors appearing on Discord will link to this URL. A 'type' and 'id' parameter will be added with the user's platform (Discord, Minecraft, ...) and ID.
*/
- val profileURL: ConfigData[String] = getConfig.getData("profileURL", "")
+ def profileURL: ConfigData[String] = getConfig.getData("profileURL", "")
/**
* Enables support for running vanilla commands through Discord, if you ever need it.
*/
- val enableVanillaCommands: ConfigData[Boolean] = getConfig.getData("enableVanillaCommands", true)
+ def enableVanillaCommands: ConfigData[Boolean] = getConfig.getData("enableVanillaCommands", true)
/**
* Whether players logged on from Discord (mcchat command) should be recognised by other plugins. Some plugins might break if it's turned off.
* But it's really hacky.
diff --git a/src/main/scala/buttondevteam/discordplugin/role/GameRoleModule.scala b/src/main/scala/buttondevteam/discordplugin/role/GameRoleModule.scala
index e5e4749..7369b56 100644
--- a/src/main/scala/buttondevteam/discordplugin/role/GameRoleModule.scala
+++ b/src/main/scala/buttondevteam/discordplugin/role/GameRoleModule.scala
@@ -95,12 +95,12 @@ import scala.jdk.CollectionConverters.SeqHasAsJava
/**
* The channel where the bot logs when it detects a role change that results in a new game role or one being removed.
*/
- final private val logChannel = DPUtils.channelData(getConfig, "logChannel")
+ final private def logChannel = DPUtils.channelData(getConfig, "logChannel")
/**
* The role color that is used by game roles.
* Defaults to the second to last in the upper row - #95a5a6.
*/
- final private val roleColor = getConfig.getData("roleColor", Color.of(149, 165, 166),
+ final private def roleColor = getConfig.getData("roleColor", Color.of(149, 165, 166),
rgb => Color.of(Integer.parseInt(rgb.asInstanceOf[String].substring(1), 16)),
color => String.format("#%08x", color.getRGB), true)