mirror of
https://gitlab.com/phoenix-dvpmt/mmoitems.git
synced 2025-03-09 12:49:06 +01:00
Elements now have placeholders.
Format: %mmoitems_stat_elements_[element]_[damage/defense]%
This commit is contained in:
parent
b3478393f9
commit
44bc86fa8a
@ -6,13 +6,15 @@ import io.lumine.mythic.lib.api.math.EvaluatedFormula;
|
||||
import io.lumine.mythic.lib.api.player.MMOPlayerData;
|
||||
import io.lumine.mythic.lib.api.util.AltChar;
|
||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||
import net.Indyuce.mmoitems.ItemStats;
|
||||
import net.Indyuce.mmoitems.MMOItems;
|
||||
import net.Indyuce.mmoitems.api.Type;
|
||||
import net.Indyuce.mmoitems.api.player.PlayerData;
|
||||
import net.Indyuce.mmoitems.stat.type.ItemStat;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.EquipmentSlot;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@ -56,8 +58,26 @@ public class MMOItemsPlaceholders extends PlaceholderExpansion {
|
||||
// with substring
|
||||
if (identifier.equals("stat_defense_percent"))
|
||||
return twoDigits.format(100 - calculateDefense(MMOPlayerData.get(player))) + "%";
|
||||
if (identifier.startsWith("stat_elements")) {
|
||||
PlayerData.get(player).getStats().getInstance(ItemStats.ELEMENTS);
|
||||
|
||||
if (identifier.startsWith("stat_elements") && player.isOnline()) {
|
||||
// index 0 = element
|
||||
// index 1 = defense/damage
|
||||
String[] param = identifier.split("_");
|
||||
|
||||
if (param.length > 3) {
|
||||
String tag = "MMOITEMS_" + param[2].toUpperCase() + "_" + param[3].toUpperCase();
|
||||
|
||||
double value = 0;
|
||||
for (EquipmentSlot slot : EquipmentSlot.values())
|
||||
if (hasItem((Player) player, slot)) {
|
||||
NBTItem nbtItem = NBTItem.get(((Player) player).getInventory().getItem(slot));
|
||||
if (nbtItem.hasTag(tag)) {
|
||||
value += nbtItem.getDouble(tag);
|
||||
}
|
||||
}
|
||||
|
||||
return twoDigits.format(value);
|
||||
}
|
||||
}
|
||||
else if (identifier.startsWith("stat_")) {
|
||||
ItemStat stat = MMOItems.plugin.getStats().get(identifier.substring(5).toUpperCase());
|
||||
@ -139,4 +159,8 @@ public class MMOItemsPlaceholders extends PlaceholderExpansion {
|
||||
bar.append(j == r ? ChatColor.WHITE : "").append(barChar);
|
||||
return bar.toString();
|
||||
}
|
||||
|
||||
private boolean hasItem(Player player, EquipmentSlot slot) {
|
||||
return player.getInventory().getItem(slot) != null && player.getInventory().getItem(slot).getType() != Material.AIR;
|
||||
}
|
||||
}
|
||||
|
@ -1,19 +1,8 @@
|
||||
package net.Indyuce.mmoitems.stat;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import io.lumine.mythic.lib.api.item.ItemTag;
|
||||
import io.lumine.mythic.lib.api.item.SupportedNBTTagValues;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.event.inventory.InventoryAction;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
|
||||
import net.Indyuce.mmoitems.ItemStats;
|
||||
import io.lumine.mythic.lib.api.util.AltChar;
|
||||
import net.Indyuce.mmoitems.MMOItems;
|
||||
import net.Indyuce.mmoitems.MMOUtils;
|
||||
import net.Indyuce.mmoitems.api.Element;
|
||||
@ -28,11 +17,20 @@ import net.Indyuce.mmoitems.stat.data.random.RandomElementListData;
|
||||
import net.Indyuce.mmoitems.stat.data.random.RandomStatData;
|
||||
import net.Indyuce.mmoitems.stat.data.type.StatData;
|
||||
import net.Indyuce.mmoitems.stat.type.ItemStat;
|
||||
import io.lumine.mythic.lib.api.item.ItemTag;
|
||||
import io.lumine.mythic.lib.api.util.AltChar;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.event.inventory.InventoryAction;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public class Elements extends ItemStat {
|
||||
public Elements() {
|
||||
super("ELEMENT", Material.SLIME_BALL, "Elements", new String[] { "The elements of your item." },
|
||||
@ -152,7 +150,6 @@ public class Elements extends ItemStat {
|
||||
for (Element element : elements.getDamageElements()) {
|
||||
|
||||
// Obtain damage
|
||||
String path = element.name().toLowerCase() + "-damage";
|
||||
double value = elements.getDamage(element);
|
||||
|
||||
// Create Tag
|
||||
@ -163,7 +160,6 @@ public class Elements extends ItemStat {
|
||||
for (Element element : elements.getDefenseElements()) {
|
||||
|
||||
// Obtain defense
|
||||
String path = element.name().toLowerCase() + "-defense";
|
||||
double value = elements.getDefense(element);
|
||||
|
||||
// Create Tag
|
||||
|
Loading…
Reference in New Issue
Block a user