Modularise /zg.

This commit is contained in:
UnknownShadow200 2016-03-13 21:38:33 +11:00
parent 42300d5617
commit c598df0006
2 changed files with 81 additions and 72 deletions

View File

@ -46,7 +46,7 @@ namespace MCGalaxy.Commands {
Player.SendMessage(p, "There is already a larger active bounty for " + who.name + "."); return; Player.SendMessage(p, "There is already a larger active bounty for " + who.name + "."); return;
} }
// TODO here - actually announce the bounty and place it // TODO here - actually announce the bounty and place it
// "Looks like someone wants the brain of <name>! An bounty for x <money> was placed on them. // "Looks like someone really wants the brains of <name>! An bounty for x <money> was placed on them.
// "<name> is popular! The bounty on them was increased from <old> to <new> money. // "<name> is popular! The bounty on them was increased from <old> to <new> money.
} }

View File

@ -15,7 +15,7 @@
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
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.
*/ */
using System; using System;
namespace MCGalaxy.Commands namespace MCGalaxy.Commands
{ {
@ -27,12 +27,20 @@ namespace MCGalaxy.Commands
public override bool museumUsable { get { return false; } } public override bool museumUsable { get { return false; } }
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } } public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
public CmdZombieGame() { } public CmdZombieGame() { }
public override void Use(Player p, string message)
{ public override void Use(Player p, string message) {
if (String.IsNullOrEmpty(message)) { Help(p); return; } if (message == "") { Help(p); return; }
string[] s = message.ToLower().Split(' '); string[] args = message.ToLower().Split(' ');
if (s[0] == "status") switch (args[0]) {
{ case "status": HandleStatus(p, message, args); break;
case "start": HandleStart(p, message, args); break;
case "stop": HandleStop(p, message, args); break;
case "force": HandleForceStop(p, message, args); break;
case "hitbox": HandleHitbox(p, message, args); break;
}
}
static void HandleStatus(Player p, string message, string[] args) {
switch (Server.zombie.Status) { switch (Server.zombie.Status) {
case ZombieGameStatus.NotStarted: case ZombieGameStatus.NotStarted:
Player.SendMessage(p, "Zombie Survival is not ccurrently running."); return; Player.SendMessage(p, "Zombie Survival is not ccurrently running."); return;
@ -45,16 +53,15 @@ namespace MCGalaxy.Commands
case ZombieGameStatus.LastRound: case ZombieGameStatus.LastRound:
Player.SendMessage(p, "Zombie Survival game currently in progress, with this round being the final round."); return; Player.SendMessage(p, "Zombie Survival game currently in progress, with this round being the final round."); return;
} }
return;
} }
else if (s[0] == "start")
{ static void HandleStart(Player p, string message, string[] args) {
if (Server.zombie.Status != ZombieGameStatus.NotStarted) { if (Server.zombie.Status != ZombieGameStatus.NotStarted) {
Player.SendMessage(p, "There is already a Zombie Survival game currently in progress."); return; Player.SendMessage(p, "There is already a Zombie Survival game currently in progress."); return;
} }
if (s.Length == 2) { if (args.Length == 2) {
int rounds = 1; int rounds = 1;
if (!int.TryParse(s[1], out rounds)) { if (!int.TryParse(args[1], out rounds)) {
Player.SendMessage(p, "You need to specify a valid option!"); return; Player.SendMessage(p, "You need to specify a valid option!"); return;
} }
ZombieGameStatus status = rounds == 0 ? ZombieGameStatus status = rounds == 0 ?
@ -64,16 +71,16 @@ namespace MCGalaxy.Commands
Server.zombie.Start(ZombieGameStatus.SingleRound, 0); Server.zombie.Start(ZombieGameStatus.SingleRound, 0);
} }
} }
else if (s[0] == "stop")
{ static void HandleStop(Player p, string message, string[] args) {
if (Server.zombie.Status == ZombieGameStatus.NotStarted) { if (Server.zombie.Status == ZombieGameStatus.NotStarted) {
Player.SendMessage(p, "There is no Zombie Survival game currently in progress."); return; Player.SendMessage(p, "There is no Zombie Survival game currently in progress."); return;
} }
Player.GlobalMessage("The current game of Zombie Survival will end this round!"); Player.GlobalMessage("The current game of Zombie Survival will end this round!");
Server.zombie.Status = ZombieGameStatus.LastRound; Server.zombie.Status = ZombieGameStatus.LastRound;
} }
else if (s[0] == "force")
{ static void HandleForceStop(Player p, string message, string[] args) {
if (Server.zombie.Status == ZombieGameStatus.NotStarted) { if (Server.zombie.Status == ZombieGameStatus.NotStarted) {
Player.SendMessage(p, "There is no Zombie Survival game currently in progress."); return; Player.SendMessage(p, "There is no Zombie Survival game currently in progress."); return;
} }
@ -81,10 +88,12 @@ namespace MCGalaxy.Commands
Server.zombie.aliveCount = 0; Server.zombie.aliveCount = 0;
Server.zombie.ResetState(); Server.zombie.ResetState();
} }
static void HandleHitbox(Player p, string message, string[] args) {
} }
public override void Help(Player p)
{ public override void Help(Player p) {
Player.SendMessage(p, "/zombiegame - Shows this help menu.");
Player.SendMessage(p, "/zombiegame start - Starts a Zombie Survival game for one round."); Player.SendMessage(p, "/zombiegame start - Starts a Zombie Survival game for one round.");
Player.SendMessage(p, "/zombiegame start 0 - Starts a Zombie Survival game for an unlimited amount of rounds."); Player.SendMessage(p, "/zombiegame start 0 - Starts a Zombie Survival game for an unlimited amount of rounds.");
Player.SendMessage(p, "/zombiegame start [x] - Starts a Zombie Survival game for [x] amount of rounds."); Player.SendMessage(p, "/zombiegame start [x] - Starts a Zombie Survival game for [x] amount of rounds.");