public override void OnPlayerSpawned(String soldierName, Inventory spawnedInventory)
{
if (!fIsEnabled) return;
DebugWrite("^9^bGot OnPlayerSpawned: ^n" + soldierName, 8);
try {
int totalPlayers = TotalPlayerCount();
if (fGameState == GameState.Unknown || fGameState == GameState.Warmup) {
bool wasUnknown = (fGameState == GameState.Unknown);
fGameState = (totalPlayers < 4) ? GameState.Warmup : GameState.Playing;
if (wasUnknown || fGameState == GameState.Playing) DebugWrite("OnPlayerSpawned: ^b^3Game state = " + fGameState, 6);
if (wasUnknown && fGameVersion == GameVersion.BF4) UpdateFactions();
fNeedPlayerListUpdate = (fGameState == GameState.Playing);
if (EnableAdminKillForFastBalance) {
FastBalance("GameState changed to Playing: ");
}
} else if (fGameState == GameState.RoundStarting) {
// First spawn after Level Loaded is the official start of a round
DebugWrite(":::::::::::::::::::::::::::::::::::: ^b^1First spawn detected^0^n ::::::::::::::::::::::::::::::::::::", 3);
fGameState = (totalPlayers < 4) ? GameState.Warmup : GameState.Playing;
DebugWrite("OnPlayerSpawned: ^b^3Game state = " + fGameState, 6);
ResetRound();
fIsFullRound = true;
ServerCommand("serverInfo");
UpdateRoundTimeLimit();
ScheduleListPlayers(2);
fNeedPlayerListUpdate = (fGameState == GameState.Playing);
if (fGameVersion == GameVersion.BF4) UpdateFactions();
}
if (fPluginState == PluginState.Active) {
ValidateMove(soldierName);
if (fGameState != GameState.RoundEnding) {
SpawnUpdate(soldierName);
FireMessages(soldierName);
CheckDelayedMove(soldierName);
if (IsRush()) CheckServerInfoUpdate();
}
}
} catch (Exception e) {
ConsoleException(e);
}
}