package com.crossge.cceconomy.Commands;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import com.crossge.cceconomy.*;;
public class CmdTAccept extends Cmd
{
Trade tr = new Trade();
Formatter form = new Formatter();
Materials mat = new Materials();
ArrayLists arl = new ArrayLists();
BalChecks balc = new BalChecks();
public CmdTAccept()
{
}
public boolean commandUse(CommandSender sender, String[] args)
{
if (sender instanceof Player)
{
if(args.length != 1)
return false;
Player player = (Player) sender;
Player target = sender.getServer().getPlayer(args[0]);
String pname = player.getName();
String offerpname = target.getName();
if(tr.hasTrade(pname, offerpname))
{
String info = tr.acceptTrade(pname, offerpname);
String item = "";
String amount = info.split(" ")[1];
String price = info.split(" ")[2];
String toWhom = info.split(" ")[3];
String temp = "";
short data = 0;
temp = info.split(" ")[0].replaceAll(":", " ");
item = temp.split(" ")[0];
if(form.isLegal(price))
price = form.roundTwoDecimals(Double.parseDouble(price));
if(form.isLegal(item))
{
item = mat.idToName(Integer.parseInt(item));
try
{
data = Short.parseShort(temp.split(" ")[1]);
}
catch(Exception e)
{
data = 0;
}
}
if(!toWhom.equalsIgnoreCase(pname) && !toWhom.equalsIgnoreCase(offerpname))
{
String amountgetting = amount;
String itemgetting = item;
String amountoffering = toWhom;
String itemoffering = "";
short dataget = data;
short dataoff = 0;
String temp2 = "";
temp2 = price.replaceAll(":", " ");
itemoffering = temp.split(" ")[0];
if(form.isLegal(itemoffering))
{
try
{
dataoff = Short.parseShort(temp2.split(" ")[1]);
}
catch(Exception e)
{
dataoff = 0;
}
}
PlayerInventory thereinventory = target.getInventory();
PlayerInventory yourinventory = player.getInventory();
ItemStack itemstack = new ItemStack(Material.matchMaterial(mat.findItem(itemgetting)), Integer.parseInt(amountgetting), dataget);
ItemStack is = new ItemStack(Material.matchMaterial(mat.findItem(itemoffering)), Integer.parseInt(amountoffering), dataoff);
if(!yourinventory.contains(itemstack))
{
player.sendMessage(arl.getMessages() + "You do not have that much " + itemgetting);
return true;
}
if(!thereinventory.contains(is))
{
player.sendMessage(arl.getMessages() + "They do not have that much " + itemoffering);
return true;
}
yourinventory.addItem(is);
yourinventory.removeItem(itemstack);
thereinventory.addItem(itemstack);
thereinventory.removeItem(is);
}
if(toWhom.equalsIgnoreCase(pname))
{
if(Double.parseDouble(balc.bal(offerpname)) - Double.parseDouble(price) < 0)
{
player.sendMessage(arl.getMessages() + "They do not have " + arl.getMoney() + "$" + price);
return true;
}
PlayerInventory thereinventory = target.getInventory();
PlayerInventory yourinventory = player.getInventory();
ItemStack itemstack = new ItemStack(Material.matchMaterial(mat.findItem(item)), Integer.parseInt(amount), data);
if(!yourinventory.contains(itemstack))
{
player.sendMessage(arl.getMessages() + "You do not have that much " + item);
return true;
}
balc.removeMoney(offerpname, Double.parseDouble(price));
balc.addMoney(pname, Double.parseDouble(price));
thereinventory.addItem(itemstack);
yourinventory.removeItem(itemstack);
}
if(toWhom.equalsIgnoreCase(offerpname))
{
if(Double.parseDouble(balc.bal(pname)) - Double.parseDouble(price) < 0)
{
player.sendMessage(arl.getMessages() + "You do not have " + arl.getMoney() + "$" + price);
return true;
}
PlayerInventory thereinventory = target.getInventory();
PlayerInventory yourinventory = player.getInventory();
ItemStack itemstack = new ItemStack(Material.matchMaterial(mat.findItem(item)), Integer.parseInt(amount), data);
if(!thereinventory.contains(itemstack))
{
player.sendMessage(arl.getMessages() + "They do not have that much " + item);
return true;
}
balc.removeMoney(pname, Double.parseDouble(price));
balc.addMoney(offerpname, Double.parseDouble(price));
yourinventory.addItem(itemstack);
thereinventory.removeItem(itemstack);
}
player.sendMessage(arl.getMessages() + "You have accepted the trade from " + offerpname);
target.sendMessage(arl.getMessages() + "Your trade to " + pname + " has been accepted");
return true;
}
else
{
player.sendMessage(arl.getMessages() + "You do not have a trade offer from " + offerpname);
return true;
}
}
else
{
sender.sendMessage(arl.getMessages() + "You don't have an inventory. Please log in to trade.");
return true;
}
}
}