using System;
namespace MCDzienny
{
public class CmdSaveLocation : Command
{
public override string name { get { return "savelocation"; } }
public override string shortcut { get { return "sl"; } }
public override string type { get { return "other"; } }
public override bool museumUsable { get { return true; } }
public override LevelPermission defaultRank { get { return LevelPermission.Guest; } }
private string saveLocationMessage = "saveloc";
private string sendToLocationMessage = "sendloc";
public override void Help(Player p)
{
Player.SendMessage(p, "You cannot use this command manually.");
}
public override void Use(Player p, string message)
{
if (message == saveLocationMessage)
{
PlayerExtra pe = PlayerExtra.Find(p);
pe.oldPos = p.pos;
pe.oldRot = p.rot;
}
else if (message == sendToLocationMessage)
{
PlayerExtra pe = PlayerExtra.Find(p);
if (pe.oldPos != null && pe.oldRot != null)
{
unchecked
{
p.SendPos((byte)-1, pe.oldPos[0], pe.oldPos[1], pe.oldPos[2], pe.oldRot[0], pe.oldRot[1]);
}
}
}
else
{
Help(p);
}
}
}
}
using System;
using System.Collections.Generic;
namespace MCDzienny
{
public class CmdPlayerExtraPlugin
{
public override string name { get { return "playerextraplugin"; } }
public override string shortcut { get { return ""; } }
public override string type { get { return "mod"; } }
public override bool museumUsable { get { return true; } }
public override LevelPermission defaultRank { get { return LevelPermission.Nobody; } }
public override void Init()
{
Player.Joined += (object sender, PlayerEventArgs e) =>
{
PlayerExtra addPlayer = new PlayerExtra(e.Player);
};
}
public override void Help(Player p)
{
Player.SendMessage(p, "This is a plugin, the command does nothing.");
}
public override void Use(Player p, string message)
{
Help(p);
}
}
public partial class PlayerExtra
{
public static List<PlayerExtra> all = new List<PlayerExtra>();
public Player player;
public PlayerExtra(Player player)
{
this.player = player;
if (!all.Contains(this))
{
all.Add(this);
}
}
public static PlayerExtra Find(Player player)
{
PlayerExtra toReturn = null;
all.ForEach(delegate(PlayerExtra p)
{
if (p.player == player)
{
toReturn = p;
}
});
if (toReturn != null)
{
return toReturn;
}
if (player != null && !player.disconnected)
{
PlayerExtra newPlayer = new PlayerExtra(player);
return newPlayer;
}
return null;
}
}
public partial class PlayerExtra
{
public ushort[] oldPos;
public byte[] oldRot;
}
}
Users browsing this forum: No registered users and 2 guests