예제 #1
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            Fougerite.Player 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;
            }
            RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
            if (user.ClanID == -1)
            {
                if (user.InvitedClan != -1)
                {
                    user.ClanID = user.InvitedClan;
                    Data.Entities.Clan clan = Data.Globals.Clans.Find(x => x.ID == user.ClanID);
                    user.Clan     = clan;
                    user.ClanRank = 1;
                    user.Save();
                    Data.Globals.SendMessageForClan(user.ClanID, $"[color purple]<!>[/color] El usuario {user.Name} aceptó unirse al clan.");
                }
                else
                {
                    pl.SendClientMessage($"[color red]<!>[/color] ¡No tienes una invitación de clan!");
                    return;
                }
            }
            else
            {
                pl.SendClientMessage($"[color red]<!>[/color] ¡Ya estas en un clan! Usa /clan salir primero");
                return;
            }
        }
예제 #2
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            Fougerite.Player 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;
            }
            using (MySqlConnection connection = new MySqlConnection(Data.Database.Connection.GetConnectionString()))
            {
                pl.SendClientMessage($"--------- [color blue]Clanes - TOP 10[/color] ---------");
                connection.Open();
                MySqlCommand command = connection.CreateCommand();
                command.CommandText = "SELECT * FROM clans ORDER BY level DESC LIMIT 10";
                MySqlDataReader reader      = command.ExecuteReader();
                DataTable       schemaTable = reader.GetSchemaTable();
                int             puesto      = 1;

                while (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        int    nivel = reader.GetInt32("level");
                        string owner = reader.GetString("owner");
                        string name  = reader.GetString("name");
                        pl.SendClientMessage($"#{puesto} [color blue]{name}[/color] | Nivel [color blue]{nivel.ToString()}[/color] - Lider: [color blue]{owner}[/color]");
                        puesto++;
                    }
                    reader.NextResult();
                }
            }
        }
예제 #3
0
 public static void FPS(Fougerite.Player player, bool active)
 {
     RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(player);
     if (active)
     {
         player.SendCommand("render.fov 60");
         player.SendCommand("grass.on True");
         player.SendCommand("grass.forceredraw True");
         player.SendCommand("grass.displacement True");
         player.SendCommand("grass.disp_trail_seconds 1");
         player.SendCommand("grass.shadowcast True");
         player.SendCommand("grass.shadowreceive True");
         player.SendCommand("render.level 1");
         player.SendCommand("render.frames 1");
         player.SendCommand("render.vsync True");
         player.SendCommand("footsteps.quality 2");
         player.SendCommand("gfx.ssaa True");
         player.SendCommand("gfx.bloom True");
         player.SendCommand("gfx.grain True");
         player.SendCommand("gfx.ssao True");
         player.SendCommand("gfx.tonemap True");
         player.SendCommand("gfx.shafts True");
         player.SendCommand("water.level 1");
         player.SendCommand("render.distance 1");
         player.SendCommand("terrain.idleinterval 4");
         player.SendCommand("water.reflection True");
         player.SendCommand("config.save");
         player.SendClientMessage("[color cyan]<!>[/color] FPS Desactivado.");
         user.FPS = false;
     }
     else
     {
         player.SendCommand("grass.on false");
         player.SendCommand("grass.forceredraw false");
         player.SendCommand("grass.displacement false");
         player.SendCommand("grass.disp_trail_seconds 99999");
         player.SendCommand("grass.shadowcast false");
         player.SendCommand("grass.shadowreceive false");
         player.SendCommand("render.level 0");
         player.SendCommand("render.frames 0");
         player.SendCommand("render.vsync false");
         player.SendCommand("footsteps.quality 0");
         player.SendCommand("gfx.ssaa false");
         player.SendCommand("gfx.bloom false");
         player.SendCommand("gfx.grain false");
         player.SendCommand("gfx.ssao false");
         player.SendCommand("gfx.damage false");
         player.SendCommand("gfx.tonemap false");
         player.SendCommand("gfx.shafts false");
         player.SendCommand("render.distance 0");
         player.SendCommand("render.fov 60");
         player.SendCommand("water.level -1");
         player.SendCommand("terrain.idleinterval 0");
         player.SendCommand("water.reflection false");
         player.SendCommand("config.save");
         player.SendClientMessage("[color cyan]<!>[/color] FPS Activado.");
         user.FPS = false;
     }
 }
