More item refactor work.

This commit is contained in:
2024-03-02 10:34:45 -05:00
parent ec90ef6174
commit 5736f0a7a3
3 changed files with 38 additions and 107 deletions
+16 -21
View File
@@ -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);