Also log 'error:' message in normal log files, improve some countdown messages.

This commit is contained in:
UnknownShadow200 2017-06-29 09:10:30 +10:00
parent 1f83981ff2
commit 05f49b60c7
5 changed files with 182 additions and 177 deletions

View File

@ -37,7 +37,7 @@ namespace MCGalaxy.Commands.Fun {
public override CommandPerm[] ExtraPerms { public override CommandPerm[] ExtraPerms {
get { return new[] { get { return new[] {
new CommandPerm(LevelPermission.Operator, "+ can send the countdown rules to everybody"), new CommandPerm(LevelPermission.Operator, "+ can send the countdown rules to everybody"),
new CommandPerm(LevelPermission.Operator, "+ can setup countdown (download/start/restart/enable/disable/cancel)"), new CommandPerm(LevelPermission.Operator, "+ can setup countdown (generate/start/restart/enable/disable/cancel)"),
}; } }; }
} }
@ -83,87 +83,77 @@ namespace MCGalaxy.Commands.Fun {
void HandleJoin(Player p) { void HandleJoin(Player p) {
switch (Server.Countdown.Status) { switch (Server.Countdown.Status) {
case CountdownGameStatus.Disabled: case CountdownGameStatus.Disabled:
Player.Message(p, "Sorry - Countdown isn't enabled yet"); Player.Message(p, "Cannot join as countdown is not running.");
return; return;
case CountdownGameStatus.Enabled: case CountdownGameStatus.Enabled:
Server.Countdown.PlayerJoinedGame(p); Server.Countdown.PlayerJoinedGame(p);
return; return;
case CountdownGameStatus.AboutToStart: case CountdownGameStatus.RoundCountdown:
Player.Message(p, "Sorry - The game is about to start"); Player.Message(p, "Cannot join when a round is about to start. Wait until next round.");
return; return;
case CountdownGameStatus.InProgress: case CountdownGameStatus.RoundInProgress:
Player.Message(p, "Sorry - The game is already in progress."); Player.Message(p, "Cannot join when a round is in progress. Wait until next round.");
return; return;
case CountdownGameStatus.Finished: case CountdownGameStatus.RoundFinished:
Player.Message(p, "Sorry - The game has finished. Get an op to reset it."); Player.Message(p, "Sorry - The game has finished. Get an op to reset it.");
return; return;
} }
} }
void HandleLeave(Player p) { void HandleLeave(Player p) {
if (Server.Countdown.players.Contains(p)) { if (Server.Countdown.Players.Contains(p)) {
switch (Server.Countdown.Status) { switch (Server.Countdown.Status) {
case CountdownGameStatus.Disabled: case CountdownGameStatus.Disabled:
Player.Message(p, "Sorry - Countdown isn't enabled yet"); Player.Message(p, "Cannot leave as countdown is not running.");
return; return;
case CountdownGameStatus.Enabled: case CountdownGameStatus.Enabled:
Player.Message(p, "You've left the game."); Player.Message(p, "You've left countdown.");
Server.Countdown.PlayerLeftGame(p); Server.Countdown.PlayerLeftGame(p);
break; break;
case CountdownGameStatus.AboutToStart: case CountdownGameStatus.RoundCountdown:
Player.Message(p, "Sorry - The game is about to start"); Player.Message(p, "Cannot leave when a round is about to start.");
return; ; return; ;
case CountdownGameStatus.InProgress: case CountdownGameStatus.RoundInProgress:
Player.Message(p, "Sorry - you are in a game that is in progress, please wait till its finished or till you've died."); Player.Message(p, "Cannot leave when a round in progress - please wait until the round ends or you die.");
return; return;
case CountdownGameStatus.Finished: case CountdownGameStatus.RoundFinished:
Server.Countdown.players.Remove(p); Server.Countdown.Players.Remove(p);
Server.Countdown.playersleftlist.Remove(p); Server.Countdown.PlayersRemaining.Remove(p);
p.playerofcountdown = false; p.playerofcountdown = false;
Player.Message(p, "You've left the game."); Player.Message(p, "You've left the game.");
break; break;
} }
} else if (!(Server.Countdown.playersleftlist.Contains(p)) && Server.Countdown.players.Contains(p)) { } else if (!(Server.Countdown.PlayersRemaining.Contains(p)) && Server.Countdown.Players.Contains(p)) {
Server.Countdown.players.Remove(p); Server.Countdown.Players.Remove(p);
Player.Message(p, "You've left the game."); Player.Message(p, "You've left the game.");
} else { } else {
Player.Message(p, "You haven't joined the game yet!!"); Player.Message(p, "Cannot leave as you did not join countdown to begin with.");
} }
} }
void HandlePlayers(Player p) { void HandlePlayers(Player p) {
switch (Server.Countdown.Status) { switch (Server.Countdown.Status) {
case CountdownGameStatus.Disabled: case CountdownGameStatus.Disabled:
Player.Message(p, "The game has not been enabled yet."); Player.Message(p, "Countdown is not running.");
break; break;
case CountdownGameStatus.Enabled: case CountdownGameStatus.RoundInProgress:
Player.Message(p, "Players who have joined:"); Player.Message(p, "Players in countdown:");
foreach (Player plya in Server.Countdown.players) Player.Message(p, Server.Countdown.Players.Join(FormatPlayer));
Player.Message(p, plya.ColoredName);
break; break;
case CountdownGameStatus.AboutToStart: default:
Player.Message(p, "Players who are about to play:"); Player.Message(p, "Players in countdown: ");
foreach (Player plya in Server.Countdown.players) Player.Message(p, Server.Countdown.Players.Join(pl => pl.ColoredName));
Player.Message(p, plya.ColoredName);
break; break;
case CountdownGameStatus.InProgress:
Player.Message(p, "Players left playing:");
foreach (Player plya in Server.Countdown.players) {
if (Server.Countdown.playersleftlist.Contains(plya))
Player.Message(p, plya.ColoredName + " %Swho is &aIN");
else
Player.Message(p, plya.ColoredName + " %Swho is &cOUT");
} }
break; }
case CountdownGameStatus.Finished: static string FormatPlayer(Player pl) {
Player.Message(p, "Players who were playing:"); if (Server.Countdown.PlayersRemaining.Contains(pl)) {
foreach (Player plya in Server.Countdown.players) return pl.ColoredName + " &a[IN]";
Player.Message(p, plya.ColoredName); } else {
break; return pl.ColoredName + " &c[OUT]";
} }
} }
@ -246,12 +236,12 @@ namespace MCGalaxy.Commands.Fun {
void HandleDisable(Player p) { void HandleDisable(Player p) {
if (!CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; } if (!CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; }
if (Server.Countdown.Status == CountdownGameStatus.AboutToStart || Server.Countdown.Status == CountdownGameStatus.InProgress) { if (Server.Countdown.Status == CountdownGameStatus.RoundCountdown || Server.Countdown.Status == CountdownGameStatus.RoundInProgress) {
Player.Message(p, "A game is currently in progress - please wait until it is finished, or use '/cd cancel' to cancel the game"); return; Player.Message(p, "A game is currently in progress - please wait until it is finished, or use '/cd cancel' to cancel the game"); return;
} else if (Server.Countdown.Status == CountdownGameStatus.Disabled) { } else if (Server.Countdown.Status == CountdownGameStatus.Disabled) {
Player.Message(p, "Already disabled!!"); return; Player.Message(p, "Already disabled!!"); return;
} else { } else {
foreach (Player pl in Server.Countdown.players) foreach (Player pl in Server.Countdown.Players)
Player.Message(pl, "The countdown game was disabled."); Player.Message(pl, "The countdown game was disabled.");
Server.Countdown.Reset(p, true); Server.Countdown.Reset(p, true);
Server.Countdown.Status = CountdownGameStatus.Disabled; Server.Countdown.Status = CountdownGameStatus.Disabled;
@ -262,7 +252,7 @@ namespace MCGalaxy.Commands.Fun {
void HandleCancel(Player p) { void HandleCancel(Player p) {
if (!CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; } if (!CheckExtraPerm(p, 2)) { MessageNeedExtra(p, 2); return; }
if (Server.Countdown.Status == CountdownGameStatus.AboutToStart || Server.Countdown.Status == CountdownGameStatus.InProgress) { if (Server.Countdown.Status == CountdownGameStatus.RoundCountdown || Server.Countdown.Status == CountdownGameStatus.RoundInProgress) {
Server.Countdown.cancel = true; Server.Countdown.cancel = true;
Thread.Sleep(1500); Thread.Sleep(1500);
Player.Message(p, "Countdown has been canceled"); Player.Message(p, "Countdown has been canceled");
@ -270,7 +260,7 @@ namespace MCGalaxy.Commands.Fun {
} else if (Server.Countdown.Status == CountdownGameStatus.Disabled) { } else if (Server.Countdown.Status == CountdownGameStatus.Disabled) {
Player.Message(p, "The game is disabled!!"); Player.Message(p, "The game is disabled!!");
} else { } else {
foreach (Player pl in Server.Countdown.players) foreach (Player pl in Server.Countdown.Players)
Player.Message(pl, "The countdown game was canceled"); Player.Message(pl, "The countdown game was canceled");
Server.Countdown.Reset(null, true); Server.Countdown.Reset(null, true);
} }
@ -282,11 +272,11 @@ namespace MCGalaxy.Commands.Fun {
if (Server.Countdown.Status != CountdownGameStatus.Enabled) { if (Server.Countdown.Status != CountdownGameStatus.Enabled) {
Player.Message(p, "Either a game is already in progress or it hasn't been enabled"); return; Player.Message(p, "Either a game is already in progress or it hasn't been enabled"); return;
} }
if (Server.Countdown.players.Count < 2) { if (Server.Countdown.Players.Count < 2) {
Player.Message(p, "Sorry, there aren't enough players to play."); return; Player.Message(p, "Sorry, there aren't enough players to play."); return;
} }
Server.Countdown.playersleftlist = Server.Countdown.players; Server.Countdown.PlayersRemaining = Server.Countdown.Players;
CountdownGame game = Server.Countdown; CountdownGame game = Server.Countdown;
switch (par1) { switch (par1) {
case "slow": case "slow":
@ -313,9 +303,9 @@ namespace MCGalaxy.Commands.Fun {
switch (Server.Countdown.Status) { switch (Server.Countdown.Status) {
case CountdownGameStatus.Disabled: case CountdownGameStatus.Disabled:
Player.Message(p, "Please enable countdown first."); break; Player.Message(p, "Please enable countdown first."); break;
case CountdownGameStatus.AboutToStart: case CountdownGameStatus.RoundCountdown:
Player.Message(p, "Sorry - The game is about to start"); break; Player.Message(p, "Sorry - The game is about to start"); break;
case CountdownGameStatus.InProgress: case CountdownGameStatus.RoundInProgress:
Player.Message(p, "Sorry - The game is already in progress."); break; Player.Message(p, "Sorry - The game is already in progress."); break;
default: default:
Player.Message(p, "Reseting"); Player.Message(p, "Reseting");

View File

@ -22,8 +22,8 @@ using System.Threading;
namespace MCGalaxy.Games { namespace MCGalaxy.Games {
public sealed class CountdownGame : IGame { public sealed class CountdownGame : IGame {
public List<Player> players = new List<Player>(); public List<Player> Players = new List<Player>();
public List<Player> playersleftlist = new List<Player>(); public List<Player> PlayersRemaining = new List<Player>();
public List<SquarePos> squaresLeft = new List<SquarePos>(); public List<SquarePos> squaresLeft = new List<SquarePos>();
public Level mapon; public Level mapon;
@ -46,14 +46,14 @@ namespace MCGalaxy.Games {
switch (Status) { switch (Status) {
case CountdownGameStatus.Disabled: case CountdownGameStatus.Disabled:
Player.Message(p, "Please enable Countdown first!!"); return; Player.Message(p, "Please enable Countdown first!!"); return;
case CountdownGameStatus.AboutToStart: case CountdownGameStatus.RoundCountdown:
Player.Message(p, "Game is about to start"); return; Player.Message(p, "Game is about to start"); return;
case CountdownGameStatus.InProgress: case CountdownGameStatus.RoundInProgress:
Player.Message(p, "Game is already in progress"); return; Player.Message(p, "Game is already in progress"); return;
case CountdownGameStatus.Finished: case CountdownGameStatus.RoundFinished:
Player.Message(p, "Game has finished"); return; Player.Message(p, "Game has finished"); return;
case CountdownGameStatus.Enabled: case CountdownGameStatus.Enabled:
Status = CountdownGameStatus.AboutToStart; Status = CountdownGameStatus.RoundCountdown;
Thread.Sleep(2000); break; Thread.Sleep(2000); break;
} }
@ -88,8 +88,8 @@ namespace MCGalaxy.Games {
mapon.ChatLevel("-----&b1%S-----"); Thread.Sleep(1000); mapon.ChatLevel("-----&b1%S-----"); Thread.Sleep(1000);
mapon.ChatLevel("GO!!!!!!!"); mapon.ChatLevel("GO!!!!!!!");
playersleftlist = players; PlayersRemaining = Players;
foreach (Player pl in players) foreach (Player pl in Players)
pl.InCountdown = true; pl.InCountdown = true;
AfterStart(); AfterStart();
Play(); Play();
@ -101,8 +101,8 @@ namespace MCGalaxy.Games {
} else { } else {
SendFreezeMessages(); SendFreezeMessages();
MessageAll("&bPlayers Frozen"); MessageAll("&bPlayers Frozen");
Status = CountdownGameStatus.InProgress; Status = CountdownGameStatus.RoundInProgress;
foreach (Player pl in players) foreach (Player pl in Players)
pl.CountdownSetFreezePos = true; pl.CountdownSetFreezePos = true;
Thread.Sleep(500); Thread.Sleep(500);
@ -113,7 +113,7 @@ namespace MCGalaxy.Games {
void SpawnPlayers(int x, int y, int z) { void SpawnPlayers(int x, int y, int z) {
Position pos = new Position(x, y, z); Position pos = new Position(x, y, z);
foreach (Player pl in players) { foreach (Player pl in Players) {
if (pl.level != mapon) { if (pl.level != mapon) {
pl.SendMessage("Sending you to the correct map."); pl.SendMessage("Sending you to the correct map.");
PlayerActions.ChangeMap(pl, mapon.name); PlayerActions.ChangeMap(pl, mapon.name);
@ -163,8 +163,8 @@ namespace MCGalaxy.Games {
} }
void RemoveRandomSquares() { void RemoveRandomSquares() {
while (squaresLeft.Count > 0 && playersleftlist.Count != 0 while (squaresLeft.Count > 0 && PlayersRemaining.Count != 0
&& (Status == CountdownGameStatus.InProgress || Status == CountdownGameStatus.Finished)) && (Status == CountdownGameStatus.RoundInProgress || Status == CountdownGameStatus.RoundFinished))
{ {
Random number = new Random(); Random number = new Random();
int index = number.Next(squaresLeft.Count); int index = number.Next(squaresLeft.Count);
@ -172,8 +172,8 @@ namespace MCGalaxy.Games {
squaresLeft.RemoveAt(index); squaresLeft.RemoveAt(index);
RemoveSquare(nextsquare); RemoveSquare(nextsquare);
if (squaresLeft.Count % 10 == 0 && Status != CountdownGameStatus.Finished) if (squaresLeft.Count % 10 == 0 && Status != CountdownGameStatus.RoundFinished)
mapon.ChatLevel(squaresLeft.Count + " Squares Left and " + playersleftlist.Count + " Players left!!"); mapon.ChatLevel(squaresLeft.Count + " Squares Left and " + PlayersRemaining.Count + " Players left!!");
if (cancel) if (cancel)
End(null); End(null);
} }
@ -246,58 +246,58 @@ namespace MCGalaxy.Games {
Cuboid(maxX - 4, 4, 4, maxX - 4, 4, maxZ - 4, Block.air, mapon); Cuboid(maxX - 4, 4, 4, maxX - 4, 4, maxZ - 4, Block.air, mapon);
if (!freezemode) { if (!freezemode) {
Status = CountdownGameStatus.InProgress; Status = CountdownGameStatus.RoundInProgress;
} }
} }
public void Death(Player p) { public void Death(Player p) {
mapon.ChatLevel(p.ColoredName + " %Sis out of countdown!!"); mapon.ChatLevel(p.ColoredName + " %Sis out of countdown!!");
p.InCountdown = false; p.InCountdown = false;
playersleftlist.Remove(p); PlayersRemaining.Remove(p);
MessagePlayersLeft(); MessagePlayersLeft();
} }
public void MessagePlayersLeft() { public void MessagePlayersLeft() {
switch (playersleftlist.Count) { switch (PlayersRemaining.Count) {
case 1: case 1:
mapon.ChatLevel(playersleftlist[0].ColoredName + " %Sis the winner!!"); mapon.ChatLevel(PlayersRemaining[0].ColoredName + " %Sis the winner!!");
End(playersleftlist[0]); End(PlayersRemaining[0]);
break; break;
case 2: case 2:
mapon.ChatLevel("Only 2 Players left:"); mapon.ChatLevel("Only 2 Players left:");
mapon.ChatLevel(playersleftlist[0].ColoredName + " %Sand " + playersleftlist[1].ColoredName); mapon.ChatLevel(PlayersRemaining[0].ColoredName + " %Sand " + PlayersRemaining[1].ColoredName);
break; break;
case 5: case 5:
mapon.ChatLevel("Only 5 Players left:"); mapon.ChatLevel("Only 5 Players left:");
foreach (Player pl in playersleftlist) { foreach (Player pl in PlayersRemaining) {
mapon.ChatLevel(pl.ColoredName); mapon.ChatLevel(pl.ColoredName);
Thread.Sleep(500); Thread.Sleep(500);
} }
break; break;
default: default:
mapon.ChatLevel("Now there are " + playersleftlist.Count + " players left!!"); mapon.ChatLevel("Now there are " + PlayersRemaining.Count + " players left!!");
break; break;
} }
} }
void End(Player winner) { void End(Player winner) {
squaresLeft.Clear(); squaresLeft.Clear();
Status = CountdownGameStatus.Finished; Status = CountdownGameStatus.RoundFinished;
playersleftlist.Clear(); PlayersRemaining.Clear();
if (winner != null) { if (winner != null) {
winner.SendMessage("Congratulations!! You won!!!"); winner.SendMessage("Congratulations!! You won!!!");
Command.all.Find("spawn").Use(winner, ""); Command.all.Find("spawn").Use(winner, "");
winner.InCountdown = false; winner.InCountdown = false;
} else { } else {
foreach (Player pl in players) { foreach (Player pl in Players) {
Player.Message(pl, "The countdown game was canceled!"); Player.Message(pl, "The countdown game was canceled!");
Command.all.Find("spawn").Use(pl, ""); Command.all.Find("spawn").Use(pl, "");
} }
Chat.MessageGlobal("The countdown game was canceled!!"); Chat.MessageGlobal("The countdown game was canceled!!");
Status = CountdownGameStatus.Enabled; Status = CountdownGameStatus.Enabled;
playersleftlist.Clear(); PlayersRemaining.Clear();
players.Clear(); Players.Clear();
squaresLeft.Clear(); squaresLeft.Clear();
Reset(null, true); Reset(null, true);
cancel = false; cancel = false;
@ -305,7 +305,7 @@ namespace MCGalaxy.Games {
} }
public void Reset(Player p, bool all) { public void Reset(Player p, bool all) {
if (!(Status == CountdownGameStatus.Enabled || Status == CountdownGameStatus.Finished || Status == CountdownGameStatus.Disabled)) { if (!(Status == CountdownGameStatus.Enabled || Status == CountdownGameStatus.RoundFinished || Status == CountdownGameStatus.Disabled)) {
switch (Status) { switch (Status) {
case CountdownGameStatus.Disabled: case CountdownGameStatus.Disabled:
Player.Message(p, "Please enable the game first"); return; Player.Message(p, "Please enable the game first"); return;
@ -323,7 +323,7 @@ namespace MCGalaxy.Games {
if (!all) { if (!all) {
Player.Message(p, "The Countdown map has been reset"); Player.Message(p, "The Countdown map has been reset");
if (Status == CountdownGameStatus.Finished) if (Status == CountdownGameStatus.RoundFinished)
Player.Message(p, "You do not need to re-enable it"); Player.Message(p, "You do not need to re-enable it");
Status = CountdownGameStatus.Enabled; Status = CountdownGameStatus.Enabled;
@ -336,16 +336,16 @@ namespace MCGalaxy.Games {
} else { } else {
Player.Message(pl, "You've been removed from countdown because you aren't on the map"); Player.Message(pl, "You've been removed from countdown because you aren't on the map");
pl.playerofcountdown = false; pl.playerofcountdown = false;
players.Remove(pl); Players.Remove(pl);
} }
} }
} else { } else {
Player.Message(p, "Countdown has been reset"); Player.Message(p, "Countdown has been reset");
if (Status == CountdownGameStatus.Finished) if (Status == CountdownGameStatus.RoundFinished)
Player.Message(p, "You do not need to re-enable it"); Player.Message(p, "You do not need to re-enable it");
Status = CountdownGameStatus.Enabled; Status = CountdownGameStatus.Enabled;
playersleftlist.Clear(); PlayersRemaining.Clear();
players.Clear(); Players.Clear();
squaresLeft.Clear(); squaresLeft.Clear();
speed = 750; speed = 750;
@ -394,8 +394,8 @@ namespace MCGalaxy.Games {
public override void PlayerJoinedGame(Player p) { public override void PlayerJoinedGame(Player p) {
if (!Server.Countdown.players.Contains(p)) { if (!Server.Countdown.Players.Contains(p)) {
Server.Countdown.players.Add(p); Server.Countdown.Players.Add(p);
Player.Message(p, "You've joined the Countdown game!!"); Player.Message(p, "You've joined the Countdown game!!");
Chat.MessageGlobal("{0} has joined Countdown!!", p.name); Chat.MessageGlobal("{0} has joined Countdown!!", p.name);
if (p.level != Server.Countdown.mapon) if (p.level != Server.Countdown.mapon)
@ -409,13 +409,26 @@ namespace MCGalaxy.Games {
public override void PlayerLeftGame(Player p) { public override void PlayerLeftGame(Player p) {
p.InCountdown = false; p.InCountdown = false;
p.playerofcountdown = false; p.playerofcountdown = false;
players.Remove(p); Players.Remove(p);
playersleftlist.Remove(p); PlayersRemaining.Remove(p);
MessagePlayersLeft(); MessagePlayersLeft();
} }
} }
public enum CountdownGameStatus { public enum CountdownGameStatus {
Disabled, Enabled, AboutToStart, InProgress, Finished, /// <summary> Countdown is not running. </summary>
Disabled,
/// <summary> Countdown is running, but no round has been started at all yet. </summary>
Enabled,
/// <summary> Timer is counting down to start of round. </summary>
RoundCountdown,
/// <summary> Round is in progress. </summary>
RoundInProgress,
/// <summary> Round has ended. </summary>
RoundFinished,
} }
} }

View File

@ -38,7 +38,7 @@ namespace MCGalaxy.Games {
void HandlePlayerMove(Player p, Position next, byte yaw, byte pitch) { void HandlePlayerMove(Player p, Position next, byte yaw, byte pitch) {
if (!p.InCountdown || Game.Status != CountdownGameStatus.InProgress || !Game.freezemode) if (!p.InCountdown || Game.Status != CountdownGameStatus.RoundInProgress || !Game.freezemode)
return; return;
if (p.CountdownSetFreezePos) { if (p.CountdownSetFreezePos) {
@ -60,13 +60,13 @@ namespace MCGalaxy.Games {
} }
void HandlePlayerDisconnect(Player p, string reason) { void HandlePlayerDisconnect(Player p, string reason) {
if (!Game.players.Contains(p)) return; if (!Game.Players.Contains(p)) return;
if (Game.playersleftlist.Contains(p)) { if (Game.PlayersRemaining.Contains(p)) {
Game.mapon.ChatLevel(p.ColoredName + " %Slogged out and so is out of countdown"); Game.mapon.ChatLevel(p.ColoredName + " %Slogged out, and so is out of countdown");
Game.PlayerLeftGame(p); Game.PlayerLeftGame(p);
} }
Game.players.Remove(p); Game.Players.Remove(p);
} }
} }
} }

View File

@ -487,7 +487,7 @@ namespace MCGalaxy {
//} //}
Game.team.SpawnPlayer(this); Game.team.SpawnPlayer(this);
//this.health = 100; //this.health = 100;
} else if ( Server.Countdown.playersleftlist.Contains(this) ) { } else if ( Server.Countdown.PlayersRemaining.Contains(this) ) {
Server.Countdown.Death(this); Server.Countdown.Death(this);
Command.all.Find("spawn").Use(this, ""); Command.all.Find("spawn").Use(this, "");
} else if ( PlayingTntWars ) { } else if ( PlayingTntWars ) {

View File

@ -67,11 +67,13 @@ namespace MCGalaxy {
string output = sb.ToString(); string output = sb.ToString();
lock (logLock) errCache.Enqueue(output); lock (logLock) errCache.Enqueue(output);
} else {
message = "!!!Error! See " + ErrorLogPath + " for more information.";
}
string now = DateTime.Now.ToString("(HH:mm:ss) "); string now = DateTime.Now.ToString("(HH:mm:ss) ");
lock (logLock) msgCache.Enqueue(now + message); lock (logLock) msgCache.Enqueue(now + message);
} }
}
public static void Flush(SchedulerTask task) { public static void Flush(SchedulerTask task) {