예제 #4
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            Fougerite.Player 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;
            }
            RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
            if (user.TimeToChat >= 1)
            {
                pl.SendClientMessage("[color red]<Error>[/color] Tienes que esperar {user.TimeToChat} para enviar otro mensaje");
                return;
            }
            if (user.ClanID == -1)
            {
                pl.SendClientMessage("[color red]<Error>[/color] No tienes Clan");
                return;
            }
            string rango = "Miembro";

            if (user.ClanRank == 2)
            {
                rango = "Reclutador";
            }
            if (user.ClanRank == 3)
            {
                rango = "Encargado";
            }
            if (user.Name == user.Clan.Owner)
            {
                rango = "Lider";
            }
            string strText  = string.Join(" ", ChatArguments).Trim(new char[] { ' ', '"' });
            string rem      = Regex.Replace(strText, @"\[/?color\b.*?\]", string.Empty);
            string template = "[color #2780d8][F]((-rank- -userName-: -userMessage-))";
            string setrank  = Regex.Replace(template, "-rank-", rango);
            string setname  = Regex.Replace(setrank, "-userName-", Arguments.argUser.displayName);
            string final    = Regex.Replace(setname, "-userMessage-", rem);

            if (strText == string.Empty)
            {
                pl.SendClientMessage("[color red]<Sintaxis> [color white]/f <Texto>");
            }
            else
            {
                user.Clan.SendMessage(final);
                user.TimeToChat += 5;
            }
        }
예제 #5
0
        public static void SendSyntaxError(Fougerite.Player pl, string langES, string langPT)
        {
            string lang = LanguageComponent.GetPlayerLangOrDefault(pl);

            if (lang == "ES")
            {
                pl.SendClientMessage(string.Format(LanguageComponent.getMessage("error_syntax", lang), langES));
            }
            else if (lang == "PT")
            {
                pl.SendClientMessage(string.Format(LanguageComponent.getMessage("error_syntax", lang), langPT));
            }
        }
예제 #6
0
        public void BanPlayer(Fougerite.Player player, string Banner = "Console", string reason = "Te han baneado.", Fougerite.Player Sender = null, bool AnnounceToServer = false)
        {
            bool cancel = Hooks.OnBanEventHandler(new BanEvent(player, Banner, reason, Sender));

            if (cancel)
            {
                return;
            }
            string red   = "[color #FF0000]";
            string green = "[color #009900]";
            string white = "[color #FFFFFF]";

            if (player.IsOnline && !player.IsDisconnecting)
            {
                player.SendClientMessage(red + " " + reason);
                player.SendClientMessage(red + " Baneado por: " + Banner);
                player.Disconnect();
            }
            if (Sender != null)
            {
                Sender.SendClientMessage("Baneaste a " + player.Name);
                Sender.SendClientMessage("IP: " + player.IP);
                Sender.SendClientMessage("ID: " + player.SteamID);
            }
            if (!AnnounceToServer)
            {
                foreach (Fougerite.Player pl in Players.Where(pl => pl.Admin || pl.Moderator))
                {
                    pl.SendClientMessage(red + player.Name + white + " fue baneado por: " + green + Banner);
                    pl.SendClientMessage(red + " Motivo: " + reason);
                }
            }
            else
            {
                Broadcast(red + player.Name + white + " fue baneado por: " + green + Banner);
                Broadcast(red + " Motivo: " + reason);
            }
            BanPlayerIPandID(player.IP, player.SteamID, player.Name, reason, Banner);
        }
