public static void MessageFrom(ChatScope scope, Player source, string msg, object arg, ChatMessageFilter filter, bool irc = false) { Player[] players = PlayerInfo.Online.Items; ChatMessageFilter scopeFilter = scopeFilters[(int)scope]; OnChatFromEvent.Call(scope, source, msg, arg, ref filter, irc); foreach (Player pl in players) { if (!scopeFilter(pl, arg)) { continue; } if (filter != null && !filter(pl, arg)) { continue; } if (Ignoring(pl, source)) { continue; } pl.Message(UnescapeMessage(pl, source, msg)); } }
void HandleChatSys(ChatScope scope, string msg, object arg, ref ChatMessageFilter filter, bool irc) { if (irc) { MessageToIRC(scope, msg, arg, filter); } }
void HandleChat(ChatScope scope, Player source, string msg, object arg, ref ChatMessageFilter filter, bool irc) { if (irc) { MessageToIRC(scope, Unescape(source, msg), arg, filter); } }
void HandleChatSys(ChatScope scope, string msg, object arg, ref ChatMessageFilter filter, bool relay) { if (relay) { MessageToRelay(scope, msg, arg, filter); } }
void HandleChatFrom(ChatScope scope, Player source, string msg, object arg, ref ChatMessageFilter filter, bool relay) { if (relay) { MessageToRelay(scope, Unescape(source, msg), arg, filter); } }
// Token: 0x06001944 RID: 6468 RVA: 0x000873A0 File Offset: 0x000855A0 public void SendPrivateChatMessage(int receiverCmid, string receiverName, string message) { message = ChatMessageFilter.Cleanup(message); if (!string.IsNullOrEmpty(message)) { Singleton <ChatManager> .Instance.AddNewPrivateMessage(receiverCmid, new InstantMessage(PlayerDataManager.Cmid, PlayerDataManager.Name, message, PlayerDataManager.AccessLevel, ChatContext.None)); base.Operations.SendChatMessageToPlayer(receiverCmid, message); } }
public static void Call(ChatScope scope, string msg, object arg, ref ChatMessageFilter filter, bool relay) { IEvent <OnChatSys>[] items = handlers.Items; for (int i = 0; i < items.Length; i++) { try { items[i].method(scope, msg, arg, ref filter, relay); } catch (Exception ex) { LogHandlerException(ex, items[i]); } } }
void OnChat(ChatScope scope, Player source, string msg, object arg, ref ChatMessageFilter filter, bool relay) { if (!relay) { return; } msg = PrepareMessage(msg); MessageToRelay(scope, Unescape(source, msg), arg, filter); }
void OnChatSys(ChatScope scope, string msg, object arg, ref ChatMessageFilter filter, bool relay) { if (!relay) { return; } msg = PrepareMessage(msg); MessageToRelay(scope, msg, arg, filter); }
// Token: 0x06001A9C RID: 6812 RVA: 0x0008B318 File Offset: 0x00089518 public bool SendChatMessage(string message, ChatContext context) { message = ChatMessageFilter.Cleanup(message); if (!string.IsNullOrEmpty(message) && !ChatMessageFilter.IsSpamming(message)) { GameStateHelper.OnChatMessage(PlayerDataManager.Cmid, PlayerDataManager.Name, message, PlayerDataManager.AccessLevel, (byte)ChatManager.CurrentChatContext); this.Actions.ChatMessage(message, (byte)ChatManager.CurrentChatContext); return(true); } return(false); }
public static void MessageChat(Player source, string msg, ChatMessageFilter filter = null, bool irc = false) { if (source.level.SeesServerWideChat) { MessageChat(ChatScope.Global, source, msg, null, filter, irc); } else { string prefix = Server.Config.ServerWideChat ? "<Local>" : ""; MessageChat(ChatScope.Level, source, prefix + msg, source.level, filter); } }
/// <summary> Sends a chat message from the given player (e.g. regular player chat or /me) </summary> /// <remarks> Chat messages will increase player's total messages sent in /info, /// and count towards triggering automute for chat spamming </remarks> /// <remarks> Only players not ignoring the given player will see this message. </remarks> public static void MessageChat(ChatScope scope, Player source, string msg, object arg, ChatMessageFilter filter, bool relay = false) { Player[] players = PlayerInfo.Online.Items; ChatMessageFilter scopeFilter = scopeFilters[(int)scope]; bool counted = false; // Filter out bad words if (Server.Config.ProfanityFiltering) { msg = ProfanityFilter.Parse(msg); } OnChatEvent.Call(scope, source, msg, arg, ref filter, relay); foreach (Player pl in players) { if (Ignoring(pl, source)) { continue; } // Always show message to self too (unless ignoring self) if (pl != source) { if (!scopeFilter(pl, arg)) { continue; } if (filter != null && !filter(pl, arg)) { continue; } if (!counted) { source.TotalMessagesSent++; counted = true; } } else { // don't send PM back to self if (scope == ChatScope.PM) { continue; } } pl.Message(UnescapeMessage(pl, source, msg)); } source.CheckForMessageSpam(); }
public static void MessageChat(Player source, string msg, ChatMessageFilter filter = null, bool relay = false) { // super players don't have a level if (source.level == null || source.level.SeesServerWideChat) { MessageChat(ChatScope.Global, source, msg, null, filter, relay); } else { string prefix = Server.Config.ServerWideChat ? "<Local>" : ""; MessageChat(ChatScope.Level, source, prefix + msg, source.level, filter); } }
// Token: 0x06001942 RID: 6466 RVA: 0x00087278 File Offset: 0x00085478 public void SendClanChatMessage(string message) { message = ChatMessageFilter.Cleanup(message); if (!string.IsNullOrEmpty(message)) { List <int> list = new List <int>(); foreach (CommUser commUser in Singleton <ChatManager> .Instance.ClanUsers) { if (commUser.Cmid != PlayerDataManager.Cmid) { list.Add(commUser.Cmid); } } this.OnClanChatMessage(PlayerDataManager.Cmid, PlayerDataManager.Name, message); base.Operations.SendChatMessageToClan(list, message); } }
void MessageToRelay(ChatScope scope, string msg, object arg, ChatMessageFilter filter) { ChatMessageFilter scopeFilter = Chat.scopeFilters[(int)scope]; fakeGuest.group = Group.DefaultRank; if (scopeFilter(fakeGuest, arg) && (filter == null || filter(fakeGuest, arg))) { SendPublicMessage(msg); return; } fakeStaff.group = GetControllerRank(); if (scopeFilter(fakeStaff, arg) && (filter == null || filter(fakeStaff, arg))) { SendStaffMessage(msg); } }
internal static void HandleOnChat(ChatScope scope, Player source, string msg, object arg, ref ChatMessageFilter filter, bool irc) { msg = msg.Replace("λFULL", source.name).Replace("λNICK", source.name); LogType logType = LogType.PlayerChat; if (scope == ChatScope.Perms) { logType = LogType.StaffChat; } else if (scope == ChatScope.Chatroom || scope == ChatScope.AllChatrooms) { logType = LogType.ChatroomChat; } else if (scope == ChatScope.Rank) { logType = LogType.RankChat; } if (scope != ChatScope.PM) { Logger.Log(logType, msg); } Player[] players = PlayerInfo.Online.Items; ChatMessageFilter scopeFilter = Chat.scopeFilters[(int)scope]; foreach (Player pl in players) { if (pl == source || Chat.Ignoring(pl, source)) { continue; } if (!scopeFilter(pl, arg)) { continue; } if (filter != null && !filter(pl, arg)) { continue; } source.TotalMessagesSent++; break; } }
public static void Message(ChatScope scope, string msg, object arg, ChatMessageFilter filter, bool relay = false) { Player[] players = PlayerInfo.Online.Items; ChatMessageFilter scopeFilter = scopeFilters[(int)scope]; OnChatSysEvent.Call(scope, msg, arg, ref filter, relay); foreach (Player pl in players) { if (!scopeFilter(pl, arg)) { continue; } if (filter != null && !filter(pl, arg)) { continue; } pl.Message(msg); } }
// Token: 0x06001943 RID: 6467 RVA: 0x00087320 File Offset: 0x00085520 public bool SendLobbyChatMessage(string message) { message = ChatMessageFilter.Cleanup(message); if (string.IsNullOrEmpty(message)) { return(false); } if (PlayerDataManager.AccessLevel >= MemberAccessLevel.Moderator && message[0] == '/' && this.DoModChatCmd(message)) { GUI.FocusControl("@CurrentChatMessage"); return(true); } if (ChatMessageFilter.IsSpamming(message)) { return(false); } this.OnLobbyChatMessage(PlayerDataManager.Cmid, PlayerDataManager.Name, message); base.Operations.SendChatMessageToAll(message); return(true); }
void MessageToIRC(ChatScope scope, string msg, object arg, ChatMessageFilter filter) { ChatMessageFilter scopeFilter = Chat.scopeFilters[(int)scope]; if (scopeFilter(ircDefault, arg) && (filter == null || filter(ircDefault, arg))) { bot.Say(msg, false); } else { ircOp.group = Group.Find(Server.Config.IRCControllerRank); if (ircOp.group == null) { ircOp.group = Group.NobodyRank; } if (scopeFilter(ircOp, arg) && (filter == null || filter(ircOp, arg))) { bot.Say(msg, true); } } }
public static void MessageChat(ChatScope scope, Player source, string msg, object arg, ChatMessageFilter filter, bool irc = false) { Player[] players = PlayerInfo.Online.Items; ChatMessageFilter scopeFilter = scopeFilters[(int)scope]; OnChatEvent.Call(scope, source, msg, arg, ref filter, irc); foreach (Player pl in players) { if (Ignoring(pl, source)) { continue; } // Always show message to self too (unless ignoring self) if (pl != source) { if (!scopeFilter(pl, arg)) { continue; } if (filter != null && !filter(pl, arg)) { continue; } } else { // don't send PM back to self if (scope == ChatScope.PM) { continue; } } pl.Message(UnescapeMessage(pl, source, msg)); } source.CheckForMessageSpam(); }
internal static void HandleOnChat(ChatScope scope, Player source, string msg, object arg, ref ChatMessageFilter filter, bool irc) { msg = msg.Replace("λFULL", source.name).Replace("λNICK", source.name); LogType logType = LogType.PlayerChat; if (scope == ChatScope.Perms) { logType = LogType.StaffChat; } else if (scope == ChatScope.Chatroom || scope == ChatScope.AllChatrooms) { logType = LogType.ChatroomChat; } else if (scope == ChatScope.Rank) { logType = LogType.RankChat; } if (scope != ChatScope.PM) { Logger.Log(logType, msg); } }