From 979b9b47633366efdbc3fa48ed8208c6196b4bba Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Thu, 1 Sep 2016 22:48:12 +1000 Subject: [PATCH] Replace custom chat tokens on IRC. (Thanks Joseph) --- Chat/ChatTokens.cs | 9 +++++++++ Network/IRCBot.cs | 15 +++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Chat/ChatTokens.cs b/Chat/ChatTokens.cs index 90c547a5c..4ffdb7f2a 100644 --- a/Chat/ChatTokens.cs +++ b/Chat/ChatTokens.cs @@ -45,6 +45,15 @@ namespace MCGalaxy { sb.Replace(token.Key, token.Value); } + public static string ApplyCustom(string text) { + if (CustomTokens.Count == 0) return text; + StringBuilder sb = new StringBuilder(text); + foreach (var token in CustomTokens) + sb.Replace(token.Key, token.Value); + return sb.ToString(); + } + + internal static Dictionary standardTokens = new Dictionary { { "$name", p => p.DisplayName == null ? null : (Server.dollarNames ? "$" : "") + Colors.StripColors(p.DisplayName) }, diff --git a/Network/IRCBot.cs b/Network/IRCBot.cs index 0e57d65f2..b24d58b71 100644 --- a/Network/IRCBot.cs +++ b/Network/IRCBot.cs @@ -108,6 +108,7 @@ namespace MCGalaxy { message = "."; message = EmotesHandler.Replace(message); message = FullCP437Handler.Replace(message); + message = ChatTokens.ApplyCustom(message); message = CP437Writer.ConvertToUnicode(message); if (color) @@ -174,21 +175,15 @@ namespace MCGalaxy { } void Player_PlayerDisconnect(Player p, string reason) { - if (!Server.irc ||!IsConnected()) return; + if (!Server.irc ||!IsConnected() || p.hidden) return; if (!Server.guestLeaveNotify && p.Rank <= LevelPermission.Guest) return; - - string msg = p.DisplayName + " %Sleft the game (" + reason + ")"; - msg = ConvertMessage(msg, true); - if (!p.hidden) connection.Sender.PublicMessage(channel, msg); + Say(p.DisplayName + " %Sjoined the game (" + reason + "%S)", false); } void Player_PlayerConnect(Player p) { - if (!Server.irc ||!IsConnected()) return; + if (!Server.irc ||!IsConnected() || p.hidden) return; if (!Server.guestJoinNotify && p.Rank <= LevelPermission.Guest) return; - - string msg = p.DisplayName + " %Sjoined the game"; - msg = ConvertMessage(msg, true); - if (!p.hidden) connection.Sender.PublicMessage(channel, msg); + Say(p.DisplayName + " %Sjoined the game", false); } void Player_PlayerChat(Player p, string message) {