public override void Execute(ref ConsoleSystem.Arg Arguments, ref string[] ChatArguments)
        {
            if (ChatArguments.Length == 3)
            {
                float n, n2, n3;
                bool  b  = float.TryParse(ChatArguments[0], out n);
                bool  b2 = float.TryParse(ChatArguments[1], out n2);
                bool  b3 = float.TryParse(ChatArguments[2], out n3);
                if (b && b2 && b3)
                {
                    Fougerite.Player plr = Fougerite.Server.Cache[Arguments.argUser.userID];
                    if (plr != null)
                    {
                        plr.TeleportTo(n, n2, n3);
                        Util.sayUser(Arguments.argUser.networkPlayer, Core.Name, "You have teleported to the coords!");
                        return;
                    }
                }
            }
            string playerName = string.Join(" ", ChatArguments).Trim(new char[] { ' ', '"' });

            if (playerName == string.Empty)
            {
                Util.sayUser(Arguments.argUser.networkPlayer, Core.Name, "Teleport Usage:  /tpto playerName");
                return;
            }
            List <string> list = new List <string>();

            list.Add("ToTarget");
            foreach (PlayerClient client in PlayerClient.All)
            {
                if (client.netUser.displayName.ToUpperInvariant().Contains(playerName.ToUpperInvariant()))
                {
                    if (client.netUser.displayName.Equals(playerName, StringComparison.OrdinalIgnoreCase))
                    {
                        Arguments.Args = new string[] { Arguments.argUser.displayName, client.netUser.displayName };
                        teleport.toplayer(ref Arguments);
                        Util.sayUser(Arguments.argUser.networkPlayer, Core.Name, "You have teleported to " + client.netUser.displayName);
                        return;
                    }
                    list.Add(client.netUser.displayName);
                }
            }
            if (list.Count != 0)
            {
                Util.sayUser(Arguments.argUser.networkPlayer, Core.Name, ((list.Count - 1)).ToString() + " Player" + (((list.Count - 1) > 1) ? "s" : "") + " were found: ");
                for (int j = 1; j < list.Count; j++)
                {
                    Util.sayUser(Arguments.argUser.networkPlayer, Core.Name, j + " - " + list[j]);
                }
                Util.sayUser(Arguments.argUser.networkPlayer, Core.Name, "0 - Cancel");
                Util.sayUser(Arguments.argUser.networkPlayer, Core.Name, "Please enter the number matching the player you were looking for.");
                tpWaitList[Arguments.argUser.userID] = list;
            }
            else
            {
                Util.sayUser(Arguments.argUser.networkPlayer, Core.Name, "No player found with the name: " + playerName);
            }
        }
        private void OnPlayerSpawned(Fougerite.Player player, SpawnEvent se)
        {
            if (RespawnFlagKillList.Contains(player.SteamID))
            {
                player.TeleportTo(RespawnFlags[player.SteamID]);

                RespawnFlagKillList.Remove(player.SteamID);
            }
        }
Beispiel #3
0
 public void Spawned(RoyaleUser pl, SpawnEvent se)
 {
     if (!inlobby.Contains(pl.UID))
     {
         if (ds.ContainsKey("LobbySpawn", "spawn"))
         {
             Vector3 pos = (Vector3)ds.Get("LobbySpawn", "spawn");
             pl.TeleportTo(pos);
             inlobby.Add(pl.UID);
             pl.MessageFrom("BattleRoyale", "Teleported to lobby");
         }
     }
 }
        public void TeleporterBehaviour_Teleport(uint id)
        {
            var teleporter = TeleporterSettings.GetTeleporterFromID(id);

            if (SpawnManager.SpawnedObjects.TryGetValue(id, out var spawnableObjectBehaviour))
            {
                if (Vector3.Distance(FougeritePlayer.Location, spawnableObjectBehaviour.transform.position) <=
                    teleporter.Radius)
                {
                    FougeritePlayer.TeleportTo(teleporter.GetPosition());
                }
            }
        }
