I am trying to create a plugin that takes the essentials command /item
and gives a lore to every one of the items.
The code I am putting does not have the lore part yet, right now I am just focusing on rewriting the /item
command so I can edit it.
public class main extends JavaPlugin implements Listener {
public static Bukkit plugin;
@Override
public void onEnable()
{
Bukkit.getServer().getPluginManager().registerEvents(this, this);
Bukkit.getConsoleSender().sendMessage(ChatColor.DARK_RED + "Enabled!");
}
@Override
public void onDisable()
{
getLogger();
Bukkit.getConsoleSender().sendMessage(ChatColor.DARK_RED + "Disabled!");
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("item")) {
Player user = (Player)sender;
if (args.length < 1)
{
user.sendMessage("Not enough arguments");
}
Essentials essentials = (Essentials)getServer().getPluginManager().getPlugin("Essentials");
IItemDb itemDB = essentials.getItemDb();
ItemStack stack = essentials.getItemDb().get(args[0]);
final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", "");
try
{
if (args.length > 1 && Integer.parseInt(args[1]) > 0)
{
stack.setAmount(Integer.parseInt(args[1]));
}
}
catch (NumberFormatException e)
{
user.sendMessage("Not enough arguements");
}
if (args.length > 2)
{
MetaItemStack metaStack = new MetaItemStack(stack);
final boolean allowUnsafe = user.hasPermission("essentials.enchantments.allowunsafe");
stack = metaStack.getItemStack();
}
if (stack.getType() == Material.AIR)
{
user.sendMessage("Can not spawn air");
}
final String displayName = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace('_', ' ');
user.sendMessage("Given " + stack.getAmount() + " " + displayName);
if (user.hasPermission("essentials.oversizedstacks"))
{
InventoryWorkaround.addOversizedItems(user.getInventory(), 111, stack);
}
else
{
InventoryWorkaround.addItems(user.getInventory(), stack);
}
user.updateInventory();
return true;
}
return false;
}
}
On this line:
ItemStack stack = essentials.getItemDb().get(args[0]);
I get the error:
Unhandled exception type Exception.
I can fix this by rearranging the bottom closing braces, but then I get errors in the bottom closing braces. Does anyone know what is going on?