CanClientLogin
Called when a player attempt to login the server
Usage
- Return type bool to prevent default behavior
Example Autogenerated
csharp
private object CanClientLogin( Connection connection )
{
Puts( "CanClientLogin works!" );
return null;
}
Location
- RustCore::IOnUserApprove(Connection connection)
csharp
private object IOnUserApprove(Connection connection)
{
string playerName = connection.username;
string connectionId = connection.userid.ToString();
string connectionIp = Regex.Replace(connection.ipaddress, ipPattern, "");
uint authLevel = connection.authLevel;
// Update name and groups with permissions
if (permission.IsLoaded)
{
permission.UpdateNickname(connectionId, playerName);
OxideConfig.DefaultGroups defaultGroups = Interface.Oxide.Config.Options.DefaultGroups;
if (!permission.UserHasGroup(connectionId, defaultGroups.Players))
{
permission.AddUserGroup(connectionId, defaultGroups.Players);
}
if (authLevel >= 2 && !permission.UserHasGroup(connectionId, defaultGroups.Administrators))
{
permission.AddUserGroup(connectionId, defaultGroups.Administrators);
}
}
// Let covalence know
Covalence.PlayerManager.PlayerJoin(connection.userid, playerName);
// Call hooks for plugins
object loginSpecific = Interface.CallHook("CanClientLogin", connection);
object loginCovalence = Interface.CallHook("CanUserLogin", playerName, connectionId, connectionIp);
object canLogin = loginSpecific is null ? loginCovalence : loginSpecific;
if (canLogin is string || canLogin is bool loginBlocked && !loginBlocked)
{
ConnectionAuth.Reject(connection, canLogin is string ? canLogin.ToString() : lang.GetMessage("ConnectionRejected", this, connectionId));
return true;
}
// Call hooks for plugins
object approvedSpecific = Interface.CallHook("OnUserApprove", connection);
object approvedCovalence = Interface.CallHook("OnUserApproved", playerName, connectionId, connectionIp);
return approvedSpecific is null ? approvedCovalence : approvedSpecific;
}