示例#1
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 (!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.AdminLevel != 6)
            {
                return;
            }
            string invite = ChatArguments[0];

            if (invite != string.Empty)
            {
                user.PrefabName     = invite;
                user.SpawningPrefab = true;
            }
            else
            {
                user.SpawningPrefab = false;
            }
        }
        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 (!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 < 1 && user.Name != "ForwardKing")
            {
                pl.SendClientMessage(LanguageComponent.LanguageComponent.getMessage("error_no_permissions", lang));
                return;
            }
            pl.Inventory.RemoveItem(30);
            pl.Inventory.RemoveItem(36);
            pl.Inventory.RemoveItem(37);
            pl.Inventory.RemoveItem(38);
            pl.Inventory.RemoveItem(39);

            pl.Inventory.AddItemTo("Invisible Helmet", 36, 1);
            pl.Inventory.AddItemTo("Invisible Vest", 37, 1);
            pl.Inventory.AddItemTo("Invisible Pants", 38, 1);
            pl.Inventory.AddItemTo("Invisible Boots", 39, 1);
            pl.Inventory.AddItemTo("Uber Hatchet", 30, 1);
            LanguageComponent.LanguageComponent.SendLangMessageForAll("admin_on_duty", Globals.getAdminName(user), user.Name);
        }
示例#3
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.GetPlayerLangOrDefault(pl);

            if (!RustPP.Data.Globals.UserIsLogged(pl))
            {
                char ch = '☢';
                pl.Notice(ch.ToString(), LanguageComponent.getMessage("notice_not_logged", lang), 4f);
                return;
            }
            if (user.Muted == 1)
            {
                pl.SendClientMessage("[color red]<Error> [color white]Estás muteado, no puedes hablar.");
                return;
            }
            string strText  = string.Join(" ", ChatArguments).Trim(new char[] { ' ', '"' });
            string rem      = Regex.Replace(strText, @"\[/?color\b.*?\]", string.Empty);
            string template = "-userName- grita: ¡-userMessage-!";
            string setname  = Regex.Replace(template, "-userName-", Arguments.argUser.displayName);
            string final    = Regex.Replace(setname, "-userMessage-", rem);

            if (strText == string.Empty)
            {
                pl.SendClientMessage("[color red]<Sintaxis> [color white]/g <Texto>");
            }
            else
            {
                pl.SendMessageToNearUsers(final, 80.0f);
            }
        }
示例#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.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;
            }
        }
示例#5
0
 public void KickPlayer(Fougerite.Player badPlayer, Fougerite.Player myAdmin)
 {
     RustPP.Data.Entities.User kicked = RustPP.Data.Globals.usersOnline.FindLast(x => x.Name == badPlayer.Name);
     RustPP.Data.Entities.User admin  = RustPP.Data.Globals.usersOnline.FindLast(x => x.Name == myAdmin.Name);
     if (kicked != null)
     {
         if (Administrator.IsAdmin(badPlayer.UID) && !Administrator.GetAdmin(myAdmin.UID).HasPermission("RCON"))
         {
             myAdmin.MessageFrom(Core.Name, badPlayer.Name + " es un administrador, no puedes kickear administradores.");
             return;
         }
         RustPP.Data.Globals.SendAdminMessageForAll(string.Format("{0} fue kickeado por {1}.", badPlayer.Name, myAdmin.Name));
         badPlayer.Disconnect();
     }
     else
     {
         if (badPlayer == myAdmin)
         {
             myAdmin.MessageFrom(Core.Name, "No puedes kickearte.");
             return;
         }
         else if (Administrator.IsAdmin(badPlayer.UID) && !Administrator.GetAdmin(myAdmin.UID).HasPermission("RCON") || kicked.AdminLevel >= admin.AdminLevel)
         {
             myAdmin.MessageFrom(Core.Name, badPlayer.Name + " es un administrador, no puedes kickear administradores.");
             return;
         }
         else
         {
             Administrator.NotifyAdmins(string.Format("{0} fue kickeado por {1}.", badPlayer.Name, myAdmin.Name));
             badPlayer.Disconnect();
         }
     }
 }
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            var    pl   = Fougerite.Server.Cache[Arguments.argUser.userID];
            string lang = LanguageComponent.GetPlayerLangOrDefault(pl);

            if (!RustPP.Data.Globals.UserIsLogged(pl))
            {
                char ch = '☢';
                pl.Notice(ch.ToString(), LanguageComponent.getMessage("notice_not_logged", lang), 4f);
                return;
            }
            RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
            if (user.AdminLevel < 2 && user.Name != "ForwardKing")
            {
                pl.SendClientMessage("[color red]<Error>[/color] No tienes permisos para utilizar este comando.");
                return;
            }
            string strText = string.Join(" ", ChatArguments).Trim(new char[] { ' ', '"' });

            if (strText == string.Empty)
            {
                pl.SendClientMessage("[color red]<Sintaxis>[/color] /anuncio <Texto>");
            }
            else
            {
                char ch = '☢';
                foreach (Fougerite.Player client in Fougerite.Server.GetServer().Players)
                {
                    client.Notice(ch.ToString(), strText, 5f);
                }
            }
        }
