|
|
|
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
|
|
|
|
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
|
|
|
|
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
|
|
|
|
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
|
|
|
|
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
|
|
|
|
// Magicbane Emulator Project © 2013 - 2022
|
|
|
|
// www.magicbane.com
|
|
|
|
|
|
|
|
|
|
|
|
package engine.objects;
|
|
|
|
|
|
|
|
import engine.Enum.ContainerType;
|
|
|
|
import engine.server.MBServerStatics;
|
|
|
|
import org.pmw.tinylog.Logger;
|
|
|
|
|
|
|
|
import java.sql.ResultSet;
|
|
|
|
import java.sql.SQLException;
|
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
|
|
|
|
|
|
|
|
public class ItemContainer extends AbstractGameObject {
|
|
|
|
|
|
|
|
private AbstractWorldObject owner;
|
|
|
|
private ConcurrentHashMap<Long, Item> itemMap = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD, MBServerStatics.CHM_THREAD_LOW);
|
|
|
|
|
|
|
|
private ContainerType containerType;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* No Table ID Constructor
|
|
|
|
*/
|
|
|
|
public ItemContainer(AbstractWorldObject owner, ContainerType containerType) {
|
|
|
|
super();
|
|
|
|
this.owner = owner;
|
|
|
|
this.containerType = containerType;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Normal Constructor
|
|
|
|
*/
|
|
|
|
public ItemContainer(AbstractWorldObject owner, ContainerType containerType, int newUUID) {
|
|
|
|
super(newUUID);
|
|
|
|
this.owner = owner;
|
|
|
|
this.containerType = containerType;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ResultSet Constructor
|
|
|
|
*/
|
|
|
|
public ItemContainer(ResultSet rs) throws SQLException {
|
|
|
|
super(rs);
|
|
|
|
|
|
|
|
//get owner
|
|
|
|
long ownerID = rs.getLong("parent");
|
|
|
|
this.owner = (AbstractWorldObject) AbstractGameObject.getFromTypeAndID(ownerID);
|
|
|
|
|
|
|
|
//get ContainerType
|
|
|
|
String ct = rs.getString("container_type");
|
|
|
|
try {
|
|
|
|
this.containerType = ContainerType.valueOf(ct.toUpperCase());
|
|
|
|
} catch (Exception e) {
|
|
|
|
this.containerType = ContainerType.INVENTORY;
|
|
|
|
Logger.error("invalid containerType");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Getters
|
|
|
|
*/
|
|
|
|
public AbstractWorldObject getOwner() {
|
|
|
|
return this.owner;
|
|
|
|
}
|
|
|
|
|
|
|
|
public ConcurrentHashMap<Long, Item> getItemMap() {
|
|
|
|
return this.itemMap;
|
|
|
|
}
|
|
|
|
|
|
|
|
public ContainerType getContainerType() {
|
|
|
|
return this.containerType;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isBank() {
|
|
|
|
return (this.containerType == ContainerType.BANK);
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isInventory() {
|
|
|
|
return (this.containerType == ContainerType.INVENTORY);
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isVault() {
|
|
|
|
return (this.containerType == ContainerType.VAULT);
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean containsItem(long itemID) {
|
|
|
|
return this.itemMap.containsKey(itemID);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void updateDatabase() {
|
|
|
|
// TODO Create update logic.
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|