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;
}
// 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.
}

View File

@ -15,7 +15,7 @@
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied. See the Licenses for the specific language governing
permissions and limitations under the Licenses.
*/
*/
using System;
namespace MCGalaxy.Commands
{
@ -27,12 +27,20 @@ namespace MCGalaxy.Commands
public override bool museumUsable { get { return false; } }
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
public CmdZombieGame() { }
public override void Use(Player p, string message)
{
if (String.IsNullOrEmpty(message)) { Help(p); return; }
string[] s = message.ToLower().Split(' ');
if (s[0] == "status")
{
public override void Use(Player p, string message) {
if (message == "") { Help(p); return; }
string[] args = message.ToLower().Split(' ');
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) {
case ZombieGameStatus.NotStarted:
Player.SendMessage(p, "Zombie Survival is not ccurrently running."); return;
@ -45,16 +53,15 @@ namespace MCGalaxy.Commands
case ZombieGameStatus.LastRound:
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) {
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;
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;
}
ZombieGameStatus status = rounds == 0 ?
@ -64,16 +71,16 @@ namespace MCGalaxy.Commands
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) {
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!");
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) {
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.ResetState();
}
static void HandleHitbox(Player p, string message, string[] args) {
}
public override void Help(Player p)
{
Player.SendMessage(p, "/zombiegame - Shows this help menu.");
public override void Help(Player p) {
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 [x] - Starts a Zombie Survival game for [x] amount of rounds.");