Basically some interface components (which could be called child inters) have sub-components called slots. A good example is your inventory. All your 28 inventories spaces are handled with one component but with different slots. What sendUnlockIComponentOptionSlots does is it changes the right-click option on the said interface component to something else (remove, deposit, etc...).
You need to use it as follow:
Code:
sendUnlockIComponentOptionSlots(int interfaceId, int componentId, int fromSlot, int toSlot, int... optionsSlots);
---------------
Id of the interface you are sending it to. Pretty standart.
---------------
The id of the component in the interface writen above. If you don't have the id, you can make a method similar to this in ButtonHandler:
Code:
if (interfaceId == number)//replace number by the interfaceId
player.getPackets().sendGameMessage("ComponentID: "+componentId);
---------------
Usually 0. It's basically the first slot of the component that it handles it. For example, inventory would be 0 for the first top left item.
---------------
The last slot of the interface. This one is a little bit tricky. You know how the inventory has 28 slots? Well you write the number of slots-1 so 27 because slot 0 counts. so 0..1..2..3.. up to 27 would make 28 slots.
---------------
This one might look harder but it's pretty easy. Basically it's an enumeration of the numbers on the first row. For inventory it would be 0, 1, 2, 3 since there's 4 inventory slots in the first row of the interface.
---------------
Tell me if you have any questions.