From 8b92c820c462247c173dbeaf2113f97bc34200d7 Mon Sep 17 00:00:00 2001 From: mvoolt <77506726+mvoolt@users.noreply.github.com> Date: Fri, 10 Mar 2023 01:04:52 +0200 Subject: [PATCH] Fix messages not sending in properly if no limit is set (mumble) Co-authored-by: yellows111 --- bridge/mumble/mumble.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/bridge/mumble/mumble.go b/bridge/mumble/mumble.go index 945cf559..c4804bc9 100644 --- a/bridge/mumble/mumble.go +++ b/bridge/mumble/mumble.go @@ -249,10 +249,15 @@ func (b *Bmumble) processMessage(msg *config.Message) { // If there is a maximum message length, split and truncate the lines var msgLines []string - if maxLength := b.serverConfig.MaximumMessageLength; maxLength != nil { - msgLines = helper.GetSubLines(msg.Text, *maxLength-len(msg.Username), b.GetString("MessageClipped")) - } else { - msgLines = helper.GetSubLines(msg.Text, 0, b.GetString("MessageClipped")) + if maxLength := b.serverConfig.MaximumMessageLength; maxLength != nil { + if *maxLength != 0 { // Some servers will have unlimited message lengths. + // Not doing this makes underflows happen. + msgLines = helper.GetSubLines(msg.Text, *maxLength-len(msg.Username), b.GetString("MessageClipped")) + } else { + msgLines = helper.GetSubLines(msg.Text, 0, b.GetString("MessageClipped")) + } + } else { + msgLines = helper.GetSubLines(msg.Text, 0, b.GetString("MessageClipped")) } // Send the individual lines for i := range msgLines {