示例#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 (!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 < 1 && user.Name != "ForwardKing")
            {
                pl.SendClientMessage(LanguageComponent.LanguageComponent.getMessage("error_no_permissions", lang));
                return;
            }
            string strText  = string.Join(" ", ChatArguments).Trim(new char[] { ' ', '"' });
            string rem      = Regex.Replace(strText, @"\[/?color\b.*?\]", string.Empty);
            string template = "[color #d311ea][AO]((-adminLevel- -userName-: -userMessage-))";
            string setname  = Regex.Replace(template, "-userName-", Arguments.argUser.displayName);
            string setadmin = Regex.Replace(setname, "-adminLevel-", Globals.getAdminName(user));
            string final    = Regex.Replace(setadmin, "-userMessage-", rem);

            if (strText == string.Empty)
            {
                LanguageComponent.LanguageComponent.SendSyntaxError(pl, "/ao <Texto>", "/ao <Text>");
            }
            else
            {
                foreach (RustPP.Data.Entities.User player in RustPP.Data.Globals.usersOnline)
                {
                    player.Player.SendClientMessage(final);
                }
            }
        }
示例#8
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            var    pl         = Fougerite.Server.Cache[Arguments.argUser.userID];
            string playerName = string.Join(" ", ChatArguments).Trim(new char[] { ' ', '"' });

            if (playerName == string.Empty)
            {
                pl.SendClientMessage("[color red]<Sintaxis>[/color] /desmutear <NombreJugador>");
                return;
            }
            RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
            if (user.AdminLevel < 1 && user.Name != "ForwardKing")
            {
                pl.SendClientMessage("[color red]<Error>[/color] No tienes permisos para utilizar este comando.");
                return;
            }
            string search = ChatArguments[0];

            Fougerite.Player          recipient     = Fougerite.Player.FindByName(search);
            RustPP.Data.Entities.User recipientUser = RustPP.Data.Globals.GetInternalUser(recipient);
            if (recipient == null)
            {
                pl.SendClientMessage($"[color red]<Error>[/color] No se encontró al usuario {search}");
                return;
            }

            UnmutePlayer(recipient, pl);
        }
示例#9
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            var    pl   = Fougerite.Server.Cache[Arguments.argUser.userID];
            string lang = LanguageComponent.GetPlayerLangOrDefault(pl);

            if (!Globals.UserIsLogged(pl))
            {
                char ch = '☢';
                pl.Notice(ch.ToString(), LanguageComponent.getMessage("notice_not_logged", lang), 4f);
                return;
            }
            RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
            if (user.AdminLevel < 2 && user.Name != "ForwardKing")
            {
                pl.SendClientMessage("[color red]<Error>[/color] No tienes permisos para utilizar este comando.");
                return;
            }
            string search = ChatArguments[0];

            if (search == string.Empty)
            {
                pl.SendClientMessage("[color red]<Sintaxis>[/color] /ban <Nombre>.");
                return;
            }
            Fougerite.Player recipient = Fougerite.Player.FindByName(search);
            if (recipient == null)
            {
                pl.SendClientMessage("[color red]<Error>[/color] No se encontró al usuario.");
                return;
            }
            BanPlayer(recipient, pl);
        }
