private void UpdatePlayerList(bool forceUpdate = false)
        {
            if (this.updater <= 1f || forceUpdate == true)
            {
                if (networkchat == null)
                {
                    networkchat = getNetworkChat();
                }


                Player[] players = UnityEngine.Object.FindObjectsOfType(typeof(Player)) as Player[];

                names.Clear();
                ids.Clear();

                for (int i = 0; i < players.Length; i++)
                {
                    names.Add(players[i].name);


                    NetworkPlayer np = players[i].networkView.owner;
                    NetworkUser   nu = NetworkUserList.getUserFromPlayer(np);

                    ids.Add(networkUserfields[3].GetValue(nu).ToString());
                }

                this.updater = 500f;
            }
        }
Ejemplo n.º 2
0
        private void GetAllAnimalsPositions(NetworkCommandArgs args)
        {
            string _pkg = String.Empty;

            try
            {
                Animal[] animals_objects = UnityEngine.Object.FindObjectsOfType(typeof(Animal)) as Animal[];
                for (int i = 0; i < animals_objects.Length; i++)
                {
                    Animal _animal = animals_objects[i];
                    if (_animal.int_2 > 0 && _animal.int_3 > 0)
                    {
                        _pkg += $"{Convert.ToInt32(_animal.GetComponent<Transform>().position.x)}|{Convert.ToInt32(_animal.GetComponent<Transform>().position.z)}/";
                    }
                }
                byte[] serverbuffer = Encoding.UTF8.GetBytes(_pkg);
                args.sender.SendBytes(serverbuffer);
            }
            catch (Exception err)
            {
                NetworkChat.sendAlert($"Error: {err.Message}");
                byte[] serverbuffer = Encoding.UTF8.GetBytes("An error occured with dumping animals");
                args.sender.SendBytes(serverbuffer);
            }
        }
Ejemplo n.º 3
0
 private NetworkChat getNetworkChat()
 {
     if (networkChat == null)
     {
         networkChat = (UnityEngine.Object.FindObjectOfType(typeof(NetworkChat)) as NetworkChat);
     }
     return(networkChat);
 }
Ejemplo n.º 4
0
    public void Start()
    {
        NetworkChat.tool     = this;
        NetworkChat.chatting = false;
        NetworkChat.mode     = 0;

        gameObject.AddComponent <RemovedFunctions>();
    }
Ejemplo n.º 5
0
        private IEnumerator ItemRespawnCoroutine()
        {
            Debug.Log("Item respawn coroutine started!");
            while (true)
            {
                yield return(new WaitForSeconds(this.itemsResetIntervalInSeconds));

                NetworkChat.sendChat("Respawning items...");
                this.resetItems();
            }
        }
Ejemplo n.º 6
0
 private void announceNext()
 {
     for (int i = this.announceIndex; i < this.AnnounceMessages.Length; i++)
     {
         string text = this.AnnounceMessages [i];
         if (text.Equals(":"))
         {
             this.announceIndex = i + 1;
             return;
         }
         NetworkChat.sendAlert(text);
     }
     this.announceIndex = 0;
 }
Ejemplo n.º 7
0
 private void GetUserIP(NetworkCommandArgs args)
 {
     try
     {
         NetworkChat.sendAlert($"User's Arg: {args.Parameters[0]}");
         string pIP          = UserList.getUserFromName(args.Parameters[0]).networkPlayer.ipAddress;
         byte[] serverbuffer = Encoding.UTF8.GetBytes(pIP);
         args.sender.SendBytes(serverbuffer);
     }
     catch
     {
         byte[] serverbuffer = Encoding.UTF8.GetBytes("Error occured while tried to get IP");
         args.sender.SendBytes(serverbuffer);
     }
 }
Ejemplo n.º 8
0
    public static void kick(NetworkPlayer player, string reason)
    {
        // TODO server notify about kick
        //NetworkChat.sendAlert(reason);
        NetworkChat.sendNotification(player, reason);

        if (player != Network.player)
        {
            Network.CloseConnection(player, true);
        }
        else
        {
            NetworkTools.disconnect();
        }
    }
Ejemplo n.º 9
0
        private void RefuelVehicles(CommandArgs args)
        {
            Vehicle[] array  = UnityEngine.Object.FindObjectsOfType(typeof(Vehicle)) as Vehicle[];
            Vehicle[] array2 = array;
            for (int i = 0; i < array2.Length; i++)
            {
                Vehicle vehicle = array2 [i];
                vehicle.fill(1000);
            }

            NetworkChat.sendChat(string.Concat(new object[]
            {
                "Refueled ",
                array.Length,
                " vehicles!"
            }));
        }
 private void announceNext()
 {
     for (int i = announceIndex; i < AnnounceMessages.Length; i++)
     {
         string message = AnnounceMessages[i];
         if (message.Equals(":"))
         {
             announceIndex = i + 1;
             return;
         }
         else
         {
             NetworkChat.sendAlert(message);
         }
     }
     announceIndex = 0;
 }
