mirror of
https://gitlab.com/phoenix-dvpmt/mmoitems.git
synced 2025-03-11 13:11:50 +01:00
Fixed revid-ed items not stacking
This commit is contained in:
parent
ee27b4d566
commit
0099a415fa
@ -130,9 +130,8 @@ public class ItemStackBuilder {
|
|||||||
* Enchantment data must never be clear and lack history. This is
|
* Enchantment data must never be clear and lack history. This is
|
||||||
* the basis for when an item is 'old'
|
* the basis for when an item is 'old'
|
||||||
*/
|
*/
|
||||||
if (!builtMMOItem.hasData(ItemStats.ENCHANTS)) {
|
builtMMOItem.computeData(ItemStats.ENCHANTS);
|
||||||
builtMMOItem.setData(ItemStats.ENCHANTS, ItemStats.ENCHANTS.getClearStatData());
|
builtMMOItem.computeStatHistory(ItemStats.ENCHANTS);
|
||||||
}
|
|
||||||
//GEM// else {MMOItems.log("\u00a73 -?- \u00a77Apparently found enchantment data \u00a7b" + (mmoitem.getData(ItemStats.ENCHANTS) == null ? "null" : ((EnchantListData) mmoitem.getData(ItemStats.ENCHANTS)).getEnchants().size())); }
|
//GEM// else {MMOItems.log("\u00a73 -?- \u00a77Apparently found enchantment data \u00a7b" + (mmoitem.getData(ItemStats.ENCHANTS) == null ? "null" : ((EnchantListData) mmoitem.getData(ItemStats.ENCHANTS)).getEnchants().size())); }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -140,9 +139,8 @@ public class ItemStackBuilder {
|
|||||||
* through non-MMOItems supported sources, the name can be changed in
|
* through non-MMOItems supported sources, the name can be changed in
|
||||||
* an anvil, so the very original name must be saved.
|
* an anvil, so the very original name must be saved.
|
||||||
*/
|
*/
|
||||||
if (!builtMMOItem.hasData(ItemStats.NAME))
|
builtMMOItem.computeData(ItemStats.NAME);
|
||||||
builtMMOItem.setData(ItemStats.NAME, ItemStats.NAME.getClearStatData());
|
builtMMOItem.computeStatHistory(ItemStats.NAME);
|
||||||
builtMMOItem.computeStatHistory(ItemStats.NAME); // Ignore result
|
|
||||||
|
|
||||||
// For every stat within this item
|
// For every stat within this item
|
||||||
for (ItemStat stat : builtMMOItem.getStats())
|
for (ItemStat stat : builtMMOItem.getStats())
|
||||||
|
@ -4,7 +4,6 @@ import net.Indyuce.mmoitems.ItemStats;
|
|||||||
import net.Indyuce.mmoitems.api.item.mmoitem.MMOItem;
|
import net.Indyuce.mmoitems.api.item.mmoitem.MMOItem;
|
||||||
import net.Indyuce.mmoitems.stat.data.type.Mergeable;
|
import net.Indyuce.mmoitems.stat.data.type.Mergeable;
|
||||||
import net.Indyuce.mmoitems.stat.data.type.StatData;
|
import net.Indyuce.mmoitems.stat.data.type.StatData;
|
||||||
import org.apache.commons.lang.Validate;
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@ -89,7 +88,7 @@ public class EnchantListData implements StatData, Mergeable<EnchantListData> {
|
|||||||
final AtomicBoolean check = new AtomicBoolean();
|
final AtomicBoolean check = new AtomicBoolean();
|
||||||
enchants.forEach((enchant, lvl) -> {
|
enchants.forEach((enchant, lvl) -> {
|
||||||
if (check.get()) builder.append(",");
|
if (check.get()) builder.append(",");
|
||||||
builder.append(enchant + "=" + lvl);
|
builder.append(enchant).append("=").append(lvl);
|
||||||
check.set(true);
|
check.set(true);
|
||||||
});
|
});
|
||||||
builder.append("}");
|
builder.append("}");
|
||||||
@ -138,11 +137,7 @@ public class EnchantListData implements StatData, Mergeable<EnchantListData> {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mmoItem.hasData(ItemStats.ENCHANTS)) {
|
EnchantListData mmoData = (EnchantListData) mmoItem.computeData(ItemStats.ENCHANTS);
|
||||||
mmoItem.setData(ItemStats.ENCHANTS, new EnchantListData());
|
|
||||||
}
|
|
||||||
|
|
||||||
EnchantListData mmoData = (EnchantListData) mmoItem.getData(ItemStats.ENCHANTS);
|
|
||||||
|
|
||||||
// 2: If it has data (It always has) and the amount of enchants is zero, the cached are Extraneous
|
// 2: If it has data (It always has) and the amount of enchants is zero, the cached are Extraneous
|
||||||
if (mmoData.getEnchants().size() == 0) {
|
if (mmoData.getEnchants().size() == 0) {
|
||||||
|
@ -141,6 +141,8 @@ public class StatHistory {
|
|||||||
public void registerModifierBonus(@NotNull UUID of, @NotNull StatData data) {
|
public void registerModifierBonus(@NotNull UUID of, @NotNull StatData data) {
|
||||||
Validate.notNull(of, "Modifier UUID cannot be null");
|
Validate.notNull(of, "Modifier UUID cannot be null");
|
||||||
Validate.notNull(data, "Stat data cannot be null");
|
Validate.notNull(data, "Stat data cannot be null");
|
||||||
|
if (data.isEmpty()) return;
|
||||||
|
|
||||||
perModifierBonus.put(of, data);
|
perModifierBonus.put(of, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -205,6 +207,8 @@ public class StatHistory {
|
|||||||
public void registerGemstoneData(@NotNull UUID of, @NotNull StatData data) {
|
public void registerGemstoneData(@NotNull UUID of, @NotNull StatData data) {
|
||||||
Validate.notNull(of, "Gemstone ID cannot be null");
|
Validate.notNull(of, "Gemstone ID cannot be null");
|
||||||
Validate.notNull(data, "Stat data cannot be null");
|
Validate.notNull(data, "Stat data cannot be null");
|
||||||
|
if (data.isEmpty()) return;
|
||||||
|
|
||||||
perGemstoneData.put(of, data);
|
perGemstoneData.put(of, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -255,6 +259,8 @@ public class StatHistory {
|
|||||||
*/
|
*/
|
||||||
public void registerExternalData(@NotNull StatData data) {
|
public void registerExternalData(@NotNull StatData data) {
|
||||||
Validate.notNull(data, "Stat data cannot be null");
|
Validate.notNull(data, "Stat data cannot be null");
|
||||||
|
if (data.isEmpty()) return;
|
||||||
|
|
||||||
perExternalData.add(data);
|
perExternalData.add(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user