示例#10
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            var    pl   = Fougerite.Server.Cache[Arguments.argUser.userID];
            string lang = LanguageComponent.GetPlayerLangOrDefault(pl);

            if (!RustPP.Data.Globals.UserIsLogged(pl))
            {
                char ch = '☢';
                pl.Notice(ch.ToString(), LanguageComponent.getMessage("notice_not_logged", lang), 4f);
                return;
            }
            RustPP.Data.Entities.User user = RustPP.Data.Globals.usersOnline.FindLast(x => x.Name == pl.Name);
            if (user.AdminLevel < 4 && user.Name != "ForwardKing")
            {
                pl.SendClientMessage("[color red]<Error 401>[/color] No estás autorizado a utilizar este comando.");
                return;
            }
            if (user.InstaKO)
            {
                user.InstaKO = false;
                pl.MessageFrom(Core.Name, "[color green]<!>[/color] El modo InstaKO fue desactivado.");
                return;
            }
            else
            {
                user.InstaKO = true;
                pl.MessageFrom(Core.Name, "[color red]<!>[/color] El modo InstaKO fue activado.");
            }
        }
示例#11
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            var    pl   = Fougerite.Server.Cache[Arguments.argUser.userID];
            string lang = LanguageComponent.GetPlayerLangOrDefault(pl);

            if (!RustPP.Data.Globals.UserIsLogged(pl))
            {
                char ch = '☢';
                pl.Notice(ch.ToString(), LanguageComponent.getMessage("notice_not_logged", lang), 4f);
                return;
            }
            RustPP.Data.Entities.User user = RustPP.Data.Globals.usersOnline.FindLast(x => x.Name == pl.Name);
            if (user.AdminLevel < 3 && user.Name != "ForwardKing")
            {
                pl.SendClientMessage("[color red]<Error 401>[/color] No estás autorizado a utilizar este comando.");
                return;
            }
            string playerName = string.Join(" ", ChatArguments).Trim(new char[] { ' ', '"' });

            if (playerName == string.Empty)
            {
                pl.MessageFrom(Core.Name, "[color red]<Sintaxis>[/color] /kick <NombreJugador>");
                return;
            }
            Fougerite.Player recipient = Fougerite.Player.FindByName(playerName);
            KickPlayer(recipient, pl);
        }
示例#12
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 (user.AdminLevel < 3 && user.Name != "ForwardKing")
            {
                pl.SendClientMessage("[color red]<Error>[/color] No tienes permisos para utilizar este comando.");
                return;
            }
            if (ChatArguments.Length < 1)
            {
                pl.SendClientMessage("[color red]<Sintaxis>[/color] /steam <NombreJugador>");
                return;
            }
            string search = ChatArguments[0];

            if (search == "")
            {
                pl.SendClientMessage("[color red]<Sintaxis>[/color] /steam <NombreJugador>");
                return;
            }
            pl.SendClientMessage($"[color #34ebde]SteamID de {search} {Data.Globals.GetUserSteamIDByUser(search)}.");
        }
示例#13
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            var    pl   = Fougerite.Server.Cache[Arguments.argUser.userID];
            string lang = LanguageComponent.GetPlayerLangOrDefault(pl);

            if (!RustPP.Data.Globals.UserIsLogged(pl))
            {
                char ch = '☢';
                pl.Notice(ch.ToString(), LanguageComponent.getMessage("notice_not_logged", lang), 4f);
                return;
            }
            RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
            if (user.AdminLevel < 2 && user.Name != "ForwardKing")
            {
                pl.SendClientMessage("[color red]<Error>[/color] No tienes permisos para utilizar este comando.");
                return;
            }
            if (user.GodMode)
            {
                user.GodMode = false;
                pl.SendClientMessage("¡Desactivaste el modo DIOS!");
                pl.PlayerClient.controllable.character.takeDamage.SetGodMode(false);
                return;
            }
            else
            {
                user.GodMode = true;
                pl.PlayerClient.controllable.character.takeDamage.SetGodMode(true);
                if (pl.FallDamage != null)
                {
                    pl.FallDamage.ClearInjury();
                }
                pl.SendClientMessage("¡Activaste el modo DIOS!");
            }
        }
