internal class SpawnOnCommand : Command {
public SpawnOnCommand()
: base("spawnon", 6)
{
}
protected override bool Process(Player player, RealmTime time, string[] args)
{
if (string.IsNullOrEmpty(args[0]))
{
player.SendHelp("Usage: /spawnon <Player> <Int> <Entity>");
return false;
}
foreach (Client i in player.Manager.Clients.Values)
{
if (i.Account.Name.EqualsIgnoreCase(args[0]))
{
int num;
if (args[1].Length > 0 && int.TryParse(args[1], out num)) //multi
{
string name = string.Join(" ", args.Skip(2).ToArray());
ushort objType;
Dictionary<string, ushort> icdatas = new Dictionary<string, ushort>(
player.Manager.GameData.IdToObjectType,
StringComparer.OrdinalIgnoreCase);
if (!icdatas.TryGetValue(name, out objType) ||
!player.Manager.GameData.ObjectDescs.ContainsKey(objType))
{
player.SendInfo("Unknown entity!");
return false;
}
else
{
for (int u = 0; u < num; u++)
{
Entity entity = Entity.Resolve(player.Manager, objType);
entity.Move(i.Player.X, i.Player.Y);
i.Player.Owner.EnterWorld(entity);
}
player.SendInfo("Sent " + i.Player.Name + " " + string.Join(" ", args.Skip(1).ToArray()) + "'s");
return true;
}
}
}
else
{
if (i.Account.Name.EqualsIgnoreCase(args[0]))
{
{
string name = string.Join(" ", args.Skip(1).ToArray());
ushort objType;
Dictionary<string, ushort> icdatas = new Dictionary<string, ushort>(
player.Manager.GameData.IdToObjectType,
StringComparer.OrdinalIgnoreCase);
if (!icdatas.TryGetValue(name, out objType) ||
!player.Manager.GameData.ObjectDescs.ContainsKey(objType))
{ }
Entity entity = Entity.Resolve(player.Manager, objType);
entity.Move(i.Player.X, i.Player.Y);
i.Player.Owner.EnterWorld(entity);
}
player.SendInfo("Sent " + i.Player.Name + " " + string.Join(" ", args.Skip(1).ToArray()));
return true;
}
}
}
return false;
}
}