mirror of
https://gitlab.com/phoenix-dvpmt/mmoitems.git
synced 2025-02-08 12:21:21 +01:00
Finally compiles again
This commit is contained in:
parent
905a506333
commit
bcc63f42cb
@ -1,20 +1,23 @@
|
||||
package net.Indyuce.mmoitems.stat.history;
|
||||
|
||||
import io.lumine.mythic.lib.api.item.ItemTag;
|
||||
import io.lumine.mythic.lib.api.item.NBTCompound;
|
||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||
import io.lumine.mythic.lib.gson.JsonElement;
|
||||
import io.lumine.mythic.lib.gson.JsonObject;
|
||||
import io.lumine.mythic.lib.util.annotation.BackwardsCompatibility;
|
||||
import net.Indyuce.mmoitems.MMOItems;
|
||||
import net.Indyuce.mmoitems.api.item.mmoitem.MMOItem;
|
||||
import net.Indyuce.mmoitems.api.item.mmoitem.VolatileMMOItem;
|
||||
import net.Indyuce.mmoitems.stat.component.StatComponent;
|
||||
import net.Indyuce.mmoitems.stat.type.ItemStat;
|
||||
import net.Indyuce.mmoitems.util.MMOUtils;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.*;
|
||||
|
||||
public class LegacyStatHistoryFormat {
|
||||
|
||||
@ -78,20 +81,18 @@ public class LegacyStatHistoryFormat {
|
||||
}
|
||||
|
||||
// To know the stat it was
|
||||
StatComponent component;
|
||||
StatComponent sData;
|
||||
if (ogStatsEncode != null) {
|
||||
|
||||
// Decompress tags
|
||||
ArrayList<ItemTag> ogDecoded = ItemTag.decompressTags(ogStatsEncode.getAsJsonArray());
|
||||
|
||||
|
||||
sData = stat.getLoadedNBT(ogDecoded);
|
||||
sData = proxy(stat, ogDecoded);
|
||||
|
||||
// OG Not included (because its clear)
|
||||
} else {
|
||||
|
||||
// Just generate as clear
|
||||
sData = stat.getClearStatData();
|
||||
sData = stat.generateEmptyComponent();
|
||||
}
|
||||
|
||||
// Validate non null
|
||||
@ -99,6 +100,7 @@ public class LegacyStatHistoryFormat {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
// Can now generate stat history
|
||||
StatHistory sHistory = new StatHistory(iSource, stat, sData);
|
||||
|
||||
@ -136,7 +138,7 @@ public class LegacyStatHistoryFormat {
|
||||
ArrayList<ItemTag> tags = ItemTag.decompressTags(compressedTags.getAsJsonArray());
|
||||
|
||||
// Generate data
|
||||
StatData gemData = stat.getLoadedNBT(tags);
|
||||
StatComponent gemData = proxy(stat, tags);
|
||||
|
||||
// Validated?
|
||||
if (gemData != null) {
|
||||
@ -164,7 +166,7 @@ public class LegacyStatHistoryFormat {
|
||||
ArrayList<ItemTag> tags = ItemTag.decompressTags(elmnt.getAsJsonArray());
|
||||
|
||||
// Generate data
|
||||
StatData exData = stat.getLoadedNBT(tags);
|
||||
StatComponent exData = proxy(stat, tags);
|
||||
|
||||
// Validated?
|
||||
if (exData != null) {
|
||||
@ -211,7 +213,7 @@ public class LegacyStatHistoryFormat {
|
||||
ArrayList<ItemTag> tags = ItemTag.decompressTags(compressedTags.getAsJsonArray());
|
||||
|
||||
// Generate data
|
||||
StatData modData = stat.getLoadedNBT(tags);
|
||||
StatComponent modData = proxy(stat, tags);
|
||||
|
||||
// Validated?
|
||||
if (modData != null) {
|
||||
@ -229,4 +231,113 @@ public class LegacyStatHistoryFormat {
|
||||
return sHistory;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static StatComponent proxy(ItemStat<?> itemStat, ArrayList<ItemTag> tags) {
|
||||
ItemTag found = ItemTag.getTagAtPath(itemStat.getNBTPath(), tags);
|
||||
if (found == null) return null;
|
||||
|
||||
return itemStat.read(new VolatileMMOItem(new FakeNBTItem(found)));
|
||||
}
|
||||
|
||||
public static class FakeNBTItem extends NBTItem {
|
||||
private final String key;
|
||||
private final Object value;
|
||||
|
||||
public FakeNBTItem(ItemTag itemTag) {
|
||||
super(null);
|
||||
|
||||
this.key = itemTag.getPath();
|
||||
this.value = itemTag.getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getItem() {
|
||||
throw new RuntimeException("not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object get(String s) {
|
||||
return s.equals(key) ? value : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getString(String s) {
|
||||
return s.equals(key) ? (String) value : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasTag(String s) {
|
||||
return s.equals(key);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getBoolean(String s) {
|
||||
return s.equals(key) ? (Boolean) value : false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getDouble(String s) {
|
||||
return s.equals(key) ? (Double) value : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInteger(String s) {
|
||||
return s.equals(key) ? (Integer) value : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTItem setInteger(String s, int i) {
|
||||
throw new RuntimeException("not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTItem setDouble(String s, double v) {
|
||||
throw new RuntimeException("not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTItem setString(String s, @NotNull String s1) {
|
||||
throw new RuntimeException("not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTItem setBoolean(String s, boolean b) {
|
||||
throw new RuntimeException("not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTCompound getNBTCompound(String s) {
|
||||
throw new RuntimeException("not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTItem addTag(List<ItemTag> list) {
|
||||
throw new RuntimeException("not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTItem removeTag(String... strings) {
|
||||
throw new RuntimeException("not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getTags() {
|
||||
throw new RuntimeException("not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack toItem() {
|
||||
throw new RuntimeException("not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTypeId(String s) {
|
||||
throw new RuntimeException("not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCanMine(Collection<Material> collection) {
|
||||
throw new RuntimeException("not supported");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,70 @@
|
||||
package net.Indyuce.mmoitems.stat.nbt;
|
||||
|
||||
import io.lumine.mythic.lib.api.item.ItemTag;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Deprecated
|
||||
public class LegacyStatHistoryTagContainer implements TagContainer {
|
||||
private final List<ItemTag> tags;
|
||||
|
||||
public LegacyStatHistoryTagContainer(List<ItemTag> tags) {
|
||||
this.tags = tags;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove(@NotNull String... keys) {
|
||||
throw new RuntimeException("Not supported");
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public String getString(@NotNull String key) {
|
||||
for (ItemTag tag : tags)
|
||||
if (tag.getPath().equals(key)) return String.valueOf(tag.getValue());
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getDouble(@NotNull String key) {
|
||||
for (ItemTag tag : tags)
|
||||
if (tag.getPath().equals(key)) return (Double) tag.getValue();
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInteger(@NotNull String key) {
|
||||
for (ItemTag tag : tags)
|
||||
if (tag.getPath().equals(key)) return (Integer) tag.getValue();
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getBoolean(@NotNull String key) {
|
||||
for (ItemTag tag : tags)
|
||||
if (tag.getPath().equals(key)) return (Boolean) tag.getValue();
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setString(@NotNull String key, String value) {
|
||||
throw new RuntimeException("Not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDouble(@NotNull String key, double value) {
|
||||
throw new RuntimeException("Not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInteger(@NotNull String key, int value) {
|
||||
throw new RuntimeException("Not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBoolean(@NotNull String key, boolean value) {
|
||||
throw new RuntimeException("Not supported");
|
||||
}
|
||||
}
|
@ -1,55 +0,0 @@
|
||||
package net.Indyuce.mmoitems.stat.nbt;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class StatHistoryTagContainer implements TagContainer {
|
||||
|
||||
// TODO
|
||||
|
||||
@Override
|
||||
public void remove(@NotNull String... keys) {
|
||||
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public String getString(@NotNull String key) {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getDouble(@NotNull String key) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInteger(@NotNull String key) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getBoolean(@NotNull String key) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setString(@NotNull String key, String value) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDouble(@NotNull String key, double value) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInteger(@NotNull String key, int value) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBoolean(@NotNull String key, boolean value) {
|
||||
|
||||
}
|
||||
}
|
@ -2,6 +2,7 @@ package net.Indyuce.mmoitems.listener.reforging;
|
||||
|
||||
import net.Indyuce.mmoitems.ItemStats;
|
||||
import net.Indyuce.mmoitems.api.event.MMOItemReforgeEvent;
|
||||
import net.Indyuce.mmoitems.stat.component.StatComponent;
|
||||
import net.Indyuce.mmoitems.stat.data.type.StatData;
|
||||
import net.Indyuce.mmoitems.stat.history.StatHistory;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -21,7 +22,7 @@ public class RFGKeepExternalSH implements Listener {
|
||||
//RFG// MMOItems.log("§8Reforge §4EFG§7 Keeping EXSH");
|
||||
|
||||
// Through all the old histories
|
||||
for (StatHistory oldHist : event.getOldMMOItem().getStatHistories()) {
|
||||
for (StatHistory<?> oldHist : event.getOldMMOItem().getStatHistories()) {
|
||||
|
||||
// Skip enchantments tho
|
||||
if (oldHist.getItemStat() == ItemStats.ENCHANTS) { continue; }
|
||||
@ -30,7 +31,7 @@ public class RFGKeepExternalSH implements Listener {
|
||||
StatHistory newHist = event.getNewMMOItem().computeStatHistory(oldHist.getItemStat());
|
||||
|
||||
// Through all EXSH
|
||||
for (StatData exSH : oldHist.getExternalData()) {
|
||||
for (StatComponent exSH : oldHist.getExternalData()) {
|
||||
|
||||
// Add to the new one
|
||||
newHist.registerExternalData(exSH);
|
||||
|
@ -4,7 +4,6 @@ import net.Indyuce.mmoitems.ItemStats;
|
||||
import net.Indyuce.mmoitems.api.event.MMOItemReforgeEvent;
|
||||
import net.Indyuce.mmoitems.stat.component.builtin.ArrayComponent;
|
||||
import net.Indyuce.mmoitems.stat.component.builtin.StringComponent;
|
||||
import net.Indyuce.mmoitems.stat.data.StringListData;
|
||||
import net.Indyuce.mmoitems.stat.history.StatHistory;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
@ -15,13 +14,13 @@ import java.util.List;
|
||||
|
||||
/**
|
||||
* Transfers the lore from the old MMOItem to the new one.
|
||||
*
|
||||
* <p>
|
||||
* This operation is intended to allow refreshing the lore,
|
||||
* but keeping external things too.
|
||||
*
|
||||
* @author Gunging
|
||||
*/
|
||||
public class RFGKeepLore implements Listener {
|
||||
public class RFGKeepLore implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onReforge(MMOItemReforgeEvent event) {
|
||||
@ -39,11 +38,11 @@ public class RFGKeepLore implements Listener {
|
||||
if (extraLore.isEmpty()) return;
|
||||
|
||||
// All right set it as the original in the Stat History
|
||||
StatHistory hist = event.getNewMMOItem().computeStatHistory(ItemStats.LORE);
|
||||
StatHistory<ArrayComponent<StringComponent>> hist = event.getNewMMOItem().computeStatHistory(ItemStats.LORE);
|
||||
|
||||
// UUH just add it to the original I guess bruh
|
||||
StringListData original = (StringListData) hist.getOriginalData();
|
||||
for (String str : extraLore) { original.getList().add(str); }
|
||||
ArrayComponent<StringComponent> original = hist.getOriginalData();
|
||||
for (String str : extraLore) original.asList().add(new StringComponent(str));
|
||||
|
||||
// Put it there
|
||||
hist.setOriginalData(original);
|
||||
|
@ -1,8 +1,7 @@
|
||||
package net.Indyuce.mmoitems.listener.reforging;
|
||||
|
||||
import net.Indyuce.mmoitems.api.event.MMOItemReforgeEvent;
|
||||
import net.Indyuce.mmoitems.stat.data.type.Mergeable;
|
||||
import net.Indyuce.mmoitems.stat.data.type.StatData;
|
||||
import net.Indyuce.mmoitems.stat.component.StatComponent;
|
||||
import net.Indyuce.mmoitems.stat.history.StatHistory;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
@ -29,7 +28,7 @@ public class RFGKeepModifications implements Listener {
|
||||
}
|
||||
|
||||
// Through all the old histories
|
||||
for (StatHistory oldHist : event.getOldMMOItem().getStatHistories()) {
|
||||
for (StatHistory<?> oldHist : event.getOldMMOItem().getStatHistories()) {
|
||||
|
||||
// Get newer
|
||||
StatHistory newHist = event.getNewMMOItem().computeStatHistory(oldHist.getItemStat());
|
||||
@ -38,13 +37,13 @@ public class RFGKeepModifications implements Listener {
|
||||
for (UUID mod : oldHist.getAllModifiers()) {
|
||||
|
||||
// Get that data
|
||||
StatData modData = oldHist.getModifiersBonus(mod);
|
||||
StatComponent modData = oldHist.getModifiersBonus(mod);
|
||||
|
||||
// Snooze
|
||||
if (modData == null) { continue; }
|
||||
|
||||
// Apply it
|
||||
newHist.registerModifierBonus(mod, ((Mergeable) modData).clone());
|
||||
newHist.registerModifierBonus(mod, modData.clone());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -40,6 +40,8 @@ public class RFGKeepRNG implements Listener {
|
||||
|
||||
//RFG// MMOItems.log("§8Reforge §4EFG§7 Keeping old RNG Rolls");
|
||||
|
||||
/*
|
||||
TODO reroll
|
||||
event.getOldMMOItem().getStats()
|
||||
.forEach(stat -> {
|
||||
|
||||
@ -52,7 +54,7 @@ public class RFGKeepRNG implements Listener {
|
||||
* Decide if this data is too far from RNG to
|
||||
* preserve its rolls, even if it should be
|
||||
* preserving the rolls.
|
||||
*/
|
||||
*
|
||||
final StatHistory hist = event.getOldMMOItem().computeStatHistory( stat);
|
||||
final StatData keptData = ((UpdatableRandomStatData) source).reroll(stat, hist.getOriginalData(), event.getReforger().getGenerationItemLevel());
|
||||
|
||||
@ -65,5 +67,6 @@ public class RFGKeepRNG implements Listener {
|
||||
// Replace original data of the new one with the roll from the old one
|
||||
clear.setOriginalData(keptData);
|
||||
});
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user