Beispiel #5
0
        public virtual void UseItem(IInventoryItem inventoryItem)
        {
            var player = new Fougerite.Player(inventoryItem.controller.playerClient);

            player.TeleportTo(new Vector3(6636.035f, 348.0485f, -4385.647f));

            int num = 1;

            if (inventoryItem.Consume(ref num))
            {
                inventoryItem.inventory.RemoveItem(inventoryItem.slot);
            }
            else
            {
                inventoryItem.inventory.MarkSlotDirty(inventoryItem.slot);
            }
        }
Beispiel #6
0
        public virtual void UseItem(IInventoryItem inventoryItem)
        {
            var player = new Fougerite.Player(inventoryItem.controller.playerClient);

            player.TeleportTo(new Vector3(6660.546f, 353.1123f, -3852.007f));

            int num = 1;

            if (inventoryItem.Consume(ref num))
            {
                inventoryItem.inventory.RemoveItem(inventoryItem.slot);
            }
            else
            {
                inventoryItem.inventory.MarkSlotDirty(inventoryItem.slot);
            }
        }
Beispiel #7
0
        public virtual void UseItem(IInventoryItem inventoryItem)
        {
            var player = new Fougerite.Player(inventoryItem.controller.playerClient);

            player.TeleportTo(new Vector3(6077.474f, 376.276f, -3578.096f));

            int num = 1;

            if (inventoryItem.Consume(ref num))
            {
                inventoryItem.inventory.RemoveItem(inventoryItem.slot);
            }
            else
            {
                inventoryItem.inventory.MarkSlotDirty(inventoryItem.slot);
            }
        }
 public void DamagePlayer(Fougerite.Player pl)
 {
     if (pl.Health <= 10f)
     {
         pl.TeleportTo(pl.Location.x + 15f, pl.Location.y + 300f, pl.Location.z + 15f);
         pl.MessageFrom(Name, blue + "========================");
         pl.MessageFrom(Name, yellow + "DO NOT SPAM in the Shop");
         pl.MessageFrom(Name, red + "You get Killed !!");
         pl.MessageFrom(Name, blue + "========================");
     }
     else
     {
         pl.Damage(10f);
         pl.MessageFrom(Name, red + "Penality " + blue + " -10 Healt");
     }
     return;
 }
Beispiel #9
0
        public static void LoadPlayer(Fougerite.Player player, bool firstLogin)
        {
            string lang = LanguageComponent.LanguageComponent.GetPlayerLangOrDefault(player);
            User   user = Data.Globals.usersOnline.Find(x => x.Name == player.Name);

            if (user != null)
            {
                if (user.BannedPlayer == 1)
                {
                    char ch = '☢';
                    player.Notice(ch.ToString(), LanguageComponent.LanguageComponent.getMessage("account_banned", lang), 4f);
                    player.Disconnect();
                }
                if (player.UID != user.SteamID)
                {
                    Vector3 position = new Vector3(user.XPos, user.YPos, user.ZPos);
                    player.TeleportTo(position);
                }
                if (!firstLogin)
                {
                    //LoadInventory(player);
                    //ShareCommand command = ChatCommand.GetCommand("share") as ShareCommand;
                    //command.AddDoors(user.SteamID, player);
                }
                else
                {
                    player.Inventory.RemoveItem(30);
                    player.Inventory.RemoveItem(31);
                    player.Inventory.RemoveItem(32);
                    player.Inventory.AddItemTo("Stone Hatchet", 30, 1);
                    player.Inventory.AddItemTo("Bandage", 31, 3);
                    player.Inventory.AddItemTo("Cooked Chicken Breast", 32, 3);
                }
            }
            else
            {
                player.SendClientMessage(LanguageComponent.LanguageComponent.getMessage("error_0102", lang));
            }
            UnFreezePlayer(player);
        }
Beispiel #10
0
        public void OnPlayerSpawned(Fougerite.Player player, SpawnEvent se)
        {
            if (player != null)
            {
                if (DataStore.GetInstance().Get("tpfriendautoban", player.UID) != null)
                {
                    DataStore.GetInstance().Remove("tpfriendautoban", player.UID);
                }

                if (DataStore.GetInstance().Get("homesystemautoban", player.UID) != null)
                {
                    DataStore.GetInstance().Remove("homesystemautoban", player.UID);
                }

                if (DataStore.GetInstance().Get("DeathMSGBAN", player.UID) != null)
                {
                    Vector3 loc = (Vector3)DataStore.GetInstance().Get("DeathMSGBAN", player.UID);
                    player.TeleportTo(loc);
                    player.MessageFrom(DeathMSGName, green + tpbackmsg);
                    DataStore.GetInstance().Remove("DeathMSGBAN", player.UID);
                }
            }
        }
