diff --git a/bridge/mumble/handlers.go b/bridge/mumble/handlers.go index 8120159a..830aa5c0 100644 --- a/bridge/mumble/handlers.go +++ b/bridge/mumble/handlers.go @@ -42,7 +42,14 @@ func (b *Bmumble) handleTextMessage(event *gumble.TextMessageEvent) { if part.Image == nil { rmsg.Text = part.Text } else { - fname := b.Account + "_" + strconv.FormatInt(now.UnixNano(), 10) + "_" + strconv.Itoa(i) + part.FileExtension + fileExt := part.FileExtension + if fileExt == ".jfif" { + fileExt = ".jpg" + } + if fileExt == ".jpe" { + fileExt = ".jpg" + } + fname := b.Account + "_" + strconv.FormatInt(now.UnixNano(), 10) + "_" + strconv.Itoa(i) + fileExt rmsg.Extra = make(map[string][]interface{}) if err = helper.HandleDownloadSize(b.Log, &rmsg, fname, int64(len(part.Image)), b.General); err != nil { b.Log.WithError(err).Warn("not including image in message") @@ -62,7 +69,6 @@ func (b *Bmumble) handleConnect(event *gumble.ConnectEvent) { } // No need to talk or listen event.Client.Self.SetSelfDeafened(true) - event.Client.Self.SetSelfMuted(true) // if the Channel variable is set, this is a reconnect -> rejoin channel if b.Channel != nil { if err := b.doJoin(event.Client, *b.Channel); err != nil { diff --git a/bridge/mumble/mumble.go b/bridge/mumble/mumble.go index 945cf559..859ca4ab 100644 --- a/bridge/mumble/mumble.go +++ b/bridge/mumble/mumble.go @@ -250,7 +250,12 @@ 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")) + 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")) }