Fix broken cursor with window items packet

This commit is contained in:
Moulberry 2021-09-08 21:50:14 +08:00
parent 025052102d
commit 9e5fadaa0e
2 changed files with 7 additions and 5 deletions

View File

@ -130,7 +130,9 @@ public class Inventory extends AbstractInventory implements Viewable {
*/
@Override
public void update() {
sendPacketToViewers(createNewWindowItemsPacket());
for(Player player : viewers) {
player.getPlayerConnection().sendPacket(createNewWindowItemsPacket(player));
}
}
/**
@ -145,7 +147,7 @@ public class Inventory extends AbstractInventory implements Viewable {
return;
final PlayerConnection playerConnection = player.getPlayerConnection();
playerConnection.sendPacket(createNewWindowItemsPacket());
playerConnection.sendPacket(createNewWindowItemsPacket(player));
}
@NotNull
@ -227,8 +229,8 @@ public class Inventory extends AbstractInventory implements Viewable {
*
* @return a new {@link WindowItemsPacket} packet
*/
private @NotNull WindowItemsPacket createNewWindowItemsPacket() {
return new WindowItemsPacket(getWindowId(), 0, getItemStacks(), ItemStack.AIR);
private @NotNull WindowItemsPacket createNewWindowItemsPacket(Player player) {
return new WindowItemsPacket(getWindowId(), 0, getItemStacks(), cursorPlayersItem.getOrDefault(player, ItemStack.AIR));
}
/**

View File

@ -53,6 +53,6 @@ public class SetSlotPacket implements ServerPacket {
* @return a set slot packet to change a player cursor item
*/
public static @NotNull SetSlotPacket createCursorPacket(@NotNull ItemStack cursorItem) {
return new SetSlotPacket((byte) -1, -1, (short) 0, cursorItem);
return new SetSlotPacket((byte) -1, 0, (short) -1, cursorItem);
}
}