Ejemplo n.º 11
0
        private void Announce(NetworkCommandArgs args)
        {
            string text = String.Empty;

            try
            {
                var announce = args.Parameters[0];
                NetworkChat.sendAlert(announce);
                text = "Successfully sent announce to Unturned Chat";
                byte[] serverbuffer = Encoding.UTF8.GetBytes(text);
                args.sender.SendBytes(serverbuffer);
            }
            catch
            {
                text = "Error occured while sending announce to Unturned chat";
                byte[] serverbuffer = Encoding.UTF8.GetBytes(text);
                args.sender.SendBytes(serverbuffer);
            }
        }
Ejemplo n.º 12
0
        void Update()
        {
            if (shutdownRequested)
            {
                Console.WriteLine("Memory owerflow. Shutdown initiated");
                NetworkChat.sendAlert("Restarting the server... (takes max 20sec)");

                // Offing network
                Network.SetSendingEnabled(0, false);
                Network.isMessageQueueRunning = false;

                NetworkTools.save();
                Application.Quit();
            }

            if (shouldSave)
            {
                shouldSave = false;
                Console.WriteLine("Saving world");
                // FIXME: temporary disabled saving... This causes the awaiting players bug
                //NetworkTools.save();
            }
        }
Ejemplo n.º 13
0
        /**
         * Trimmed the text
         */
        private static void handleCommandText(String command, int type, BetterNetworkUser sender)
        {
            command = command.Remove(0, 1);

            String[]      commandParams = command.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            List <string> words         = commandParams.ToList <string>();
            string        cmdText       = words.First();

            words.RemoveAt(0);

            DateTime myDate       = DateTime.Now;
            string   myDateString = myDate.ToString("yyyy-MM-dd HH:mm:ss");

            LogCommand(myDateString + ": " + sender.name + ": " + command);

            if (!ExecuteCommand(sender, cmdText, words)) //Command was not executed
            {
                if (!usingHiddenChat)
                {
                    NetworkChat.sendAlert("");  //avoid looping in commands
                }
            }
        }
Ejemplo n.º 14
0
        private void RepairVehicles(CommandArgs args)
        {
            Vehicle[] array  = UnityEngine.Object.FindObjectsOfType(typeof(Vehicle)) as Vehicle[];
            Vehicle[] array2 = array;
            for (int i = 0; i < array2.Length; i++)
            {
                Vehicle vehicle = array2 [i];
                vehicle.networkView.RPC("tellExploded", RPCMode.All, new object[] {
                    false
                });

                vehicle.networkView.RPC("tellWrecked", RPCMode.All, new object[] {
                    false
                });
                vehicle.heal(1000);
            }

            NetworkChat.sendChat(string.Concat(new object[] {
                "Repaired ",
                array.Length,
                " vehicles!"
            }));
        }
Ejemplo n.º 15
0
 private void ResetItems(CommandArgs args)
 {
     SpawnItems.reset();
     NetworkChat.sendAlert(args.sender.name + " has respawned all items");
 }
        public void resetChat()
        {
            if (hideCommands)
            {
                String[] texts = new String[4];
                texts[0] = getNetworkChatFieldByNum(13);
                texts[1] = getNetworkChatFieldByNum(20);
                texts[2] = getNetworkChatFieldByNum(27);
                texts[3] = getNetworkChatFieldByNum(34);

                for (int i = 0; i < 4; i++)
                {
                    if (texts[i].StartsWith("/"))
                    {
                        texts[i] = "";
                    }
                }

                NetworkPlayer[] players     = new NetworkPlayer[4];
                bool[]          isServerMsg = new bool[4];
                String[]        names       = new String[4];

                names[0] = getNetworkChatFieldByNum(10);
                names[1] = getNetworkChatFieldByNum(17);
                names[2] = getNetworkChatFieldByNum(24);
                names[3] = getNetworkChatFieldByNum(31);

                for (int i = 0; i < 4; i++)
                {
                    players[i] = getNetworkPlayerByPlayerName(names[i]);
                    if (names[i].StartsWith("Server"))
                    {
                        isServerMsg[i] = true;
                    }
                }

                if (!isServerMsg[3])
                {
                    getNetworkChat().askChat(texts[3], 0, players[3]);
                }
                else
                {
                    NetworkChat.sendAlert(texts[3]);
                }
                for (int i = 0; i < 4; i++)
                {
                    if (!isServerMsg[3 - i])
                    {
                        getNetworkChat().askChat(texts[3 - i], 0, players[3 - i]);
                    }
                    else
                    {
                        NetworkChat.sendAlert(texts[3 - i]);
                    }
                }
            }
            else
            {
                NetworkChat.sendAlert("");
            }
        }
