From 2bf22a9c497f1a3dd8b52735128291338d145dc2 Mon Sep 17 00:00:00 2001 From: eueln Date: Thu, 11 Apr 2013 14:20:41 -0500 Subject: [PATCH] Implement inventory creation by type and title. Fixes BUKKIT-4045 With the current API it is possible to create an inventory with a specific type, but it is not possible to give such an inventory a title other than the default. The commit changes that by adding a method to optionally supply the title for the given inventory type and holder, creating the functionality to display any supported inventory type with a 32 character length String. If the inventory title supplied is larger than 32 characters then an IllegalArgumentException is thrown stating so. --- src/main/java/org/bukkit/craftbukkit/CraftServer.java | 4 ++++ .../craftbukkit/inventory/CraftInventoryCustom.java | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java index 111abb829b..b0c2156aa4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1506,6 +1506,10 @@ public final class CraftServer implements Server { return new CraftInventoryCustom(owner, type); } + public Inventory createInventory(InventoryHolder owner, InventoryType type, String title) { + return new CraftInventoryCustom(owner, type, title); + } + public Inventory createInventory(InventoryHolder owner, int size) throws IllegalArgumentException { Validate.isTrue(size % 9 == 0, "Chests must have a size that is a multiple of 9!"); return new CraftInventoryCustom(owner, size); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java index a02a723d51..533d62add7 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java @@ -18,6 +18,10 @@ public class CraftInventoryCustom extends CraftInventory { super(new MinecraftInventory(owner, type)); } + public CraftInventoryCustom(InventoryHolder owner, InventoryType type, String title) { + super(new MinecraftInventory(owner, type, title)); + } + public CraftInventoryCustom(InventoryHolder owner, int size) { super(new MinecraftInventory(owner, size)); } @@ -39,6 +43,11 @@ public class CraftInventoryCustom extends CraftInventory { this.type = type; } + public MinecraftInventory(InventoryHolder owner, InventoryType type, String title) { + this(owner, type.getDefaultSize(), title); + this.type = type; + } + public MinecraftInventory(InventoryHolder owner, int size) { this(owner, size, "Chest"); }