Add /ignore titles (thanks goodlyay) to ignore player titles and team names.

This commit is contained in:
UnknownShadow200 2016-07-01 15:18:35 +10:00
parent 3cc4718397
commit b68eda6c66
3 changed files with 33 additions and 20 deletions

View File

@ -38,15 +38,20 @@ namespace MCGalaxy.Commands {
if (action == "all") { if (action == "all") {
p.ignoreAll = !p.ignoreAll; 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; CreateIgnoreFile(p); return;
} else if (action == "irc") { } else if (action == "irc") {
p.ignoreIRC = !p.ignoreIRC; 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; CreateIgnoreFile(p); return;
} else if (action == "global") { } else if (action == "global") {
p.ignoreGlobal = !p.ignoreGlobal; 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; CreateIgnoreFile(p); return;
} else if (action == "list") { } else if (action == "list") {
Player.Message(p, "&cCurrently ignoring the following players:"); 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.ignoreAll) Player.Message(p, "&cIgnoring all chat");
if (p.ignoreIRC) Player.Message(p, "&cIgnoring IRC chat"); if (p.ignoreIRC) Player.Message(p, "&cIgnoring IRC chat");
if (p.ignoreGlobal) Player.Message(p, "&cIgnoring global 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; return;
} }
@ -100,7 +106,8 @@ namespace MCGalaxy.Commands {
Player.Message(p, "%H If name is \"all\", all chat 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 \"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 \"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 \"titles\", player titles before names are ignored.");
Player.Message(p, "%HOtherwise, all chat from the player with [name] is ignored.");
} }
} }
} }

View File

@ -135,7 +135,7 @@ namespace MCGalaxy {
public bool onWhitelist = false; public bool onWhitelist = false;
public bool whisper = false; public bool whisper = false;
public string whisperTo = ""; public string whisperTo = "";
public bool ignoreAll, ignoreGlobal, ignoreIRC; public bool ignoreAll, ignoreGlobal, ignoreIRC, ignoreTitles;
public string storedMessage = ""; public string storedMessage = "";

View File

@ -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) { SendChatFrom(from, message, true); }
public static void SendChatFrom(Player from, string message, bool showname) { 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) if (Last50Chat.Count == 50) Last50Chat.RemoveAt(0);
Last50Chat.RemoveAt(0);
var chatmessage = new ChatMessage(); var chatmessage = new ChatMessage();
chatmessage.text = message; chatmessage.text = message;
chatmessage.username = from.color + from.name; chatmessage.username = from.color + from.name;
chatmessage.time = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss"); chatmessage.time = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss");
Last50Chat.Add(chatmessage); 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; Player[] players = PlayerInfo.Online.Items;
foreach (Player p in players) { foreach (Player p in players) {
if (p.level.worldChat && p.Chatroom == null) { if (p.level.worldChat && p.Chatroom == null) {
if (from != null && p.listignored.Contains(from.name)) continue; if (from != null && p.listignored.Contains(from.name)) continue;
string msg = p.ignoreTitles ? messageLite : message;
if (!p.ignoreAll || (from != null && from == p)) 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 + ")."); Server.s.Log(name + " disconnected (" + discMsg + ").");
} else { } else {
totalKicked++; 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 + ")."); Server.s.Log(name + " kicked (" + kickMsg + ").");
} }
@ -524,6 +528,7 @@ Next: continue;
if (ignoreAll) w.WriteLine("&all"); if (ignoreAll) w.WriteLine("&all");
if (ignoreGlobal) w.WriteLine("&global"); if (ignoreGlobal) w.WriteLine("&global");
if (ignoreIRC) w.WriteLine("&irc"); if (ignoreIRC) w.WriteLine("&irc");
if (ignoreTitles) w.WriteLine("&titles");
foreach (string line in listignored) foreach (string line in listignored)
w.WriteLine(line); w.WriteLine(line);
@ -544,16 +549,17 @@ Next: continue;
if (line == "&global") ignoreGlobal = true; if (line == "&global") ignoreGlobal = true;
else if (line == "&all") ignoreAll = 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); else listignored.Add(line);
} }
} catch (Exception ex) { } catch (Exception ex) {
Server.ErrorLog(ex); Server.ErrorLog(ex);
Server.s.Log("Failed to load ignore list for: " + name); 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"); SendMessage("&cType &a/ignore list &cto see who you are still ignoring");
} }
}
internal void RemoveInvalidUndos() { internal void RemoveInvalidUndos() {
UndoDrawOpEntry[] items = DrawOps.Items; UndoDrawOpEntry[] items = DrawOps.Items;