More item refactor work.
This commit is contained in:
@@ -17,8 +17,6 @@ import engine.gameManager.DbManager;
|
||||
import engine.objects.*;
|
||||
import engine.powers.EffectsBase;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* @author Eighty
|
||||
*/
|
||||
@@ -175,57 +173,54 @@ public class MakeItemCmd extends AbstractDevCmd {
|
||||
return;
|
||||
}
|
||||
}
|
||||
ItemBase ib = ItemBase.getItemBase(itembaseID);
|
||||
if (ib == null) {
|
||||
ItemTemplate template = ItemTemplate.itemTemplates.get(itembaseID);
|
||||
|
||||
if (template == null) {
|
||||
throwbackError(pc, "Unable to find itembase of ID " + itembaseID);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((numItems > 1)
|
||||
&& (ib.getType().equals(ItemType.RESOURCE) == false)
|
||||
&& (ib.getType().equals(ItemType.OFFERING)) == false)
|
||||
&& (template.item_type.equals(ItemType.RESOURCE) == false)
|
||||
&& (template.item_type.equals(ItemType.OFFERING)) == false)
|
||||
numItems = 1;
|
||||
|
||||
CharacterItemManager cim = pc.getCharItemManager();
|
||||
|
||||
if (cim == null) {
|
||||
throwbackError(pc, "Unable to find the character item manager for player " + pc.getFirstName() + '.');
|
||||
return;
|
||||
}
|
||||
|
||||
byte charges = (byte) ib.getNumCharges();
|
||||
short dur = (short) ib.getDurability();
|
||||
|
||||
String result = "";
|
||||
|
||||
for (int i = 0; i < quantity; i++) {
|
||||
short weight = ib.getWeight();
|
||||
|
||||
int weight = template.item_wt;
|
||||
|
||||
if (!cim.hasRoomInventory(weight)) {
|
||||
throwbackError(pc, "Not enough room in inventory for any more of this item. " + i + " produced.");
|
||||
|
||||
if (i > 0)
|
||||
cim.updateInventory();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
boolean worked = false;
|
||||
Item item = new Item(ib, pc.getObjectUUID(),
|
||||
OwnerType.PlayerCharacter, charges, charges, dur, dur,
|
||||
true, false, ItemContainerType.INVENTORY, (byte) 0,
|
||||
new ArrayList<>(), "");
|
||||
Item item = new Item(itembaseID);
|
||||
item.ownerID = pc.getObjectUUID();
|
||||
item.ownerType = OwnerType.PlayerCharacter;
|
||||
|
||||
if (numItems > 1)
|
||||
item.setNumOfItems(numItems);
|
||||
|
||||
try {
|
||||
item = DbManager.ItemQueries.PERSIST(item);
|
||||
worked = true;
|
||||
} catch (Exception e) {
|
||||
throwbackError(pc, "DB error 1: Unable to create item. " + e.getMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
if (item == null || !worked) {
|
||||
throwbackError(pc, "DB error 2: Unable to create item.");
|
||||
return;
|
||||
}
|
||||
|
||||
//create prefix
|
||||
if (!prefix.isEmpty())
|
||||
item.addPermanentEnchantmentForDev(prefix, 0);
|
||||
|
||||
Reference in New Issue
Block a user