From 4d8c5420cdc71c27558b3ce863933f07f69bfa50 Mon Sep 17 00:00:00 2001 From: HimbeerserverDE Date: Sat, 2 Dec 2023 18:12:36 +0100 Subject: refactor send and server command error reports / logging --- chatcommands.go | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) (limited to 'chatcommands.go') diff --git a/chatcommands.go b/chatcommands.go index 1911132..ed6de79 100644 --- a/chatcommands.go +++ b/chatcommands.go @@ -5,6 +5,7 @@ for mt-multiserver-proxy. package main import ( + "errors" "fmt" "io" "os" @@ -124,7 +125,15 @@ func init() { } if err := clt.Hop(args[1]); err != nil { - clt.SendChatMsg("Could not switch servers. Reconnect if you encounter any problems. Error:", err.Error()) + cc.Log("<-", err) + + if errors.Is(err, proxy.ErrNoSuchServer) { + return "Server does not exist." + } else if errors.Is(err, proxy.ErrNewMediaPool) { + return "The new server belongs to a media pool that is not present on this client. Please reconnect to access it." + } + + return "Could not switch servers. Reconnect if you encounter any problems. Error: " + err.Error() } case "current": if cc == nil { @@ -142,7 +151,15 @@ func init() { for clt := range proxy.Clts() { if clt.ServerName() == cc.ServerName() && clt.ServerName() != args[1] { if err := clt.Hop(args[1]); err != nil { - clt.SendChatMsg("Could not switch servers. Reconnect if you encounter any problems. Error:", err.Error()) + cc.Log("<-", err) + + if errors.Is(err, proxy.ErrNoSuchServer) { + return "Server does not exist." + } else if errors.Is(err, proxy.ErrNewMediaPool) { + return "The new server belongs to a media pool that is not present on this client. Please reconnect to access it." + } + + return "Could not switch servers. Reconnect if you encounter any problems. Error: " + err.Error() } } } @@ -154,7 +171,15 @@ func init() { for clt := range proxy.Clts() { if clt.ServerName() != args[1] { if err := clt.Hop(args[1]); err != nil { - clt.SendChatMsg("Could not switch servers. Reconnect if you encounter any problems. Error:", err.Error()) + cc.Log("<-", err) + + if errors.Is(err, proxy.ErrNoSuchServer) { + return "Server does not exist." + } else if errors.Is(err, proxy.ErrNewMediaPool) { + return "The new server belongs to a media pool that is not present on this client. Please reconnect to access it." + } + + return "Could not switch servers. Reconnect if you encounter any problems. Error: " + err.Error() } } } @@ -325,15 +350,19 @@ func init() { return "Telnet usage: server" } - if _, ok := proxy.Conf().Servers[args[0]]; !ok { - return "Server does not exist." - } - if cc.ServerName() == args[0] { return "Already connected to this server." } if err := cc.Hop(args[0]); err != nil { + cc.Log("<-", err) + + if errors.Is(err, proxy.ErrNoSuchServer) { + return "Server does not exist." + } else if errors.Is(err, proxy.ErrNewMediaPool) { + return "The new server belongs to a media pool that is not present on this client. Please reconnect to access it." + } + return "Could not switch servers. Reconnect if you encounter any problems. Error: " + err.Error() } -- cgit v1.2.3