From b68eda6c6654d25254602b2a33d65f9d06ca0f1f Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Fri, 1 Jul 2016 15:18:35 +1000 Subject: [PATCH] Add /ignore titles (thanks goodlyay) to ignore player titles and team names. --- Commands/Chat/CmdIgnore.cs | 21 ++++++++++++++------- Player/Player.Fields.cs | 2 +- Player/Player.cs | 30 ++++++++++++++++++------------ 3 files changed, 33 insertions(+), 20 deletions(-) diff --git a/Commands/Chat/CmdIgnore.cs b/Commands/Chat/CmdIgnore.cs index 7e3643fb9..acc3496c0 100644 --- a/Commands/Chat/CmdIgnore.cs +++ b/Commands/Chat/CmdIgnore.cs @@ -38,15 +38,20 @@ namespace MCGalaxy.Commands { if (action == "all") { p.ignoreAll = !p.ignoreAll; - Player.Message(p, p.ignoreAll ? "&cNow ignoring all chat" : "&aNo longer ignoring all chat"); + Player.Message(p, "{0} ignoring all chat", p.ignoreAll ? "&cNow " : "&aNo longer "); CreateIgnoreFile(p); return; } else if (action == "irc") { p.ignoreIRC = !p.ignoreIRC; - Player.Message(p, p.ignoreIRC ? "&cNow ignoring IRC chat" : "&aNo longer ignoring IRC chat"); + Player.Message(p, "{0} ignoring IRC chat", p.ignoreIRC ? "&cNow " : "&aNo longer "); CreateIgnoreFile(p); return; } else if (action == "global") { p.ignoreGlobal = !p.ignoreGlobal; - Player.Message(p, p.ignoreGlobal ? "&cNow ignoring Global Chat" : "&aNo longer ignoring Global Chat"); + Player.Message(p, "{0} ignoring global chat", p.ignoreGlobal ? "&cNow " : "&aNo longer "); + CreateIgnoreFile(p); return; + } else if (action == "titles") { + p.ignoreTitles = !p.ignoreTitles; + Player.Message(p, "{0} show before names in chat", + p.ignoreTitles ? "&cPlayer titles no longer" : "&aPlayer titles now"); CreateIgnoreFile(p); return; } else if (action == "list") { Player.Message(p, "&cCurrently ignoring the following players:"); @@ -55,6 +60,7 @@ namespace MCGalaxy.Commands { if (p.ignoreAll) Player.Message(p, "&cIgnoring all chat"); if (p.ignoreIRC) Player.Message(p, "&cIgnoring IRC chat"); if (p.ignoreGlobal) Player.Message(p, "&cIgnoring global chat"); + if (p.ignoreTitles) Player.Message(p, "&cPlayer titles do not show before names in chat."); return; } @@ -97,10 +103,11 @@ namespace MCGalaxy.Commands { public override void Help(Player p) { Player.Message(p, "%T/ignore [name]"); Player.Message(p, "%HUsing the same name again will unignore."); - Player.Message(p, "%H If name is \"all\", all chat is ignored."); - Player.Message(p, "%H If name is \"global\", MCGalaxy global chat is ignored."); - Player.Message(p, "%H If name is \"irc\", IRC chat is ignored."); - Player.Message(p, "%H Otherwise, all chat from the player with [name] is ignored."); + Player.Message(p, "%H If name is \"all\", all chat is ignored."); + Player.Message(p, "%H If name is \"global\", MCGalaxy global chat is ignored."); + Player.Message(p, "%H If name is \"irc\", IRC chat is ignored."); + Player.Message(p, "%H If name is \"titles\", player titles before names are ignored."); + Player.Message(p, "%HOtherwise, all chat from the player with [name] is ignored."); } } } diff --git a/Player/Player.Fields.cs b/Player/Player.Fields.cs index e0701d413..1e03ece94 100644 --- a/Player/Player.Fields.cs +++ b/Player/Player.Fields.cs @@ -135,7 +135,7 @@ namespace MCGalaxy { public bool onWhitelist = false; public bool whisper = false; public string whisperTo = ""; - public bool ignoreAll, ignoreGlobal, ignoreIRC; + public bool ignoreAll, ignoreGlobal, ignoreIRC, ignoreTitles; public string storedMessage = ""; diff --git a/Player/Player.cs b/Player/Player.cs index 1d8180db5..d76d6671a 100644 --- a/Player/Player.cs +++ b/Player/Player.cs @@ -156,26 +156,30 @@ namespace MCGalaxy { public static void SendChatFrom(Player from, string message) { SendChatFrom(from, message, true); } public static void SendChatFrom(Player from, string message, bool showname) { - if ( from == null ) return; // So we don't fucking derp the hell out! + if (from == null) return; // So we don't fucking derp the hell out! - if (Last50Chat.Count == 50) - Last50Chat.RemoveAt(0); + if (Last50Chat.Count == 50) Last50Chat.RemoveAt(0); var chatmessage = new ChatMessage(); chatmessage.text = message; chatmessage.username = from.color + from.name; chatmessage.time = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss"); - Last50Chat.Add(chatmessage); - if (showname) - message = from.voicestring + from.color + from.prefix + from.DisplayName + ": &f" + message; + + string messageLite = message; + if (showname) { + string prefix = from.group.prefix == "" ? "" : "&f" + from.group.prefix; + messageLite = from.voicestring + prefix + from.ColoredName + ": &f" + message; + message = from.voicestring + from.FullName + ": &f" + message; + } Player[] players = PlayerInfo.Online.Items; foreach (Player p in players) { if (p.level.worldChat && p.Chatroom == null) { if (from != null && p.listignored.Contains(from.name)) continue; - + + string msg = p.ignoreTitles ? messageLite : message; if (!p.ignoreAll || (from != null && from == p)) - Player.Message(p, message); + Player.Message(p, msg); } } } @@ -314,7 +318,7 @@ namespace MCGalaxy { Server.s.Log(name + " disconnected (" + discMsg + ")."); } else { totalKicked++; - SendChatFrom(this, "&c- " + color + prefix + DisplayName + " %Skicked (" + kickMsg + "%S).", false); + SendChatFrom(this, "&c- " + FullName + " %Skicked (" + kickMsg + "%S).", false); Server.s.Log(name + " kicked (" + kickMsg + ")."); } @@ -524,6 +528,7 @@ Next: continue; if (ignoreAll) w.WriteLine("&all"); if (ignoreGlobal) w.WriteLine("&global"); if (ignoreIRC) w.WriteLine("&irc"); + if (ignoreTitles) w.WriteLine("&titles"); foreach (string line in listignored) w.WriteLine(line); @@ -543,16 +548,17 @@ Next: continue; foreach (string line in lines) { if (line == "&global") ignoreGlobal = true; else if (line == "&all") ignoreAll = true; - else if (line == "&irc") ignoreIRC = true; + else if (line == "&irc") ignoreIRC = true; + else if (line == "&titles") ignoreTitles = true; else listignored.Add(line); } } catch (Exception ex) { Server.ErrorLog(ex); Server.s.Log("Failed to load ignore list for: " + name); } - if (ignoreAll || ignoreGlobal || ignoreIRC || listignored.Count > 0) { + + if (ignoreAll || ignoreGlobal || ignoreIRC || ignoreTitles || listignored.Count > 0) SendMessage("&cType &a/ignore list &cto see who you are still ignoring"); - } } internal void RemoveInvalidUndos() {