package regalowl.hyperconomy;
import org.bukkit.entity.Player;
public class Buy {
HyperConomy hc;
Buy(String args[], Player player, String playerecon) {
hc = HyperConomy.hc;
HyperEconomy he = hc.getEconomyManager().getEconomy(playerecon);
EconomyManager em = hc.getEconomyManager();
LanguageFile L = hc.getLanguageFile();
try {
if (em.inAnyShop(player)) {
HyperPlayer hp = em.getHyperPlayer(player);
if (hp.hasBuyPermission(em.getShop(player))) {
String name = he.fixName(args[0]);
int id = 0;
int amount = 0;
HyperObject ho = he.getHyperObject(name, em.getShop(player));
if (ho instanceof HyperItem) {
HyperItem hi = (HyperItem)ho;
if (args.length == 1) {
amount = 1;
} else {
try {
amount = Integer.parseInt(args[1]);
if (amount > 10000) {
amount = 10000;
}
} catch (Exception e) {
String max = args[1];
if (max.equalsIgnoreCase("max")) {
int space = 0;
if (id >= 0) {
space = hi.getAvailableSpace(player.getInventory());
}
amount = space;
int shopstock = (int) ho.getStock();
if (amount > shopstock) {
amount = shopstock;
}
} else {
player.sendMessage(L.get("BUY_INVALID"));
return;
}
}
}
Shop s = em.getShop(player);
if (!s.isBanned(name)) {
PlayerTransaction pt = new PlayerTransaction(TransactionType.BUY);
pt.setHyperObject(ho);
pt.setAmount(amount);
pt.setTradePartner(s.getOwner());
TransactionResponse response = hp.processTransaction(pt);
response.sendMessages();
} else {
player.sendMessage(L.get("CANT_BE_TRADED"));
return;
}
} else if (ho instanceof HyperXP) {
if (args.length == 1) {
amount = 1;
} else {
try {
amount = Integer.parseInt(args[1]);
if (amount > 100000) {
amount = 100000;
}
} catch (Exception e) {
String max = args[1];
if (max.equalsIgnoreCase("max")) {
int shopstock = (int) ho.getStock();
if (amount > shopstock) {
amount = shopstock;
}
} else {
player.sendMessage(L.get("BUY_INVALID"));
return;
}
}
}
Shop s = em.getShop(player);
if (!s.isBanned(name)) {
PlayerTransaction pt = new PlayerTransaction(TransactionType.BUY);
pt.setHyperObject(ho);
pt.setAmount(amount);
pt.setTradePartner(s.getOwner());
TransactionResponse response = hp.processTransaction(pt);
response.sendMessages();
} else {
player.sendMessage(L.get("CANT_BE_TRADED"));
return;
}
} else {
player.sendMessage(L.get("INVALID_ITEM_NAME"));
return;
}
} else {
player.sendMessage(L.get("NO_TRADE_PERMISSION"));
return;
}
} else {
player.sendMessage(L.get("MUST_BE_IN_SHOP"));
return;
}
} catch (Exception e) {
player.sendMessage(L.get("BUY_INVALID"));
return;
}
}
}