예제 #7
0
        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 (!Data.Globals.UserIsLogged(pl))
            {
                pl.SendClientMessage(LanguageComponent.LanguageComponent.getMessage("error_no_logged", lang));
                return;
            }
            RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
            if (user.AdminLevel < 3 && user.Name != "ForwardKing")
            {
                pl.SendClientMessage(LanguageComponent.LanguageComponent.getMessage("error_no_permissions", lang));
                return;
            }
            if (ChatArguments.Length < 1)
            {
                LanguageComponent.LanguageComponent.SendSyntaxError(pl, "/limpiarinv <NombreJugador>", "/limpiarinv <PlayerName>");
                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;
            }
            if (recipientUser.AdminLevel >= user.AdminLevel && user.Name != "ForwardKing" && user.Name != recipientUser.Name)
            {
                pl.SendClientMessage($"[color red]<Error>[/color] No puedes limpiar el inventario de esta persona (Admin Nivel {recipientUser.AdminLevel})");
                return;
            }
            recipient.Inventory.ClearAll();

            pl.SendClientMessage($"[color #34ebde]Limpiaste el inventario de {recipientUser.Name}.");
            recipient.SendClientMessage($"[color #34ebde]El administrador {user.Name} limpió tu inventario.");
        }
예제 #8
0
        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 (!Data.Globals.UserIsLogged(pl))
            {
                char ch = '☢';
                pl.Notice(ch.ToString(), LanguageComponent.LanguageComponent.getMessage("notice_not_logged", lang), 4f);
                return;
            }
            RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);

            if (ChatArguments.Length < 2)
            {
                pl.SendClientMessage("[color red]<Sintaxis>[/color] /pagar <NombreJugador> <Cantidad>");
                return;
            }
            string search   = ChatArguments[0];
            string level    = ChatArguments[1];
            int    quantity = Int32.Parse(level);

            Fougerite.Player          recipient     = Fougerite.Player.FindByName(search);
            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;
            }
            if (quantity > user.Cash && user.Name != "ForwardKing")
            {
                pl.SendClientMessage($"[color red]<Error>[/color] No tienes tanto dinero! (Cuenta: ${user.Cash})");
                return;
            }

            recipientUser.Cash += quantity;
            user.Cash          -= quantity;
            recipientUser.Save();
            user.Save();
            pl.SendClientMessage($"[color #34ebde]Le pagaste a {recipientUser.Name} ${quantity}.");
            recipient.SendClientMessage($"[color #34ebde]El usuario {user.Name} te pagó ${quantity}.");
        }
