Cleanup /copylvl and /repeat.

This commit is contained in:
UnknownShadow200 2016-02-15 15:41:34 +11:00
parent 7f9ef3a0b3
commit a559823de3
10 changed files with 94 additions and 119 deletions

View File

@ -26,7 +26,6 @@ namespace MCGalaxy.Commands {
public override string type { get { return CommandTypes.World; } } public override string type { get { return CommandTypes.World; } }
public override bool museumUsable { get { return false; } } public override bool museumUsable { get { return false; } }
public override LevelPermission defaultRank { get { return LevelPermission.Admin; } } public override LevelPermission defaultRank { get { return LevelPermission.Admin; } }
public CmdClearBlockChanges() { }
public override void Use(Player p, string message) { public override void Use(Player p, string message) {
if (p == null && message == "") { if (p == null && message == "") {

View File

@ -19,67 +19,51 @@
*/ */
using System; using System;
using System.IO; using System.IO;
namespace MCGalaxy.Commands
{ namespace MCGalaxy.Commands {
public class CmdCopyLVL : Command
{ public class CmdCopyLVL : Command {
public override string name { get { return "copylvl"; } } public override string name { get { return "copylvl"; } }
public override string shortcut { get { return ""; } } public override string shortcut { get { return ""; } }
public override string type { get { return CommandTypes.World; } } public override string type { get { return CommandTypes.World; } }
public override bool museumUsable { get { return true; } } public override bool museumUsable { get { return true; } }
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } } public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
public CmdCopyLVL() { }
public override void Use(Player p, string message) public override void Use(Player p, string message) {
{ if (message == "") { Help(p); return; }
string msg1 = String.Empty; string[] args = message.ToLower().Split(' ');
string msg2 = String.Empty; if (args.Length < 2) {
try Player.SendMessage(p, "You did not specify the destination level name."); return;
{
msg1 = message.Split(' ')[0];
msg2 = message.Split(' ')[1];
} }
catch { }
if (!p.group.CanExecute(Command.all.Find("newlvl"))) string src = args[0], dst = args[1];
{ if (!p.group.CanExecute(Command.all.Find("newlvl"))) {
Player.SendMessage(p, "You cannot use this command, unless you can use /newlvl!"); Player.SendMessage(p, "You cannot use /copylvl as you cannot use /newlvl."); return;
return;
}
int number = message.Split(' ').Length;
if (message == "")
{
Help(p);
return;
}
if (number < 2)
{
Player.SendMessage(p, "You did not specify the level it would be copied to as!");
return;
} }
if (!Player.ValidName(src)) { Player.SendMessage(p, "\"" + src + "\" is not a valid level name."); return; }
if (!Player.ValidName(dst)) { Player.SendMessage(p, "\"" + dst + "\" is not a valid level name."); return; }
if (!LevelInfo.ExistsOffline(src)) { Player.SendMessage(p, "The level \"" + src + "\" does not exist."); return; }
if (LevelInfo.ExistsOffline(dst)) { Player.SendMessage(p, "The level \"" + dst + "\" already exists."); return; }
try { try {
File.Copy("levels/" + msg1 + ".lvl", "levels/" + msg2 + ".lvl"); File.Copy("levels/" + src + ".lvl", "levels/" + dst + ".lvl");
File.Copy("levels/level properties/" + msg1 + ".properties", "levels/level properties/" + msg2 + ".properties", false); if (File.Exists("levels/level properties/" + src + ".properties"))
if (File.Exists("blockdefs/lvl_" + msg1 + ".json")) File.Copy("levels/level properties/" + src + ".properties", "levels/level properties/" + dst + ".properties", false);
File.Copy("blockdefs/lvl_" + msg1 + ".json", "blockdefs/lvl_" + msg2 + ".json"); if (File.Exists("blockdefs/lvl_" + src + ".json"))
File.Copy("blockdefs/lvl_" + src + ".json", "blockdefs/lvl_" + dst + ".json");
} catch (System.IO.FileNotFoundException) { } catch (System.IO.FileNotFoundException) {
Player.SendMessage(p, msg2 + " does not exist!"); Player.SendMessage(p, dst + " does not exist!"); return;
return;
} catch (System.IO.IOException) { } catch (System.IO.IOException) {
Player.SendMessage(p, "The level, &c" + msg2 + " &e already exists!"); Player.SendMessage(p, "The level &c" + dst + " %S already exists!"); return;
return; }
Player.SendMessage(p, "The level &a" + src + " %Shas been copied to &a" + dst + ".");
}
} catch (System.ArgumentException) { public override void Help(Player p) {
Player.SendMessage(p, "One or both level names are either invalid, or corrupt."); Player.SendMessage(p, "%T/copylvl [level] [copied level]");
return; Player.SendMessage(p, "%HMakes a copy of [level] called [copied Level].");
Player.SendMessage(p, "%HNote: Only the level file and level properties are copied.");
}
Player.SendMessage(p, "The level, &c" + msg1 + " &ehas been copied to &c" + msg2 + "!");
}
public override void Help(Player p)
{
Player.SendMessage(p, "/copylvl [Level] [Copied Level] - Makes a copy of [Level] called [Copied Level].");
} }
} }
} }

View File

@ -28,7 +28,6 @@ namespace MCGalaxy.Commands {
public override string type { get { return CommandTypes.World; } } public override string type { get { return CommandTypes.World; } }
public override bool museumUsable { get { return true; } } public override bool museumUsable { get { return true; } }
public override LevelPermission defaultRank { get { return LevelPermission.Admin; } } public override LevelPermission defaultRank { get { return LevelPermission.Admin; } }
public CmdDeleteLvl() { }
public override void Use(Player p, string message) { public override void Use(Player p, string message) {
if (message == "" || message.Split(' ').Length > 1) { Help(p); return; } if (message == "" || message.Split(' ').Length > 1) { Help(p); return; }

View File

@ -26,13 +26,11 @@ namespace MCGalaxy.Commands {
public override string type { get { return CommandTypes.World; } } public override string type { get { return CommandTypes.World; } }
public override bool museumUsable { get { return true; } } public override bool museumUsable { get { return true; } }
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } } public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
public CmdEnvironment() { }
public override void Use(Player p, string message) { public override void Use(Player p, string message) {
message = message.ToLower(); message = message.ToLower();
if (message == "preset" || message == "l preset" || message == "level preset") { if (message == "preset" || message == "l preset" || message == "level preset") {
SendPresetsMessage(p); SendPresetsMessage(p); return;
return;
} }
string[] args = message.Split(' '); string[] args = message.Split(' ');

View File

@ -25,7 +25,6 @@ namespace MCGalaxy.Commands
public override string type { get { return CommandTypes.World; } } public override string type { get { return CommandTypes.World; } }
public override bool museumUsable { get { return false; } } public override bool museumUsable { get { return false; } }
public override LevelPermission defaultRank { get { return LevelPermission.Admin; } } public override LevelPermission defaultRank { get { return LevelPermission.Admin; } }
public CmdFixGrass() { }
public override void Use(Player p, string message) { public override void Use(Player p, string message) {
int totalFixed = 0; int totalFixed = 0;

View File

@ -27,12 +27,9 @@ namespace MCGalaxy.Commands
public override string type { get { return CommandTypes.World; } } public override string type { get { return CommandTypes.World; } }
public override bool museumUsable { get { return true; } } public override bool museumUsable { get { return true; } }
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } } public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
public CmdImport() { }
public override void Use(Player p, string message) { public override void Use(Player p, string message) {
if (message == "") { if (message == "") { Help(p); return; }
Help(p); return;
}
string fileName = "extra/import/" + message + ".dat"; string fileName = "extra/import/" + message + ".dat";
if (!Directory.Exists("extra/import")) if (!Directory.Exists("extra/import"))

View File

@ -35,13 +35,13 @@ namespace MCGalaxy.Commands
if (parts.Length == 1) { if (parts.Length == 1) {
if (!int.TryParse(parts[0], out seconds)) { if (!int.TryParse(parts[0], out seconds)) {
seconds = 30; seconds = 30;
lvl = LevelInfo.Find(parts[0].ToLower()); lvl = LevelInfo.Find(parts[0]);
} }
} else { } else {
if (!int.TryParse(parts[0], out seconds)) { if (!int.TryParse(parts[0], out seconds)) {
Player.SendMessage(p, "You must specify pause time in seconds"); return; Player.SendMessage(p, "You must specify pause time in seconds"); return;
} }
lvl = LevelInfo.Find(parts[1].ToLower()); lvl = LevelInfo.Find(parts[1]);
} }
} }

View File

@ -25,7 +25,6 @@ namespace MCGalaxy.Commands {
public override string type { get { return CommandTypes.Other; } } public override string type { get { return CommandTypes.Other; } }
public override bool museumUsable { get { return true; } } public override bool museumUsable { get { return true; } }
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } } public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
public CmdTexture() { }
public override void Use(Player p, string message) { public override void Use(Player p, string message) {
if (message == "") { Help(p); return; } if (message == "") { Help(p); return; }

View File

@ -15,10 +15,10 @@
or implied. See the Licenses for the specific language governing or implied. See the Licenses for the specific language governing
permissions and limitations under the Licenses. permissions and limitations under the Licenses.
*/ */
namespace MCGalaxy.Commands namespace MCGalaxy.Commands {
{
public sealed class CmdRepeat : Command public sealed class CmdRepeat : Command {
{
public override string name { get { return "repeat"; } } public override string name { get { return "repeat"; } }
public override string shortcut { get { return "m"; } } public override string shortcut { get { return "m"; } }
public override string type { get { return CommandTypes.Other; } } public override string type { get { return CommandTypes.Other; } }
@ -26,30 +26,30 @@ namespace MCGalaxy.Commands
public override LevelPermission defaultRank { get { return LevelPermission.Guest; } } public override LevelPermission defaultRank { get { return LevelPermission.Guest; } }
public CmdRepeat() { } public CmdRepeat() { }
public override void Use(Player p, string message) public override void Use(Player p, string message) {
{
try
{
if (p.lastCMD == "") { Player.SendMessage(p, "No commands used yet."); return; } if (p.lastCMD == "") { Player.SendMessage(p, "No commands used yet."); return; }
if (p.lastCMD.Length > 5) if (p.lastCMD.Length > 5 && p.lastCMD.Substring(0, 6) == "static") {
if (p.lastCMD.Substring(0, 6) == "static") { Player.SendMessage(p, "Can't repeat static"); return; } Player.SendMessage(p, "Can't repeat static"); return;
}
Player.SendMessage(p, "Using &b/" + p.lastCMD); Player.SendMessage(p, "Using &b/" + p.lastCMD);
int argsIndex = p.lastCMD.IndexOf(' ');
string cmdName = argsIndex == -1 ? p.lastCMD : p.lastCMD.Substring(0, argsIndex);
string cmdMsg = argsIndex == -1 ? "" : p.lastCMD.Substring(argsIndex + 1);
if (p.lastCMD.IndexOf(' ') == -1) Command cmd = Command.all.Find(cmdName);
{ if (cmd == null) {
Command.all.Find(p.lastCMD).Use(p, ""); Player.SendMessage(p, "Unknown command \"" + cmdName + "\".");
} }
else if (p != null && !p.group.CanExecute(cmd)) {
{ Player.SendMessage(p, "You are not allowed to use \"" + cmdName + "\"."); return;
Command.all.Find(p.lastCMD.Substring(0, p.lastCMD.IndexOf(' '))).Use(p, p.lastCMD.Substring(p.lastCMD.IndexOf(' ') + 1));
} }
cmd.Use(p, cmdMsg);
} }
catch { Player.SendMessage(p, "An error occured!"); }
} public override void Help(Player p) {
public override void Help(Player p) Player.SendMessage(p, "%T/repeat");
{ Player.SendMessage(p, "%HRepeats the last used command");
Player.SendMessage(p, "/repeat - Repeats the last used command");
} }
} }
} }