private void OnEffectButtonClick8103(Player callerPlayer, string button) { if (button == "ButtonOk") { overload = EOverload.One; EffectManager.onEffectButtonClicked -= OnEffectButtonClick8103; EffectManager.onEffectButtonClicked += OnEffectButtonClick8102; EffectManager.askEffectClearByID(8103, callerPlayer.channel.owner.playerID.steamID); } }
public ManageUI(byte pagesCount, Player caller, Rocket.API.IRocketPlayer callerP) { currentPage = 1; callerPlayer = caller; ManageUI.PagesCount = pagesCount;// ! UIitemsPages = new List <List <MyItem> >(); Instances.Add(this); overload = EOverload.None; selectedId = 0; this.caller = callerP; }
public ManageUI(byte pagesCount, Player caller, IRocketPlayer callerP) { currentPage = 1; callerPlayer = caller; PagesCountPl = pagesCount;// ! UIitemsPages = new List <List <MyItem> >(); overload = EOverload.None; selectedId = 0; this.caller = callerP; U.Events.OnPlayerConnected += OnPlayersChangeC; U.Events.OnPlayerDisconnected += OnPlayersChangeD; Instances.Add(this); }
/// <inheritdoc /> public override void ReadRaw(byte[] raw) { if (raw.Length == 0) { throw new OptionLengthZeroException(); } if (raw.Length != 1) { throw new OptionLengthNotExactException(string.Format("Invalid length: {0}. Should be 1.", raw.Length)); } OverloadType = (EOverload)raw[0]; }
public void OnEffectButtonClick8102(Player callerPlayer, string buttonName) { //Console.WriteLine($"button clicked: {buttonName}"); if (!Directory.Exists(Plugin.Instance.pathTemp + $"\\{playerSteamID}")) { Directory.CreateDirectory(Plugin.Instance.pathTemp + $"\\{playerSteamID}"); } if (buttonName == "SaveExit" && id != "" && count != "") { overload = EOverload.None; if (!ushort.TryParse(id, out ushort newID) || !short.TryParse(count, out short newCount)) { UnturnedChat.Say(callerPlayer.channel.owner.playerID.steamID, $"Provided ID or amount is not a number", UnityEngine.Color.red); EffectManager.onEffectButtonClicked -= OnEffectButtonClick8102; EffectManager.onEffectButtonClicked += OnEffectButtonClick8101; EffectManager.askEffectClearByID(8102, callerPlayer.channel.owner.playerID.steamID); EffectManager.onEffectTextCommitted -= OnTextCommited; return; } if (Assets.find(EAssetType.ITEM, newID) == null) { UnturnedChat.Say(callerPlayer.channel.owner.playerID.steamID, $"ID: {newID} cannot be found, check if your id exists", UnityEngine.Color.red); EffectManager.onEffectButtonClicked -= OnEffectButtonClick8102; EffectManager.onEffectButtonClicked += OnEffectButtonClick8101; EffectManager.onEffectTextCommitted -= OnTextCommited; EffectManager.askEffectClearByID(8102, callerPlayer.channel.owner.playerID.steamID); return; } ItemAsset item = (ItemAsset)Assets.find(EAssetType.ITEM, newID); Item newitem = new Item(item.id, item.amount, 100, item.getState()); if (targetPlayer != null && newCount >= 0) { for (short i = 0; i < newCount; i++) { if (!targetPlayer.inventory.tryAddItemAuto(newitem, false, false, false, false)) { UnturnedChat.Say(callerPlayer.channel.owner.playerID.steamID, $"{(targetPlayer != null ? targetPlayer.channel.owner.playerID.characterName + "'s" : "player's")} inventory is full, loading item: {item.name} to his virtual inventory"); Functions.WriteItem(newitem, Plugin.Instance.pathTemp + $"\\{playerSteamID}\\Heap.dat"); } //else //{ // OnInventoryChange triggers => sends 8101 update //} } } else if (targetPlayer != null && newCount < 0) { RemoveItem(callerPlayer, targetPlayer.inventory, newID, (ushort)newCount); } else { UnturnedChat.Say(callerPlayer.channel.owner.playerID.steamID, $"Player has just left the server, loading to player's virtual inventory.."); for (ushort i = 0; i < Convert.ToUInt16(count); i++) { Functions.WriteItem(newitem, Plugin.Instance.pathTemp + $"\\{playerSteamID}\\Heap.dat");// if player is offline load to virtual heap } } EffectManager.onEffectButtonClicked -= OnEffectButtonClick8102; EffectManager.onEffectButtonClicked += OnEffectButtonClick8101; EffectManager.onEffectTextCommitted -= OnTextCommited; EffectManager.askEffectClearByID(8102, callerPlayer.channel.owner.playerID.steamID); return; } switch (buttonName) { case "ButtonRemove": if (selectedId == 0) { break; } if (targetPlayer != null) { RemoveItem(callerPlayer, targetPlayer.inventory, selectedId); UnturnedChat.Say(callerPlayer.channel.owner.playerID.steamID, $"All ID: {selectedId} items were removed from {targetPlayer.channel.owner.playerID.characterName}"); } else { UnturnedChat.Say(callerPlayer.channel.owner.playerID.steamID, $"Cannot remove items from player, because player left the server"); } //EffectManager.askEffectClearByID(8102, callerPlayer.channel.owner.playerID.steamID); //EffectManager.sendUIEffect(8102, 24, callerPlayer.channel.owner.playerID.steamID, true); break; case "ButtonAdd": if (selectedId == 0) { break; } if (targetPlayer != null) { ItemAsset item = (ItemAsset)Assets.find(EAssetType.ITEM, selectedId); Item newitem = new Item(item.id, item.amount, 100, item.getState()); if (!targetPlayer.inventory.tryAddItemAuto(newitem, false, false, false, false)) { UnturnedChat.Say(callerPlayer.channel.owner.playerID.steamID, $"{(targetPlayer != null ? targetPlayer.channel.owner.playerID.characterName + "'s" : "player's")} inventory is full, loading item: {item.name} to his virtual inventory"); Functions.WriteItem(newitem, Plugin.Instance.pathTemp + $"\\{playerSteamID}\\Heap.dat"); } } else { UnturnedChat.Say(callerPlayer.channel.owner.playerID.steamID, $"Player has just left the server, loading to player's virtual inventory.."); } //EffectManager.askEffectClearByID(8102, callerPlayer.channel.owner.playerID.steamID); //EffectManager.sendUIEffect(8102, 24, callerPlayer.channel.owner.playerID.steamID, true); break; case "ButtonDel": if (selectedId == 0) { break; } if (targetPlayer != null) { RemoveItem(callerPlayer, targetPlayer.inventory, selectedId, 1); //UnturnedChat.Say(callerPlayer.channel.owner.playerID.steamID, $"ID: {selectedId} item was removed from {targetPlayer.channel.owner.playerID.characterName}"); } else { UnturnedChat.Say(callerPlayer.channel.owner.playerID.steamID, $"Cannot remove item from player, because player left the server"); } EffectManager.askEffectClearByID(8102, callerPlayer.channel.owner.playerID.steamID); EffectManager.sendUIEffect(8102, 24, callerPlayer.channel.owner.playerID.steamID, true); break; case "MainPage": overload = EOverload.None; EffectManager.onEffectButtonClicked -= OnEffectButtonClick8102; EffectManager.onEffectButtonClicked += OnEffectButtonClick8101; EffectManager.onEffectTextCommitted -= OnTextCommited; EffectManager.askEffectClearByID(8102, callerPlayer.channel.owner.playerID.steamID); break; case "ButtonHelp": EffectManager.onEffectButtonClicked -= OnEffectButtonClick8102; EffectManager.onEffectButtonClicked += OnEffectButtonClick8103; EffectManager.onEffectTextCommitted += OnTextCommited8103; EffectManager.sendUIEffect(8103, 27, callerPlayer.channel.owner.playerID.steamID, true); overload = EOverload.Two; break; } //Console.WriteLine("IF AND ELSE PASSED"); //EffectManager.onEffectButtonClicked -= OnEffectButtonClick8102; //EffectManager.onEffectButtonClicked += OnEffectButtonClick8101; //EffectManager.askEffectClearByID(8102, callerPlayer.channel.owner.playerID.steamID); //EffectManager.onEffectTextCommitted -= OnTextCommited; }
public void OnEffectButtonClick8101(Player callerPlayer, string buttonName) { if (buttonName.Substring(0, 4) == "item") { if (!caller.HasPermission("rocket.invsee.edit")) { return; } byte.TryParse(buttonName.Substring(4), out itemIndex); //itemIndex += (byte)((currentPage - 1) * 24); buttonName = "item"; id = ""; count = ""; } switch (buttonName) { case "item": //show 8102 //EffectManager.askEffectClearByID(8101, callerPlayer.channel.owner.playerID.steamID); if (UIitemsPages[currentPage - 1].Count >= itemIndex + 1) { selectedId = UIitemsPages[currentPage - 1][itemIndex].ID; } //else // return; //selectedItem = (UIitemsPages[currentPage - 1].Count >= (itemIndex + 1))?(selectedItem = UIitemsPages[currentPage - 1][itemIndex]):(selectedItem = null); //if (UIitemsPages[currentPage - 1].Count >= (itemIndex + 1))// editing item //{ // selectedItem = UIitemsPages[currentPage - 1][itemIndex]; // //backUpItem = UIitemsPages[currentPage - 1][itemIndex]; //} //else //selectedItem = null;// + button EffectManager.onEffectButtonClicked -= this.OnEffectButtonClick8101; EffectManager.onEffectButtonClicked += OnEffectButtonClick8102; EffectManager.onEffectTextCommitted += OnTextCommited; EffectManager.sendUIEffect(8102, 24, callerPlayer.channel.owner.playerID.steamID, true); overload = EOverload.One; break; case "ButtonNext": if (UIitemsPages[currentPage - 1].Count == 24 && currentPage == PagesCountInv) { currentPage++; PagesCountInv++; UIitemsPages.Add(new List <MyItem>()); EffectManager.askEffectClearByID(8101, callerPlayer.channel.owner.playerID.steamID); ShowItemsUI(callerPlayer, currentPage); break; } else if (currentPage == PagesCountInv) { currentPage = 1; } else { currentPage++; } GetTargetItems(); EffectManager.askEffectClearByID(8101, callerPlayer.channel.owner.playerID.steamID); ShowItemsUI(callerPlayer, currentPage); break; case "ButtonPrev": if (currentPage == 1) { currentPage = PagesCountInv; } else { currentPage--; } GetTargetItems(); EffectManager.askEffectClearByID(8101, callerPlayer.channel.owner.playerID.steamID); ShowItemsUI(callerPlayer, currentPage); break; case "MainPage": overload = EOverload.None; if (targetPlayer != null) { targetPlayer.inventory.onInventoryAdded -= OnInventoryChange; targetPlayer.inventory.onInventoryRemoved -= OnInventoryChange; } EffectManager.askEffectClearByID(8101, UnturnedPlayer.FromPlayer(callerPlayer).CSteamID); EffectManager.onEffectButtonClicked -= OnEffectButtonClick8101; CommandGetInventory.Instance.Execute(UnturnedPlayer.FromPlayer(callerPlayer), null); break; case "ButtonExit": overload = EOverload.None; if (targetPlayer != null) { targetPlayer.inventory.onInventoryAdded -= OnInventoryChange; targetPlayer.inventory.onInventoryRemoved -= OnInventoryChange; } EffectManager.onEffectButtonClicked -= OnEffectButtonClick8101; QuitUI(callerPlayer, 8101); break; default: //non button click break; } }