public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            var pl = Fougerite.Server.Cache[Arguments.argUser.userID];

            if (AuthComponent.UserIsLogged(pl))
            {
                User user = Data.Globals.usersOnline.FindLast(x => x.Name == pl.Name);
                if (ChatArguments.Length < 2)
                {
                    pl.SendClientMessage("[color red]<Sintaxis>[/color] /reportar <NombreJugador> <Motivo>");
                    return;
                }
                string           search    = ChatArguments[0];
                Fougerite.Player recipient = Fougerite.Player.FindByName(search);
                if (!Data.Globals.UserIsLogged(recipient))
                {
                    pl.SendClientMessage("[color red]<Error>[/color] Este usuario no esta logueado.");
                    return;
                }
                RustPP.Data.Entities.User recipientUser = Data.Globals.GetInternalUser(recipient);
                if (recipient == null)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] No se encontró al usuario {search}");
                    return;
                }
                List <string> wth = ChatArguments.ToList();
                wth.Remove(wth[0]);
                string message;
                try
                {
                    message = string.Join(" ", wth.ToArray()).Replace(search, "").Trim(new char[] { ' ', '"' }).Replace('"', 'ˮ');
                }
                catch
                {
                    pl.SendClientMessage("[color red]<Error>[/color] Algo salio mal, intentalo nuevamente más tarde");
                    return;
                }
                if (message == string.Empty)
                {
                    pl.SendClientMessage("[color red]<Sintaxis>[/color] /reportar <NombreJugador> <Motivo>");
                }
                else
                {
                    pl.SendClientMessage($"[color red]Reportaste a {recipient.Name} por {message}.");

                    foreach (RustPP.Data.Entities.User usuario in RustPP.Data.Globals.usersOnline)
                    {
                        if (usuario.AdminLevel >= 1)
                        {
                            usuario.Player.SendClientMessage($"[color red]<!>[/color] [color #f77777]{pl.Name} reporto a {recipient.Name} por: {message}");
                        }
                    }
                }
            }
            else
            {
                pl.SendClientMessage("[color red]<Error>[/color] Primero debes estar conectado (Utiliza [color orange] /login[/color])");
            }
        }
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            var    pl   = Fougerite.Server.Cache[Arguments.argUser.userID];
            string lang = LanguageComponent.LanguageComponent.GetPlayerLangOrDefault(pl);

            if (!RustPP.Data.Globals.UserIsLogged(pl))
            {
                char ch = '☢';
                pl.Notice(ch.ToString(), LanguageComponent.LanguageComponent.getMessage("notice_not_logged", lang), 4f);
                return;
            }
            if (!pl.Inventory.HasItem("Weapon Part 1") ||
                !pl.Inventory.HasItem("Weapon Part 2") ||
                !pl.Inventory.HasItem("Weapon Part 3") ||
                !pl.Inventory.HasItem("Weapon Part 4") ||
                !pl.Inventory.HasItem("Weapon Part 5") ||
                !pl.Inventory.HasItem("Weapon Part 6") ||
                !pl.Inventory.HasItem("Weapon Part 7"))
            {
                pl.SendClientMessage($"[color red]<Error>[/color] Necesitas todas las partes de Arma para canjearlas (Del 1 a la 7).");
                return;
            }

            RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
            int            randomKit       = Randomizer.Next(0, 5);
            int            randomMod       = Randomizer.Next(0, 3);
            string         mod             = ModList[randomMod];
            List <KitItem> kit             = RewardList[randomKit];

            if (pl.Inventory.FreeSlots >= 3)
            {
                pl.Inventory.RemoveItem("Weapon Part 1", 1);
                pl.Inventory.RemoveItem("Weapon Part 2", 1);
                pl.Inventory.RemoveItem("Weapon Part 3", 1);
                pl.Inventory.RemoveItem("Weapon Part 4", 1);
                pl.Inventory.RemoveItem("Weapon Part 5", 1);
                pl.Inventory.RemoveItem("Weapon Part 6", 1);
                pl.Inventory.RemoveItem("Weapon Part 7", 1);
                foreach (KitItem item in kit)
                {
                    pl.Inventory.AddItem(item.Item, item.Quantity);
                    pl.SendClientMessage($"[color green]<!>[/color] Recibiste{item.Item} x {item.Quantity}.");
                }
                pl.SendClientMessage($"[color green]<!>[/color] Recibiste {mod} x 1.");
                pl.Inventory.AddItem(mod);
            }
            else
            {
                pl.SendClientMessage($"[color red]<Error>[/color] No puedes cambiar las Weapon Parts por que no tienes espacio en el inventario (3).");
            }
        }
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            var pl = Fougerite.Server.Cache[Arguments.argUser.userID];

            if (RustPP.Components.AuthComponent.AuthComponent.UserIsLogged(pl))
            {
                if (ChatArguments.Length == 0)
                {
                    pl.SendClientMessage("[color red]<Sintaxis>[/color] /saveloc <Nombre>");
                    return;
                }
                RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
                if (user.AdminLevel < 3 && user.Name != "ForwardKing")
                {
                    pl.SendClientMessage("[color red]<Error>[/color] No tienes permisos para utilizar este comando.");
                    return;
                }
                using (MySqlConnection connection = new MySqlConnection(Data.Database.Connection.GetConnectionString()))
                {
                    connection.Open();
                    MySqlCommand command = connection.CreateCommand();

                    command.CommandText = "INSERT INTO saved_locations (user_id, x, y, z, name) VALUES (@userId, @x, @y, @z, @name)";
                    command.Parameters.AddWithValue("@userId", user.ID);
                    command.Parameters.AddWithValue("@x", pl.Location.x);
                    command.Parameters.AddWithValue("@y", pl.Location.y);
                    command.Parameters.AddWithValue("@z", pl.Location.z);
                    command.Parameters.AddWithValue("@name", ChatArguments[0]);
                    MySqlDataReader reader = command.ExecuteReader();
                    pl.SendClientMessage($"[color orange]<Admin> [/color]Guardaste la ubicación {ChatArguments[0]}");
                }
            }
            else
            {
                pl.SendClientMessage("[color red]<Error>[/color] Primero debes estar conectado (Utiliza [color orange] /login[/color])");
            }
        }
