TF-EssentialsX/Essentials/src/com/earth2me/essentials/commands/Commandworth.java
2013-06-11 20:45:12 +01:00

112 lines
2.9 KiB
Java

package com.earth2me.essentials.commands;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.User;
import com.earth2me.essentials.utils.NumberUtil;
import java.math.BigDecimal;
import java.util.Locale;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.inventory.ItemStack;
public class Commandworth extends EssentialsCommand
{
public Commandworth()
{
super("worth");
}
//TODO: Remove duplication
@Override
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{
ItemStack iStack = user.getInventory().getItemInHand();
int amount = iStack.getAmount();
if (args.length > 0)
{
iStack = ess.getItemDb().get(args[0]);
}
try
{
if (args.length > 1)
{
amount = Integer.parseInt(args[1]);
}
}
catch (NumberFormatException ex)
{
amount = iStack.getType().getMaxStackSize();
}
iStack.setAmount(amount);
final BigDecimal worth = ess.getWorth().getPrice(iStack);
if (worth == null)
{
throw new Exception(_("itemCannotBeSold"));
}
final BigDecimal result = worth.multiply(BigDecimal.valueOf(amount));
user.sendMessage(iStack.getDurability() != 0
? _("worthMeta",
iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""),
iStack.getDurability(),
NumberUtil.displayCurrency(result, ess),
amount,
NumberUtil.displayCurrency(worth, ess))
: _("worth",
iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""),
NumberUtil.displayCurrency(result, ess),
amount,
NumberUtil.displayCurrency(worth, ess)));
}
@Override
protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
ItemStack iStack = ess.getItemDb().get(args[0]);
int amount = iStack.getAmount();
try
{
if (args.length > 1)
{
amount = Integer.parseInt(args[1]);
}
}
catch (NumberFormatException ex)
{
amount = iStack.getType().getMaxStackSize();
}
iStack.setAmount(amount);
final BigDecimal worth = ess.getWorth().getPrice(iStack);
if (worth == null)
{
throw new Exception(_("itemCannotBeSold"));
}
final BigDecimal result = worth.multiply(BigDecimal.valueOf(amount));
sender.sendMessage(iStack.getDurability() != 0
? _("worthMeta",
iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""),
iStack.getDurability(),
NumberUtil.displayCurrency(result, ess),
amount,
NumberUtil.displayCurrency(worth, ess))
: _("worth",
iStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""),
NumberUtil.displayCurrency(result, ess),
amount,
NumberUtil.displayCurrency(worth, ess)));
}
}