Merge pull request #208 from TorchAPI/network-improvement
Tweak client join validation
This commit is contained in:
@@ -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
|
||||||
|
if (MySandboxGame.ConfigDedicated.Administrators.Contains(info.SteamID.ToString()) ||
|
||||||
MySandboxGame.ConfigDedicated.Administrators.Contains(_convertSteamIDFrom64(info.SteamID)))
|
MySandboxGame.ConfigDedicated.Administrators.Contains(_convertSteamIDFrom64(info.SteamID)))
|
||||||
CommitVerdict(info.SteamID, JoinResult.OK);
|
CommitVerdict(info.SteamID, JoinResult.OK);
|
||||||
|
//Server counts as a client, so subtract 1 from MemberCount
|
||||||
else if (MyMultiplayer.Static.MemberLimit > 0 &&
|
else if (MyMultiplayer.Static.MemberLimit > 0 &&
|
||||||
MyMultiplayer.Static.MemberCount + 1 > MyMultiplayer.Static.MemberLimit)
|
MyMultiplayer.Static.MemberCount - 1 >= MyMultiplayer.Static.MemberLimit)
|
||||||
CommitVerdict(info.SteamID, JoinResult.ServerFull);
|
CommitVerdict(info.SteamID, JoinResult.ServerFull);
|
||||||
else if (MySandboxGame.ConfigDedicated.GroupID == 0uL ||
|
else if (MySandboxGame.ConfigDedicated.GroupID == 0uL)
|
||||||
MySandboxGame.ConfigDedicated.GroupID == info.Group && (info.Member || info.Officer))
|
CommitVerdict(info.SteamID, JoinResult.OK);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (MySandboxGame.ConfigDedicated.GroupID == info.Group && (info.Member || info.Officer))
|
||||||
CommitVerdict(info.SteamID, JoinResult.OK);
|
CommitVerdict(info.SteamID, JoinResult.OK);
|
||||||
else
|
else
|
||||||
CommitVerdict(info.SteamID, JoinResult.NotInGroup);
|
CommitVerdict(info.SteamID, JoinResult.NotInGroup);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
CommitVerdict(info.SteamID, info.SteamResponse);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user