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; } }
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); } }
private NetworkChat getNetworkChat() { if (networkChat == null) { networkChat = (UnityEngine.Object.FindObjectOfType(typeof(NetworkChat)) as NetworkChat); } return(networkChat); }
public void Start() { NetworkChat.tool = this; NetworkChat.chatting = false; NetworkChat.mode = 0; gameObject.AddComponent <RemovedFunctions>(); }
private IEnumerator ItemRespawnCoroutine() { Debug.Log("Item respawn coroutine started!"); while (true) { yield return(new WaitForSeconds(this.itemsResetIntervalInSeconds)); NetworkChat.sendChat("Respawning items..."); this.resetItems(); } }
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; }
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); } }
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(); } }
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; }
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); } }
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(); } }
/** * 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 } } }
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!" })); }
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(""); } }
private void Time(CommandArgs args) { NetworkChat.sendAlert("Time: " + Sun.getTime()); }
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]); } } }
private static NetworkChat getNetworkChat() { NetworkChat chat = UnityEngine.Object.FindObjectOfType <NetworkChat>(); return(chat); }
public void SaveAll(CommandArgs args) { NetworkChat.sendChat("Saving world to database..."); NetworkTools.save(); }
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); } }
private void Announce(CommandArgs args) { string parametersAsString = args.ParametersAsString; NetworkChat.sendAlert(parametersAsString); }
private static NetworkChat getNetworkChat() { NetworkChat chat = UnityEngine.Object.FindObjectOfType(typeof(NetworkChat)) as NetworkChat; return(chat); }
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()