Skip to content
This repository has been archived by the owner on Aug 17, 2020. It is now read-only.

Commit

Permalink
[Unstable] Dual heartbeat and /spy
Browse files Browse the repository at this point in the history
  • Loading branch information
J-Wass committed Jun 27, 2014
1 parent ad493b5 commit 3477473
Show file tree
Hide file tree
Showing 23 changed files with 359 additions and 256 deletions.
2 changes: 1 addition & 1 deletion AutoRank/AutoRank.cs
Expand Up @@ -45,7 +45,7 @@ public AutoRank()

private void AutoRank_Load(object sender, EventArgs e)
{
if (!File.Exists("ref/config.xml"))
if (!File.Exists("config.xml"))
{
MessageBox.Show("Warning, config.xml not found. Closing Autorank program.");
this.Close();
Expand Down
14 changes: 7 additions & 7 deletions AutoRank/Settings.cs
Expand Up @@ -41,15 +41,15 @@ public static class Settings
//Save TreeList data to xml
public static void Save()
{
if (File.Exists("ref/Autorank.xml"))
if (File.Exists("Autorank.xml"))
{
File.Delete("ref/Autorank.xml");
File.Delete("Autorank.xml");
}

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;

XmlWriter writer = XmlWriter.Create("ref/Autorank.xml", settings);
XmlWriter writer = XmlWriter.Create("Autorank.xml", settings);
writer.WriteStartDocument();
writer.WriteComment("This file was generated by the LegendCraft Autorank program.");

Expand Down Expand Up @@ -110,12 +110,12 @@ public static void Load()
bool layered = false;
//since Load() is more complicated than Save(), i'll use XDocument instead of XMLReader

if (!File.Exists("ref/Autorank.xml"))
if (!File.Exists("Autorank.xml"))
{
MessageBox.Show("Autorank.xml not found, using defaults. Ignore this message if this is your first time running autorank.");
return;
}
XDocument doc = XDocument.Load("ref/Autorank.xml");
XDocument doc = XDocument.Load("Autorank.xml");
XElement docConfig = doc.Root;

//load each rank change
Expand Down Expand Up @@ -146,12 +146,12 @@ public static void Load()
/// </summary>
public static void LoadRankList()
{
if (!File.Exists("ref/config.xml"))
if (!File.Exists("config.xml"))
{
MessageBox.Show("Error, config.xml is either missing or damaged. Please make sure configGUI.exe was run prior to autorank. Program will now close.");
Application.Exit();
}
XDocument doc = XDocument.Load("ref/config.xml");
XDocument doc = XDocument.Load("config.xml");
XElement docConfig = doc.Root;
XElement rankList = docConfig.Element("Ranks");
XElement[] rankDefinitionList = rankList.Elements("Rank").ToArray();
Expand Down
4 changes: 2 additions & 2 deletions HeartBeat/HeartbeatSaver.cs
Expand Up @@ -23,8 +23,8 @@ static class HeartbeatSaver

static readonly RequestCachePolicy CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.BypassCache);

const string UrlFileName = "ref/externalurl.txt",
DefaultDataFileName = "ref/heartbeatdata.txt",
const string UrlFileName = "externalurl.txt",
DefaultDataFileName = "heartbeatdata.txt",
UserAgent = "fCraft HeartbeatSaver";

static string heartbeatDataFileName;
Expand Down
6 changes: 0 additions & 6 deletions ToDo.txt
@@ -1,6 +0,0 @@
LegendCraft v2.4.0 Roadmap
[]Finish adding in all CPE optionals
[]Work on bots
[]Capture the Flag
[x]Seduce Women, Obtain Currency
[]More to come
4 changes: 2 additions & 2 deletions fCraft/Commands/BuildingCommands.cs
Expand Up @@ -291,7 +291,7 @@ static void HighlightHandler(Player player, Command cmd)
if (worldTarget == "all")
{
player.Message("_Removing all highlights {0}_", ConfigKey.ServerName.GetString());
foreach (Player p in Server.Players.Where(p => p.ClassiCube))
foreach (Player p in Server.Players.Where(p => p.CPE))
{
//physically remove all highlights where players are connected to specific worlds
if (p.World.Highlights.Count > 0)
Expand Down Expand Up @@ -325,7 +325,7 @@ static void HighlightHandler(Player player, Command cmd)
}

player.Message("_Removing all highlights on {0}_", targetWorld.Name);
foreach (Player p in targetWorld.Players.Where(p => p.ClassiCube))
foreach (Player p in targetWorld.Players.Where(p => p.CPE))
{
foreach (var i in targetWorld.Highlights.Values)
{
Expand Down
21 changes: 0 additions & 21 deletions fCraft/Commands/ChatCommands.cs
Expand Up @@ -45,7 +45,6 @@ public static void Init()
//CommandManager.RegisterCommand(CdJelly);
CommandManager.RegisterCommand(CdMad);
CommandManager.RegisterCommand(CdBanHammer);
CommandManager.RegisterCommand(CdCredits);
CommandManager.RegisterCommand(CdSTFU);
CommandManager.RegisterCommand(CdFortuneCookie);
CommandManager.RegisterCommand(CdCalculator);
Expand Down Expand Up @@ -717,26 +716,6 @@ static void STFUHandler(Player player, Command cmd)
}
}



static readonly CommandDescriptor CdCredits = new CommandDescriptor
{
Name = "Credits",
Aliases = new string[] { "credit" },
Category = CommandCategory.Chat,
Permissions = new[] { Permission.Chat },
IsConsoleSafe = true,
Usage = "/credits",
Help = "&8Displays the credits of LegendCraft",
NotRepeatable = true,
Handler = CreditsHandler,
};


public static void CreditsHandler(Player player, Command cmd)
{
player.Message(" LegendCraft was developed by LeChosenOne, DingusBungus and Eeyle. LegendCraft was based off of 800Craft developed by Jonty800, GlennMR, and Lao Tszy. 800Craft was based off of fCraft developed by fragmer. Thanks to everyone who contributed to these softwares. And thank you for using LegendCraft!");
}
static readonly CommandDescriptor CdBanHammer = new CommandDescriptor
{
Name = "BanHammer",
Expand Down
5 changes: 0 additions & 5 deletions fCraft/Commands/FunCommands.cs
Expand Up @@ -153,11 +153,6 @@ public static void PlayerMoved(object sender, fCraft.Events.PlayerMovingEventArg

static void BotHandler(Player player, Command cmd)
{
if (!player.ClassiCube || !Heartbeat.ClassiCube())
{
player.Message("Bots can only be used on ClassiCube servers and clients!");
return;
}
string option = cmd.Next(); //take in the option arg
if (string.IsNullOrEmpty(option)) //empty? return, otherwise continue
{
Expand Down
6 changes: 1 addition & 5 deletions fCraft/Commands/InfoCommands.cs
Expand Up @@ -282,14 +282,10 @@ internal static void AboutHandler(Player player, Command cmd)
break;
}
case "server":
{
ServerInfoHandler(player, new Command("/sinfo"));
break;
}
case "software":
case "version":
{
ChatCommands.CreditsHandler(player, new Command("/credits"));
ServerInfoHandler(player, new Command("/sinfo"));
break;
}
case "rank":
Expand Down
60 changes: 53 additions & 7 deletions fCraft/Commands/ModerationCommands.cs
Expand Up @@ -3,9 +3,9 @@
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.IO;
using fCraft.Events;
using JetBrains.Annotations;
using System.IO;

namespace fCraft {
/// <summary>
Expand Down Expand Up @@ -86,6 +86,7 @@ static class ModerationCommands {
CommandManager.RegisterCommand(CdForceHold);
CommandManager.RegisterCommand(CdGetBlock);
//CommandManager.RegisterCommand(CdTPA);
CommandManager.RegisterCommand(CdSpy);

}
#region LegendCraft
Expand All @@ -108,6 +109,46 @@ static class ModerationCommands {
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.*/


static readonly CommandDescriptor CdSpy = new CommandDescriptor
{
Name = "Spy",
Aliases = new[] { "NSA" },
IsConsoleSafe = true,
Category = CommandCategory.Moderation,
Permissions = new[] { Permission.Spectate },
Help = "&SReturns all commands and PMs for a player. Use /spy [player] to toggle spying.",
Usage = "&S/Spy [player]",
Handler = SpyHandler
};

private static void SpyHandler(Player player, Command cmd)
{
string p = cmd.Next();
if (String.IsNullOrEmpty(p))
{
player.Message("Usage is /spy [player]! Use /spy [player] to toggle spying.");
return;
}

Player pPlayer = Server.FindPlayerOrPrintMatches(player, p, true, true);
if (pPlayer == null)
{
// no one found
return;
}

if (pPlayer.Spies.Contains(player))
{
player.Message("You are no longer spying on {0}!", p);
pPlayer.Spies.Remove(player);
}
else
{
player.Message("Now spying on {0}! Use /spy {0} to stop spying on them.", p);
pPlayer.Spies.Add(player);
}
}
static readonly CommandDescriptor CdGetBlock = new CommandDescriptor
{
Name = "GetBlock",
Expand All @@ -134,7 +175,7 @@ private static void GetBlockHandler(Player player, Command cmd)
return;
}

if (!targetPlayer.ClassiCube)
if (!targetPlayer.CPE)
{
player.Message("You can only use /GetBlock on ClassiCube players!");
}
Expand All @@ -155,7 +196,7 @@ private static void GetBlockHandler(Player player, Command cmd)

private static void FHHandler(Player player, Command cmd)
{
if (!Heartbeat.ClassiCube() || !player.ClassiCube)
if (!Heartbeat.ClassiCube() || !player.CPE)
{
player.Message("This is a ClassiCube only command!");
return;
Expand All @@ -173,7 +214,7 @@ private static void FHHandler(Player player, Command cmd)
return;
}

if (!p.ClassiCube)
if (!p.CPE)
{
player.Message("You can only use /ForceHold on ClassiCube players!");
}
Expand Down Expand Up @@ -215,7 +256,7 @@ private static void FHHandler(Player player, Command cmd)

private static void AnnounceHandler(Player player, Command cmd)
{
if (!Heartbeat.ClassiCube() || !player.ClassiCube)
if (!Heartbeat.ClassiCube() || !player.CPE)
{
player.Message("This is a ClassiCube only command!");
return;
Expand Down Expand Up @@ -262,7 +303,7 @@ private static void AnnounceHandler(Player player, Command cmd)
Packet packet = PacketWriter.MakeSpecialMessage(100, message);
foreach (Player p in targetPlayers)
{
if (p.ClassiCube)
if (p.CPE)
{
p.Send(packet);
}
Expand Down Expand Up @@ -389,6 +430,11 @@ private static void AutoRankHandler(Player player, Command cmd)

private static void SetClickHandler(Player player, Command cmd)
{
if (!Heartbeat.ClassiCube())
{
player.Message("This command can only be used on ClassiCube server!");
return;
}
string targetName = cmd.Next();
if (String.IsNullOrEmpty(targetName))
{
Expand All @@ -401,7 +447,7 @@ private static void SetClickHandler(Player player, Command cmd)
player.MessageNoPlayer(targetName);
return;
}
if (!target.ClassiCube)
if (!target.CPE)
{
player.Message("You can only use /SetClickDistance on ClassiCube players!");
}
Expand Down
22 changes: 11 additions & 11 deletions fCraft/Commands/WorldCommands.cs
Expand Up @@ -372,7 +372,7 @@ static void MEditHandler(Player player, Command cmd)
//Packet appearence = PacketWriter.MakeEnvSetMapAppearance("", world.sideBlock, world.edgeBlock, world.sideLevel); update once supported
Packet weather = PacketWriter.MakeEnvWeatherAppearance((byte)world.WeatherCC);

foreach (Player p in world.Players.Where(p => p.ClassiCube))
foreach (Player p in world.Players.Where(p => p.CPE))
{
p.Send(sky);
p.Send(cloud);
Expand Down Expand Up @@ -551,7 +551,7 @@ static void MEditHandler(Player player, Command cmd)
world.CloudColorCC = "#ffffff";

Packet cloudPacketNormal = PacketWriter.MakeEnvSetColor((byte)1, (world.CloudColorCC));
foreach (Player p in world.Players.Where(p => p.ClassiCube))
foreach (Player p in world.Players.Where(p => p.CPE))
{
p.Send(cloudPacketNormal);
}
Expand All @@ -571,7 +571,7 @@ static void MEditHandler(Player player, Command cmd)
world.CloudColorCC = setting;
player.Message("The map texture has been edited.");
Packet cloudPacket = PacketWriter.MakeEnvSetColor((byte)1, world.CloudColorCC);
foreach (Player p in world.Players.Where(p => p.ClassiCube))
foreach (Player p in world.Players.Where(p => p.CPE))
{
p.Send(cloudPacket);
}
Expand All @@ -589,7 +589,7 @@ static void MEditHandler(Player player, Command cmd)
world.FogColorCC = "#ffffff";

Packet fogPacketNormal = PacketWriter.MakeEnvSetColor((byte)2, world.FogColorCC.Replace("#", ""));
foreach (Player p in world.Players.Where(p => p.ClassiCube))
foreach (Player p in world.Players.Where(p => p.CPE))
{
p.Send(fogPacketNormal);
}
Expand All @@ -609,7 +609,7 @@ static void MEditHandler(Player player, Command cmd)
world.FogColorCC = setting;
player.Message("The map texture has been edited.");
Packet fogPacket = PacketWriter.MakeEnvSetColor((byte)2, world.FogColorCC);
foreach (Player p in world.Players.Where(p => p.ClassiCube))
foreach (Player p in world.Players.Where(p => p.CPE))
{
p.Send(fogPacket);
}
Expand All @@ -627,7 +627,7 @@ static void MEditHandler(Player player, Command cmd)
world.SkyColorCC = "#99CCFF";

Packet skyPacketNormal = PacketWriter.MakeEnvSetColor((byte)0, world.SkyColorCC);
foreach (Player p in world.Players.Where(p => p.ClassiCube))
foreach (Player p in world.Players.Where(p => p.CPE))
{
p.Send(skyPacketNormal);
}
Expand All @@ -648,7 +648,7 @@ static void MEditHandler(Player player, Command cmd)
world.SkyColorCC = setting;
player.Message("The map texture has been edited.");
Packet skyPacket = PacketWriter.MakeEnvSetColor((byte)0, world.SkyColorCC);
foreach (Player p in world.Players.Where(p => p.ClassiCube))
foreach (Player p in world.Players.Where(p => p.CPE))
{
p.Send(skyPacket);
}
Expand All @@ -670,7 +670,7 @@ static void MEditHandler(Player player, Command cmd)
world.WeatherCC = 0;

Packet weatherPacketNormal = PacketWriter.MakeEnvWeatherAppearance((byte)world.WeatherCC);
foreach (Player p in world.Players.Where(p => p.ClassiCube))
foreach (Player p in world.Players.Where(p => p.CPE))
{
p.Send(weatherPacketNormal);
}
Expand All @@ -682,7 +682,7 @@ static void MEditHandler(Player player, Command cmd)
world.WeatherCC = 1;

Packet weatherPacketRain = PacketWriter.MakeEnvWeatherAppearance((byte)world.WeatherCC);
foreach (Player p in world.Players.Where(p => p.ClassiCube))
foreach (Player p in world.Players.Where(p => p.CPE))
{
p.Send(weatherPacketRain);
}
Expand All @@ -695,7 +695,7 @@ static void MEditHandler(Player player, Command cmd)
world.WeatherCC = 2;

Packet weatherPacketSnow = PacketWriter.MakeEnvWeatherAppearance((byte)world.WeatherCC);
foreach (Player p in world.Players.Where(p => p.ClassiCube))
foreach (Player p in world.Players.Where(p => p.CPE))
{
p.Send(weatherPacketSnow);
}
Expand Down Expand Up @@ -2685,7 +2685,7 @@ static void BlockInfoSchedulerCallback(SchedulerTask task)

static void EnvHandler(Player player, Command cmd)
{
if (Heartbeat.ClassiCube() || player.ClassiCube)
if (Heartbeat.ClassiCube() || player.CPE)
{
player.Message("/Env is a Minecraft.net only command.");//add reference /mapedit here once it works.
return;
Expand Down

0 comments on commit 3477473

Please sign in to comment.