mirror of
https://gitlab.com/phoenix-dvpmt/mmoitems.git
synced 2025-02-01 11:11:21 +01:00
GemStones now display their upgrade level (if they are set to scale with upgrades)
Bugfixes and polishing.
This commit is contained in:
parent
ac278179a9
commit
2766870937
@ -136,7 +136,7 @@ public class DisplayName extends StringStat implements GemStoneStat {
|
||||
return format;
|
||||
}
|
||||
|
||||
@NotNull String appendUpgradeLevel(@NotNull String format, int lvl) {
|
||||
@NotNull public static String appendUpgradeLevel(@NotNull String format, int lvl) {
|
||||
String suffix = MythicLib.plugin.parseColors(MMOItems.plugin.getConfig().getString("item-upgrading.name-suffix"));
|
||||
|
||||
//MMOItems.getConsole().sendMessage("Level " + upgradeLevel);
|
||||
@ -157,7 +157,7 @@ public class DisplayName extends StringStat implements GemStoneStat {
|
||||
}
|
||||
|
||||
|
||||
String levelPrefix(@NotNull String template, int toLevel) {
|
||||
@NotNull public static String levelPrefix(@NotNull String template, int toLevel) {
|
||||
|
||||
// Ez
|
||||
template = template.replace("#lvl#", String.valueOf(toLevel));
|
||||
@ -334,4 +334,6 @@ public class DisplayName extends StringStat implements GemStoneStat {
|
||||
public RandomStatData whenInitialized(Object object) {
|
||||
return new NameData(object.toString());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -55,7 +55,28 @@ public class GemSockets extends ItemStat {
|
||||
// Edit Lore
|
||||
String empty = ItemStat.translate("empty-gem-socket"), filled = ItemStat.translate("filled-gem-socket");
|
||||
List<String> lore = new ArrayList<>();
|
||||
sockets.getGemstones().forEach(gem -> lore.add(filled.replace("#", gem.getName())));
|
||||
for (GemstoneData gem : sockets.getGemstones()) {
|
||||
String gemName = gem.getName();
|
||||
|
||||
// Upgrades?
|
||||
if (item.getMMOItem().hasUpgradeTemplate()) {
|
||||
|
||||
int iLvl = item.getMMOItem().getUpgradeLevel();
|
||||
if (iLvl != 0) {
|
||||
|
||||
Integer gLvl = gem.getLevel();
|
||||
|
||||
if (gLvl != null) {
|
||||
|
||||
int dLevel = iLvl - gLvl;
|
||||
|
||||
gemName = DisplayName.appendUpgradeLevel(gemName, dLevel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
lore.add(filled.replace("#", gemName));
|
||||
}
|
||||
sockets.getEmptySlots().forEach(slot -> lore.add(empty.replace("#", slot)));
|
||||
item.getLore().insert("gem-stones", lore);
|
||||
}
|
||||
|
@ -4,6 +4,10 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import io.lumine.mythic.lib.api.item.SupportedNBTTagValues;
|
||||
import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
|
||||
import net.Indyuce.mmoitems.api.item.mmoitem.ReadMMOItem;
|
||||
import net.Indyuce.mmoitems.stat.data.StringData;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
@ -24,6 +28,7 @@ import net.Indyuce.mmoitems.stat.type.StringStat;
|
||||
import io.lumine.mythic.lib.api.item.ItemTag;
|
||||
import io.lumine.mythic.lib.api.util.AltChar;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class ItemTypeRestriction extends StringStat {
|
||||
public ItemTypeRestriction() {
|
||||
@ -117,19 +122,68 @@ public class ItemTypeRestriction extends StringStat {
|
||||
lore.add(ChatColor.YELLOW + AltChar.listDash + " Right click to remove the last element.");
|
||||
}
|
||||
|
||||
@Override public void whenApplied(@NotNull ItemStackBuilder item, @NotNull StatData data) {
|
||||
|
||||
// Add NBT
|
||||
item.addItemTag(getAppliedNBT(data));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public void whenApplied(@NotNull ItemStackBuilder item, @NotNull StatData data) {
|
||||
// List<String> displayedTypes = new ArrayList<String>();
|
||||
//
|
||||
// for (String typeId : (List<String>) values[0])
|
||||
// try {
|
||||
// displayedTypes.add(Type.valueOf(typeId).getName());
|
||||
// } catch (Exception e) {
|
||||
// }
|
||||
//
|
||||
// String joined = String.join(", ", displayedTypes);
|
||||
// item.getLore().insert(getPath(), translate().replace("#", joined));
|
||||
item.addItemTag(new ItemTag("MMOITEMS_ITEM_TYPE_RESTRICTION", String.join(",", ((StringListData) data).getList())));
|
||||
public ArrayList<ItemTag> getAppliedNBT(@NotNull StatData data) {
|
||||
|
||||
// Make Array
|
||||
ArrayList<ItemTag> ret = new ArrayList<>();
|
||||
|
||||
// Add that tag
|
||||
String joined = data instanceof StringListData ? String.join(",", ((StringListData) data).getList()) : ((StringData) data).getString();
|
||||
ret.add(new ItemTag(getNBTPath(), joined));
|
||||
|
||||
// Thats it
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override public void whenLoaded(@NotNull ReadMMOItem mmoitem) {
|
||||
|
||||
// Get tags
|
||||
ArrayList<ItemTag> relevantTags = new ArrayList<>();
|
||||
|
||||
// Add sole tag
|
||||
if (mmoitem.getNBT().hasTag(getNBTPath()))
|
||||
relevantTags.add(ItemTag.getTagAtPath(getNBTPath(), mmoitem.getNBT(), SupportedNBTTagValues.STRING));
|
||||
|
||||
// Use that
|
||||
StringListData bakedData = (StringListData) getLoadedNBT(relevantTags);
|
||||
|
||||
// Valid?
|
||||
if (bakedData != null) {
|
||||
|
||||
// Set
|
||||
mmoitem.setData(this, bakedData);
|
||||
}
|
||||
}
|
||||
@Nullable @Override public StatData getLoadedNBT(@NotNull ArrayList<ItemTag> storedTags) {
|
||||
|
||||
// You got a double righ
|
||||
ItemTag tg = ItemTag.getTagAtPath(getNBTPath(), storedTags);
|
||||
|
||||
// Found righ
|
||||
if (tg != null) {
|
||||
|
||||
// Get number
|
||||
String value = (String) tg.getValue();
|
||||
ArrayList<String> tag = new ArrayList<>();
|
||||
if (value.contains(",")) {
|
||||
for (String t : value.split(",")) {
|
||||
if (!t.isEmpty()) { tag.add(t); } }
|
||||
} else { tag.add(value); }
|
||||
|
||||
// That's it
|
||||
return new StringListData(tag);
|
||||
}
|
||||
|
||||
// Fail
|
||||
return null;
|
||||
}
|
||||
|
||||
private boolean isValid(String format) {
|
||||
@ -146,4 +200,10 @@ public class ItemTypeRestriction extends StringStat {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public StatData getClearStatData() {
|
||||
return new StringListData();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user