Merge pull request #10670 from RockyTV/rockytv
Disable 1 human versus bots games
This commit is contained in:
@@ -67,6 +67,10 @@ namespace OpenRA.Mods.Common.Server
|
||||
if (server.LobbyInfo.Slots.Any(sl => sl.Value.Required && server.LobbyInfo.ClientInSlot(sl.Key) == null))
|
||||
return;
|
||||
|
||||
// Does server have only one player?
|
||||
if (server.Settings.DisableSinglePlayer && playerClients.Count() == 1)
|
||||
return;
|
||||
|
||||
server.StartGame();
|
||||
}
|
||||
|
||||
@@ -115,6 +119,13 @@ namespace OpenRA.Mods.Common.Server
|
||||
return true;
|
||||
}
|
||||
|
||||
if (server.Settings.DisableSinglePlayer &&
|
||||
server.LobbyInfo.Clients.Where(c => c.Bot == null && c.Slot != null).Count() == 1)
|
||||
{
|
||||
server.SendOrderTo(conn, "Message", "Unable to start the game until another player joins.");
|
||||
return true;
|
||||
}
|
||||
|
||||
server.StartGame();
|
||||
return true;
|
||||
}
|
||||
@@ -373,8 +384,8 @@ namespace OpenRA.Mods.Common.Server
|
||||
if (server.Map.RuleDefinitions.Any())
|
||||
server.SendMessage("This map contains custom rules. Game experience may change.");
|
||||
|
||||
if (server.Settings.LockBots)
|
||||
server.SendMessage("Bots have been disabled on this server.");
|
||||
if (server.Settings.DisableSinglePlayer)
|
||||
server.SendMessage("Singleplayer games have been disabled on this server.");
|
||||
else if (server.MapPlayers.Players.Where(p => p.Value.Playable).All(p => !p.Value.AllowBots))
|
||||
server.SendMessage("Bots have been disabled on this map.");
|
||||
|
||||
@@ -923,8 +934,6 @@ namespace OpenRA.Mods.Common.Server
|
||||
static Session.Slot MakeSlotFromPlayerReference(PlayerReference pr)
|
||||
{
|
||||
if (!pr.Playable) return null;
|
||||
if (Game.Settings.Server.LockBots)
|
||||
pr.AllowBots = false;
|
||||
return new Session.Slot
|
||||
{
|
||||
PlayerReference = pr.Name,
|
||||
|
||||
@@ -318,7 +318,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
if (startGameButton != null)
|
||||
{
|
||||
startGameButton.IsDisabled = () => configurationDisabled() || Map.RuleStatus != MapRuleStatus.Cached ||
|
||||
orderManager.LobbyInfo.Slots.Any(sl => sl.Value.Required && orderManager.LobbyInfo.ClientInSlot(sl.Key) == null);
|
||||
orderManager.LobbyInfo.Slots.Any(sl => sl.Value.Required && orderManager.LobbyInfo.ClientInSlot(sl.Key) == null) ||
|
||||
(orderManager.LobbyInfo.GlobalSettings.DisableSingleplayer && orderManager.LobbyInfo.IsSinglePlayer);
|
||||
startGameButton.OnClick = () =>
|
||||
{
|
||||
// Bots and admins don't count
|
||||
|
||||
Reference in New Issue
Block a user