From 5c1e68a3de415d58af115d6379cae81aab0ec9f6 Mon Sep 17 00:00:00 2001 From: AlexanderShK <113863493+AlexanderShK@users.noreply.github.com> Date: Fri, 20 Mar 2026 19:01:10 +0300 Subject: [PATCH 1/9] Update config.go update variables added UseFullName and UseLastName for Mattermost --- bridge/config/config.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bridge/config/config.go b/bridge/config/config.go index 994b83488c..fc15ed86f8 100644 --- a/bridge/config/config.go +++ b/bridge/config/config.go @@ -211,7 +211,9 @@ type Protocol struct { UseSASL bool // IRC UseTLS bool // IRC UseDiscriminator bool // discord - UseFirstName bool // telegram + UseFullName bool // mattermost + UseFirstName bool // telegram, mattermost + UseLastName bool // mattermost UseUserName bool // discord, matrix, mattermost UseInsecureURL bool // telegram UserName string // IRC From 997ad72291d0c2dfe2f6ef9ec2e92a0c939c316d Mon Sep 17 00:00:00 2001 From: AlexanderShK <113863493+AlexanderShK@users.noreply.github.com> Date: Fri, 20 Mar 2026 19:10:08 +0300 Subject: [PATCH 2/9] Update handlers.go Add ability to use FullName, FirstName, LastName, NickName or UserName(if neither is set) as nick for Mattermost --- bridge/mattermost/handlers.go | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/bridge/mattermost/handlers.go b/bridge/mattermost/handlers.go index 88e44757c0..1c5db8b144 100644 --- a/bridge/mattermost/handlers.go +++ b/bridge/mattermost/handlers.go @@ -144,13 +144,31 @@ func (b *Bmattermost) handleMatterClient(messages chan *config.Message) { } } - // Use nickname instead of username if defined - if !b.GetBool("useusername") { - if nick := b.mc.GetNickName(rmsg.UserID); nick != "" { - rmsg.Username = nick - } - } - + // Choose what to use as user nick Nickname/FullName/FirstName/LastName (or Username if neither is set) + if b.GetBool("UseNickName") { + if b.mc.GetNickName(rmsg.UserID) != "" { + rmsg.Username = b.mc.GetNickName(rmsg.UserID) + } + } else if b.GetBool("UseFirstName") { + if b.mc.GetFirstName(rmsg.UserID) != "" { + rmsg.Username = b.mc.GetFirstName(rmsg.UserID) + } + } else if b.GetBool("UseLastName") { + if b.mc.GetLastName(rmsg.UserID) != "" { + rmsg.Username = b.mc.GetLastName(rmsg.UserID) + } + } else if b.GetBool("UseFullName") { + if b.mc.GetFirstName(rmsg.UserID) != "" && b.mc.GetLastName(rmsg.UserID) != "" { + rmsg.Username = b.mc.GetFirstName(rmsg.UserID) + " " + b.mc.GetLastName(rmsg.UserID) + } else if b.mc.GetFirstName(rmsg.UserID) != "" { + rmsg.Username = b.mc.GetFirstName(rmsg.UserID) + } else if b.mc.GetLastName(rmsg.UserID) != "" { + rmsg.Username = b.mc.GetLastName(rmsg.UserID) + } else { + rmsg.Username = "" + } + } + messages <- rmsg } } From 1e2f02f72b5dc8bb91d46d1ff8e8813706a246d0 Mon Sep 17 00:00:00 2001 From: AlexanderShK <113863493+AlexanderShK@users.noreply.github.com> Date: Fri, 20 Mar 2026 19:12:22 +0300 Subject: [PATCH 3/9] Update matterbridge.toml.sample Added examples NickName/FullName/FirstName/LastName/UserName for Mattermost --- matterbridge.toml.sample | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/matterbridge.toml.sample b/matterbridge.toml.sample index 060ade6819..1d8a3d5a56 100644 --- a/matterbridge.toml.sample +++ b/matterbridge.toml.sample @@ -409,9 +409,13 @@ SkipTLSVerify=true ## RELOADABLE SETTINGS ## Settings below can be reloaded by editing the file -# UseUserName shows the username instead of the server nickname +# Choose what use as user nick NickName/FullName/FirstName/LastName/UserName # OPTIONAL (default false) -UseUserName=false +UseNickName=false +UseFullName=false +UseFirstName=false +UseLastName=false +#if neither is set as true will use username #how to format the list of IRC nicks when displayed in mattermost. #Possible options are "table" and "plain" From f92db8514f9c5c1115f258c14d912a5345065ba0 Mon Sep 17 00:00:00 2001 From: AlexanderShK <113863493+AlexanderShK@users.noreply.github.com> Date: Wed, 25 Mar 2026 14:49:16 +0300 Subject: [PATCH 4/9] [Changed] update go.mod with matterclient from matterbridge-org --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 9d0fd08eb5..f3ef39b655 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/matterbridge/Rocket.Chat.Go.SDK v0.0.0-20211016222428-79310a412696 github.com/matterbridge/gozulipbot v0.0.0-20211023205727-a19d6c1f3b75 github.com/matterbridge/logrus-prefixed-formatter v0.5.3-0.20200523233437-d971309a77ba - github.com/matterbridge/matterclient v0.0.0-20240817214420-3d4c3aef3dc1 + github.com/matterbridge-org/matterclient v0.0.1 github.com/matterbridge/telegram-bot-api/v6 v6.5.0 github.com/mattermost/mattermost/server/public v0.1.6 github.com/mattn/go-mastodon v0.0.10 From 625b6c348d590152d1fcc84d906d9d34eb197a4f Mon Sep 17 00:00:00 2001 From: AlexanderShK <113863493+AlexanderShK@users.noreply.github.com> Date: Wed, 25 Mar 2026 14:51:21 +0300 Subject: [PATCH 5/9] [Changed] update go.mod with matterclient from matterbridge-org --- go.sum | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go.sum b/go.sum index ce4611f493..9bcdbdf6ef 100644 --- a/go.sum +++ b/go.sum @@ -190,8 +190,8 @@ github.com/matterbridge/gozulipbot v0.0.0-20211023205727-a19d6c1f3b75 h1:GslZKF7 github.com/matterbridge/gozulipbot v0.0.0-20211023205727-a19d6c1f3b75/go.mod h1:yAjnZ34DuDyPHMPHHjOsTk/FefW4JJjoMMCGt/8uuQA= github.com/matterbridge/logrus-prefixed-formatter v0.5.3-0.20200523233437-d971309a77ba h1:XleOY4IjAEIcxAh+IFwT5JT5Ze3RHiYz6m+4ZfZ0rc0= github.com/matterbridge/logrus-prefixed-formatter v0.5.3-0.20200523233437-d971309a77ba/go.mod h1:iXGEotOvwI1R1SjLxRc+BF5rUORTMtE0iMZBT2lxqAU= -github.com/matterbridge/matterclient v0.0.0-20240817214420-3d4c3aef3dc1 h1:LHzlbT3VIcRFhSPwKpZfT2TU2rUzuA8liF57gSEBuaI= -github.com/matterbridge/matterclient v0.0.0-20240817214420-3d4c3aef3dc1/go.mod h1:quMZkUhnTp/YfbJU6sCgD6qVSPgH1Uxig9/AjgJQHF8= +github.com/matterbridge-org/matterclient v0.0.1 h1:0Wtcf3BrOfnmWV/05mta3lagEIZy03nZAMuXbBq6r0I= +github.com/matterbridge-org/matterclient v0.0.1/go.mod h1:qT2nKnISsB0W9feG5a1C9o0Bnye8H7lwfDEnwCA0yCs= github.com/matterbridge/telegram-bot-api/v6 v6.5.0 h1:wCnHWvt4WGhfognQsuu2OnHyqENBdJRf2mReYTCXggQ= github.com/matterbridge/telegram-bot-api/v6 v6.5.0/go.mod h1:/hSLrs8h/xNsQglQXjwXJ92iZU8XfTGkYUQ7KVDWEVo= github.com/mattermost/go-i18n v1.11.1-0.20211013152124-5c415071e404 h1:Khvh6waxG1cHc4Cz5ef9n3XVCxRWpAKUtqg9PJl5+y8= From eb7c53daf138e5e9a69067047898dfc53c10237a Mon Sep 17 00:00:00 2001 From: AlexanderShK <113863493+AlexanderShK@users.noreply.github.com> Date: Wed, 25 Mar 2026 14:53:27 +0300 Subject: [PATCH 6/9] [Changed] switch to matterclient from matterbridge-org --- bridge/mattermost/handlers.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bridge/mattermost/handlers.go b/bridge/mattermost/handlers.go index 1c5db8b144..f4b9b7f485 100644 --- a/bridge/mattermost/handlers.go +++ b/bridge/mattermost/handlers.go @@ -5,7 +5,7 @@ import ( "github.com/matterbridge-org/matterbridge/bridge/config" "github.com/matterbridge-org/matterbridge/bridge/helper" - "github.com/matterbridge/matterclient" + "github.com/matterbridge-org/matterclient" "github.com/mattermost/mattermost/server/public/model" ) From 5a74e7d84b9b88497e3e7b35b6c52c0f45f36891 Mon Sep 17 00:00:00 2001 From: AlexanderShK <113863493+AlexanderShK@users.noreply.github.com> Date: Wed, 25 Mar 2026 14:55:33 +0300 Subject: [PATCH 7/9] [Changed] switch to matterclient from matterbridge-org --- bridge/mattermost/helpers.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bridge/mattermost/helpers.go b/bridge/mattermost/helpers.go index 63e143dda9..864865b11a 100644 --- a/bridge/mattermost/helpers.go +++ b/bridge/mattermost/helpers.go @@ -7,7 +7,7 @@ import ( "github.com/matterbridge-org/matterbridge/bridge/config" "github.com/matterbridge-org/matterbridge/bridge/helper" "github.com/matterbridge-org/matterbridge/matterhook" - "github.com/matterbridge/matterclient" + "github.com/matterbridge-org/matterclient" "github.com/mattermost/mattermost/server/public/model" ) From 6ad58ab2d208e7db199e89072e21620605ca2575 Mon Sep 17 00:00:00 2001 From: AlexanderShK <113863493+AlexanderShK@users.noreply.github.com> Date: Wed, 25 Mar 2026 14:55:59 +0300 Subject: [PATCH 8/9] [Changed] switch to matterclient from matterbridge-org --- bridge/mattermost/mattermost.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bridge/mattermost/mattermost.go b/bridge/mattermost/mattermost.go index 2a9cbf7670..9ce40f5e6a 100644 --- a/bridge/mattermost/mattermost.go +++ b/bridge/mattermost/mattermost.go @@ -11,7 +11,7 @@ import ( "github.com/matterbridge-org/matterbridge/bridge/config" "github.com/matterbridge-org/matterbridge/bridge/helper" "github.com/matterbridge-org/matterbridge/matterhook" - "github.com/matterbridge/matterclient" + "github.com/matterbridge-org/matterclient" "github.com/rs/xid" ) From 6d9b6cff5174bbd7e934aef984213a55eed7d2aa Mon Sep 17 00:00:00 2001 From: AlexanderShK <113863493+AlexanderShK@users.noreply.github.com> Date: Wed, 25 Mar 2026 16:19:59 +0300 Subject: [PATCH 9/9] [Changed] Rewrite username retrieval to switch statement Rewritten to a more preferable style for GO --- bridge/mattermost/handlers.go | 58 ++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/bridge/mattermost/handlers.go b/bridge/mattermost/handlers.go index f4b9b7f485..f7aa4b0593 100644 --- a/bridge/mattermost/handlers.go +++ b/bridge/mattermost/handlers.go @@ -145,32 +145,40 @@ func (b *Bmattermost) handleMatterClient(messages chan *config.Message) { } // Choose what to use as user nick Nickname/FullName/FirstName/LastName (or Username if neither is set) - if b.GetBool("UseNickName") { - if b.mc.GetNickName(rmsg.UserID) != "" { - rmsg.Username = b.mc.GetNickName(rmsg.UserID) - } - } else if b.GetBool("UseFirstName") { - if b.mc.GetFirstName(rmsg.UserID) != "" { - rmsg.Username = b.mc.GetFirstName(rmsg.UserID) - } - } else if b.GetBool("UseLastName") { - if b.mc.GetLastName(rmsg.UserID) != "" { - rmsg.Username = b.mc.GetLastName(rmsg.UserID) - } - } else if b.GetBool("UseFullName") { - if b.mc.GetFirstName(rmsg.UserID) != "" && b.mc.GetLastName(rmsg.UserID) != "" { - rmsg.Username = b.mc.GetFirstName(rmsg.UserID) + " " + b.mc.GetLastName(rmsg.UserID) - } else if b.mc.GetFirstName(rmsg.UserID) != "" { - rmsg.Username = b.mc.GetFirstName(rmsg.UserID) - } else if b.mc.GetLastName(rmsg.UserID) != "" { - rmsg.Username = b.mc.GetLastName(rmsg.UserID) - } else { - rmsg.Username = "" - } + switch { + case b.GetBool("UseNickName"): + if nickname := b.mc.GetNickName(rmsg.UserID); nickname != "" { + rmsg.Username = nickname + } + + case b.GetBool("UseFirstName"): + if firstname := b.mc.GetFirstName(rmsg.UserID); firstname != "" { + rmsg.Username = firstname + } + + case b.GetBool("UseLastName"): + if lastname := b.mc.GetLastName(rmsg.UserID); lastname != "" { + rmsg.Username = lastname + } + + case b.GetBool("UseFullName"): + first := b.mc.GetFirstName(rmsg.UserID) + last := b.mc.GetLastName(rmsg.UserID) + + switch { + case first != "" && last != "": + rmsg.Username = first + " " + last + case first != "": + rmsg.Username = first + case last != "": + rmsg.Username = last + default: + rmsg.Username = "NoName" + } } - - messages <- rmsg - } + + messages <- rmsg + } } func (b *Bmattermost) handleMatterHook(messages chan *config.Message) {