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) BridgeCommandRegistry.registerAll(PlayerListCommand, HelpCommand)
} }
@Mod.EventHandler
fun serverAboutToStart(event: FMLServerAboutToStartEvent) {
MessageHandler.start()
}
@Mod.EventHandler @Mod.EventHandler
fun serverStarting(event: FMLServerStartingEvent) { fun serverStarting(event: FMLServerStartingEvent) {
logger.debug("Registering server commands") logger.debug("Registering server commands")
event.registerServerCommand(CommandMatterlink()) event.registerServerCommand(CommandMatterlink())
MessageHandler.start()
MessageHandler.rcvQueue.clear()
} }
@Mod.EventHandler @Mod.EventHandler

View File

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

View File

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