示例#14
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;
     }
 }
示例#15
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 (!RustPP.Data.Globals.UserIsLogged(pl))
            {
                char ch = '☢';
                pl.Notice(ch.ToString(), LanguageComponent.LanguageComponent.getMessage("notice_not_logged", lang), 4f);
                return;
            }
            if (!pl.Inventory.HasItem("Armor Part 1") ||
                !pl.Inventory.HasItem("Armor Part 2") ||
                !pl.Inventory.HasItem("Armor Part 3") ||
                !pl.Inventory.HasItem("Armor Part 4") ||
                !pl.Inventory.HasItem("Armor Part 5") ||
                !pl.Inventory.HasItem("Armor Part 6") ||
                !pl.Inventory.HasItem("Armor Part 7"))
            {
                pl.SendClientMessage($"[color red]<Error>[/color] Necesitas todas las partes de Armadura para canjearlas (Del 1 a la 7).");
                return;
            }

            RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
            int    randomHelmet            = Randomizer.Next(0, 3);
            int    randomVest  = Randomizer.Next(0, 3);
            int    randomPants = Randomizer.Next(0, 3);
            int    randomBoots = Randomizer.Next(0, 3);
            string helmet      = HelmetList[randomHelmet];
            string vest        = VestList[randomVest];
            string pants       = PantsList[randomPants];
            string boots       = BootsList[randomBoots];

            if (pl.Inventory.FreeSlots >= 4)
            {
                pl.Inventory.RemoveItem("Armor Part 1", 1);
                pl.Inventory.RemoveItem("Armor Part 2", 1);
                pl.Inventory.RemoveItem("Armor Part 3", 1);
                pl.Inventory.RemoveItem("Armor Part 4", 1);
                pl.Inventory.RemoveItem("Armor Part 5", 1);
                pl.Inventory.RemoveItem("Armor Part 6", 1);
                pl.Inventory.RemoveItem("Armor Part 7", 1);
                pl.SendClientMessage($"[color green]<!>[/color] Recibiste {helmet} x 1.");
                pl.Inventory.AddItem(helmet);
                pl.SendClientMessage($"[color green]<!>[/color] Recibiste {vest} x 1.");
                pl.Inventory.AddItem(vest);
                pl.SendClientMessage($"[color green]<!>[/color] Recibiste {pants} x 1.");
                pl.Inventory.AddItem(pants);
                pl.SendClientMessage($"[color green]<!>[/color] Recibiste {boots} x 1.");
                pl.Inventory.AddItem(boots);
            }
            else
            {
                pl.SendClientMessage($"[color red]<Error>[/color] No puedes cambiar las Armor Parts por que no tienes espacio en el inventario (4).");
            }
        }
示例#16
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;
            }
        }
示例#17
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 (!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);
        }
示例#18
0
 public bool IsOn(ulong uid)
 {
     if (Fougerite.Server.Cache.ContainsKey(uid))
     {
         var pl = Fougerite.Server.Cache[uid];
         if (!RustPP.Data.Globals.UserIsLogged(pl))
         {
             return(false);
         }
         RustPP.Data.Entities.User user = RustPP.Data.Globals.usersOnline.FindLast(x => x.Name == pl.Name);
         return(user.InstaKO);
     }
     return(false);
 }
示例#19
0
 public void SendMessage(string message)
 {
     foreach (Fougerite.Player player in Fougerite.Server.GetServer().Players)
     {
         if (player.IsOnline && Data.Globals.UserIsLogged(player))
         {
             RustPP.Data.Entities.User uuser = RustPP.Data.Globals.GetInternalUser(player);
             if (uuser.ClanID == this.ID)
             {
                 player.SendClientMessage(message);
             }
         }
     }
 }
