128 lines
5.1 KiB
Kotlin
128 lines
5.1 KiB
Kotlin
package matterlink
|
|
|
|
import matterlink.config.IMatterLinkConfig
|
|
import matterlink.config.cfg
|
|
import net.minecraftforge.common.config.Configuration
|
|
import java.io.File
|
|
import java.util.regex.Pattern
|
|
|
|
class MatterLinkConfig(file: File) : IMatterLinkConfig() {
|
|
init {
|
|
logger.info("Reading bridge blueprints... from {}", file)
|
|
val config = Configuration(file)
|
|
|
|
config.addCustomCategoryComment(CATEGORY_RELAY_OPTIONS, "Relay options")
|
|
relay = RelayOptions(
|
|
|
|
systemUser = config.getString(
|
|
"systemUser",
|
|
CATEGORY_RELAY_OPTIONS,
|
|
relay.systemUser,
|
|
"Name of the server user (used by death and advancement messages and the /say command)"
|
|
),
|
|
deathEvents = config.getBoolean(
|
|
"deathEvents",
|
|
CATEGORY_RELAY_OPTIONS,
|
|
relay.deathEvents,
|
|
"Relay player death messages"
|
|
),
|
|
advancements = config.getBoolean(
|
|
"advancements",
|
|
CATEGORY_RELAY_OPTIONS,
|
|
relay.advancements,
|
|
"Relay player advancements"
|
|
),
|
|
joinLeave = config.getBoolean(
|
|
"joinLeave",
|
|
CATEGORY_RELAY_OPTIONS,
|
|
relay.joinLeave,
|
|
"Relay when a player joins or leaves the game"
|
|
)
|
|
)
|
|
|
|
config.addCustomCategoryComment(CATEGORY_COMMAND, "User commands")
|
|
command = CommandOptions(
|
|
enable = config.getBoolean(
|
|
"enable",
|
|
CATEGORY_COMMAND,
|
|
command.enable,
|
|
"Enable MC bridge commands"
|
|
),
|
|
prefix = config.getString(
|
|
"prefix",
|
|
CATEGORY_COMMAND,
|
|
command.prefix,
|
|
"Prefix for MC bridge commands. Accepts a single character (not alphanumeric or /)",
|
|
Pattern.compile("^[^0-9A-Za-z/]$")
|
|
)
|
|
)
|
|
|
|
config.addCustomCategoryComment(CATEGORY_FORMATTING_INCOMING, "Gateway -> Server" +
|
|
"Formatting options: " +
|
|
"Available variables: {username}, {text}, {gateway}, {channel}, {protocol}, {username:antiping}")
|
|
formatting = FormattingOptions(
|
|
chat = config.getString(
|
|
"chat",
|
|
CATEGORY_FORMATTING_INCOMING,
|
|
formatting.chat,
|
|
"Generic chat event, just talking"
|
|
),
|
|
joinLeave = config.getString(
|
|
"joinLeave",
|
|
CATEGORY_FORMATTING_INCOMING,
|
|
formatting.joinLeave,
|
|
"Join and leave events from other gateways"
|
|
),
|
|
action = config.getString(
|
|
"action",
|
|
CATEGORY_FORMATTING_INCOMING,
|
|
formatting.action,
|
|
"User actions (/me) sent by users from other gateways"
|
|
)
|
|
)
|
|
|
|
config.addCustomCategoryComment(CATEGORY_FORMATTING_JOIN_LEAVE, "Server -> Gateway" +
|
|
"Formatting options: " +
|
|
"Available variables: {username}, {username:antiping}")
|
|
formattingJoinLeave = FormattingJoinLeave(
|
|
joinServer = config.getString(
|
|
"joinServer",
|
|
CATEGORY_FORMATTING_JOIN_LEAVE,
|
|
formattingJoinLeave.joinServer,
|
|
"user join message sent to other gateways, available variables: {username}, {username:antiping}"
|
|
),
|
|
leaveServer = config.getString(
|
|
"leaveServer",
|
|
CATEGORY_FORMATTING_JOIN_LEAVE,
|
|
formattingJoinLeave.leaveServer,
|
|
"user leave message sent to other gateways, available variables: {username}, {username:antiping}"
|
|
)
|
|
)
|
|
|
|
config.addCustomCategoryComment(CATEGORY_CONNECTION, "Connection settings")
|
|
connect = ConnectOptions(
|
|
url = config.getString(
|
|
"connectURL",
|
|
CATEGORY_CONNECTION,
|
|
connect.url,
|
|
"The URL or IP address of the bridge server"
|
|
),
|
|
authToken = config.getString(
|
|
"authToken",
|
|
CATEGORY_CONNECTION,
|
|
connect.authToken,
|
|
"Auth token used to connect to the bridge server"
|
|
),
|
|
gateway = config.getString(
|
|
"gateway",
|
|
CATEGORY_CONNECTION,
|
|
connect.gateway,
|
|
"MatterBridge gateway"
|
|
)
|
|
)
|
|
|
|
if (config.hasChanged()) config.save()
|
|
|
|
cfg = this
|
|
}
|
|
} |