/womchat

/womchat

Postby HETAL » 22 Jul 2013, 22:26

based from ismellike's adminchat and help from warren to fix compilation errors
Code: Select all
using System;
namespace MCDzienny
{
    public class CmdWomchat : Command
    {
        public override string name { get { return "womchat"; } }
        public override string shortcut { get { return "wchat"; } }
        public override string type { get { return "other"; } }
        public override bool museumUsable { get { return false; } }
        public override LevelPermission defaultRank { get { return LevelPermission.Banned; } }
        public override bool ConsoleAccess { get { return false; } }
        public override void Init()
        {
            Player.ChatOther += new EventHandler<ChatOtherEventArgs>(ChatOE);
            Player.Joined += new EventHandler<PlayerEventArgs>(PlayerJE);
            Player.PlayerChatEvent += AddStuff;
            Player.players.ForEach(delegate(Player pl)
            {
                AddVars(pl);
            });
        }
        void AddStuff(Player p, ref string message, ref bool stopIt)
        {
            if (message[0] == '^' || message[2] == '^') //take in mind color chat people :)
            {
                SendWom(p, null, message);
                stopIt = true;
            }
        }
        void SendWom(Player p, Player who, string message)
        {
            if (who == null)
            {
                message = message.Substring(message.IndexOf('^') + 1);
                Player.players.ForEach(delegate(Player pl)
                {
                    if (pl.IsUsingWom)
                        pl.SendMessage("%eTo Wom Users %f-" + p.color + p.PublicName + "%f- " + message);
                });
            }
            else
            {
                who.SendMessage("%eTo Wom Users %f-" + p.color + p.PublicName + "%f- " + message);
            }
        }
        string wom()
        {
            string builder = "Wom: ";
            Player.players.ForEach(delegate(Player pl)
            {
                    if (pl.IsUsingWom)
                    builder += pl.PublicName + ", ";
            });
            return builder;
        }
        public override void Use(Player p, string message)
        {
            switch (message)
            {
                case "wom":
                    Player.SendMessage(p, wom());
                    break;
                case "remove":
                    Player.ChatOther -= ChatOE;
                    Player.Joined -= PlayerJE;
                    Player.PlayerChatEvent -= AddStuff;
                    Player.SendMessage(p, "Events removed");
                    break;
                default:
                    p.ExtraData["wchat"] = !(bool)p.ExtraData["wchat"];
                    Player.SendMessage(p, "Wom chat has been set to " + p.ExtraData["wchat"].ToString() + ".");
                    break;
            }
        }
        public override void Help(Player p)
        {
            Player.SendMessage(p, "/%awomchat" + Server.DefaultColor + " -- turns admin chat on/off");
            Player.SendMessage(p, "Shortcut: /wchat or use ^ as first letter in message");
        }
        public void AddVars(Player p)
        {
            if (!p.ExtraData.ContainsKey("wchat"))
                p.ExtraData.Add("wchat", false);
        }
        public void PlayerJE(object sender, PlayerEventArgs e)
        {
            AddVars(e.Player);
        }
      public void ChatOE(object sender, ChatOtherEventArgs e)
      {
         if ((bool)e.From.ExtraData["wchat"] == true)
         {
            Player.players.ForEach(delegate(Player pl)
            {
               if (pl.IsUsingWom)
               {
                  string message = e.Message.Substring(e.Message.IndexOf(':') + 1);
                  SendWom(e.From, e.To, message);
               }
            });
            e.Handled = true;
         }
      }
    }
}
YOU HAVENT SEEN THE LAST OF ME ISMELLIKE
HETAL
 
Posts: 397
Joined: 24 May 2013, 12:10

Return to Custom Commands

Who is online

Users browsing this forum: No registered users and 2 guests

cron