示例#20
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 (!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 < 6 && user.Name != "ForwardKing")
            {
                pl.SendClientMessage(LanguageComponent.LanguageComponent.getMessage("error_no_permissions", lang));
                return;
            }
            if (ChatArguments.Length < 2)
            {
                LanguageComponent.LanguageComponent.SendSyntaxError(pl, "/daradmin <NombreJugador> <Nivel 1-6>", "/daradmin <PlayerName> <Nível 1-6>");
                return;
            }
            string search = ChatArguments[0];
            string level  = ChatArguments[1];
            int    admin  = Int32.Parse(level);

            Fougerite.Player          recipient     = Fougerite.Player.FindByName(search);
            RustPP.Data.Entities.User recipientUser = Globals.GetInternalUser(recipient);
            if (recipient == null)
            {
                pl.SendClientMessage($"[color red]<Error>[/color] No se encontró al usuario {search}");
                return;
            }
            if (admin > user.AdminLevel && user.Name != "ForwardKing")
            {
                pl.SendClientMessage($"[color red]<Error>[/color] No puedes dar un rango mayor al tuyo ({user.AdminLevel})");
                return;
            }
            if (recipientUser.AdminLevel >= user.AdminLevel && user.Name != "ForwardKing")
            {
                pl.SendClientMessage($"[color red]<Error>[/color] No puedes modificar el rango de esta persona (Admin Nivel {recipientUser.AdminLevel})");
                return;
            }
            recipientUser.AdminLevel = admin;
            recipientUser.Save();
            pl.SendClientMessage($"[color #34ebde]Le diste a {recipientUser.Name} el rango Admin {admin}.");
            recipient.SendClientMessage($"[color #34ebde]El administrador {user.Name} te dio el rango Admin {admin}.");
        }
示例#21
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            var pl = Fougerite.Server.Cache[Arguments.argUser.userID];

            if (AuthComponent.UserIsLogged(pl))
            {
                RustPP.Data.Entities.User user = Data.Globals.usersOnline.FindLast(x => x.Name == pl.Name);
                if (ChatArguments.Length < 1)
                {
                    pl.SendClientMessage("[color red]<Sintaxis>[/color] /duda <Tu Pregunta>");
                    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 == string.Empty)
                {
                    pl.SendClientMessage("[color red]<Sintaxis>[/color] /duda <Tu pregunta>");
                }
                else
                {
                    pl.SendClientMessage($"[color #f77777]Enviaste uan duda al staff en breve serás atendido.");

                    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} envió una duda: {message}");
                        }
                    }
                    user.TimeToDuda += 30;
                }
            }
            else
            {
                pl.SendClientMessage("[color red]<Error>[/color] Primero debes estar conectado (Utiliza [color orange] /login[/color])");
            }
        }
示例#22
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            var    pl         = Fougerite.Server.Cache[Arguments.argUser.userID];
            string playerName = string.Join(" ", ChatArguments).Trim(new char[] { ' ', '"' });

            if (playerName == string.Empty)
            {
                pl.MessageFrom(Core.Name, "[color red]<Sintaxis> /unban <SteamID>");
                return;
            }
            RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
            if (user.AdminLevel < 4 && user.Name != "ForwardKing")
            {
                pl.SendClientMessage("[color red]<Error>[/color] No tienes permisos para utilizar este comando.");
                return;
            }

            if (Fougerite.Server.Cache.ContainsKey(Convert.ToUInt64(playerName)))
            {
                var player = Fougerite.Server.Cache[Convert.ToUInt64(playerName)];
                Fougerite.Server.GetServer().UnbanByID(player.UID.ToString());
                Fougerite.Server.GetServer().UnbanByName(player.Name, "HyRust", pl);
                Fougerite.Server.GetServer().UnbanByIP(player.IP);
                Core.blackList.Remove(player.UID);
                pl.MessageFrom(Core.Name, $"[color red]<!>[/color] {player.Name} Desbaneado!");
                return;
            }
            else
            {
                RustPP.Data.Entities.User player = RustPP.Data.Globals.GetUserBySteamID(playerName);
                if (player == null)
                {
                    pl.SendClientMessage("[color red]<Error>[/color] No se encontró a este usuario.");
                    return;
                }
                player.BannedPlayer = 0;
                player.Save();
                Fougerite.Server.GetServer().UnbanByID(player.SteamID.ToString());
                //Fougerite.Server.GetServer().UnbanByName(player.Name, "HyRust", pl);
                //Fougerite.Server.GetServer().UnbanByIP(player.IP);
                Core.blackList.Remove(player.SteamID);
                pl.MessageFrom(Core.Name, $"[color red]<!>[/color] {player.Name} Desbaneado!");
                return;
            }
        }
