Make pandalib compile against Paper API 1.21.7 (prepare to full 1.21.7 update)

This commit is contained in:
2025-07-14 22:31:55 +02:00
parent ee4812bdbb
commit 79474b14d2
2 changed files with 29 additions and 7 deletions

View File

@@ -18,6 +18,8 @@ import java.util.Objects;
*/ */
public class DummyPlayerInventory extends InventoryWrapper implements PlayerInventory { public class DummyPlayerInventory extends InventoryWrapper implements PlayerInventory {
public static final int PLAYER_INVENTORY_SIZE = 43; // 36 base inventory + 4 armor slots + 1 off hand + 2 hidden slots (body and saddle)
private int heldItemSlot; private int heldItemSlot;
/** /**
@@ -27,8 +29,8 @@ public class DummyPlayerInventory extends InventoryWrapper implements PlayerInve
*/ */
public DummyPlayerInventory(Inventory base, int heldItemSlot) { public DummyPlayerInventory(Inventory base, int heldItemSlot) {
super(base); super(base);
if (base.getSize() < 41) if (base.getSize() < PLAYER_INVENTORY_SIZE)
throw new IllegalArgumentException("base inventory should have a size of 41 (" + base.getSize() + " given)."); throw new IllegalArgumentException("base inventory should have a size of " + PLAYER_INVENTORY_SIZE + " (" + base.getSize() + " given).");
if (heldItemSlot < 0 || heldItemSlot > 8) if (heldItemSlot < 0 || heldItemSlot > 8)
throw new IllegalArgumentException("heldItemSlot should be between 0 and 8 inclusive."); throw new IllegalArgumentException("heldItemSlot should be between 0 and 8 inclusive.");
this.heldItemSlot = heldItemSlot; this.heldItemSlot = heldItemSlot;
@@ -114,6 +116,24 @@ public class DummyPlayerInventory extends InventoryWrapper implements PlayerInve
setItem(36, boots); setItem(36, boots);
} }
public ItemStack getSaddle() {
return getItem(42);
}
public void setSaddle(@Nullable ItemStack saddle) {
setItem(42, saddle);
}
public ItemStack getBody() {
return getItem(41);
}
public void setBody(@Nullable ItemStack body) {
setItem(41, body);
}
@Override @Override
public void setItem(EquipmentSlot slot, ItemStack item) { public void setItem(EquipmentSlot slot, ItemStack item) {
Preconditions.checkArgument(slot != null, "slot must not be null"); Preconditions.checkArgument(slot != null, "slot must not be null");
@@ -125,7 +145,8 @@ public class DummyPlayerInventory extends InventoryWrapper implements PlayerInve
case LEGS -> this.setLeggings(item); case LEGS -> this.setLeggings(item);
case CHEST -> this.setChestplate(item); case CHEST -> this.setChestplate(item);
case HEAD -> this.setHelmet(item); case HEAD -> this.setHelmet(item);
default -> throw new IllegalArgumentException("Not implemented. This is a bug"); case BODY -> this.setBody(item);
case SADDLE -> this.setSaddle(item);
} }
} }
@@ -138,7 +159,8 @@ public class DummyPlayerInventory extends InventoryWrapper implements PlayerInve
case LEGS -> Objects.requireNonNullElseGet(this.getLeggings(), () -> new ItemStack(Material.AIR)); case LEGS -> Objects.requireNonNullElseGet(this.getLeggings(), () -> new ItemStack(Material.AIR));
case CHEST -> Objects.requireNonNullElseGet(this.getChestplate(), () -> new ItemStack(Material.AIR)); case CHEST -> Objects.requireNonNullElseGet(this.getChestplate(), () -> new ItemStack(Material.AIR));
case HEAD -> Objects.requireNonNullElseGet(this.getHelmet(), () -> new ItemStack(Material.AIR)); case HEAD -> Objects.requireNonNullElseGet(this.getHelmet(), () -> new ItemStack(Material.AIR));
case BODY -> new ItemStack(Material.AIR); // for horses/wolves armor case BODY -> Objects.requireNonNullElseGet(this.getBody(), () -> new ItemStack(Material.AIR)); // for horses/wolves armor
case SADDLE -> Objects.requireNonNullElseGet(this.getSaddle(), () -> new ItemStack(Material.AIR));
}; };
} }

View File

@@ -56,10 +56,10 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<bungeecord.version>1.21-R0.4-SNAPSHOT</bungeecord.version> <bungeecord.version>1.21-R0.4-SNAPSHOT</bungeecord.version>
<paper.version>1.21.4-R0.1</paper.version> <paper.version>1.21.7-R0.1</paper.version>
<mc.version>1.21.4</mc.version> <mc.version>1.21.7</mc.version>
<guava.version>32.1.2-jre</guava.version> <!-- Match the version imported by Paper API/BungeeCord API if possible --> <guava.version>33.3.1-jre</guava.version> <!-- Match the version imported by Paper API/BungeeCord API if possible -->
</properties> </properties>
<modules> <modules>