Ejemplo n.º 17
0
 private void Time(CommandArgs args)
 {
     NetworkChat.sendAlert("Time: " + Sun.getTime());
 }
Ejemplo n.º 18
0
        public static void resetChat()
        {
            String[] texts = new String[4];
            texts[0] = getNetworkChatFieldByNum(13);
            texts[1] = getNetworkChatFieldByNum(20);
            texts[2] = getNetworkChatFieldByNum(27);
            texts[3] = getNetworkChatFieldByNum(34);

            for (int i = 0; i < 4; i++)
            {
                if (texts[i].StartsWith("/"))
                {
                    texts[i] = "";
                }
            }

            NetworkPlayer[] players     = new NetworkPlayer[4];
            bool[]          isServerMsg = new bool[4];
            String[]        names       = new String[4];

            names[0] = getNetworkChatFieldByNum(10);
            names[1] = getNetworkChatFieldByNum(17);
            names[2] = getNetworkChatFieldByNum(24);
            names[3] = getNetworkChatFieldByNum(31);


            for (int i = 0; i < 4; i++)
            {
                BetterNetworkUser temp1 = UserList.getUserFromName(names[i]);
                NetworkPlayer     temp;
                if (temp1 == null)
                {
                    temp = Network.player;
                }
                else
                {
                    temp = temp1.networkPlayer;
                }

                if (temp != null)
                {
                    players[i] = temp;
                }
                else
                {
                    players[i] = Network.player;
                }

                if (names[i] != null)
                {
                    if (names[i].StartsWith("Server"))
                    {
                        isServerMsg[i] = true;
                    }
                }
            }


            if (!isServerMsg[3])
            {
                getNetworkChat().askChat(texts[3], 0, players[3]);
            }
            else
            {
                NetworkChat.sendAlert(texts[3]);
            }

            for (int i = 0; i < 4; i++)
            {
                if (!isServerMsg[3 - i])
                {
                    getNetworkChat().askChat(texts[3 - i], 0, players[3 - i]);
                }
                else
                {
                    NetworkChat.sendAlert(texts[3 - i]);
                }
            }
        }
Ejemplo n.º 19
0
        private static NetworkChat getNetworkChat()
        {
            NetworkChat chat = UnityEngine.Object.FindObjectOfType <NetworkChat>();

            return(chat);
        }
Ejemplo n.º 20
0
 public void SaveAll(CommandArgs args)
 {
     NetworkChat.sendChat("Saving world to database...");
     NetworkTools.save();
 }
