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 @Override
public void update() { 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; return;
final PlayerConnection playerConnection = player.getPlayerConnection(); final PlayerConnection playerConnection = player.getPlayerConnection();
playerConnection.sendPacket(createNewWindowItemsPacket()); playerConnection.sendPacket(createNewWindowItemsPacket(player));
} }
@NotNull @NotNull
@ -227,8 +229,8 @@ public class Inventory extends AbstractInventory implements Viewable {
* *
* @return a new {@link WindowItemsPacket} packet * @return a new {@link WindowItemsPacket} packet
*/ */
private @NotNull WindowItemsPacket createNewWindowItemsPacket() { private @NotNull WindowItemsPacket createNewWindowItemsPacket(Player player) {
return new WindowItemsPacket(getWindowId(), 0, getItemStacks(), ItemStack.AIR); 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 * @return a set slot packet to change a player cursor item
*/ */
public static @NotNull SetSlotPacket createCursorPacket(@NotNull ItemStack cursorItem) { 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);
} }
} }