[273] | 1 | using System;
|
---|
| 2 | using System.Collections.Generic;
|
---|
| 3 | using System.IO;
|
---|
| 4 | using UnityEngine;
|
---|
| 5 |
|
---|
| 6 | namespace CoppisAdditions.CustomCommands
|
---|
| 7 | {
|
---|
| 8 | public class UnlockAll : ConsoleCmdAbstract
|
---|
| 9 | {
|
---|
| 10 | public override string GetDescription ()
|
---|
| 11 | {
|
---|
| 12 | return "unlock all secure loots, chests and doors for the current player.";
|
---|
| 13 | }
|
---|
| 14 |
|
---|
| 15 | public override string GetHelp ()
|
---|
| 16 | {
|
---|
| 17 | return "Unlock all secure loots, chests and doors for the current player. After using this command you need to leave and reenter the game to take effect.";
|
---|
| 18 | }
|
---|
| 19 |
|
---|
| 20 | public override string[] GetCommands ()
|
---|
| 21 | {
|
---|
| 22 | return new string[] { "unlockall" };
|
---|
| 23 | }
|
---|
| 24 |
|
---|
| 25 | public override void Execute (List<string> _params, CommandSenderInfo _senderInfo)
|
---|
| 26 | {
|
---|
| 27 | try {
|
---|
| 28 | if (_senderInfo.RemoteClientInfo == null || _senderInfo.RemoteClientInfo.playerId == null || _senderInfo.RemoteClientInfo.playerId.Equals ("")) {
|
---|
| 29 | SdtdConsole.Instance.Output ("Unable to apply this command. You need be a player to execute it.");
|
---|
| 30 | return;
|
---|
| 31 | }
|
---|
| 32 | ClientInfo ci = ConsoleHelper.ParseParamIdOrName (_senderInfo.RemoteClientInfo.playerName);
|
---|
| 33 | ChunkClusterList chunklist = GameManager.Instance.World.ChunkClusters;
|
---|
| 34 | string SteamID = _senderInfo.RemoteClientInfo.playerId;
|
---|
| 35 | int lootsUnlocked = 0;
|
---|
| 36 | int doorsUnlocked = 0;
|
---|
| 37 | for (int i = 0; i < chunklist.Count; i++) {
|
---|
| 38 | ChunkCluster chunk = chunklist [i];
|
---|
| 39 | List<Chunk> clist = chunk.GetChunkArray ();
|
---|
| 40 | foreach (Chunk c in clist) {
|
---|
| 41 | DictionarySave<Vector3i, TileEntity> tiles = c.GetTileEntities ();
|
---|
| 42 | foreach (TileEntity tile in tiles.Values) {
|
---|
| 43 | TileEntityType type = tile.GetTileEntityType ();
|
---|
| 44 | try {
|
---|
| 45 | if (type.ToString ().Equals ("Campfile")) {
|
---|
| 46 | //TileEntityCampfire campfire = (TileEntityCampfire)tile;
|
---|
| 47 | //SdtdConsole.Instance.Output("campfire: " + );
|
---|
| 48 | } else if (type.ToString ().Equals ("Loot")) {
|
---|
| 49 | //TileEntityLootContainer loot = (TileEntityLootContainer) tile;
|
---|
| 50 |
|
---|
| 51 | } else if (type.ToString ().Equals ("Forge")) {
|
---|
| 52 | //TileEntityForge forge = (TileEntityForge) tile;
|
---|
| 53 | } else if (type.ToString ().Equals ("SecureLoot")) {
|
---|
| 54 | TileEntitySecureLootContainer secureLoot = (TileEntitySecureLootContainer)tile;
|
---|
| 55 | //SdtdConsole.Instance.Output("secure loot ower: " + secureLoot.GetOwner());
|
---|
| 56 | List<string> users = secureLoot.GetUsers ();
|
---|
| 57 | if (!users.Contains (SteamID)) {
|
---|
| 58 | users.Add (SteamID);
|
---|
| 59 | lootsUnlocked = lootsUnlocked + 1;
|
---|
| 60 | }
|
---|
| 61 | } else if (type.ToString ().Equals ("SecureDoor")) {
|
---|
| 62 | TileEntitySecureDoor secureDoor = (TileEntitySecureDoor)tile;
|
---|
| 63 | List<string> users = secureDoor.GetUsers ();
|
---|
| 64 | if (!users.Contains (SteamID)) {
|
---|
| 65 | users.Add (SteamID);
|
---|
| 66 | doorsUnlocked = doorsUnlocked + 1;
|
---|
| 67 | }
|
---|
| 68 | }
|
---|
| 69 | } catch (Exception) {
|
---|
| 70 |
|
---|
| 71 | }
|
---|
| 72 | }
|
---|
| 73 | }
|
---|
| 74 |
|
---|
| 75 |
|
---|
| 76 | if (ci != null) {
|
---|
| 77 | ci.SendPackage (new NetPackageChunkClusterInfo (chunk));
|
---|
| 78 | }
|
---|
| 79 | }
|
---|
| 80 | SdtdConsole.Instance.Output ("Secure Loots/Chest unlocked: " + lootsUnlocked);
|
---|
| 81 | SdtdConsole.Instance.Output ("Secure Doors unlocked: " + doorsUnlocked);
|
---|
| 82 | SdtdConsole.Instance.Output ("*Remember: you need to leave and enter again to apply this command on server`s map");
|
---|
| 83 | } catch (Exception e) {
|
---|
| 84 | Log.Out ("Error in UnlockAll.Run: " + e);
|
---|
| 85 | }
|
---|
| 86 |
|
---|
| 87 | }
|
---|
| 88 | }
|
---|
| 89 | }
|
---|