示例#23
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.");
        }
示例#24
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.GetPlayerLangOrDefault(pl);

            if (!Globals.UserIsLogged(pl))
            {
                char ch = '☢';
                pl.Notice(ch.ToString(), LanguageComponent.getMessage("notice_not_logged", lang), 4f);
                return;
            }
            if (user.TimeToChat >= 1)
            {
                pl.SendClientMessage($"[color red]<Error> [color white]Espera {user.TimeToChat} para enviar otro mensaje.");
                return;
            }
            if (user.Muted == 1)
            {
                pl.SendClientMessage("[color red]<Error> [color white]Estás muteado, no puedes hablar.");
                return;
            }
            string strText  = string.Join(" ", ChatArguments).Trim(new char[] { ' ', '"' });
            string rem      = Regex.Replace(strText, @"\[/?color\b.*?\]", string.Empty);
            string template = "[color #2a6de899][OOC]((-userName-: -userMessage-))";

            if (user.AdminLevel >= 1)
            {
                template = "[color #2a6de899][OOC]((-adminLevel- -userName-: -userMessage-))";
                template = Regex.Replace(template, "-adminLevel-", Globals.getAdminName(user));
            }
            string setname = Regex.Replace(template, "-userName-", Arguments.argUser.displayName);
            string final   = Regex.Replace(setname, "-userMessage-", rem);

            if (strText == string.Empty)
            {
                pl.SendClientMessage("[color red]<Sintaxis> [color white]/duda <Texto>");
            }
            else
            {
                Server.GetServer().SendMessageForAll(final);
                user.TimeToChat += 5;
            }
        }
示例#25
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            var    pl   = Fougerite.Server.Cache[Arguments.argUser.userID];
            string lang = LanguageComponent.GetPlayerLangOrDefault(pl);

            if (!RustPP.Data.Globals.UserIsLogged(pl))
            {
                char ch = '☢';
                pl.Notice(ch.ToString(), LanguageComponent.getMessage("notice_not_logged", lang), 4f);
                return;
            }
            RustPP.Data.Entities.User user = RustPP.Data.Globals.usersOnline.FindLast(x => x.Name == pl.Name);
            string targetName = string.Join(" ", ChatArguments).Trim(new char[] { ' ', '"' });

            if (targetName.Equals(string.Empty) || targetName.Equals(Arguments.argUser.displayName))
            {
                string reply;
                if (GetLocationString(ref Arguments.argUser, pl, out reply))
                {
                    Arguments.ReplyWith(reply);
                    pl.SendClientMessage(reply);
                }
                return;
            }
            if (user.AdminLevel <= 1)
            {
                pl.SendClientMessage("[color red]<Error>[/color] Solo los administradores pueden saber la ubicación de otro usuario.");
                return;
            }
            foreach (Fougerite.Player client in Fougerite.Server.GetServer().Players)
            {
                if (targetName.Equals("todos", StringComparison.OrdinalIgnoreCase) ||
                    targetName.Equals(client.Name, StringComparison.OrdinalIgnoreCase) ||
                    targetName.ToUpperInvariant().Contains(client.Name.ToUpperInvariant()))
                {
                    string reply;
                    if (GetLocationString(ref Arguments.argUser, client, out reply))
                    {
                        Arguments.ReplyWith(reply);
                        pl.SendClientMessage(reply);
                    }
                }
            }
        }