Beispiel #11
0
        public void OnCommand(Fougerite.Player player, string cmd, string[] args)
        {
            if (player.Admin || player.Moderator)
            {
                if (cmd == "ahelp")
                {
                    player.MessageFrom(Name, "[color #42b3f5]/duty /unduty /warn /delwarn /hp ");
                    player.MessageFrom(Name, "[color #42b3f5]/mtp /mtpback /ann /wipebar /wipeshelt  ");
                    player.MessageFrom(Name, "[color #42b3f5]/kick /ban /unban /rbban /rbunban /unbanip /mute /unmute  ");
                    return;
                }
                if (cmd == "duty")
                {
                    if (!DataStore.GetInstance().ContainsKey("AdminDuty", player.SteamID))
                    {
                        DataStore.GetInstance().Add("AdminDuty", player.SteamID, 0);
                        player.Inventory.ClearArmor();
                        player.Inventory.AddItemTo("Invisible Helmet", 36, 1);
                        player.Inventory.AddItemTo("Invisible Vest", 37, 1);
                        player.Inventory.AddItemTo("Invisible Pants", 38, 1);
                        player.Inventory.AddItemTo("Invisible Boots", 39, 1);
                        player.Inventory.AddItem("Uber Hatchet", 1);
                        Server.GetServer().BroadcastFrom(Name, "[color #42b3f5]Admin [color #f5e042]" + player.Name + " [color #42b3f5]is now [color #45f542]On Duty!");
                    }
                    else
                    {
                        player.MessageFrom(Name, "[color #42b3f5]You are already OnDuty!!!");
                    }
                }
                if (cmd == "unduty")
                {
                    if (DataStore.GetInstance().ContainsKey("AdminDuty", player.SteamID))
                    {
                        DataStore.GetInstance().Remove("AdminDuty", player.SteamID);
                        player.Inventory.ClearArmor();
                        player.Inventory.RemoveItem("Invisible Helmet", 1);
                        player.Inventory.RemoveItem("Invisible Vest", 1);
                        player.Inventory.RemoveItem("Invisible Pants", 1);
                        player.Inventory.RemoveItem("Invisible Boots", 1);
                        player.Inventory.RemoveItem("Uber Hatchet", 1);
                        Server.GetServer().BroadcastFrom(Name, "[color #42b3f5]Admin [color #f5e042]" + player.Name + " [color #42b3f5]is now [color #f55142]Off Duty!");
                    }
                    else
                    {
                        player.MessageFrom(Name, "[color #42b3f5]You are [color #f55142]not [color #42b3f5]On Duty!!!");
                    }
                }
                if (cmd == "warn")
                {
                    if (args.Length == 0)
                    {
                        player.MessageFrom(Name, "[color #f55142]Syntax:[color #42b3f5] /warn PlayerName");
                        return;
                    }
                    else
                    {
                        Fougerite.Player playertor = FindSimilarPlayer(player, args);
                        if (playertor == null)
                        {
                            return;
                        }

                        if (!DataStore.GetInstance().ContainsKey("warn", playertor.SteamID))
                        {
                            DataStore.GetInstance().Add("warn", playertor.SteamID, 0);
                            Server.GetServer().Broadcast("[color #42b3f5]Admin/Mod [color #f5e042]" + player.Name + "[color #42b3f5] Warned [color #f5e042] " + playertor.Name + "![color #f5e042](1/2)");
                            string logtext = player.Name + " Warned " + playertor.Name + "!(1/2)";
                            Log(logtext, "Warn");
                            return;
                        }
                        else
                        {
                            DataStore.GetInstance().Remove("warn", playertor.SteamID);
                            Server.GetServer().Broadcast("[color #42b3f5]Admin/Mod [color #f5e042]" + player.Name + "[color #42b3f5] Warned[color #f5e042] " + playertor.Name + "![color red]Kicked (2/2)");
                            string logtext = player.Name + " Warned " + playertor.Name + "!Kicked (2/2)";
                            Log(logtext, "Warn");
                            playertor.Disconnect();
                        }
                    }
                }
                if (cmd == "delwarn")
                {
                    if (args.Length == 0)
                    {
                        player.MessageFrom(Name, "[color #f55142]Syntax:[color #42b3f5] /delwarn PlayerName");
                        return;
                    }
                    else
                    {
                        Fougerite.Player playertor = FindSimilarPlayer(player, args);
                        if (playertor == null)
                        {
                            return;
                        }
                        if (DataStore.GetInstance().ContainsKey("warn", playertor.SteamID))
                        {
                            DataStore.GetInstance().Remove("warn", playertor.SteamID);
                            Server.GetServer().Broadcast("[color #42b3f5]Admin/Mod [color #f5e042]" + player.Name + " [color #42b3f5]Deleted [color #f5e042] " + playertor.Name + " [color #42b3f5]Warns![color #f5e042](0/2)");
                            string logtext = player.Name + " Deleted " + playertor.Name + " Warns!";
                            Log(logtext, "DeleteWarn");
                            return;
                        }
                        else
                        {
                            player.MessageFrom(Name, "[color #42b3f5]This Player [color #f55142]Doesn't [color #42b3f5]have any Warn!");
                            return;
                        }
                    }
                }
                if (cmd == "hp")
                {
                    if (args.Length == 0)
                    {
                        player.MessageFrom(Name, "[color #f55142]Syntax:[color #42b3f5] /hp PlayerName");
                        return;
                    }
                    else
                    {
                        Fougerite.Player playertor = FindSimilarPlayer(player, args);
                        if (playertor == null)
                        {
                            return;
                        }
                        player.MessageFrom(Name, playertor.Name + " HP : " + playertor.Health);
                        string logtext = player.Name + " Used /HP On " + playertor.Name + "";
                        Log(logtext, "HP");
                    }
                }
                if (cmd == "mtp")
                {
                    if (args.Length == 0)
                    {
                        player.MessageFrom(Name, "[color #f55142]Syntax:[color #42b3f5] /mtp PlayerName");
                        return;
                    }
                    else
                    {
                        if (DataStore.GetInstance().ContainsKey("AdminDuty", player.SteamID))
                        {
                            Fougerite.Player playertor = FindSimilarPlayer(player, args);
                            if (playertor == null)
                            {
                                return;
                            }
                            if (playertor.Moderator)
                            {
                                player.MessageFrom("AntiAbuse", "[color #42b3f5]You [color #f55142]Can't [color #42b3f5]Teleport to another Mods!");
                                return;
                            }
                            RecuperaListaDeClanes();
                            if (SonDeElMismoClan(player.SteamID, GetClanName(playertor.SteamID)))
                            {
                                player.MessageFrom("AntiAbuse", "[color #42b3f5]You [color #f55142]Can't [color #42b3f5]Teleport to your Clanmates!");
                                return;
                            }
                            if (!DataStore.GetInstance().ContainsKey("ModeratorLastLoc", player.UID))
                            {
                                DataStore.GetInstance().Add("ModeratorLastLoc", player.UID, player.Location.ToString());
                            }
                            player.TeleportTo(playertor, 1.5f, false);
                            player.Notice("You have Teleported to " + playertor.Name + "");
                            player.InventoryNotice("Checkpoint Saved!");
                            playertor.Notice("Admin " + player.Name + " Teleported to You!");
                            string logtext = player.Name + " Teleported To " + playertor.Name + " !LOC: " + playertor.X + " " + playertor.Y + " " + playertor.Z + " ";
                            Log(logtext, "Teleports");
                        }
                        else
                        {
                            player.MessageFrom(Name, "[color #42b3f5]You are [color #f55142]not [color #42b3f5]OnDuty!!!");
                        }
                    }
                }
                if (cmd == "mtpback")
                {
                    if (DataStore.GetInstance().ContainsKey("ModeratorLastLoc", player.UID) && !DataStore.GetInstance().ContainsKey("HGIG", player.UID))
                    {
                        var location = StringToVector3(DataStore.GetInstance().Get("ModeratorLastLoc", player.UID).ToString());
                        player.SafeTeleportTo(location, false);
                        DataStore.GetInstance().Remove("ModeratorLastLoc", player.UID);
                        player.Notice("You Teleported Back to your Checkpoint!");
                        string logtext = "Admin " + player.Name + " Teleported to his Checkpoint!";
                        Log(logtext, "Teleports");
                    }
                    else
                    {
                        player.Notice("You Don't have any save Checkpoint or You Are in HungerGame!");
                    }
                }
                if (cmd == "ann")
                {
                    if (args.Length == 0)
                    {
                        player.MessageFrom(Name, "[color #f55142]Syntax:[color #42b3f5] /ann TEXT");
                    }
                    else
                    {
                        Server.GetServer().BroadcastNotice(string.Join(" ", args));
                        string logtext = player.Name + " /ann ==> : " + string.Join(" ", args);
                        Log(logtext, "Announce");
                    }
                }
                if (cmd == "wipeshelt")
                {
                    int c = 0;
                    foreach (var x in World.GetWorld().Entities)
                    {
                        if (x.Name.ToLower().Contains("shelter"))
                        {
                            x.Destroy();
                            c++;
                        }
                    }
                    Server.GetServer().BroadcastFrom("AntiLag", "[color #42b3f5]Admin/Mod [color #f5e042]" + player.Name + " [color #42b3f5]Deleted [color red] " + c + " [color #42b3f5]Shelters");
                    string logtext = player.Name + " Deleted " + c + " Shelters";
                    Log(logtext, "Shelter");
                }
                if (cmd == "wipebar")
                {
                    int c = 0;
                    foreach (var x in World.GetWorld().Entities)
                    {
                        if (x.Name.ToLower().Contains("barricade"))
                        {
                            x.Destroy();
                            c++;
                        }
                    }
                    Server.GetServer().BroadcastFrom("AntiLag", "[color #42b3f5]Admin/Mod [color #f5e042]" + player.Name + " [color #42b3f5]Deleted [color red] " + c + " [color #42b3f5]Barricades");
                    string logtext = player.Name + " Deleted " + c + " Barricades";
                    Log(logtext, "Barricade");
                }
            }
        }
