Fix message spam on server start and bridge reconnect

This commit is contained in:
DaMachinator 2018-02-09 13:34:36 -05:00
parent 224af67113
commit 9b0aeb9657
3 changed files with 17 additions and 2 deletions

View File

@ -56,12 +56,17 @@ object MatterLink {
BridgeCommandRegistry.registerAll(PlayerListCommand, HelpCommand)
}
@Mod.EventHandler
fun serverAboutToStart(event: FMLServerAboutToStartEvent) {
MessageHandler.start()
}
@Mod.EventHandler
fun serverStarting(event: FMLServerStartingEvent) {
logger.debug("Registering server commands")
event.registerServerCommand(CommandMatterlink())
MessageHandler.start()
MessageHandler.rcvQueue.clear()
}
@Mod.EventHandler

View File

@ -5,10 +5,13 @@ import matterlink.bridge.command.BridgeCommandRegistry
import matterlink.cfg
object ServerChatHandler {
var processMessages: Boolean = true
/**
* This method must be called every server tick with no arguments.
*/
fun writeIncomingToChat() {
if (!processMessages) return
if (MessageHandler.rcvQueue.isNotEmpty())
MatterLink.logger.debug("incoming: " + MessageHandler.rcvQueue.toString())
val nextMessage = MessageHandler.rcvQueue.poll()

View File

@ -4,9 +4,11 @@ import matterlink.*
import matterlink.MatterLink.logger
import matterlink.bridge.MessageHandler
import com.google.common.collect.Lists
import matterlink.bridge.ServerChatHandler
import net.minecraft.command.CommandBase
import net.minecraft.command.ICommandSender
import net.minecraft.server.MinecraftServer
import org.apache.logging.log4j.core.jmx.Server
class CommandMatterlink : CommandBase() {
@ -39,11 +41,16 @@ class CommandMatterlink : CommandBase() {
val cmd = args[0].toLowerCase()
when (cmd) {
"connect" -> if (MessageHandler.start()) {
MessageHandler.rcvQueue.clear()
logger.info("Connected to matterbridge relay")
ServerChatHandler.processMessages = true
} else {
logger.error("Connection to matterbridge relay failed.")
}
"disconnect" -> MessageHandler.stop()
"disconnect" -> {
MessageHandler.stop()
ServerChatHandler.processMessages = false
}
}
}