RockinChaos / ItemJoin

Get custom items on join.
https://www.craftationgaming.com/
GNU Lesser General Public License v3.0
141 stars 37 forks source link

Close Inventory Bedrock #604

Open TylorTurner opened 3 months ago

TylorTurner commented 3 months ago

Server Version

1.20.4

Resource Version

v6.0.7

Dump Information

g

Describe The Problem

Currently I am trying to use close inventory but for bedrock players it will not close their inventory, is there a way I could do that?

Additional Context

items: items: any-text: id: 345 slot: 31 name: '&3ᴄᴏᴍᴍᴀɴᴅ ᴄᴇɴᴛᴇʀ' lore:

Checklist

RockinChaos commented 2 months ago

So upon checking this seems to be entirely dependent on what you are using as a bridge for bedrock players. On the ItemJoin side, there is nothing I can do as it is properly interfacing with the spigot server (or similar server software) and uses the built-in API to close the player inventory.

If it's not closing properly for bedrock players, I can only assume it's an issue with whatever you are using as a bridge for bedrock players. I am a bit surprised though as it's a pretty simple method that should be supported since it's interacting directly with the server which sends the data to the client.

If you end up reaching out to the dev (of whatever you're using as a bridge for bedrock players) then feel free to let them know the method I use for closing player inventories is;

This simply creates and opens a fake inventory which then is able to subsequently closed by the #closeInventory method.

TylorTurner commented 2 months ago

Okay I am using command panels which is using an item in your plugin to run the command, if I switched everything over to your plugin would close properly?

On Wed, Aug 28, 2024, 11:55 PM Jason Watanabe @.***> wrote:

So upon checking this seems to be entirely dependent on what you are using as a bridge for bedrock players. On the ItemJoin side, there is nothing I can do as it is properly interfacing with the spigot server (or similar server software) and uses the built-in API to close the player inventory.

If it's not closing properly for bedrock players, I can only assume it's an issue with whatever you are using as a bridge for bedrock players. I am a bit surprised though as it's a pretty simple method that should be supported since it's interacting directly with the server which sends the data to the client.

If you end up reaching out to the dev (of whatever you're using as a bridge for bedrock players) then feel free to let them know the method I use for closing player inventories is;

  • player.openInventory(Bukkit.createInventory(player.getInventory().getHolder(), 9));
  • player.closeInventory();

This simply creates and opens a fake inventory which then is able to subsequently closed by the #closeInventory method.

— Reply to this email directly, view it on GitHub https://github.com/RockinChaos/ItemJoin/issues/604#issuecomment-2316714564, or unsubscribe https://github.com/notifications/unsubscribe-auth/A7YQO5JEDDOJUDEBQK4KBX3ZT2SUXAVCNFSM6AAAAABNIDJOLSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMJWG4YTINJWGQ . You are receiving this because you authored the thread.Message ID: @.***>

RockinChaos commented 2 months ago

So from your other issue you posted I see you're using GeyserMC as the bridge which helps me test.

I am not quite sure what you mean by using ItemJoin in Command Panels, are you saying you are using ItemJoin to open a command panel? If that is the case you shouldn't need ItemJoin to close the inventory as it is opening the command panel inventory.

It may help to provide some screenshots or a video as I don't quite understand what you are trying to close.

TylorTurner commented 2 months ago

Okay I'll get you a video as soon as possible. And you described it exactly how I set it up.

On Fri, Aug 30, 2024, 2:40 AM Jason Watanabe @.***> wrote:

So from your other issue you posted I see you're using GeyserMC as the bridge which helps me test.

I am not quite sure what you mean by using ItemJoin in Command Panels, are you saying you are using ItemJoin to open a command panel? If that is the case you shouldn't need ItemJoin to close the inventory as it is opening the command panel inventory.

It may help to provide some screenshots or a video as I don't quite understand what you are trying to close.

— Reply to this email directly, view it on GitHub https://github.com/RockinChaos/ItemJoin/issues/604#issuecomment-2320362525, or unsubscribe https://github.com/notifications/unsubscribe-auth/A7YQO5PDQH3NCX46AQJV2V3ZUAOX7AVCNFSM6AAAAABNIDJOLSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRQGM3DENJSGU . You are receiving this because you authored the thread.Message ID: @.***>

TylorTurner commented 2 months ago

So from your other issue you posted I see you're using GeyserMC as the bridge which helps me test.

I am not quite sure what you mean by using ItemJoin in Command Panels, are you saying you are using ItemJoin to open a command panel? If that is the case you shouldn't need ItemJoin to close the inventory as it is opening the command panel inventory.

It may help to provide some screenshots or a video as I don't quite understand what you are trying to close.

Here is an explanation of what I am doing. https://streamable.com/0jzfzs

RockinChaos commented 2 months ago

So from your other issue you posted I see you're using GeyserMC as the bridge which helps me test. I am not quite sure what you mean by using ItemJoin in Command Panels, are you saying you are using ItemJoin to open a command panel? If that is the case you shouldn't need ItemJoin to close the inventory as it is opening the command panel inventory. It may help to provide some screenshots or a video as I don't quite understand what you are trying to close.

Here is an explanation of what I am doing. https://streamable.com/0jzfzs

Oh my god, this is so useful, thank you! That is really odd, it seems the way Microsoft is handling player inventories is different in Bedrock. I am not entirely sure if this is something I can fix without directly relying on GeyserMC.

I will say I have never used GeyserMC and have barely touched Bedrock edition, so please be patient with me as I work on getting a testing environment set up so I can work on debugging this issue, it may take me a little bit.

Thanks again for the video, it is exactly what I needed.

RockinChaos commented 2 months ago

Can you confirm your GeyserMC version (build number)? I see some similar issues that were recently resolved around March of this year that read almost identical to this issue.