Пример #1
0
    public static bool ShowBans(Player player)
    {
        long rows = 0;

        using var con    = CreateConnection();
        cmd.CommandText  = $"SELECT * FROM banned_players;";
        using var reader = cmd.ExecuteReader();
        if (reader.HasRows)
        {
            var dialog = new TablistDialog($" ", new[] { "Name", "Start Date", "Expiry Date", "Days Left" }, "Cerrar");
            while (reader.Read())
            {
                var expiryDate = reader.GetDateTime("expiryDate");
                var diff       = (expiryDate.Date - DateTime.Now.Date).Days;
                dialog.Add(
                    new[]
                {
                    reader.GetString("bannedPlayer"),
                    ParseData.ToStringDateTime(reader.GetDateTime("startDate")),
                    ParseData.ToStringDateTime(expiryDate),
                    (diff <= 0 ? "0" : diff.ToString())
                }
                    );
                ++rows;
            }
            dialog.Caption = $"Banned Accounts: {rows}";
            dialog.Show(player);
            return(true);
        }
        return(false);
    }
Пример #2
0
 public static void ShowStatsDb(Player player, string playername)
 {
     try
     {
         using var con    = CreateConnection();
         cmd.CommandText  = $"call getPlayerInfo('{playername}');";
         using var reader = cmd.ExecuteReader();
         if (reader.Read())
         {
             var stats  = new TablistDialog("Stats", 2, "Aceptar", "");
             var id     = reader.GetInt32("accountNumber");
             var skinid = reader.GetInt32("skinid");
             stats.Add(new[] { "Name", reader.GetString("name") });
             stats.Add(new[] { "Account Number", id.ToString() });
             stats.Add(new[] { "Registry Date", ParseData.ToStringDateTime(reader.GetDateTime("registryDate")) });
             stats.Add(new[] { "Last Connection",
                               !Player.IsPlayerOnline(id) ? ParseData.ToStringDateTime(reader.GetDateTime("lastConnection")) : "Connected" });
             stats.Add(new[] { "Total Kills", reader.GetInt32("totalKills").ToString() });
             stats.Add(new[] { "Total Deaths", reader.GetInt32("totalDeaths").ToString() });
             stats.Add(new[] { "Killing Sprees", reader.GetInt32("killingSprees").ToString() });
             int level = reader.GetInt32("levelGame");
             stats.Add(new[] { "Game Level", level.ToString() });
             stats.Add(new[] { "Rank", Rank.GetRankLevel(level) });
             stats.Add(new[] { "Next Rank", Rank.GetNextRankLevel(level) });
             stats.Add(new[] { "Dropped Flags", reader.GetInt32("droppedFlags").ToString() });
             stats.Add(new[] { "Headshots", reader.GetInt32("headshots").ToString() });
             stats.Add(new[] { "Admin Level", reader.GetInt32("levelAdmin").ToString() });
             stats.Add(new[] { "VIP Level", reader.GetInt32("levelVip").ToString() });
             stats.Add(new[] { "Saved Skin", skinid == -1 ? "None" : skinid.ToString() });
             stats.Show(player);
         }
         else
         {
             player.SendClientMessage(Color.Red, "Error: Ese nombre no se encuentra en la base de datos del servidor.");
         }
     }
     catch (MySqlException e)
     {
         player.SendErrorMessage(e);
     }
 }
