protected virtual void Broadcast(Mobile m, string msg) { foreach (Data data in Data.Datas.Values) { if (c_Mobiles.Contains(data.Mobile) && !data.Ignores.Contains(m)) { if (c_Style == ChatStyle.Regional && data.Mobile.Region != m.Region) { continue; } data.Mobile.SendMessage(m.AccessLevel == AccessLevel.Player ? ColorFor(data.Mobile) : Data.GetData(m).StaffC, String.Format("<{0}{1}> {2}: {3}", NameFor(m), (c_Style == ChatStyle.Regional && m.Region != null ? "-" + m.Region.Name : ""), m.Name, msg)); } else if (data.Mobile.AccessLevel >= m.AccessLevel && ((data.GlobalC && !data.GIgnores.Contains(m)) || data.GListens.Contains(m))) { data.Mobile.SendMessage(data.GlobalCC, String.Format("(Global) <{0}{1}> {2}: {3}", c_Name, (c_Style == ChatStyle.Regional && m.Region != null ? "-" + m.Region.Name : ""), m.Name, msg)); } } }
private static void OnLogin(LoginEventArgs args) { if (Data.GetData(args.Mobile).NewMsg()) { PmNotify(args.Mobile); } if (!Data.GetData(args.Mobile).WhenFull) { args.Mobile.SendMessage(Data.GetData(args.Mobile).SystemC, General.Local(258), Data.GetData(args.Mobile).Messages.Count, Data.MaxMsgs); } foreach (Data data in Data.Datas.Values) { if (data.Friends.Contains(args.Mobile) && data.FriendAlert) { data.Mobile.SendMessage(data.SystemC, args.Mobile.RawName + " " + Local(173)); } } }
public virtual void OnChat(Mobile m, string msg, bool spam) { if (msg == null || msg == "") { if (!CanChat(m, false)) { General.List(m, 0); return; } if (c_Mobiles.Contains(m)) { Data.GetData(m).CurrentChannel = this; } General.List(m, 1); return; } if (!CanChat(m, true)) { return; } if (c_Filter) { msg = Chat3.Filter.FilterText(m, msg); } if (!CanChat(m, false)) { return; } if (!c_Mobiles.Contains(m)) { m.SendMessage(Data.GetData(m).SystemC, General.Local(34)); return; } if (c_Delay && !TrackSpam.LogSpam(m, "Chat", TimeSpan.FromSeconds(Data.ChatSpam))) { if (spam) { m.SendMessage(Data.GetData(m).SystemC, General.Local(97)); } Timer.DelayCall(TimeSpan.FromSeconds(4), new TimerStateCallback(OnChat), new object[] { m, msg }); return; } AddHistory(m, msg); UpdateHistory(m); Events.InvokeChat(new ChatEventArgs(m, this, msg)); if (Data.LogChat) { Logging.LogChat(String.Format(DateTime.Now + " <{0}{1}> {2}: {3}", c_Name, (c_Style == ChatStyle.Regional && m.Region != null ? "-" + m.Region.Name : ""), m.Name, msg)); } Data.TotalChats++; Data.GetData(m).Karma++; Broadcast(m, msg); if (c_ToIrc && IrcConnection.Connection.Connected) { IrcConnection.Connection.SendUserMessage(m, "(" + c_Name + ") " + msg); } }