private object IOnUserApprove(ClientInfo client) { // Let covalence know Covalence.PlayerManager.PlayerJoin(client.playerId, client.playerName); // Call out and see if we should reject object canLogin = Interface.Call("CanClientLogin", client) ?? Interface.Call("CanUserLogin", client.playerName, client.playerId, client.ip); // TODO: Localization if (canLogin is string || canLogin is bool && !(bool)canLogin) { string reason = canLogin is string?canLogin.ToString() : "Connection was rejected"; // TODO: Localization GameUtils.KickPlayerData kickData = new GameUtils.KickPlayerData(GameUtils.EKickReason.PlayerLimitExceeded, 0, default(DateTime), reason); GameUtils.KickPlayerForClientInfo(client, kickData); return(true); } // Call game and covalence hooks return(Interface.Call("OnUserApprove", client) ?? Interface.Call("OnUserApproved", client.playerName, client.playerId, client.ip)); // TODO: Localization }
/// <summary> /// Kicks the player from the game /// </summary> /// <param name="reason"></param> public void Kick(string reason) { GameUtils.KickPlayerData kickData = new GameUtils.KickPlayerData(GameUtils.EKickReason.ManualKick, 0, DateTime.Now, reason); GameUtils.KickPlayerForClientInfo(client, kickData); }