- Code: Select all
namespace MCDzienny
{
using System;
public class CmdPTeleport : Command
{
public override string name { get { return "pteleport"; } }
public override string shortcut { get { return "p2p"; } }
public override string type { get { return "mod"; } }
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
public override bool museumUsable { get { return true; } }
public override void Help(Player p)
{
Player.SendMessage(p, "/pteleport <player1> [player2] - Teleports yourself to a player.");
Player.SendMessage(p, "If <player2> is blank, /spawn is used on <player1>");
}
public override void Use(Player p, string message)
{
if (message == "") { this.Help(p); }
else
{
string[] split = message.Split(' ');
Player player1 = Player.Find(split[0]);
if (player1 != null)
{
if (player1 != p)
{
int length = split.Length;
if (length > 1)
{
Player player2 = Player.Find(split[1]);
if (player2 != null)
{
if (player2 != p)
{
if (player1.level != player2.level)
{
if (player2.level.name.Contains("cMuseum"))
{
Player.SendMessage(p, "Player '" + player2.name + "' is in a museum!");
return;
}
Group pGroup = player1.group;
Group reqGroup = Group.findPerm(LevelPermission.Admin);
player1.group = reqGroup;
Command.all.Find("goto").Use(player1, player2.level.name);
player1.group = pGroup;
Player.SendMessage(p, "Sending " + player1.name + " to " + player2.level.name + "...");
}
while (player1.Loading)
{
}
if (player1.level == player2.level)
{
if (player2.Loading)
{
Player.SendMessage(p, string.Concat((string[])new string[] { "Waiting for ", player2.color, player2.name, Server.DefaultColor, " to finish loading..." }));
while (player2.Loading)
{
}
}
while (player1.Loading)
{
}
player1.SendPos(0xff, player2.pos[0], player2.pos[1], player2.pos[2], player2.rot[0], 0);
Player.SendMessage(p, "Successfully sent " + player1.name + " to " + player2.name);
Player.SendMessage(player1, "You were teleported to " + player2.name);
}
}
else
{
while (player1.Loading)
{
}
Group pGroup = player1.group;
Group reqGroup = Group.findPerm(LevelPermission.Admin);
player1.group = reqGroup;
Command.all.Find("spawn").Use(player1, "");
player1.group = pGroup;
Player.SendMessage(p, "Successfully spawned " + player1.name);
Player.SendMessage(player1, "You were teleported to the spawn");
}
}
else { Player.SendMessage(p, "You cannot use /pteleport on yourself"); }
}
else { Player.SendMessage(p, "There is no player named '" + split[1] + "'"); }
}
else { Player.SendMessage(p, "You cannot use /pteleport on yourself"); }
}
else { Player.SendMessage(p, "There is no player named '" + split[0] + "'"); }
}
}
}
}
p2p <player1> [player2] - This will send <player1> to [player2]
p2p <player1> - This will send <player1> to the spawn point of <player1>'s current map