Merge pull request #208 from TorchAPI/network-improvement

Tweak client join validation
This commit is contained in:
Westin Miller
2018-02-18 22:10:49 -08:00
committed by GitHub

View File

@@ -196,19 +196,29 @@ namespace Torch.Server.Managers
else if (_isClientKicked(MyMultiplayer.Static, info.SteamID) || else if (_isClientKicked(MyMultiplayer.Static, info.SteamID) ||
_isClientKicked(MyMultiplayer.Static, info.SteamOwner)) _isClientKicked(MyMultiplayer.Static, info.SteamOwner))
CommitVerdict(info.SteamID, JoinResult.KickedRecently); CommitVerdict(info.SteamID, JoinResult.KickedRecently);
else if (info.SteamResponse != JoinResult.OK) else if (info.SteamResponse == JoinResult.OK)
CommitVerdict(info.SteamID, info.SteamResponse); {
else if (MySandboxGame.ConfigDedicated.Administrators.Contains(info.SteamID.ToString()) || //Admins can bypass member limit
MySandboxGame.ConfigDedicated.Administrators.Contains(_convertSteamIDFrom64(info.SteamID))) if (MySandboxGame.ConfigDedicated.Administrators.Contains(info.SteamID.ToString()) ||
CommitVerdict(info.SteamID, JoinResult.OK); MySandboxGame.ConfigDedicated.Administrators.Contains(_convertSteamIDFrom64(info.SteamID)))
else if (MyMultiplayer.Static.MemberLimit > 0 && CommitVerdict(info.SteamID, JoinResult.OK);
MyMultiplayer.Static.MemberCount + 1 > MyMultiplayer.Static.MemberLimit) //Server counts as a client, so subtract 1 from MemberCount
CommitVerdict(info.SteamID, JoinResult.ServerFull); else if (MyMultiplayer.Static.MemberLimit > 0 &&
else if (MySandboxGame.ConfigDedicated.GroupID == 0uL || MyMultiplayer.Static.MemberCount - 1 >= MyMultiplayer.Static.MemberLimit)
MySandboxGame.ConfigDedicated.GroupID == info.Group && (info.Member || info.Officer)) CommitVerdict(info.SteamID, JoinResult.ServerFull);
CommitVerdict(info.SteamID, JoinResult.OK); else if (MySandboxGame.ConfigDedicated.GroupID == 0uL)
CommitVerdict(info.SteamID, JoinResult.OK);
else
{
if (MySandboxGame.ConfigDedicated.GroupID == info.Group && (info.Member || info.Officer))
CommitVerdict(info.SteamID, JoinResult.OK);
else
CommitVerdict(info.SteamID, JoinResult.NotInGroup);
}
}
else else
CommitVerdict(info.SteamID, JoinResult.NotInGroup); CommitVerdict(info.SteamID, info.SteamResponse);
return; return;
} }