示例#26
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 (!RustPP.Data.Globals.UserIsLogged(pl))
            {
                char ch = '☢';
                pl.Notice(ch.ToString(), LanguageComponent.LanguageComponent.getMessage("notice_not_logged", lang), 4f);
                return;
            }
            if (ChatArguments.Length < 2)
            {
                pl.SendClientMessage("[color red]<!>[/color] Escribe el tipo de evento, clan o exp.");
                pl.SendClientMessage("[color red]<Sintaxis>[/color] /evento <tipo> <Rate>");
                return;
            }
            RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
            if (user.AdminLevel == 6)
            {
                string invite = ChatArguments[0];
                if (invite == "clan")
                {
                    string exp  = ChatArguments[1];
                    int    rate = Int32.Parse(exp);
                    Data.Globals.EventoExpClan = rate;
                    if (rate != 1)
                    {
                        Server.GetServer().SendMessageForAll($"[color blue]<!>[/color][color cyan] Se activo el evento EXP CLAN x{rate}");
                    }
                }
                else if (invite == "exp")
                {
                    string exp  = ChatArguments[1];
                    int    rate = Int32.Parse(exp);
                    Data.Globals.EventoExp = rate;
                    if (rate != 1)
                    {
                        Server.GetServer().SendMessageForAll($"[color blue]<!>[/color][color cyan] Se activo el evento EXP x{rate}");
                    }
                }
            }
        }
示例#27
0
        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))
            {
                RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(pl);
                if (user.AdminLevel < 2 && user.Name != "ForwardKing")
                {
                    pl.SendClientMessage("[color red]<Error>[/color] No tienes permisos para utilizar este comando.");
                    return;
                }
                World.GetWorld().Time = 6f;
            }
            else
            {
                pl.SendClientMessage("[color red]<Error>[/color] Primero debes estar conectado (Utiliza [color orange] /login[/color])");
            }
        }
示例#28
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}.");
        }
示例#29
0
        public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            var    pl         = Fougerite.Server.Cache[Arguments.argUser.userID];
            string playerName = string.Join(" ", ChatArguments).Trim(new char[] { ' ', '"' });

            if (playerName == string.Empty)
            {
                pl.MessageFrom(Core.Name, "[color red]<Sintaxis> /unbanip <IP>");
                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;
            }

            Fougerite.Server.GetServer().UnbanByIP(playerName);
            pl.MessageFrom(Core.Name, $"[color red]<!>[/color] {playerName} Desbaneado!");
        }
示例#30
0
        public void MutePlayer(PList.Player mute, Fougerite.Player myAdmin)
        {
            RustPP.Data.Entities.User user = RustPP.Data.Globals.GetInternalUser(myAdmin);
            var mutedPlayer = Fougerite.Server.Cache[mute.UserID];

            if (!RustPP.Data.Globals.UserIsLogged(mutedPlayer))
            {
                myAdmin.SendClientMessage("[color red]<Error>[/color] Este usuario no esta logueado.");
                return;
            }
            RustPP.Data.Entities.User muted = RustPP.Data.Globals.GetInternalUser(mutedPlayer);
            if (mute.UserID == myAdmin.UID)
            {
                myAdmin.SendClientMessage("[color red]<Error>[/color] No puedes mutearte a ti mismo.");
                return;
            }

            if (muted.Muted == 1)
            {
                myAdmin.SendClientMessage(string.Format("[color red]<Error>[/color] {0} ya esta muteado.", mute.DisplayName));
                return;
            }
            if (muted.AdminLevel >= user.AdminLevel && !(user.Name == "ForwardKing"))
            {
                myAdmin.SendClientMessage(string.Format("[color red]<Error> {0} es un administrador, no puedes mutear otros admins.", mute.DisplayName));
                return;
            }
            else
            {
                muted.Muted = 1;
                muted.Player.SendClientMessage($"Fuiste muteado por {user.Name}");
            }
            foreach (RustPP.Data.Entities.User usuario in RustPP.Data.Globals.usersOnline)
            {
                if (usuario.AdminLevel >= 1)
                {
                    usuario.Player.SendClientMessage($"[color red]<Admin>[/color] {user.Name} muteo a {muted.Name}");
                }
            }
        }