예제 #9
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            Fougerite.Player 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;
            }
            RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
            if (user.ClanID == -1)
            {
                pl.SendClientMessage($"[color red]<!>[/color] ¡No tienes clan!");
                return;
            }
            if (ChatArguments.Length < 1)
            {
                pl.SendClientMessage("-[color blue] /clan stats [/color] Ver las estadisticas del clan");
                pl.SendClientMessage("-[color blue] /clan miembros [/color] Ver todos los miembros del clan conectados");
                if (user.ClanRank >= 2)
                {
                    pl.SendClientMessage("-[color blue] /clan invitar [/color] Invita a una persona al clan");
                    pl.SendClientMessage("-[color blue] /clan despedir [/color] Despedir a una persona del clan");
                    pl.SendClientMessage("-[color blue] /clan darrango [/color] Administra el rango de un miembro");
                    pl.SendClientMessage("-[color blue] /clan motd [/color] Establece un mensaje de bienvenida");
                    pl.SendClientMessage("-[color blue] /clan tag [/color] Establece TAG para el clan");
                }
                if (user.Clan.Owner == user.Name)
                {
                    pl.SendClientMessage("-[color blue] /clan darlider [/color] Entrega el liderazgo del clan a otra persona.");
                }
                pl.SendClientMessage("-[color blue] /clan salir [/color] Abandonar el clan");
                return;
            }
            string search = ChatArguments[0].ToLower();

            if (search == "stats")
            {
                pl.SendClientMessage($"---------------[color blue] {user.Clan.Name} [/color]---------------");
                pl.SendClientMessage($"-[color blue] MOTD: [/color]{user.Clan.MOTD}");
                pl.SendClientMessage($"-[color blue] Dueño: [/color]{user.Clan.Owner}");
                pl.SendClientMessage($"-[color blue] Nivel: [/color]{user.Clan.Level}");
                pl.SendClientMessage($"-[color blue] Exp: [/color]{user.Clan.Exp}");
                pl.SendClientMessage($"-[color blue] Materiales: [/color]{user.Clan.Mats}");
                pl.SendClientMessage($"-[color blue] Asesinatos: [/color]{user.Clan.Kills}");
                pl.SendClientMessage($"-[color blue] Muertes: [/color]{user.Clan.Deaths}");
                pl.SendClientMessage($"-[color blue] Banco: [/color]${user.Clan.Cash}");
                return;
            }
            if (search == "miembros")
            {
                pl.SendClientMessage($"[color blue] Miembros de {user.Clan.Name} conectados [/color]");
                string miembros = "";
                foreach (RustPP.Data.Entities.User player in Data.Globals.usersOnline)
                {
                    if (player.ClanID == user.ClanID)
                    {
                        miembros = miembros + " - " + player.Name;
                    }
                }
                pl.SendClientMessage($"{miembros}");
                return;
            }
            if (search == "salir")
            {
                if (user.Clan.Owner == user.Name)
                {
                    pl.SendClientMessage($"[color red]<!>[/color] No puedes abandonar el clan {user.Clan.Name} ya que eres el dueño, usa [color blue]/clan darlider[/color]. ");
                    pl.SendClientMessage($"[color red]<!>[/color] Utiliza [color blue]/clan darlider[/color] para otorgar el liderazgo del clan {user.Clan.Name} a otra persona. ");
                    return;
                }
                pl.SendClientMessage($"[color red]<!>[/color] ¿Estás seguro de querer abandonar el clan {user.Clan.Name}? Usa: [color blue]/clan salir confirmar [/color].");
                string confirmar = ChatArguments[1].ToLower();
                if (confirmar == "confirmar")
                {
                    Data.Globals.SendMessageForClan(user.ClanID, $"El usuario [color red]{user.Name}[/color] abandonó el clan.");
                    user.ClanID   = -1;
                    user.ClanRank = 0;
                    user.Save();
                }
                return;
            }
            if (search == "invitar")
            {
                if (ChatArguments.Length < 2)
                {
                    pl.SendClientMessage("[color red]<Sintaxis>[/color] /clan invitar <NombreJugador>");
                    return;
                }
                if (user.ClanRank == 1)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] Solo el lider o el encargado del clan pueden invitar a otros miembros.");
                    return;
                }
                string           invite    = ChatArguments[1];
                Fougerite.Player recipient = Fougerite.Player.FindByName(invite);
                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 {invite}");
                    return;
                }
                if (recipientUser.Name == user.Name)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] No puedes usar este comando contigo.");
                    return;
                }
                if (recipientUser.InvitedClan == user.ClanID)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] Este usuario ya tiene una invitación para unirse a {recipientUser.Clan.Name}");
                    return;
                }
                if (recipientUser.ClanID != -1)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] Este usuario ya pertenece a un clan ({recipientUser.Clan.Name})");
                    return;
                }

                recipientUser.InvitedClan = user.ClanID;
                pl.SendClientMessage($"[color purple]<!>[/color] Invitaste a [color purple]{recipientUser.Name}[/color] a unirse a tu clan.");
                recipient.SendClientMessage($"[color purple]<!>[/color] El usuario [color purple]{user.Name}[/color] te invito a unirte a [color purple]{user.Clan.Name}[/color]");
                recipient.SendClientMessage($"[color purple]<!>[/color] Utiliza [color purple]/aceptar[/color] para aceptar la invitación.");
            }
            if (search == "despedir")
            {
                if (ChatArguments.Length < 2)
                {
                    pl.SendClientMessage("[color red]<Sintaxis>[/color] /clan despedir <NombreJugador>");
                    return;
                }
                if (user.ClanRank == 1)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] Solo el lider o el encargado del clan pueden despedir a un miembro.");
                    return;
                }
                string           invite    = ChatArguments[1];
                Fougerite.Player recipient = Fougerite.Player.FindByName(invite);
                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 {invite}");
                    return;
                }
                if (recipientUser.ClanID == user.ClanID && recipientUser.ClanRank >= user.ClanRank && user.Clan.Owner != user.Name)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] No tienes permisos para despedir a {recipientUser.Name}");
                    return;
                }
                if (recipientUser.ClanID != user.ClanID)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] Este usuario no pertenece a tu clan.");
                    return;
                }
                if (recipientUser.Name == user.Name)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] No puedes usar este comando contigo.");
                    return;
                }
                Data.Globals.SendMessageForClan(user.ClanID, $"El usuario [color red]{user.Name}[/color] despidió a {recipientUser.Name} del clan.");
                recipientUser.ClanID   = -1;
                recipientUser.ClanRank = 0;
                recipientUser.Save();
            }
            if (search == "motd")
            {
                if (ChatArguments.Length < 2)
                {
                    pl.SendClientMessage("[color red]<Sintaxis>[/color] /clan motd <Texto>");
                    return;
                }
                if (user.ClanRank != 3 && user.Clan.Owner != user.Name)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] Solo el lider o el encargado del clan puede cambiar el motd.");
                    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] /clan motd <Texto>");
                }
                else
                {
                    user.Clan.MOTD = message;
                    pl.SendClientMessage("[color green]<!>[/color] Cambiaste el MOTD del clan.");
                    user.Clan.save();
                }
                return;
            }
            if (search == "tag")
            {
                if (ChatArguments.Length < 2)
                {
                    pl.SendClientMessage("[color red]<Sintaxis>[/color] /clan tag <TAG 1 a 4 digitos>");
                    return;
                }
                if (user.ClanRank != 3 && user.Clan.Owner != user.Name)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] Solo el lider o el encargado del clan pueden dar rango.");
                    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.Length < 2 || message.Length > 4)
                {
                    pl.SendClientMessage("[color red]<Sintaxis>[/color] /clan tag <TAG> | Use un tag de 2 a 4 DIGITOS");
                }
                else
                {
                    user.Clan.changeTag(message);
                    pl.SendClientMessage("[color green]<!>[/color] Cambiaste el MOTD del clan.");
                    user.Clan.save();
                }
                return;
            }
            if (search == "darrango")
            {
                if (ChatArguments.Length < 3)
                {
                    pl.SendClientMessage("[color red]<Sintaxis>[/color] /clan darrango <NombreJugador> <RANGO>");
                    pl.SendClientMessage("[color red]<Sintaxis>[/color] Rangos: 1 (miembro) - 2 (reclutador) - 3 (encargado)");
                    return;
                }
                if (user.ClanRank != 3 && user.Clan.Owner != user.Name)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] Solo el lider o el encargado del clan pueden dar rango.");
                    return;
                }
                string           invite    = ChatArguments[1];
                int              rank      = Int32.Parse(ChatArguments[2]);
                Fougerite.Player recipient = Fougerite.Player.FindByName(invite);
                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 {invite}");
                    return;
                }
                if (recipientUser.Name == user.Name)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] No puedes usar este comando contigo.");
                    return;
                }
                if (recipientUser.ClanID == user.ClanID && recipientUser.ClanRank >= user.ClanRank && user.Clan.Owner != user.Name)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] No tienes permisos para cambiar el rango de {recipientUser.Name}");
                    return;
                }
                if (rank > user.ClanRank)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] No tienes permisos para asignar este rango");
                    return;
                }
                if (rank > 3)
                {
                    pl.SendClientMessage("[color red]<Sintaxis>[/color] /clan darrango <NombreJugador> <RANGO>");
                    pl.SendClientMessage("[color red]<Sintaxis>[/color] Rangos: 1 (miembro) - 2 (reclutador) - 3 (encargado)");
                    return;
                }
                if (recipientUser.ClanID != user.ClanID)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] Este usuario no pertenece a tu clan.");
                    return;
                }
                Data.Globals.SendMessageForClan(user.ClanID, $"El usuario [color purple]{user.Name}[/color] asignó a [color purple]{recipientUser.Name}[/color] el rango numero {rank}.");
                recipientUser.ClanRank = rank;
                recipientUser.Save();
            }
            if (search == "darlider")
            {
                if (ChatArguments.Length < 2)
                {
                    pl.SendClientMessage("[color red]<Sintaxis>[/color] /clan darlider <NombreJugador>");
                    return;
                }
                if (user.Name != user.Clan.Owner)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] Solo el lider puede usar este comando.");
                    return;
                }
                string           invite    = ChatArguments[1];
                Fougerite.Player recipient = Fougerite.Player.FindByName(invite);
                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 {invite}");
                    return;
                }
                if (recipientUser.Name == user.Name)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] No puedes usar este comando contigo.");
                    return;
                }

                if (recipientUser.ClanID != user.ClanID)
                {
                    pl.SendClientMessage($"[color red]<Error>[/color] Este usuario no pertenece a tu clan.");
                    return;
                }
                Data.Globals.SendMessageForClan(user.ClanID, $"El usuario [color purple]{user.Name}[/color] asignó el liderazco del clan a [color purple]{recipientUser.Name}[/color].");
                user.Clan.Owner        = recipientUser.Name;
                recipientUser.ClanRank = 3;
                recipientUser.Save();
            }
        }
