using System; using System.Collections; using Server; using Server.Gumps; using Knives.Utils; namespace Knives.Chat3 { public class IRC : Channel { public static void Initialize() { new IRC(); } public IRC() : base("IRC") { Commands.Add("irc"); Commands.Add("i"); DefaultC = 0x1FC; Register(this); } public override string NameFor(Mobile m) { return Data.IrcRoom; } public override bool CanChat(Mobile m, bool say) { if (IrcConnection.Connection == null || !IrcConnection.Connection.Connected) { if (say) m.SendMessage(Data.GetData(m).SystemC, General.Local(158)); return false; } return base.CanChat(m, say); } public void Broadcast(string name, string msg) { foreach (Data data in Data.Datas.Values) if (data.Channels.Contains(Name) && !data.IrcIgnores.Contains(name)) data.Mobile.SendMessage(data.ColorFor(this), msg); } protected override void Broadcast(Mobile m, string msg) { foreach (Data data in Data.Datas.Values) if (data.Channels.Contains(Name) && !data.Ignores.Contains(m)) data.Mobile.SendMessage(m.AccessLevel == AccessLevel.Player ? data.ColorFor(this) : Data.GetData(m).StaffC, String.Format("<{0}> {1}: {2}", NameFor(m), m.Name, msg)); IrcConnection.Connection.SendUserMessage(m, msg); } public override void GumpOptions(GumpPlus g, int x, int y) { int oldY = y; g.AddHtml(x, y + 10, 300, 21, HTML.White + "