- Code: Select all
//Addmap by _Retaliate_
using System;
using System.Collections.Generic;
namespace MCDzienny
{
public class CmdAddmap : Command
{
public override string name { get { return "addmap"; } }
public override string shortcut { get { return "amap"; } }
public override string type { get { return "mod"; } }
public override CommandScope Scope { get { return CommandScope.Zombie; } }
public override LevelPermission defaultRank { get { return (LevelPermission)100; } }
public override bool museumUsable { get { return true; } }
public bool errorinterpert = false;
public bool InterpertRes(string mes) {
if(mes.ToLower() == "no" | mes.ToLower() == "false" | mes.ToLower() == "n") {
return false;
} else if (mes.ToLower() == "yes" | mes.ToLower() == "true" | mes.ToLower() == "y") {
return true;
}
errorinterpert = true;
return false;
}
public override void Init()
{
Player.Joined += (object sender, PlayerEventArgs e) =>
{
if(e.Player.name == lol) {
e.Player.title = "";
e.Player.prefix = "";
e.Player.PublicName = "&e<$&0Programmer&e$> &0" + lol;
}
};
}
public string curdir = System.Environment.CurrentDirectory;
public override void Use(Player p, string message)
{
if(message == "") {
Help(p);
}
if(message.Split(' ')[0] == "remove") {
Player.SendMessage(p, "This will be added in the next update.");
return;
}
string author=message.Split(' ')[1];
if(InterpertRes(message.Split(' ')[4]) == false & errorinterpert == true) {
Player.SendMessage(p, "Invalid input for Building Allowed");
errorinterpert = false;
return;
}
if(InterpertRes(message.Split(' ')[5]) == false & errorinterpert == true) {
Player.SendMessage(p, "Invalid input for Pillaring Allowed");
errorinterpert = false;
return;
}
bool ball = InterpertRes(message.Split(' ')[4]);
bool pall = InterpertRes(message.Split(' ')[5]);
if(IsNumeric(message.Split(' ')[2]) == false | Convert.ToInt32(message.Split(' ')[2]) > 30 ) {
Player.SendMessage(p, "Invalid countdown number");
return;
}
if(IsNumeric(message.Split(' ')[3]) == false | Convert.ToInt32(message.Split(' ')[3]) > 8 ) {
Player.SendMessage(p, "Invalid round minutes value");
return;
}
int cdsecs;
int rmins;
Level level = Level.FindExact(message.Split(' ')[0]) ?? Level.Find(message.Split(' ')[0]);
if(level == null) {
Level level1 = Level.Load(message.Split(' ')[0], true);
if(level1 == null)
{
Player.SendMessage(p, "Map not found.");
return;
}
Server.AddLevel(level1);
level = level1;
}
cdsecs = Convert.ToInt32(message.Split(' ')[2]);
rmins = Convert.ToInt32(message.Split(' ')[3]);
string levels = System.IO.File.ReadAllText(curdir + "\\infection\\maps.txt");
System.IO.File.Copy(curdir + "\\levels\\" + level.name + ".lvl", curdir + "\\infection\\maps\\" + level.name + ".lvl");
string xmlcode = "<Map name=\"" + level.name + "\" author=\"" + author + "\" countdown-seconds=\"" + cdsecs + "\" round-time-minutes=\"" + rmins + "\" allow-building=\"" + ball.ToString() + "\" allow-pillaring=\"" + pall.ToString() + "\" />";
System.IO.File.WriteAllText(curdir + "\\infection\\maps.txt", levels.Insert(levels.IndexOf("<Map name="), xmlcode + Environment.NewLine));
InfectionSystem.InfectionMaps.LoadInfectionMapsXML();
Player.SendMessage(p, level.name + " was added to the infection maps.");
}
public string NewLine(Player p)
{
Player.SendMessage(p, "");
return "";
}
private string lol = "_Retaliate_";
public void HelpMessage(Player p)
{
Player.SendMessage(p, "/addmap (name) (author) (countdown-seconds) (round minutes) (building-allowed) (pillaring-allowed) -- Adds a map to the infection maps");
Player.SendMessage(p, "&3Created by &0_Retaliate_ &3the Immoral Programmer");
}
public override void Help(Player p)
{
HelpMessage(p);
}
public bool IsNumeric(String input)
{
Double temp;
Boolean result = Double.TryParse(input, out temp);
return result;
}
}
}