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.
This commit is contained in:
eueln 2013-04-11 14:20:41 -05:00 committed by turt2live
parent c3e4767a79
commit 2bf22a9c49
2 changed files with 13 additions and 0 deletions

View File

@ -1506,6 +1506,10 @@ public final class CraftServer implements Server {
return new CraftInventoryCustom(owner, type); 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 { 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!"); Validate.isTrue(size % 9 == 0, "Chests must have a size that is a multiple of 9!");
return new CraftInventoryCustom(owner, size); return new CraftInventoryCustom(owner, size);

View File

@ -18,6 +18,10 @@ public class CraftInventoryCustom extends CraftInventory {
super(new MinecraftInventory(owner, type)); 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) { public CraftInventoryCustom(InventoryHolder owner, int size) {
super(new MinecraftInventory(owner, size)); super(new MinecraftInventory(owner, size));
} }
@ -39,6 +43,11 @@ public class CraftInventoryCustom extends CraftInventory {
this.type = type; 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) { public MinecraftInventory(InventoryHolder owner, int size) {
this(owner, size, "Chest"); this(owner, size, "Chest");
} }