Beispiel #12
0
        public void Command(User pl, string cmd, string[] args)
        {
            if(cmd == "esshelp")
            {
                pl.Message("Fougerite-Essentials " + Version + " by ice cold");
                pl.Message("/help - see all commands");
                pl.Message("/rules - see all the rules");
                pl.Message("/info - See info about this plugin");
                pl.Message("/friendhelp - See all information about the friends system");
                pl.Message("/sharehelp - See all help about the share system");
                if(EnableHome) { pl.Message("/home - See all help about the home system"); }
                if(EnableRemove) { pl.Message("/remove - Enables/disables remover tool"); }
                if(Enabletpr) { pl.Message("/tpr name - sends teleport request to that user"); pl.Message("/tpa - Accepts an teleport reqequest"); }
                if(EnableWarps) { pl.Message("/warphelp - See all the help for the warping system"); }
                if(pl.Admin || pl.Moderator)
                {
                    pl.Message("/prod - Shows the owner of the object you are looking at");
                    pl.Message("/country player - Shows from which country a player comes");
                    pl.Message("/download url filename - downloads that object and put it in the the Downloaded folder EXAMPLE: (/download http://myitem.com myitem.zip)");
                    pl.Message("/addnewspawn - adds a new spawns to the overwrite spawn list");
                }              
            }
            else if(cmd == "country")
            {
                if(pl.Admin || pl.Moderator)
                {
                    if(args.Length != 1) { pl.Message("Usage /country player"); return; }
                    User target = Server.GetServer().FindPlayer(args[0]);
                    if(target == null) { pl.Message("Couldn't find the target user"); return; }
                    string country = PlayerDatabase.GetSetting(target.SteamID, "Country");
                    pl.Message("[color #ffb90f]" + target.Name  + " is located from [color #c1ffc1]" + country);
                }
            }
            else if(cmd == "download")
            {
                if(pl.Admin)
                {
                    if(args.Length != 2) { pl.Message("Usage /download url filename - EXAMPLE: (/download http://myitem.com myitem.zip)"); return; }
                    using (WebClient web = new WebClient())
                    {
                        web.DownloadFileAsync(new Uri(args[0]), Util.GetRootFolder() + "\\Save\\Fougerite-Essentials\\Downloaded\\" + args[1]);
                        pl.Message("[color #00ced1]Downloading " + args[1] + " to downloaded folder");
                    }
                }
            }
            else if(cmd == "addnewspawn")
            {
                if(pl.Admin)
                {
                    if(EnableNewSpawns)
                    {
                        string[] c = SpawnsOverwrite.EnumSection("SpawnLocations");
                        string co = (Convert.ToInt32(c[c.Length - 1]) + 1).ToString();
                        SpawnsOverwrite.AddSetting("SpawnLocations", co, pl.Location.ToString());
                        SpawnsOverwrite.Save();
                    }                 
                }
            }
            else if(cmd == "warphelp")
            {
                pl.Message("Fougerite-Essentials WarpSystem by ice cold");
                pl.Message("/warp name - Warps you to that location");
                pl.Message("/warps - See all the current warps");
                if(pl.Admin)
                {
                    pl.Message("/warp_set Name");
                    pl.Message("/warp_remove Name");
                }
            }
            else if(cmd == "warp")
            {
                if(args.Length != 1) { pl.Message("Usage /warp name"); return; }
                if(Warps.ContainsSetting("Warps", args[0]))
                {
                    if (pl.Admin)
                    {
                        Vector3 loc = Util.GetUtil().ConvertStringToVector3(Warps.GetSetting("Warps", args[0]));
                        pl.TeleportTo(loc);
                        pl.Message("[color#00bfff]Warped to " + args[0]);
                    }
                    else
                    {
                        if(!warpcd.Contains(pl.UID))
                        {
                            var dict = new Dictionary<string, object>();
                            dict["pl"] = pl;
                            warpcd.Add(pl.UID);
                            Warpcooldown(WarpCooldown * 1000, dict).Start();
                            Warpdelaytimer(WarpDelay * 1000, dict).Start();
                            string message = WarpDelayMessage.Replace("{warpname}", args[0]);
                        }
                        else
                        {
                            pl.Message(WarpCooldownMessage);
                        }
                    }
                }             
            }
            else if(cmd == "warps")
            {
                pl.Message("WarpsList");
                string[] l = Warps.EnumSection("Warps");
                foreach(var num in l)
                {
                    pl.Message(num);
                }
            }
            else if(cmd == "warp_set")
            {
                if(pl.Admin)
                {
                    if(args.Length != 1) { pl.Message("Usage /warp_set Name"); return; }
                    if(Warps.ContainsSetting("Warps", args[0])) { pl.Message("There is already a warp with the name " + args[0]); return; }
                    Warps.AddSetting("Warps", args[0], pl.Location.ToString());
                    Warps.Save();
                    pl.Message("Warp saved");
                }
            }
            else if(cmd == "warp_remove")
            {
                if(pl.Admin)
                {
                    if(args.Length != 1) { pl.Message("Usage /warp_remove Name"); return; }
                    if(!Warps.ContainsSetting("Warps", args[0])) { pl.Message("There is no warp with the name " + args[0]); return; }
                    Warps.DeleteSetting("Warps", args[0]);
                    Warps.Save();
                    pl.Message("The warp " + args[0] + " has been succesfully removed");
                }
            }
            else if(cmd == "help")
            {
                if(EnableHelp)
                {
                    foreach (var h in HelpList.EnumSection("Help"))
                    {
                        string d = HelpList.GetSetting("Help", h);
                        pl.MessageFrom("Help", d);
                    }
                }
                
            }
            else if(cmd == "rules")
            {
                if(EnableRules)
                {
                    foreach (var r in RulesList.EnumSection("Rules"))
                    {
                        string d = RulesList.GetSetting("Help", r);
                        pl.MessageFrom("Help", d);
                    }
                }          
            }
            else if(cmd == "info")
            {
                pl.MessageFrom(Name, "[color #87cefa][Fougerite-Essentials " + Version + " plugin brought by ice cold");
                pl.MessageFrom(Name, "[color #20b2aa]Wanna support ice cold? https://www.patreon.com/uberrust");
                pl.MessageFrom(Name, "[color #8470ff]You can download this plugin at ");
            }
            else if(cmd == "friendhelp")
            {
                pl.Message("[Fougerite-Essentials] Friends system brought by ice cold");
                pl.Message("/addfriend Name - ads player to your friends list");
                pl.Message("/unfriend Name - Unfriend someone");
                pl.Message("/friends - See all your friends");
            }
            else if(cmd == "sharehelp")
            {
                pl.Message("[Fougerite-Essentials] Share system brought by ice cold");
                pl.Message("/share Name - Door/structure share the player");
                pl.Message("/unshare Name - unshare someone");
                pl.Message("/sharelist - See all the people you have shared");
            }
            else if(cmd == "addfriend")
            {
                if(EnableFriendsSystem)
                {
                    if (args.Length != 1) { pl.Message("Usage /addfriend Name"); return; }
                    User target = Server.GetServer().FindPlayer(args[0]);
                    if (target == null) { pl.Message("Couldn't find the target user"); return; }
                    if (friends.ContainsSetting(pl.SteamID, target.SteamID)) { string message = AlreadyFriendedMessage.Replace("{friend}", target.Name); pl.Message(message); return; }
                    string me = AddFriendMessage.Replace("{friend}", target.Name);
                    pl.Message(me);
                    friends.AddSetting(pl.SteamID, target.SteamID, target.Name);
                    friends.Save();
                }
             
            }
            else if(cmd == "unfriend")
            {
                if(EnableShareSystem)
                {
                    if (args.Length != 1) { pl.Message("Usage /unfriend Name"); return; }
                    User target = Server.GetServer().FindPlayer(args[0]);
                    if(target == null) { pl.Message("Couldn't find the target user"); return; }
                    if(!friends.ContainsSetting(pl.SteamID, target.SteamID)) { pl.Message(target.Name + " Isnt in your friends list"); return; }
                    friends.DeleteSetting(pl.SteamID, target.SteamID);
                    friends.Save();
                    string message = UnfriendMessage.Replace("{target}", target.Name);
                    pl.Message(message);
                    friends.DeleteSetting(pl.SteamID, target.SteamID);
                    friends.Save();
                }
               
            }
            else if(cmd == "friends")
            {
                if(EnableFriendsSystem)
                {
                    pl.Message("===FriendsList===");
                    foreach (var id in friends.EnumSection(pl.SteamID))
                    {
                        string m = friends.GetSetting(pl.SteamID, id);
                        pl.Message("_ " + m);
                    }
                }
            }
            else if(cmd == "share")
            {
                if(EnableShareSystem)
                {
                    if(args.Length != 1) { pl.Message("Usage /share Name"); return; }
                    User target = Server.GetServer().FindPlayer(args[0]);
                    if (target == null) { pl.Message("Couldn't find the target user");  return; }
                    if(share.ContainsSetting(pl.SteamID, target.SteamID)) { string message = AlreadySharedMessage.Replace("{player}", target.Name); pl.Message(message); return; }
                    share.AddSetting(pl.SteamID, target.SteamID, target.Name);
                    share.Save();
                    string me = SharedMessage.Replace("{player}", target.Name);
                    pl.Message(me);
                }
            }
            else if(cmd == "unshare")
            {
                if(EnableShareSystem)
                {
                    if(args.Length != 1) { pl.Message("Usage /unshare Name"); return; }
                    User target = Server.GetServer().FindPlayer(args[0]);
                    if(target == null) { pl.Message("Couldn't find the target user"); return; }
                    if(!share.ContainsSetting(pl.SteamID, target.SteamID)) { pl.Message("You are not sharing with " + target.Name); return; }
                    share.DeleteSetting(pl.SteamID, target.SteamID);
                    share.Save();
                    string message = UnSharedMessage.Replace("{player}", target.Name);
                    pl.Message(message);
                }
            }
            else if(cmd == "sharelist")
            {
                if(EnableShareSystem)
                {
                    pl.Message("===ShareList===");
                    foreach(var id in share.EnumSection(pl.SteamID))
                    {
                        string m = share.GetSetting(pl.SteamID, id);
                        pl.Message("- " + m);
                    }
                }
            }
            else if(cmd == "prod")
            {
                if(pl.Admin || pl.Moderator)
                {
                    cachedCharacter = pl.PlayerClient.rootControllable.idMain.GetComponent<Character>();
                    if (!MeshBatchPhysics.Raycast(cachedCharacter.eyesRay, out cachedRaycast, out cachedBoolean, out cachedhitInstance)) { pl.Message("He Hello thats the sky bro"); return; }

                    if(cachedhitInstance != null)
                    {
                        cachedCollider = cachedhitInstance.physicalColliderReferenceOnly;
                        if (cachedCollider == null) { pl.Message("Sorry but i cannot prod that"); return; }
                        cachedStructure = cachedCollider.GetComponent<StructureComponent>();

                        if (cachedStructure != null && cachedStructure._master != null)
                        {
                            cachedMaster = cachedStructure._master;
                            var name = PlayerDatabase.GetSetting(cachedMaster.ownerID.ToString(), "Name");
                            pl.Message(string.Format("{object} - {ID} - {name}", cachedStructure.gameObject.name, cachedMaster.ownerID.ToString(), name == null ? "Unknown" : name.ToString()));
                        }
                    }
                    else
                    {

                        cachedDeployable = cachedRaycast.collider.GetComponent<DeployableObject>();

                        if(cachedDeployable != null)
                        {
                            var name = PlayerDatabase.GetSetting(cachedMaster.ownerID.ToString(), "Name");
                            pl.Message(string.Format("{object} - {ID} - {name}", cachedDeployable.gameObject.name, cachedDeployable.ownerID.ToString(), name == null ? cachedDeployable.ownerName.ToString() : name.ToString()));
                        }
                    }
                    pl.Message("Failed to prod " + cachedRaycast.collider.gameObject.name);
                }
            }
            else if(cmd == "home")
            {
                if(EnableHome)
                {
                    if(args.Length != 1)
                    {
                        pl.Message("[Fougerite-Essentials] Home system brought by ice cold");
                        if(!SleepingHome)
                        {
                            pl.Message("/home Name - teleports you the home");
                            pl.Message("/sethome Name - Enabled sethome mode (hit a foundation or ceiling to save your home)");
                            pl.Message("/delhome Name - Deletes that home");
                            pl.Message("/homes - Shows the list of homes");
                        }
                        else
                        {
                            pl.Message("/homeon - Enables home mode (place a Sleepingbag or Bed to save that as your current home)");
                            pl.Message("/gohome - Teleports you to your sleepingBag or Bed");
                        }
                    }
                    else
                    {
                        if(!SleepingHome)
                        {
                            if(!homecd.Contains(pl.UID))
                            {
                                if (StructureHome.ContainsSetting(pl.SteamID, args[0]))
                                {
                                    var homeloc = StructureHome.GetSetting(pl.SteamID, args[0]);
                                    var dict = new Dictionary<string, object>();
                                    dict["pl"] = pl;
                                    dict["homeloc"] = homeloc;
                                    HomeTimer(HomeDelay * 1000, dict).Start();
                                    string message = HomeDelayMessage.Replace("{home}", args[0]).Replace("{delay}", HomeDelay.ToString());
                                    pl.Message(message);
                                    HomeCooldown(HomeCooldown * 1000, dict).Start();
                                    homecd.Add(pl.UID);
                                }
                                else
                                {
                                    string message = NoHomeMessage.Replace("{home}", args[0]);
                                    pl.Message(message);
                                }
                            }
                            else
                            {
                                string message = HomeCooldownMessage.Replace("{cooldown}", HomeCooldown.ToString());
                                pl.Message(message);
                            }
                        }
                    }
                }
            }
            else if(cmd == "sethome")
            {
                if(EnableHome)
                {
                    if(!homemode.Contains(pl.UID))
                    {
                        if (args.Length != 1) { pl.Message("Usage /sethome Name"); return; }
                        string[] l = StructureHome.EnumSection(pl.SteamID);
                        if ((Convert.ToBoolean(l.Length == MaxHomes)))
                        {
                            pl.Message(MaxHomesMessage);
                        }
                        else
                        {
                            homemode.Add(pl.UID);
                            pl.Message("Sethome mode activated hit a foundation/ceiling to set your home");
                            homenum.Add(pl.UID, args[0]);
                        }
                    }
                    else
                    {
                        pl.Message("Please do /homestop first");
                    }
                  
                }
            }
            else if(cmd == "")
        }