public void Execute(IRocketPlayer caller, params string[] command) { ushort airdropId = 0; if (command.Length < 1) { UnturnedChat.Say(caller, AirdropManagerPlugin.Instance.Translate("SetAirdropFormat"), Color.red); return; } if (ushort.TryParse(command[0], out airdropId)) { UnturnedPlayer player = (UnturnedPlayer)caller; Vector3 position = player.Position; AirdropSpawn spawn = new AirdropSpawn() { AirdropId = airdropId, Position = new Position(position.x, position.y, position.z) }; AirdropManagerUtility.AddAirdropSpawn(spawn); AirdropManagerPlugin.Instance.Configuration.Instance.AirdropSpawns.Add(spawn); AirdropManagerPlugin.Instance.Configuration.Save(); UnturnedChat.Say(caller, AirdropManagerPlugin.Instance.Translate("SetAirdropSuccess"), Color.yellow); } else { UnturnedChat.Say(caller, AirdropManagerPlugin.Instance.Translate("SetAirdropInvalid"), Color.yellow); } }
public static void AddAirdropSpawn(AirdropSpawn spawn) { var field = typeof(LevelManager).GetField("airdropNodes", BindingFlags.Static | BindingFlags.NonPublic); List <AirdropNode> nodes = field.GetValue(null) as List <AirdropNode>; AddAirdropToNodes(nodes, spawn); field.SetValue(null, nodes); }
public static void AddAirdropToNodes(List <AirdropNode> nodes, AirdropSpawn spawn) { if (spawn.AirdropId == 0) { nodes.Add(new AirdropNode(spawn.Position.ToVector())); } else { nodes.Add(new AirdropNode(spawn.Position.ToVector(), spawn.AirdropId)); } }