/*
* Copyright (C) 2013-2016 Gonçalo Baltazar <me@goncalomb.com>
*
* This file is part of NBTEditor.
*
* NBTEditor is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* NBTEditor is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with NBTEditor. If not, see <http://www.gnu.org/licenses/>.
*/
package com.goncalomb.bukkit.nbteditor.nbt;
import org.bukkit.inventory.ItemStack;
import com.goncalomb.bukkit.mylib.reflect.NBTTagCompound;
import com.goncalomb.bukkit.mylib.reflect.NBTUtils;
public final class VillagerNBTOffer {
private ItemStack _buyA;
private ItemStack _buyB;
private ItemStack _sell;
private int _maxUses;
private int _uses;
public VillagerNBTOffer(ItemStack buyA, ItemStack buyB, ItemStack sell) {
this(buyA, buyB, sell, 7);
}
public VillagerNBTOffer(ItemStack buyA, ItemStack buyB, ItemStack sell, int maxUses) {
this(buyA, buyB, sell, maxUses, 0);
}
public VillagerNBTOffer(ItemStack buyA, ItemStack buyB, ItemStack sell, int maxUses, int uses) {
_buyA = buyA;
_buyB = buyB;
_sell = sell;
_maxUses = maxUses;
_uses = uses;
}
VillagerNBTOffer(NBTTagCompound offer) {
_buyA = NBTUtils.itemStackFromNBTData(offer.getCompound("buy"));
if (offer.hasKey("buyB")) {
_buyB = NBTUtils.itemStackFromNBTData(offer.getCompound("buyB"));
} else {
_buyB = null;
}
_sell = NBTUtils.itemStackFromNBTData(offer.getCompound("sell"));
_maxUses = offer.getInt("maxUses");
_uses = offer.getInt("uses");
}
NBTTagCompound getCompound() {
NBTTagCompound offer = new NBTTagCompound();
offer.setCompound("buy", NBTUtils.itemStackToNBTData(_buyA));
if (_buyB != null) {
offer.setCompound("buyB", NBTUtils.itemStackToNBTData(_buyB));
}
offer.setCompound("sell", NBTUtils.itemStackToNBTData(_sell));
offer.setInt("maxUses", _maxUses);
offer.setInt("uses", _uses);
return offer;
}
public ItemStack getBuyA() {
return _buyA;
}
public ItemStack getBuyB() {
return _buyB;
}
public ItemStack getSell() {
return _sell;
}
public int getMaxUses() {
return _maxUses;
}
public int getUses() {
return _uses;
}
}