public void Execute(IRocketPlayer caller, string[] command) { UnturnedPlayer player = (UnturnedPlayer)caller; PVirtStorage pComponent = player.GetComponent <PVirtStorage>(); string DefaultContainer = VirtualStorage.Database.GetDefaultContainer(player.CSteamID); ContainerManager cData = null; if (string.IsNullOrEmpty(DefaultContainer)) { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("no_default_set"), Color.red); return; } object[] cInfo = VirtualStorage.Database.GetContainerData(player.CSteamID, DefaultContainer); if (cInfo == null) { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("open_data_not_found"), Color.red); return; } if (VirtualStorage.Containers.ContainsKey(player.CSteamID) && VirtualStorage.Containers[player.CSteamID].ContainerName == DefaultContainer) { cData = VirtualStorage.Containers[player.CSteamID]; } else { if (VirtualStorage.Containers.ContainsKey(player.CSteamID)) { VirtualStorage.Containers[player.CSteamID].Cleanup(); } cData = new ContainerManager(player); if (!cData.SetContainer((ushort)cInfo[0], (byte[])cInfo[1], player, (string)cInfo[2], (byte)cInfo[3], (byte)cInfo[4])) { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("open_invalid"), Color.red); return; } } if (VirtualStorage.TryCharge(caller, VirtualStorage.Instance.Configuration.Instance.OpenChargeCost, "vs.overrideopencost")) { if (!VirtualStorage.Containers.ContainsKey(player.CSteamID)) { VirtualStorage.Containers.Add(player.CSteamID, cData); } if (!caller.HasPermission("vs.overrideopencost")) { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("open_charged", Math.Round(VirtualStorage.Instance.Configuration.Instance.OpenChargeCost, 2), fr34kyn01535.Uconomy.Uconomy.Instance.Configuration.Instance.MoneyName), Color.cyan); } pComponent.cData = cData; cData.Open(); } else { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("not_enough_credits", fr34kyn01535.Uconomy.Uconomy.Instance.Configuration.Instance.MoneyName), Color.red); } }
protected override void Load() { Instance = this; Database = new DatabaseManager(); U.Events.OnPlayerDisconnected += Events_OnPlayerDisconnected; Instance.Configuration.Instance.LoadDefaults(); if (Instance.Configuration.Instance.KeepaliveInterval <= 0) { Logger.LogWarning("Error: Keep alive config option must be above 0."); Instance.Configuration.Instance.KeepaliveInterval = 10; } Instance.Configuration.Save(); }
protected override void Load() { Instance = this; Database = new DatabaseManager(); U.Events.OnPlayerDisconnected += Events_OnPlayerDisconnected; // Load Containers after the level loads, in initial start, to give workshop mods a chance to load into the server after the plugin loads. Level.onPostLevelLoaded += Database.SetupContainers; if (InitialLoadPassed) { Database.SetupContainers(0); } Instance.Configuration.Instance.LoadDefaults(); if (Instance.Configuration.Instance.KeepaliveInterval <= 0) { Logger.LogWarning("Error: Keep alive config option must be above 0."); Instance.Configuration.Instance.KeepaliveInterval = 10; } Instance.Configuration.Save(); }
public void Execute(IRocketPlayer caller, string[] command) { if (command.Length == 0 || (command[0].Trim().ToLower() == "list" && command.Length > 1) || command.Length > 2) { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("vbuy_help")); return; } UnturnedPlayer player = (UnturnedPlayer)caller; Dictionary <string, object[]> containers = VirtualStorage.Database.GetContainerList(player.CSteamID); if (command[0].Trim().ToLower() == "list") { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("number_to_buy", VirtualStorage.Database.ConfigContainers.Count), Color.cyan); foreach (KeyValuePair <ushort, Container> container in VirtualStorage.Database.ConfigContainers) { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("buy_list_entry", container.Value.ContainerName, container.Value.Price), Color.yellow); } } else { if (command.Length != 2) { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("buy_no_name"), Color.red); return; } string cName = command[1].Trim().Truncate(60); if (cName == string.Empty) { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("buy_no_name"), Color.red); return; } if (containers.Values.FirstOrDefault(contents => contents[2].ToString().ToLower() == cName.ToLower()) != null) { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("matches_owned"), Color.red); return; } Container cInfo = VirtualStorage.Database.ConfigContainers.Values.FirstOrDefault(content => content.ContainerName.ToLower() == command[0].Trim().ToLower()); if (cInfo == null) { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("buy_not_in_list"), Color.red); return; } if (containers.Count >= VirtualStorage.Instance.Configuration.Instance.MaxContainersPerPlayer && !caller.HasPermission("vs.overridemax")) { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("buy_max_reached", VirtualStorage.Instance.Configuration.Instance.MaxContainersPerPlayer), Color.red); return; } if (VirtualStorage.TryCharge(caller, cInfo.Price, "vs.overridebuycharge")) { ContainerManager cData = new ContainerManager(player); cData.ContainerName = cName; cData.AssetID = cInfo.AssetID; VirtualStorage.Database.SaveContainerToDB(cData); if (!caller.HasPermission("vs.overridebuycharge")) { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("buy_charged", cInfo.ContainerName, cName, Math.Round(cInfo.Price, 2), fr34kyn01535.Uconomy.Uconomy.Instance.Configuration.Instance.MoneyName), Color.cyan); } else { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("buy_charge_override", cInfo.ContainerName, cName), Color.cyan); } if (string.IsNullOrEmpty(VirtualStorage.Database.GetDefaultContainer(player.CSteamID))) { VirtualStorage.Database.SaveDefaultContainer(player.CSteamID, cName); UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("buy_default_set", cName, Color.cyan)); } } else { UnturnedChat.Say(caller, VirtualStorage.Instance.Translate("not_enough_credits", fr34kyn01535.Uconomy.Uconomy.Instance.Configuration.Instance.MoneyName), Color.red); } } }