Пример #3
0
    public static void StatsPlayer(Player player, int playerid = -1)
    {
        Player player1 = (playerid != -1 ? Player.Find(player, playerid) : player);
        var    level   = player1.Data.LevelGame;

        new MessageDialog($"Name: {player1.Name}",
                          $"{Color.Yellow}ID: {Color.White}{player1.Id}" +
                          $"\n{Color.Yellow}Account Number: {Color.White}{player1.Data.AccountNumber}" +
                          $"\n{Color.Yellow}Registry Date: {Color.White}{ParseData.ToStringDateTime(player1.Data.RegistryDate)}" +
                          $"\n{Color.Yellow}Kills for Round: {Color.White}{player1.Kills}" +
                          $"\n{Color.Yellow}Deaths for Round: {Color.White}{player1.Deaths}" +
                          $"\n{Color.Yellow}Total Kills: {Color.White}{player1.Data.TotalKills}" +
                          $"\n{Color.Yellow}Total Deaths: {Color.White}{player1.Data.TotalDeaths}" +
                          $"\n{Color.Yellow}Admin Level: {Color.White}{player1.Data.LevelAdmin}" +
                          $"\n{Color.Yellow}VIP Level: {Color.White}{player1.Data.LevelVip}" +
                          $"\n{Color.Yellow}Rank: {Color.White}{Rank.GetRankLevel(level)}" +
                          $"\n{Color.Yellow}Level: {Color.White}{player1.Data.LevelGame}" +
                          $"\n{Color.Yellow}Next Rank: {Color.White}{Rank.GetNextRankLevel(level)}" +
                          $"\n{Color.Yellow}DroppedFlags: {Color.White}{player1.Data.DroppedFlags}" +
                          $"\n{Color.Yellow}Killing Sprees: {Color.White}{player1.Data.KillingSprees}" +
                          $"\n{Color.Yellow}Headshots: {Color.White}{player1.Data.Headshots}" +
                          $"\n{Color.Yellow}Adrenaline: {Color.White}{player1.Adrenaline}/100", "Cerrar", "").Show(player);
    }
    private static void NameBan(Player player, int playerid, int days, int hours, int minutes, int seconds, string reason)
    {
        if (player.IsAdminLevel(3))
        {
            return;
        }
        Player player1 = Player.Find(player, playerid);

        IsTotalDaysRange(player, days);
        IsHoursRange(player, hours);
        IsMinutesRange(player, minutes);
        IsSecondsRange(player, seconds);
        if (reason.Length > 50)
        {
            player.SendClientMessage(Color.Red, "Error: La razón no puede tener mas de 50 caracteres.");
            return;
        }
        try
        {
            var expiryDate = Account.InsertBan(player1, player, reason, days, hours, minutes, seconds);
            BasePlayer.SendClientMessageToAll(Color.Red, $"* {player.Name} ha prohíbido la cuenta de {player1.Name} por {days} {(days == 1 ? "día" : "días")} [Razón: {reason}].");
            player1.SendClientMessage(Color.Red, $"* Tu cuenta quedará desbloqueada en esta fecha y hora: {ParseData.ToStringDateTime((DateTime)expiryDate)}.");
            player1.Kick();
            SendMessageToAdmins(player, "nameban");
        }
        catch (MySqlException e)
        {
            player.SendErrorMessage(e);
        }
    }
Пример #5
0
    public void RegisterEvents(BaseMode gameMode)
    {
        gameMode.PlayerConnected += (sender, e) =>
        {
            var player = sender as Player;
            try
            {
                DateTime?expiryDate;
                if ((expiryDate = IsBanned(player)) != null)
                {
                    if (expiryDate > DateTime.Now)
                    {
                        player.SendClientMessage(Color.Red, $"* Esta cuenta está prohíbida. La cuenta quedará desbloqueada en esta fecha y hora: {ParseData.ToStringDateTime((DateTime)expiryDate)}.");
                        player.Kick();
                        return;
                    }
                    DeleteBan(player.Name);
                }

                if (Load(player, out var password))
                {
                    player.Account = AccountState.Login;
                    player.ShowDialogLogin(password);
                }
                else
                {
                    player.Account = AccountState.Register;
                    player.ShowDialogRegister();
                }
            }
            catch (MySqlException ex)
            {
                player.SendErrorMessage(ex);
            }
        };
    }
Пример #6
0
 private static void DateTimeServer(Player player) =>
 player.SendClientMessage(Color.Orange, $"--> Fecha y hora local del servidor: {Color.White}{ParseData.ToStringDateTime(DateTime.Now)}");