Пример #1
0
    protected void OnPlayerConnecting([FromSource] Player player, string playerName, dynamic setKickReason, dynamic deferrals)
    {
        deferrals.defer();
        deferrals.update("Retrieving connection lottery information...");

        /*
         * if (ServerInfo.Clients < ServerInfo.MaxClients)
         * {
         *  deferrals.done();
         * }
         * else*/
        {
            ConnectingPlayer connectingPlayer =
                new ConnectingPlayer(player,
                                     setKickReason,
                                     deferrals,
                                     DEFAULT_TIMEOUT_MS);
            int ticket = lottery.Add(connectingPlayer);

            // Remove connecting player from lottery on loading timeout.
            connectingPlayer.OnTimeout += (() =>
            {
                lottery.Remove(connectingPlayer);
            });
        }
    }
Пример #2
0
    private void AcceptPlayer(ConnectingPlayer player)
    {
        player.Accept();
        player.InitTimeout(DEFAULT_TIMEOUT_MS);

        player.OnTimeout += (() =>
        {
        });

        TriggerEvent("base:playerAccepted", player.Player.Handle);
    }
Пример #3
0
    private void SetupCommands()
    {
        RegisterCommand("connectlottery", new Action <int, List <object>, string>((source, args, raw) =>
        {
            Log.Plain("--------------------------------------------------------------------------");
            Log.Plain("pending players: " + lottery.Count);
            Log.Plain("last extracted ticket: " + lastTicket);

            for (int ticket = 0; ticket < lottery.Count; ticket++)
            {
                ConnectingPlayer player = lottery[ticket];

                Log.Plain(player.Player.GetStringInfo() +
                          " ticket:" + ticket +
                          " priority:" + player.Priority);
            }

            Log.Plain("--------------------------------------------------------------------------");
        }), true);
    }
    public void UpdatePlayer(ConnectingPlayer player, int ticket)
    {
        string message = "Your ticket is " + ticket + ".";

        if (priority.Available)
        {
            if (priority.Count == 1)
            {
                message += "There is a priorital player in queue.";
            }
            else
            {
                message += "There are " + priority.Count + " priorital players in queue.";
            }
        }
        else
        {
            message += "The draw will occur soon.";
        }
    }
Пример #5
0
        //Oxide Hook
        void CanClientLogin(Network.Connection connection)
        {
            //Checks if the player has been verified before, if not -> verify player.
            if (!verifiedPlayers.Contains(connection.userid.ToString()))
            {
                if (steamAPIKey != "insertAPIKeyHere")
                {
                    string url = "http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=" + steamAPIKey + "&format=json&input_json={\"appids_filter\":[252490],\"steamid\":" + connection.userid + "}";

                    ConnectingPlayer connectingPlayer = new ConnectingPlayer(connection);
                    webRequests.EnqueueGet(url, (code, response) => connectingPlayer.connectionResponse = WebRequestCallback(code, response), this, null, 1.5f);


                    RespondOnWebRequest(connectingPlayer);
                }
                else
                {
                    ConnectionAuth.Reject(connection, "MinimumPlaytime has no steamAPI key entered by the server owner yet.");
                }
            }
        }
Пример #6
0
 private void RespondOnWebRequest(ConnectingPlayer connectingPlayer)
 {
     timer.Once(timerDelay, () =>
     {
         if (connectingPlayer.connectionResponse != null)
         {
             if (connectingPlayer.connectionResponse.Equals("LoginAllowed"))
             {
                 verifiedPlayers.Add(connectingPlayer.connection.userid.ToString());
                 Config["verifiedPlayers"] = verifiedPlayers;
                 SaveConfig();
             }
             else
             {
                 ConnectionAuth.Reject(connectingPlayer.connection, connectingPlayer.connectionResponse);
             }
         }
         else
         {
             RespondOnWebRequest(connectingPlayer);
         }
     });
 }