Example #4
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            var pl = Fougerite.Server.Cache[Arguments.argUser.userID];

            RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
            string lang = LanguageComponent.LanguageComponent.GetPlayerLangOrDefault(pl);

            if (!RustPP.Data.Globals.UserIsLogged(pl))
            {
                char ch = '☢';
                pl.Notice(ch.ToString(), LanguageComponent.LanguageComponent.getMessage("notice_not_logged", lang), 4f);
                return;
            }

            if (ChatArguments.Length < 1)
            {
                pl.SendClientMessage("[color red]<Sintaxis>[/color] /tp <Nombre>");
                pl.SendClientMessage("Nombres: small - factory - vale - big");
                pl.SendClientMessage("[color cyan]- Costo:[/color] $100");
                return;
            }
            if (user.TimeToTP >= 1)
            {
                pl.SendClientMessage($"[color red]<Error>[/color] Te faltan {user.TimeToTP} segundos para usar un TP.");
                return;
            }
            if (user.Cash < 100)
            {
                int valor = 100 - user.Cash;
                pl.SendClientMessage($"[color red]<Error>[/color] Te faltan $ {valor} para usar TP. (Valor: $100)");
                return;
            }
            string search = ChatArguments[0].ToLower();

            if (search == "small")
            {
                int     number = Randomizer.Next(0, 4);
                Vector3 pos    = Small[number];
                pl.TeleportTo(pos);
                Fougerite.Server.GetServer().SendMessageForAll($"[color yellow]<!>[/color] {pl.Name} se teletransportó a Small.");
                user.TimeToTP = 60;
                user.Cash    -= 100;
            }
            else if (search == "factory")
            {
                int     number = Randomizer.Next(0, 3);
                Vector3 pos    = Factory[number];
                pl.TeleportTo(pos);
                Fougerite.Server.GetServer().SendMessageForAll($"[color yellow]<!>[/color] {pl.Name} se teletransportó a Factory.");
                user.TimeToTP = 60;
                user.Cash    -= 100;
            }
            else if (search == "vale")
            {
                int     number = Randomizer.Next(0, 8);
                Vector3 pos    = Vale[number];
                pl.TeleportTo(pos);
                Fougerite.Server.GetServer().SendMessageForAll($"[color yellow]<!>[/color] {pl.Name} se teletransportó a Vale.");
                user.TimeToTP = 60;
                user.Cash    -= 100;
            }
            else if (search == "big")
            {
                int     number = Randomizer.Next(0, 5);
                Vector3 pos    = Big[number];
                pl.TeleportTo(pos);
                Fougerite.Server.GetServer().SendMessageForAll($"[color yellow]<!>[/color] {pl.Name} se teletransportó a Big.");
                user.TimeToTP = 60;
                user.Cash    -= 100;
            }
            else
            {
                pl.SendClientMessage("[color red]<Sintaxis>[/color] /tp <Nombre>");
                pl.SendClientMessage("Nombres: small - factory - vale - big");
                pl.SendClientMessage("[color cyan]- Costo:[/color] $100");
                return;
            }
        }