/impersonate - chat as another player

Re: /impersonate - chat as another player

Postby crazyscouter » 18 Nov 2011, 23:49

Got errors for me i had to edit it to make it work, here is the edited version:

Code: Select all
using System;

namespace MCDzienny
{
        using System;
        public class CmdImpersonate : Command
        {
            public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
            public override void Help(Player p) { Player.SendMessage(p, "/impersonate <player> <message> - Sends a message as if it came from <player>"); }
            public override bool museumUsable { get { return true; } }
            public override string name { get { return "impersonate"; } }
            public override string shortcut { get { return "imp"; } }
            public override string type { get { return "other"; } }
            public void SendIt(Player p, string message, Player player)
            {
                if (message.Split(' ').Length > 1)
                {
                    if (player != null)
                    {
                        message = message.Substring(message.IndexOf(' ') + 1);
                        Player.GlobalMessage(player.color + player.voicestring + player.color + player.prefix + player.name + ": &f" + message);
                    }
                    else
                    {
                        string playerName = message.Split(' ')[0];
                        message = message.Substring(message.IndexOf(' ') + 1);
                        Player.GlobalMessage(playerName + ": &f" + message);
                    }
                }
                else { Player.SendMessage(p, "No message was given"); }
            }
            public override void Use(Player p, string message)
            {
                if ((message == "")) { this.Help(p); }
                else
                {
                    Player player = Player.Find(message.Split(' ')[0]);
                    if (player != null)
                    {
                        if (p == null) { this.SendIt(p, message, player); }
                        else
                        {
                            if (player == p) { this.SendIt(p, message, player); }
                            else
                            {
                                if (p.group.Permission > player.group.Permission) { this.SendIt(p, message, player); }
                                else { Player.SendMessage(p, "You cannot impersonate a player of equal or greater rank."); }
                            }
                        }
                    }
                    else
                    {
                        if (p != null)
                        {
                            if (p.group.Permission >= LevelPermission.Admin)
                            {
                                if (Group.findPlayerGroup(message.Split(' ')[0]).Permission < p.group.Permission) { this.SendIt(p, message, null); }
                                else { Player.SendMessage(p, "You cannot impersonate a player of equal or greater rank."); }
                            }
                            else { Player.SendMessage(p, "You are not allowed to impersonate offline players"); }
                        }
                        else { this.SendIt(p, message, null); }
                    }
                }
            }
        }
}
crazyscouter
 
Posts: 13
Joined: 18 Nov 2011, 21:06

Re: /impersonate - chat as another player

Postby Ultima » 21 Nov 2011, 14:15

zrguccione1 wrote:Is MCforge an add on to mcdzienny?


MCforge is base don McLawl, so is MCDzienny.
U can use commands from MCForge in MCDzienny
User avatar
Ultima
 
Posts: 953
Joined: 19 Aug 2011, 23:45

Re: /impersonate - chat as another player

Postby Ultima » 23 Nov 2011, 16:42

crazyscouter wrote:Got errors for me i had to edit it to make it work, here is the edited version:

Code: Select all
using System;

namespace MCDzienny
{
        using System;
        public class CmdImpersonate : Command
        {
            public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
            public override void Help(Player p) { Player.SendMessage(p, "/impersonate <player> <message> - Sends a message as if it came from <player>"); }
            public override bool museumUsable { get { return true; } }
            public override string name { get { return "impersonate"; } }
            public override string shortcut { get { return "imp"; } }
            public override string type { get { return "other"; } }
            public void SendIt(Player p, string message, Player player)
            {
                if (message.Split(' ').Length > 1)
                {
                    if (player != null)
                    {
                        message = message.Substring(message.IndexOf(' ') + 1);
                        Player.GlobalMessage(player.color + player.voicestring + player.color + player.prefix + player.name + ": &f" + message);
                    }
                    else
                    {
                        string playerName = message.Split(' ')[0];
                        message = message.Substring(message.IndexOf(' ') + 1);
                        Player.GlobalMessage(playerName + ": &f" + message);
                    }
                }
                else { Player.SendMessage(p, "No message was given"); }
            }
            public override void Use(Player p, string message)
            {
                if ((message == "")) { this.Help(p); }
                else
                {
                    Player player = Player.Find(message.Split(' ')[0]);
                    if (player != null)
                    {
                        if (p == null) { this.SendIt(p, message, player); }
                        else
                        {
                            if (player == p) { this.SendIt(p, message, player); }
                            else
                            {
                                if (p.group.Permission > player.group.Permission) { this.SendIt(p, message, player); }
                                else { Player.SendMessage(p, "You cannot impersonate a player of equal or greater rank."); }
                            }
                        }
                    }
                    else
                    {
                        if (p != null)
                        {
                            if (p.group.Permission >= LevelPermission.Admin)
                            {
                                if (Group.findPlayerGroup(message.Split(' ')[0]).Permission < p.group.Permission) { this.SendIt(p, message, null); }
                                else { Player.SendMessage(p, "You cannot impersonate a player of equal or greater rank."); }
                            }
                            else { Player.SendMessage(p, "You are not allowed to impersonate offline players"); }
                        }
                        else { this.SendIt(p, message, null); }
                    }
                }
            }
        }
}


Nice.
Possible to add lvl infront of the name?
User avatar
Ultima
 
Posts: 953
Joined: 19 Aug 2011, 23:45

Previous

Return to Custom Commands

Who is online

Users browsing this forum: No registered users and 5 guests