コード例 #1
0
        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
        }
コード例 #2
0
 /// <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);
 }