Ejemplo n.º 21
0
        public static void Airdrop()
        {
            int     loc     = Random.RandomRange(1, 13);
            string  arg     = string.Empty;
            string  string_ = string.Empty;
            string  str     = string.Empty;
            Vector3 val     = default(Vector3);

            val = new Vector3(0f, 0f, 0f);
            switch (loc)
            {
            case 1:
                arg     = "Airdrop will fall to the Summerside Peninsula";
                string_ = "Airdop was fallen on Summerside Peninsula!";
                val     = new Vector3(790f, 24f, -450f);
                str     = "Take airdrop on Summerside Peninsula";
                break;

            case 2:
                arg     = "Airdrop will fall to the Burywood";
                string_ = "Airdrop was fallen on Burywood!";
                val     = new Vector3(50f, 23f, 700f);
                str     = "Take airdrop on BuryWood";
                break;

            case 3:
                arg     = "Airdrop will fall to the Courtin Island";
                string_ = "Airdrop was fallen on Courtin Island!";
                val     = new Vector3(890f, 22f, 500f);
                str     = "Take airdrop on Courtin Island";
                break;

            case 4:
                arg     = "Airdrop will fall to the Belfast Airport";
                string_ = "Airdrop was fallen on Belfast Airport!";
                val     = new Vector3(600f, 25f, 468f);
                str     = "Take airdrop on Belfast Airport";
                break;

            case 5:
                arg     = "Airdrop will fall to the Holman Island";
                string_ = "Airdrop was fallen on Holman Island!";
                val     = new Vector3(-770f, 29f, -760f);
                str     = "Take airdrop on Holman Island";
                break;

            case 6:
                arg     = "Airdrop will fall to the O'Leary Military Base";
                string_ = "Airdrop was fallen on O'Leary Military Base!";
                val     = new Vector3(-440f, 26f, 607f);
                str     = "Take airdrop on Military Base";
                break;

            case 7:
                arg     = "Airdrop will fall to the Alberton";
                string_ = "Airdrop was fallen on Alberton!";
                val     = new Vector3(-580f, 19f, 87f);
                str     = "Take airdrop on Alberton";
                break;

            case 8:
                arg     = "Airdrop will fall to the Charlottetown";
                string_ = "Airdrop was fallen on Charlottetown!";
                val     = new Vector3(22f, 18f, -432f);
                str     = "Take airdrop on Charlottetown";
                break;

            case 9:
                arg     = "Airdrop will fall to the Montague";
                string_ = "Airdrop was fallen on Montague!";
                val     = new Vector3(250f, 30f, -100f);
                str     = "Take airdrop on Montague";
                break;

            case 10:
                arg     = "Airdrop will fall to the Oultons Isle";
                string_ = "Airdrop was fallen on Oultons Isle!";
                val     = new Vector3(200f, 28f, -825f);
                str     = "Take airdrop on Oultons Isle";
                break;

            case 11:
                arg     = "Airdrop will fall to the St. Peter's Island";
                string_ = "Airdrop was fallen on St. Peter's Island!";
                val     = new Vector3(-245.4355f, 27.7f, 47.64797f);
                str     = "Take airdrop on St. Peter's Island";
                break;

            case 12:
                arg     = "Airdrop will fall to the Fernwood Farm";
                string_ = "Airdrop was fallen on Fernwood Farm!";
                val     = new Vector3(-244.4423f, 25.5f, -376.0898f);
                str     = "Take airdrop on Fernwood Farm";
                break;

            case 13:
                arg     = "Airdrop will fall to the Wiltshire Farm";
                string_ = "Airdrop was fallen on Wiltshire Farm!";
                val     = new Vector3(-451.6884f, 27.3f, -563.936f);
                str     = "Take airdrop on Wiltishire Farm";
                break;
            }
            for (int i = 5; i >= 1; i--)
            {
                NetworkChat.sendAlert($"{arg} after {i} min");
                Thread.Sleep(60000);
            }
            NetworkChat.sendAlert(string_);
            for (int i = 0; i < itemAmountForDrop; i++)
            {
                int   int_ = items[Random.Range(0, items.Length)];
                float num3 = Random.Range(0, 5);
                float num4 = Random.Range(0, 5);
                SpawnItems.spawnItem(int_, 1, new Vector3(val.x + num3, val.y, val.z + num4));
            }
            NetworkSounds.askSoundMax("Sounds/spooky/spooky_3", val, 500f, 1f, 700f, 3500f);
            for (int num5 = 1000; num5 > 0; num5--)
            {
                if (announceWhilePlayerTook)
                {
                    for (int j = 0; j < UserList.users.Count; j++)
                    {
                        BetterNetworkUser val2 = UserList.users[j];
                        float             num6 = Mathf.Abs(Vector3.Distance(val, val2.position));
                        if (num6 < 10.5f)
                        {
                            NetworkChat.sendAlert(val2.name + " " + str);
                            NetworkSounds.askSoundMax("Sounds/spooky/spooky_0", val, 500f, 1f, 700f, 3500f);
                            return;
                        }
                    }
                }
                if (enableEffects)
                {
                    int num7 = 0;
                    for (int k = 0; k < 25; k++)
                    {
                        NetworkEffects.askEffect("Effects/sparksRed", new Vector3(val.x, val.y + (float)num7, val.z), Quaternion.Euler(-90f, 0f, 0f), 100f);
                        num7 += 2;
                    }
                    NetworkSounds.askSound("Sounds/projectiles/smoke", val, 500f, 1f, 700f);
                }
                Thread.Sleep(300);
            }
        }
Ejemplo n.º 22
0
        private void Announce(CommandArgs args)
        {
            string parametersAsString = args.ParametersAsString;

            NetworkChat.sendAlert(parametersAsString);
        }
Ejemplo n.º 23
0
        private static NetworkChat getNetworkChat()
        {
            NetworkChat chat = UnityEngine.Object.FindObjectOfType(typeof(NetworkChat)) as NetworkChat;

            return(chat);
        }
