Convert config fields to methods
This commit is contained in:
parent
5d0bd37b28
commit
6bd1de6217
6 changed files with 25 additions and 28 deletions
|
@ -77,18 +77,16 @@ import scala.jdk.OptionConverters.*
|
||||||
/**
|
/**
|
||||||
* The (bot) channel to use for Discord commands like /role.
|
* 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.
|
* The role that allows using mod-only Discord commands.
|
||||||
* If empty (''), then it will only allow for the owner.
|
* 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.
|
* 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", "")
|
def inviteLink: ConfigData[String] = getIConfig.getData("inviteLink", "")
|
||||||
|
|
||||||
private def setupConfig(): Unit = modRole = DPUtils.roleData(getIConfig, "modRole", "Moderator")
|
|
||||||
|
|
||||||
override def onLoad(): Unit = { //Needed by ServerWatcher
|
override def onLoad(): Unit = { //Needed by ServerWatcher
|
||||||
val thread = Thread.currentThread
|
val thread = Thread.currentThread
|
||||||
|
@ -172,7 +170,6 @@ import scala.jdk.OptionConverters.*
|
||||||
mainServer.set(Option(DiscordPlugin.mainServer)) //Save in config
|
mainServer.set(Option(DiscordPlugin.mainServer)) //Save in config
|
||||||
}
|
}
|
||||||
DiscordPlugin.SafeMode = false
|
DiscordPlugin.SafeMode = false
|
||||||
setupConfig()
|
|
||||||
DPUtils.disableIfConfigErrorRes(null, commandChannel, DPUtils.getMessageChannel(commandChannel))
|
DPUtils.disableIfConfigErrorRes(null, commandChannel, DPUtils.getMessageChannel(commandChannel))
|
||||||
//Won't disable, just prints the warning here
|
//Won't disable, just prints the warning here
|
||||||
if (MinecraftChatModule.state eq DPState.STOPPING_SERVER) {
|
if (MinecraftChatModule.state eq DPState.STOPPING_SERVER) {
|
||||||
|
|
|
@ -23,21 +23,21 @@ import scala.collection.mutable
|
||||||
/**
|
/**
|
||||||
* Channel to post new posts.
|
* 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.
|
* 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
|
* 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 def keepPinned = getConfig.getData("keepPinned", 40.toShort)
|
||||||
final private val lastAnnouncementTime = getConfig.getData("lastAnnouncementTime", 0L)
|
final private def lastAnnouncementTime = getConfig.getData("lastAnnouncementTime", 0L)
|
||||||
final private val lastSeenTime = getConfig.getData("lastSeenTime", 0L)
|
final private def lastSeenTime = getConfig.getData("lastSeenTime", 0L)
|
||||||
/**
|
/**
|
||||||
* The subreddit to pull the posts from
|
* 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 = {
|
override protected def enable(): Unit = {
|
||||||
if (DPUtils.disableIfConfigError(this, channel, modChannel)) return ()
|
if (DPUtils.disableIfConfigError(this, channel, modChannel)) return ()
|
||||||
|
|
|
@ -75,7 +75,7 @@ class ExceptionListenerModule extends Component[DiscordPlugin] with Listener {
|
||||||
/**
|
/**
|
||||||
* The channel to post the errors to.
|
* 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.
|
* The role to ping if an error occurs. Set to empty ('') to disable.
|
||||||
|
|
|
@ -97,7 +97,7 @@ class FunModule extends Component[DiscordPlugin] with Listener {
|
||||||
/**
|
/**
|
||||||
* Questions that the bot will choose a random answer to give to.
|
* 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](
|
getConfig.getData("serverReady", Array[String](
|
||||||
"when will the server be open", "when will the server be ready",
|
"when will the server be open", "when will the server be ready",
|
||||||
"when will the server be done", "when will the server be complete",
|
"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.
|
* 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: _*))
|
getConfig.getData("serverReadyAnswers", Lists.newArrayList(FunModule.serverReadyStrings: _*))
|
||||||
|
|
||||||
private def createUsableServerReadyStrings(): Unit =
|
private def createUsableServerReadyStrings(): Unit =
|
||||||
|
@ -130,5 +130,5 @@ class FunModule extends Component[DiscordPlugin] with Listener {
|
||||||
/**
|
/**
|
||||||
* The channel to post the full house to.
|
* The channel to post the full house to.
|
||||||
*/
|
*/
|
||||||
final private val fullHouseChannel = DPUtils.channelData(getConfig, "fullHouseChannel")
|
final private def fullHouseChannel = DPUtils.channelData(getConfig, "fullHouseChannel")
|
||||||
}
|
}
|
|
@ -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!
|
* 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"))
|
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
|
* 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)
|
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
|
* 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
|
* 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.
|
* 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.<br />
|
* They can then use commands like /tpahere to teleport others to that place.<br />
|
||||||
* If this is off, then teleporting will have no effect.
|
* 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.
|
* 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.
|
* 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 <b>everything</b> above the first and below the last "----" but it will only detect exactly four dashes.
|
* Note that it will replace <b>everything</b> 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.
|
* 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 <i>created</i> (existing connections will always work).
|
* This setting controls whether custom chat connections can be <i>created</i> (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.
|
* 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.
|
* 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 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.
|
* 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.
|
* 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.
|
* 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.
|
* 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.
|
* But it's really hacky.
|
||||||
|
|
|
@ -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.
|
* 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.
|
* The role color that is used by game roles.
|
||||||
* Defaults to the second to last in the upper row - #95a5a6.
|
* 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)),
|
rgb => Color.of(Integer.parseInt(rgb.asInstanceOf[String].substring(1), 16)),
|
||||||
color => String.format("#%08x", color.getRGB), true)
|
color => String.format("#%08x", color.getRGB), true)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue