Skip to content
This repository has been archived by the owner on Mar 8, 2022. It is now read-only.

Commit

Permalink
fix bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
ReinWD committed Aug 13, 2019
1 parent 6d74946 commit 33b3665
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 24 deletions.
14 changes: 6 additions & 8 deletions src/main/java/cat/nyaa/saika/forge/ForgeItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,9 @@
import org.bukkit.inventory.meta.tags.CustomItemTagContainer;
import org.bukkit.inventory.meta.tags.ItemTagType;

import java.util.UUID;

abstract class ForgeItem implements BaseManager.NbtedISerializable {
public abstract class ForgeItem implements BaseManager.NbtedISerializable {
public static final NamespacedKey ITEM_TAG = new NamespacedKey(Saika.plugin, "forgeItem");
public static final NamespacedKey ITEM_UUID = new NamespacedKey(Saika.plugin, "forgeUuid");
public static final NamespacedKey ITEM_ID = new NamespacedKey(Saika.plugin, "forgeUuid");
static ForgeManager forgeManager = ForgeManager.getForgeManager();

ItemStack itemStack;
Expand All @@ -25,17 +23,17 @@ protected ForgeItem(ItemStack itemStack) {
this.itemStack = itemStack;
}

protected void addItemTag(){
public static void addItemTag(ItemStack itemStack, String id){
ItemMeta itemMeta = itemStack.getItemMeta();
CustomItemTagContainer forgeItemTags = null;
if (itemMeta != null) {
CustomItemTagContainer customTagContainer = itemMeta.getCustomTagContainer();
if (customTagContainer.hasCustomTag(ITEM_TAG, ItemTagType.TAG_CONTAINER)) {
forgeItemTags = customTagContainer.getCustomTag(ITEM_TAG, ItemTagType.TAG_CONTAINER);
} else {
forgeItemTags = this.createItemTag(customTagContainer);
forgeItemTags = createItemTag(customTagContainer);
}
forgeItemTags.setCustomTag(ITEM_UUID, ItemTagType.STRING, id);
forgeItemTags.setCustomTag(ITEM_ID, ItemTagType.STRING, id);
customTagContainer.setCustomTag(ITEM_TAG, ItemTagType.TAG_CONTAINER, forgeItemTags);
itemStack.setItemMeta(itemMeta);
}
Expand All @@ -61,7 +59,7 @@ public String toNbt() {
return ItemStackUtils.itemToBase64(clone);
}

private CustomItemTagContainer createItemTag(CustomItemTagContainer customTagContainer) {
private static CustomItemTagContainer createItemTag(CustomItemTagContainer customTagContainer) {
CustomItemTagContainer newContainer = customTagContainer.getAdapterContext().newTagContainer();
customTagContainer.setCustomTag(ITEM_TAG, ItemTagType.TAG_CONTAINER, newContainer);
return newContainer;
Expand Down
10 changes: 4 additions & 6 deletions src/main/java/cat/nyaa/saika/forge/ForgeManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,8 @@ public ForgeIron defineForgeIron(ItemStack itemStack, String level, int elementC
ItemStack clone = itemStack.clone();
clone.setAmount(1);
ForgeIron forgeIron = new ForgeIron(clone, level, elementCost);
String s = ironManager.addItem(forgeIron);
forgeIron.id = s;
ironManager.addItem(level, forgeIron);
forgeIron.id = level;
addItemNbt(forgeIron);
saveManager(ironManager);
return forgeIron;
Expand Down Expand Up @@ -338,7 +338,6 @@ public ForgeableItem addItem(ItemStack itemInMainHand, String level, String elem
ForgeableItem item = new ForgeableItem(itemInMainHand, level, element, cost, weight);
String id = forgeableItemManager.addItem(item);
item.setId(id);
item.addItemTag();
saveManager(forgeableItemManager);
return item;
}
Expand Down Expand Up @@ -527,7 +526,6 @@ void load() {
conf.load(f);
ForgeableItem item = new ForgeableItem();
item.deserialize(conf);
item.addItemTag();
addItem(item.id, item);
}
}
Expand Down Expand Up @@ -916,8 +914,8 @@ void load() {
iron.itemStack = ItemStackUtils.itemFromBase64(iron.nbt);
});
}
OptionalInt max = itemMap.keySet().stream().mapToInt(s -> Integer.parseInt(s)).max();
this.id = max.orElse(0) + 1;
// OptionalInt max = itemMap.keySet().stream().mapToInt(s -> Integer.parseInt(s)).max();
// this.id = max.orElse(0) + 1;
} catch (IOException | InvalidConfigurationException e) {
plugin.getServer().getLogger().log(Level.SEVERE, "exception while saving " + ymlFile.getName(), e);
}
Expand Down
7 changes: 0 additions & 7 deletions src/main/java/cat/nyaa/saika/forge/ForgeableItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -127,12 +127,6 @@ public void setId(String id) {
super.id = id;
}

@Override
protected void addItemTag() {
super.addItemTag();
nbt = ItemStackUtils.itemToBase64(itemStack);
}

@Override
public ForgeItemType getType() {
return ForgeItemType.ITEM;
Expand All @@ -156,7 +150,6 @@ public Bonus getRecycleBonus() {

public void setItem(ItemStack itemInMainHand) {
super.itemStack = itemInMainHand;
super.addItemTag();
nbt = ItemStackUtils.itemToBase64(itemInMainHand);
}

Expand Down
2 changes: 2 additions & 0 deletions src/main/java/cat/nyaa/saika/forge/ui/ForgeUiEvents.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import cat.nyaa.saika.I18n;
import cat.nyaa.saika.Saika;
import cat.nyaa.saika.forge.ForgeIron;
import cat.nyaa.saika.forge.ForgeItem;
import cat.nyaa.saika.forge.ForgeManager;
import cat.nyaa.saika.forge.ForgeableItem;
import cat.nyaa.saika.forge.roll.ForgeRecipe;
Expand Down Expand Up @@ -293,6 +294,7 @@ private void forgeUiClicked(InventoryClickEvent ev, Inventory clickedInventory)
String level = item.getLevel();
ForgeIron iron = ForgeManager.getForgeManager().getIron(level);
int cost = forgeUi.cost(iron);
ForgeItem.addItemTag(itemStack, item.getId());
ForgeableItem.addCostTagTo(itemStack, cost);
giveItem(ev, itemStack);
String playerName = ev.getWhoClicked().getName();
Expand Down
12 changes: 9 additions & 3 deletions src/main/java/cat/nyaa/saika/forge/ui/RecycleUi.java
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,16 @@ public void updateValidation() {
onInvalid();
return;
}
String id = customTag.getCustomTag(ForgeableItem.ITEM_UUID, ItemTagType.STRING);
String id = customTag.getCustomTag(ForgeableItem.ITEM_ID, ItemTagType.STRING);
ForgeableItem forgeableItem = forgeManager.getForgeableItem(id);
if (forgeableItem != null) {
ForgeableItem.RecycleInfo recycle = forgeableItem.getRecycle();
ItemStack is = forgeableItem.getItemStack();
int costTag = ForgeableItem.getCostTag(itemStack);
if (costTag == -1){
onInvalid();
return;
}
if (is.getAmount() > 1) {
if (itemStack.getAmount() < is.getAmount()) {
onInvalid();
Expand Down Expand Up @@ -137,7 +142,7 @@ public ItemStack onRecycle() {
onInvalid();
return null;
}
String id = customTag.getCustomTag(ForgeableItem.ITEM_UUID, ItemTagType.STRING);
String id = customTag.getCustomTag(ForgeableItem.ITEM_ID, ItemTagType.STRING);
ForgeableItem forgeableItem = forgeManager.getForgeableItem(id);

if (forgeableItem == null) {
Expand All @@ -160,7 +165,8 @@ public ItemStack onRecycle() {
int costTag = ForgeableItem.getCostTag(itemStack);
int amount;
if (costTag == -1) {
amount = (int) Math.round(forgeableItem.getMinCost() * (((double) recycleResult) / 100d));
onInvalid();
return null;
}else {
amount = (int) Math.round(costTag * (((double) recycleResult) / 100d));
}
Expand Down

0 comments on commit 33b3665

Please sign in to comment.