Example #1
0
 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;
 }
Example #3
0
 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);
 }
Example #4
0
        /// <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];
        }
Example #5
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;
        }
Example #6
0
        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;
            }
        }