mirror of
https://github.com/ClassiCube/MCGalaxy.git
synced 2025-09-24 05:03:34 -04:00
Also log 'error:' message in normal log files, improve some countdown messages.
This commit is contained in:
parent
1f83981ff2
commit
05f49b60c7
@ -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");
|
||||||
|
@ -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,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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 ) {
|
||||||
|
@ -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) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user