[enhancement] LoginMessage multi-line support (#1772)

This commit is contained in:
Dewy 2021-01-09 20:46:29 +00:00
parent 2ccc5e6a32
commit 3542a12d15
No known key found for this signature in database
GPG Key ID: 7E581A0C01213971
2 changed files with 15 additions and 13 deletions

View File

@ -16,7 +16,7 @@ import java.io.FileReader
object LoginMessage : Module(
name = "LoginMessage",
description = "Sends a given message to public chat on login.",
description = "Sends a given message(s) to public chat on login.",
category = Category.CHAT,
showOnArray = false,
modulePriority = 150
@ -24,7 +24,7 @@ object LoginMessage : Module(
private val sendAfterMoving by setting("SendAfterMoving", false)
private val file = File(KamiMod.DIRECTORY + "loginmsg.txt")
private var loginMessage: String? = null
private var loginMessages = ArrayList<String>()
private var sent = false
private var moved = false
@ -33,18 +33,19 @@ object LoginMessage : Module(
if (file.exists()) {
val fileReader = FileReader(file)
try {
fileReader.readLines().getOrNull(0)?.let {
if (it.isNotBlank()) loginMessage = it.trim()
fileReader.readLines().forEach {
loginMessages.add(if (it.isNotBlank()) it.trim() else return@forEach)
}
MessageSendHelper.sendChatMessage("$chatName Loaded login message!")
MessageSendHelper.sendChatMessage("$chatName Loaded ${loginMessages.size} login messages!")
} catch (e: Exception) {
MessageSendHelper.sendErrorMessage("$chatName Failed loading login message, $e")
MessageSendHelper.sendErrorMessage("$chatName Failed loading login messages, $e")
disable()
}
fileReader.close()
} else {
file.createNewFile()
MessageSendHelper.sendErrorMessage("$chatName Login Message file is empty!" +
MessageSendHelper.sendErrorMessage("$chatName Login Messages file not found!" +
", please add them in the &7loginmsg.txt&f under the &7.minecraft/kamiblue&f directory.")
disable()
}
@ -59,14 +60,15 @@ object LoginMessage : Module(
if (event.phase != TickEvent.Phase.END) return@safeListener
if (!sent && (!sendAfterMoving || moved)) {
loginMessage?.let {
if (MessageDetection.Command.KAMI_BLUE detect it) {
MessageSendHelper.sendKamiCommand(it)
for (message in loginMessages) {
if (MessageDetection.Command.KAMI_BLUE detect message) {
MessageSendHelper.sendKamiCommand(message)
} else {
sendServerMessage(it)
sendServerMessage(message)
}
sent = true
}
sent = true
}
if (!moved) moved = player.isMoving

View File

@ -94,7 +94,7 @@ abstract class AbstractConfig<T>(
description: String = ""
) = setting(EnumSetting(name, value, visibility, consumer, description))
/** Boolean Setting */
/** String Setting */
fun T.setting(
name: String,
value: String,