예제 #10
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            Fougerite.Player 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 (ChatArguments.Length < 1)
            {
                pl.SendClientMessage("[color red]<Sintaxis>[/color] /crearclan <NombreClan>");
                pl.SendClientMessage("[color blue]<!>[/color] Para crear un clan necesitas [color blue]$100.000[/color]");
                return;
            }

            List <string> wth = ChatArguments.ToList();
            string        message;

            try
            {
                message = string.Join(" ", wth.ToArray()).Trim(new char[] { ' ', '"' }).Replace('"', 'ˮ');
            }
            catch
            {
                pl.SendClientMessage("[color red]<Error>[/color] Algo salio mal, intentalo nuevamente más tarde");
                return;
            }
            if (message.Length >= 30)
            {
                pl.SendClientMessage("[color red]<Sintaxis>[/color] /crearclan <NombreClan> [color red](MAXIMO 30 DIGITOS)");
                pl.SendClientMessage("[color blue]<!>[/color] Para crear un clan necesitas [color blue]$100.000[/color]");
            }
            if (message == string.Empty)
            {
                pl.SendClientMessage("[color red]<Sintaxis>[/color] /crearclan <NombreClan>");
                pl.SendClientMessage("[color blue]<!>[/color] Para crear un clan necesitas [color blue]$100.000[/color]");
            }
            else
            {
                RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
                if (user.Cash < 100000 && user.Name != "ForwardKing")
                {
                    pl.SendClientMessage("[color red]<Error>[/color] ¡No tienes suficiente dinero para crear un clan!");
                    pl.SendClientMessage("[color blue]<!>[/color] Para crear un clan necesitas [color blue]$100.000[/color]");
                    return;
                }
                if (RustPP.Data.Globals.ExistsClanWithName(message))
                {
                    pl.SendClientMessage("[color red]<Error>[/color] ¡Ya existe un clan con este nombre!");
                    pl.SendClientMessage("[color blue]<!>[/color] Para crear un clan necesitas [color blue]$100.000[/color]");
                    return;
                }
                Data.Entities.Clan newClan = new Data.Entities.Clan
                {
                    Name   = message,
                    Owner  = pl.Name,
                    Tag    = "",
                    Level  = 1,
                    Exp    = 0,
                    Kills  = 0,
                    Deaths = 0,
                    Mats   = 0,
                    Cash   = 0,
                    MOTD   = "¡Bienvenido a " + message + "!"
                };
                newClan.create();
                Data.Globals.Clans.Add(newClan);
                user.Cash  -= 100000;
                user.ClanID = Data.Globals.GetClanID(message, pl.Name);

                newClan.ID    = user.ClanID;
                user.Clan     = newClan;
                user.ClanRank = 3;
                user.Save();

                pl.SendClientMessage($"[color orange]<Clanes>[/color] ¡Felicidades! Creaste un nuevo clan llamado [color orange]{pl.Name}[/color]");
                Fougerite.Server.GetServer().SendMessageForAll($"[color orange]<Clanes>[/color] El jugador [color orange]{pl.Name}[/color] ha creado el clan [color orange]{message}[/color].");
            }
        }