Player player = this.getPlayer();
if (player == null) return null;
PlayerInventory pInventory = player.getInventory();
String inventoryName = name.length() > 32 ? name.substring(0, 32) : name;
Inventory inventoryView = Bukkit.getServer().createInventory(null,
pInventory.getSize() + 9, inventoryName);
ItemStack[] oldContents = pInventory.getContents();
ItemStack[] newContents = inventoryView.getContents();
newContents[oldContents.length + SLOT_HELMET] = copyItem(pInventory.getHelmet());
newContents[oldContents.length + SLOT_CHEST] = copyItem(pInventory.getChestplate());
newContents[oldContents.length + SLOT_LEGS] = copyItem(pInventory.getLeggings());
newContents[oldContents.length + SLOT_FEET] = copyItem(pInventory.getBoots());
// SLOT 6: ACTIVE POTION EFFECTS
if (player.getActivePotionEffects().size() > 0)
{
ItemStack potion = new Potion(PotionType.POISON).toItemStack(1);
ItemMeta meta = potion.getItemMeta();
List<String> effects = Lists.newLinkedList();
for (PotionEffect effect : player.getActivePotionEffects())
effects.add(ChatColor.RESET + "" + ChatColor.GRAY +
PlayerUtil.getStatusEffectName(effect));
meta.setDisplayName(ChatColor.BLUE + "" + ChatColor.ITALIC + "Status Effects");
meta.setLore(effects);
potion.setItemMeta(meta);
newContents[oldContents.length + 5] = potion;
}
// SLOT 7: CURRENT PLAYER LEVEL
if (player.getLevel() > 0)
{
ItemStack level = new ItemStack(Material.EXP_BOTTLE, player.getLevel());
ItemMeta meta = level.getItemMeta();
meta.setDisplayName(ChatColor.GREEN + "" + ChatColor.ITALIC + "Player XP Level");
meta.setLore(Lists.newArrayList(ChatColor.GRAY + "" + ChatColor.ITALIC +
String.format("%d %s", player.getLevel(), player.getLevel() == 1 ? "level" : "levels")));
level.setItemMeta(meta);
newContents[oldContents.length + 6] = level;
}
// SLOT 8: PLAYER HEALTH
{
ItemStack health = new ItemStack(Material.APPLE, player.getHealth());
ItemMeta meta = health.getItemMeta();
meta.setDisplayName(ChatColor.RED + "" + ChatColor.ITALIC + "Player Health");
meta.setLore(Lists.newArrayList(ChatColor.GRAY + "" + ChatColor.ITALIC +
String.format("%2.1f hearts", player.getHealth() / 2.0)));
health.setItemMeta(meta);
newContents[oldContents.length + 7] = health;
}
// SLOT 9: PLAYER HUNGER
{
ItemStack hunger = new ItemStack(Material.COOKED_BEEF, player.getFoodLevel());
ItemMeta meta = hunger.getItemMeta();
meta.setDisplayName(ChatColor.GOLD + "" + ChatColor.ITALIC + "Player Hunger");
meta.setLore(Lists.newArrayList(ChatColor.GRAY + "" + ChatColor.ITALIC +
String.format("%2.1f food", player.getFoodLevel() / 2.0)));
hunger.setItemMeta(meta);
newContents[oldContents.length + 8] = hunger;
}
for (int i = 0; i < oldContents.length; ++i)
newContents[i] = copyItem(oldContents[i]);
inventoryView.setContents(newContents);
return inventoryView;
}