Ejemplo n.º 24
0
 private void ResetZombies(CommandArgs args)
 {
     SpawnAnimals.reset();
     NetworkChat.sendAlert(args.sender.name + " has respawned all zombies");
 }
        public void checkForCommands()
        {
            if (getLastMessageText().StartsWith("/"))
            {
                UpdatePlayerList(true);

                String sender   = getLastMessagePlayerName();
                String commando = getLastMessageText();

                string groupString = getLastMessageGroup();

                lastUsedCommand = commando;

                if (loggingCommands)
                {
                    LogCommand(sender + ":" + commando);
                }


                //commands for non-admins

                if (commando.Equals("/online"))
                {
                    resetChat();
                    getNetworkChat().askChat("There are " + names.Count + " players online.", 2, getNetworkPlayerByPlayerName(sender));
                    return;
                }
                else if (commando.StartsWith("/time"))
                {
                    resetChat();
                    NetworkChat.sendAlert("Time: " + Sun.getTime());
                    return;
                }

                else if (commando.Equals("/sethome"))
                {
                    resetChat();
                    if (usePlayerHomes)
                    {
                        Vector3 location = NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(sender)).transform.position;

                        setHome(getSteamIDByPlayerName(sender), location);


                        getNetworkChat().askChat("Home set.", 2, getNetworkPlayerByPlayerName(sender));
                    }
                    return;
                }



                else if (commando.Equals("/home"))
                {
                    resetChat();
                    if (usePlayerHomes)
                    {
                        //getNetworkChat().askChat("Teleporting home in 5 seconds...", 2, getNetworkPlayerByPlayerName(sender));
                        //Thread.Sleep(5000);
                        // what use has a delay if I cant check if the player moves while waiting ...
                        home(sender, getSteamIDByPlayerName(sender));
                        getNetworkChat().askChat("Teleported home. Don't move for 5 seconds if you don't wanna get kicked", 2, getNetworkPlayerByPlayerName(sender));
                    }
                    return;
                }

                if (isAdmin(sender) || (usingConsole && groupString.Equals(ConsolePassword)))
                {
                    if (!groupString.Equals(ConsolePassword) && requireCommandConfirmation && !commandconfirmed && commando.ToUpper().Equals("/" + confirmationString.ToUpper()))
                    {
                        resetChat();
                        commandconfirmed = true;

                        sendAdminTextToHost(tempCommand);
                        return;
                    }
                    if (!groupString.Equals(ConsolePassword) && requireCommandConfirmation && !commandconfirmed)
                    {
                        resetChat();
                        tempCommand        = commando;
                        tempSender         = sender;
                        confirmationString = RandomString(4);
                        Tell(getNetworkPlayerByPlayerName(sender), "Please confirm your command, type /" + confirmationString);
                        return;
                    }

                    /*if (getAdminLevel(sender) == -1 && sender != tempSender)
                     * {
                     *  getNetworkChat().askChat("An error occured! You appear to not have Admin Rights!", 2, getNetworkPlayerByPlayerName(sender));
                     *  return;
                     * }*/

                    //int permLvl = getAdminLevel(sender);
                    int permLvl = 4;
                    if (commando.StartsWith("/repeat") && permLvl >= 1)
                    {
                        resetChat();
                        NetworkChat.sendAlert(commando.Substring(8));
                    }



                    else if (commando.StartsWith("/ban") && permLvl >= 1)
                    {
                        resetChat();
                        String naam = commando.Substring(5);
                        if (naam.Length < 3)
                        {
                            naam        = names[Convert.ToInt32(naam)];
                            tempBanName = naam;
                            getNetworkChat().askChat("Reason for banning " + naam + " ?  /reason <reason> to ban", 2, getNetworkPlayerByPlayerName(sender));
                        }
                        else
                        {
                            tempBanName = naam;
                            getNetworkChat().askChat("Reason for banning " + naam + " ?  /reason <reason> to ban", 2, getNetworkPlayerByPlayerName(sender));
                        }
                    }
                    else if (commando.StartsWith("/kick") && permLvl >= 1)
                    {
                        resetChat();
                        String naam = commando.Substring(6);
                        if (naam.Length < 3)
                        {
                            naam = names[Convert.ToInt32(naam)];
                            getNetworkChat().askChat("Kick " + naam + " ?  /y to confirm", 2, getNetworkPlayerByPlayerName(sender));
                            tempKickName = naam;
                        }
                        else
                        {
                            playerName = naam;
                            KICK();
                        }
                    }
                    else if (commando.Equals("/y"))
                    { // kick
                        resetChat();
                        playerName = tempKickName;
                        KICK();
                    }

                    else if (commando.StartsWith("/reason") && permLvl >= 1)
                    {
                        resetChat();
                        reason   = commando.Substring(8);
                        playerID = getSteamIDByPlayerName(tempBanName);
                        if (!playerID.Equals(""))
                        {
                            playerName = tempBanName;
                            BAN();
                        }
                    }
                    else if (commando.StartsWith("/resetitems") && permLvl >= 2)
                    {
                        resetChat();
                        SpawnItems.reset();
                        NetworkChat.sendAlert(sender + " has respawned all items");
                    }
                    else if (commando.StartsWith("/repairvehicles") && permLvl >= 1)
                    {
                        resetChat();
                        Vehicle[] vehicles = UnityEngine.Object.FindObjectsOfType(typeof(Vehicle)) as Vehicle[];
                        foreach (Vehicle vehicle in vehicles)
                        {
                            vehicle.networkView.RPC("tellExploded", RPCMode.All, new object[] { false });
                            vehicle.networkView.RPC("tellWrecked", RPCMode.All, new object[] { false });

                            vehicle.heal(1000);
                        }
                        NetworkChat.sendAlert(sender + " has repaired " + vehicles.Length + " vehicles");
                    }
                    else if (commando.StartsWith("/refuelvehicles") && permLvl >= 1)
                    {
                        resetChat();
                        Vehicle[] vehicles = UnityEngine.Object.FindObjectsOfType(typeof(Vehicle)) as Vehicle[];
                        foreach (Vehicle vehicle in vehicles)
                        {
                            vehicle.fill(1000);
                        }
                        NetworkChat.sendAlert(sender + " has refueled " + vehicles.Length + " vehicles");
                    }
                    else if (commando.StartsWith("/sirens") && permLvl >= 1)
                    {
                        resetChat();
                        Vehicle[] vehicles = UnityEngine.Object.FindObjectsOfType(typeof(Vehicle)) as Vehicle[];
                        foreach (Vehicle vehicle in vehicles)
                        {
                            vehicle.networkView.RPC("tellSirens", RPCMode.All, new object[] { true });
                        }
                    }
                    else if (commando.Equals("/sirensoff") && permLvl >= 1)
                    {
                        resetChat();
                        Vehicle[] vehicles = UnityEngine.Object.FindObjectsOfType(typeof(Vehicle)) as Vehicle[];
                        foreach (Vehicle vehicle in vehicles)
                        {
                            vehicle.networkView.RPC("tellSirens", RPCMode.All, new object[] { false });
                        }
                    }

                    else if (commando.StartsWith("/resetzombies") && permLvl >= 2)
                    {
                        resetChat();
                        SpawnAnimals.reset();
                        NetworkChat.sendAlert(sender + " has respawned all zombies");
                    }
                    else if (commando.StartsWith("/killzombies") && permLvl >= 2)
                    {
                        resetChat();
                        Zombie[] Zombies = UnityEngine.Object.FindObjectsOfType(typeof(Zombie)) as Zombie[];
                        foreach (Zombie Zombie in Zombies)
                        {
                            Zombie.damage(500);
                        }
                        NetworkChat.sendAlert(sender + " has killed " + Zombies.Length + " zombies");
                    }
                    else if (commando.StartsWith("/reloadbans") && permLvl >= 3)
                    {
                        resetChat();
                        NetworkBans.load();
                    }
                    else if (commando.StartsWith("/setitemsdelay") && permLvl == 4)
                    {
                        resetChat();
                        String seconds = commando.Substring(15);
                        setItemResetIntervalInSeconds(Convert.ToInt32(seconds));
                    }
                    else if (commando.StartsWith("/setannouncedelay") && permLvl >= 3)
                    {
                        resetChat();
                        String seconds = commando.Substring(18);
                        setAnnounceIntervalInSeconds(Convert.ToInt32(seconds));
                    }
                    else if (commando.StartsWith("/reloadCommands") && permLvl >= 4)
                    {
                        resetChat();
                        reloadCommands();
                    }
                    else if (commando.StartsWith("/logmsg") && permLvl >= 4)
                    {
                        resetChat();
                        for (int i = 0; i < 80; i++)
                        {
                            Log(getNetworkChatFieldByNum(i));
                        }
                    }



                    else if (commando.StartsWith("/enablewhitelist") && permLvl >= 3)
                    {
                        resetChat();
                        usingWhitelist = true;
                        NetworkChat.sendAlert("Whitelist enabled.");
                    }
                    else if (commando.StartsWith("/disablewhitelist") && permLvl >= 3)
                    {
                        resetChat();
                        usingWhitelist = false;
                        NetworkChat.sendAlert("Whitelist disabled.");
                    }
                    else if (commando.StartsWith("/whitelist add") && permLvl >= 3)
                    {
                        resetChat();
                        String naam = commando.Substring(15);

                        System.IO.StreamWriter file = new StreamWriter("Unturned_Data/Managed/mods/AdminCommands/UnturnedWhitelist.txt", true);
                        file.WriteLine("");
                        file.WriteLine(naam);
                        file.Close();

                        reloadCommands();
                    }
                    else if (commando.StartsWith("/whitelist remove ") && permLvl >= 3)
                    {
                        resetChat();
                        String naam = commando.Substring(18);

                        string[] lines = System.IO.File.ReadAllLines(@"Unturned_Data/Managed/mods/AdminCommands/UnturnedWhitelist.txt");
                        File.Delete("Unturned_Data/Managed/mods/AdminCommands/UnturnedWhitelist.txt");

                        System.IO.StreamWriter file = new StreamWriter("Unturned_Data/Managed/mods/AdminCommands/UnturnedWhitelist.txt", true);


                        for (int i = 0; i < lines.Length; i++)
                        {
                            if (!lines[i].Equals(naam))
                            {
                                file.WriteLine(lines[i]);
                            }
                        }


                        file.Close();

                        reloadCommands();
                    }
                    else if (commando.StartsWith("/unban") && permLvl >= 1)
                    {
                        resetChat();
                        String name = commando.Substring(7);
                        unban(name);
                    }
                    else if (commando.StartsWith("/tpto ") && permLvl >= 1)
                    {
                        resetChat();

                        String     locString = commando.Substring(6);
                        Quaternion rotation  = NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(sender)).transform.rotation;


                        float x = float.Parse(locString.Split(' ')[0]);
                        float y = float.Parse(locString.Split(' ')[1]);
                        float z = float.Parse(locString.Split(' ')[2]);

                        //NetworkChat.sendAlert(x + " , " + y + " , " + z);

                        NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(sender)).GetComponent <Life>().networkView.RPC("tellStatePosition", RPCMode.All, new object[] { new Vector3(x, y, z), rotation });
                    }
                    else if (commando.StartsWith("/tptome") && permLvl >= 1)
                    {
                        resetChat();

                        String name = commando.Substring(8);
                        if (name.Length < 3)
                        {
                            name = names[Convert.ToInt32(name)];
                        }
                        //big ass line incoming
                        NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(name)).transform.position = NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(sender)).transform.position;
                        NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(name)).GetComponent <Life>().networkView.RPC("tellStatePosition", RPCMode.All, new object[] { NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(sender)).transform.position, NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(sender)).transform.rotation });
                    }

                    else if (commando.Equals("/tpall") && permLvl >= 2)
                    {
                        resetChat();


                        Vector3    location = NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(sender)).transform.position;
                        Quaternion rotation = NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(sender)).transform.rotation;
                        foreach (String name in names)
                        {
                            //There's probably a shorter way to this teleport stuff but hey this works xD
                            NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(name)).transform.position = location;
                            NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(name)).GetComponent <Life>().networkView.RPC("tellStatePosition", RPCMode.All, new object[] { location, rotation });
                        }
                    }

                    else if (commando.StartsWith("/tp ") && permLvl >= 1)  //make sure this goes under /tptome
                    {
                        resetChat();

                        String name = commando.Substring(4);
                        if (name.Length < 3)
                        {
                            name = names[Convert.ToInt32(name)];
                        }

                        NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(sender)).transform.position = NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(name)).transform.position;
                        NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(sender)).GetComponent <Life>().networkView.RPC("tellStatePosition", RPCMode.All, new object[] { NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(name)).transform.position, NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(name)).transform.rotation });
                    }



                    else if (commando.StartsWith("/kill") && permLvl >= 2)
                    {
                        resetChat();

                        //All of these things are buggy as f**k
                        String naam = commando.Substring(6);
                        // NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(naam)).GetComponent<Life>().tellAllLife(10,0,0,0,true,true);
                        // NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(naam)).GetComponent<Life>().tellDead(true, "You were shot in the face with a rocket launcher");
                        NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(naam)).GetComponent <Life>().damage(500, "You were struck down by the Wrath of the Gods!!!");
                    }

                    else if (commando.Equals("/heal") && permLvl >= 1)
                    {
                        resetChat();
                        NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(sender)).GetComponent <Life>().heal(100, true, true);
                    }

                    else if (commando.StartsWith("/heal") && permLvl >= 1)
                    {
                        resetChat();

                        String naam = commando.Substring(6);
                        NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(naam)).GetComponent <Life>().heal(100, true, true);
                    }

                    else if (commando.StartsWith("/promote") && permLvl >= 4)
                    {
                        resetChat();

                        String naam = commando.Substring(9);

                        System.IO.StreamWriter file = new StreamWriter("Unturned_Data/Managed/mods/AdminCommands/UnturnedAdmins.txt", true);
                        file.WriteLine("");
                        file.WriteLine(naam + ":" + getSteamIDByPlayerName(naam) + ":1");
                        file.Close();
                        NetworkChat.sendAlert(naam + " was promoted to the role of Moderator. (Level 1 Admin)");

                        reloadCommands();
                    }
                    else if (commando.Equals("/commands") && permLvl >= 1)
                    {
                        resetChat();

                        String string1 = " /ban, /kick, /unban, /repeat, /reason, /repairvehicles, /refuelvehicles, /car";
                        String string2 = " /heal, /sirens, /sirensoff, /tp, /tpto <x> <y> <z>, /tptome, /home, /sethome";
                        String string3 = " /tpall, /kill, /resetZombies, /resetItems, /i, /killzombies, /kit ";
                        String string4 = " /enablewhitelist, /disablewhitelist, /whitelist add & remove, /setannouncedelay";
                        String string5 = " /setItemDelay <seconds>, /reloadCommands, /reloadBans /promote, /logmsg";

                        getNetworkChat().askChat(string1, 2, getNetworkPlayerByPlayerName(sender));
                        getNetworkChat().askChat(string2, 2, getNetworkPlayerByPlayerName(sender));
                        if (permLvl >= 2)
                        {
                            getNetworkChat().askChat(string3, 2, getNetworkPlayerByPlayerName(sender));
                        }
                        if (permLvl >= 3)
                        {
                            getNetworkChat().askChat(string4, 2, getNetworkPlayerByPlayerName(sender));
                        }
                        if (permLvl >= 4)
                        {
                            getNetworkChat().askChat(string5, 2, getNetworkPlayerByPlayerName(sender));
                        }
                    }
                    else if (commando.StartsWith("/car") && permLvl >= 1)
                    {
                        resetChat();

                        Vector3    location = NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(sender)).transform.position;
                        Quaternion rotation = NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(sender)).transform.rotation;


                        Vehicle[] mapVehicles = UnityEngine.Object.FindObjectsOfType(typeof(Vehicle)) as Vehicle[];

                        int     random        = UnityEngine.Random.Range(0, mapVehicles.Length);
                        Vehicle randomVehicle = mapVehicles[random];

                        Vector3 newPos = new Vector3(location[0] + 5, location[1] + 50, location[2]);

                        randomVehicle.updatePosition(newPos, rotation);
                        randomVehicle.transform.position = newPos;
                    }


                    else if (commando.StartsWith("/i ") && permLvl >= 2)
                    {
                        resetChat();

                        int itemid = Convert.ToInt32(commando.Split(' ')[1]);
                        int amount = 1;
                        if (commando.Split(' ').Length > 2)
                        {
                            amount = Convert.ToInt32(commando.Split(' ')[2]);
                        }

                        Vector3 location = NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(sender)).transform.position;

                        for (int i = 0; i < amount; i++)
                        {
                            SpawnItems.spawnItem(itemid, 1, location);
                        }
                    }



                    else if (commando.Equals("/kit") && permLvl >= 2)
                    {
                        resetChat();

                        int[]   itemids  = new int[] { 0x7d4, 0x1b60, 0x2ee0, 0x232c, 0x2711, 0x2afb, 0x465e, 0x465e, 0x465e, 0x465e, 0x465e, 0x465e, 0x465e, 0xfb1, 0x1399, 11, 0x32c8, 0x32c8, 0x36c6, 0x36c6, 0x1f4f, 0x1f4d, 0xbba };
                        Vector3 location = NetworkUserList.getModelFromPlayer(getNetworkPlayerByPlayerName(sender)).transform.position;

                        foreach (int itemid in itemids)
                        {
                            SpawnItems.spawnItem(itemid, 1, location);
                        }
                    }
                } // end of isAdmin()

                else
                {
                    // KICK(sender, "Did you just kick yourself?");
                }



                commandconfirmed = false;
            }   // end of text.startswith("/")
        }//end checkForCommands()