mirror of
https://gitlab.com/phoenix-dvpmt/mmoitems.git
synced 2024-12-23 04:47:34 +01:00
PAPI update
This commit is contained in:
parent
2578a15f32
commit
b858a0d334
Binary file not shown.
@ -2,19 +2,21 @@ package net.Indyuce.mmoitems.comp.parse.placeholders;
|
|||||||
|
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
|
|
||||||
import net.mmogroup.mmolib.api.player.MMOPlayerData;
|
|
||||||
import net.mmogroup.mmolib.listener.DamageReduction;
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||||
import net.Indyuce.mmoitems.MMOItems;
|
import net.Indyuce.mmoitems.MMOItems;
|
||||||
import net.Indyuce.mmoitems.api.player.PlayerData;
|
import net.Indyuce.mmoitems.api.player.PlayerData;
|
||||||
import net.mmogroup.mmolib.api.util.AltChar;
|
|
||||||
import net.Indyuce.mmoitems.stat.type.ItemStat;
|
import net.Indyuce.mmoitems.stat.type.ItemStat;
|
||||||
import net.mmogroup.mmolib.MMOLib;
|
import net.mmogroup.mmolib.MMOLib;
|
||||||
import net.mmogroup.mmolib.api.item.NBTItem;
|
import net.mmogroup.mmolib.api.item.NBTItem;
|
||||||
|
import net.mmogroup.mmolib.api.player.MMOPlayerData;
|
||||||
|
import net.mmogroup.mmolib.api.util.AltChar;
|
||||||
|
import net.mmogroup.mmolib.listener.DamageReduction;
|
||||||
|
|
||||||
public class MMOItemsPlaceholders extends PlaceholderExpansion {
|
public class MMOItemsPlaceholders extends PlaceholderExpansion {
|
||||||
private final DecimalFormat oneDigit = new DecimalFormat("0.#"), twoDigits = new DecimalFormat("0.##");
|
private final DecimalFormat oneDigit = new DecimalFormat("0.#"), twoDigits = new DecimalFormat("0.##");
|
||||||
@ -31,48 +33,68 @@ public class MMOItemsPlaceholders extends PlaceholderExpansion {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getVersion() {
|
public String getVersion() {
|
||||||
return "1.0";
|
return MMOItems.plugin.getDescription().getVersion();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String onPlaceholderRequest(Player player, String identifier) {
|
/**
|
||||||
|
* Because this is an internal class, you must override this method to let
|
||||||
|
* PlaceholderAPI know to not unregister your expansion class when
|
||||||
|
* PlaceholderAPI is reloaded
|
||||||
|
*
|
||||||
|
* @return true to persist through reloads
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean persist() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onRequest(@Nullable OfflinePlayer player, @NotNull String identifier) {
|
||||||
// registering before identifier.startsWith("stat_") to prevent issues
|
// registering before identifier.startsWith("stat_") to prevent issues
|
||||||
// i don't register it in the starts with condition because it will mess with substring
|
// i don't register it in the starts with condition because it will mess with
|
||||||
|
// substring
|
||||||
if (identifier.equals("stat_defense_percent"))
|
if (identifier.equals("stat_defense_percent"))
|
||||||
return twoDigits.format(new DamageReduction.DefenseCalculator(MMOPlayerData.get(player)).getReductionPercent()) + "%";
|
return twoDigits.format(
|
||||||
|
new DamageReduction.DefenseCalculator(MMOPlayerData.get(player)).getReductionPercent()) + "%";
|
||||||
if (identifier.startsWith("stat_")) {
|
if (identifier.startsWith("stat_")) {
|
||||||
ItemStat stat = MMOItems.plugin.getStats().get(identifier.substring(5).toUpperCase());
|
ItemStat stat = MMOItems.plugin.getStats().get(identifier.substring(5).toUpperCase());
|
||||||
if (stat != null)
|
if (stat != null)
|
||||||
return twoDigits.format(PlayerData.get(player).getStats().getStat(stat));
|
return twoDigits.format(PlayerData.get(player).getStats().getStat(stat));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (identifier.startsWith("ability_cd_")) {
|
if (identifier.startsWith("ability_cd_")) {
|
||||||
PlayerData data = PlayerData.get(player);
|
PlayerData data = PlayerData.get(player);
|
||||||
return data.hasCooldownInfo(identifier.substring(11)) ? oneDigit.format(data.getCooldownInfo(identifier.substring(11)).getRemaining())
|
return data.hasCooldownInfo(identifier.substring(11))
|
||||||
|
? oneDigit.format(data.getCooldownInfo(identifier.substring(11)).getRemaining())
|
||||||
: "0";
|
: "0";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!player.isOnline())
|
||||||
|
return null;
|
||||||
|
|
||||||
if (identifier.equals("durability"))
|
if (identifier.equals("durability"))
|
||||||
return "" + (int) MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()).getDouble("MMOITEMS_DURABILITY");
|
return "" + (int) MMOLib.plugin.getNMS().getNBTItem(player.getPlayer().getInventory().getItemInMainHand())
|
||||||
|
.getDouble("MMOITEMS_DURABILITY");
|
||||||
|
|
||||||
if (identifier.equals("durability_max"))
|
if (identifier.equals("durability_max"))
|
||||||
return "" + (int) MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand()).getDouble("MMOITEMS_MAX_DURABILITY");
|
return "" + (int) MMOLib.plugin.getNMS().getNBTItem(player.getPlayer().getInventory().getItemInMainHand())
|
||||||
|
.getDouble("MMOITEMS_MAX_DURABILITY");
|
||||||
|
|
||||||
if (identifier.equals("durability_ratio")) {
|
if (identifier.equals("durability_ratio")) {
|
||||||
NBTItem item = MMOLib.plugin.getNMS().getNBTItem(player.getInventory().getItemInMainHand());
|
NBTItem item = MMOLib.plugin.getNMS().getNBTItem(player.getPlayer().getInventory().getItemInMainHand());
|
||||||
double durability = item.getDouble("MMOITEMS_DURABILITY");
|
double durability = item.getDouble("MMOITEMS_DURABILITY");
|
||||||
double maxDurability = item.getDouble("MMOITEMS_MAX_DURABILITY");
|
double maxDurability = item.getDouble("MMOITEMS_MAX_DURABILITY");
|
||||||
return oneDigit.format(durability / maxDurability * 100);
|
return oneDigit.format(durability / maxDurability * 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (identifier.equals("durability_bar_square"))
|
if (identifier.equals("durability_bar_square"))
|
||||||
return getCurrentDurabilityBar(player.getInventory().getItemInMainHand(), AltChar.square, 10);
|
return getCurrentDurabilityBar(player.getPlayer().getInventory().getItemInMainHand(), AltChar.square, 10);
|
||||||
|
|
||||||
if (identifier.equals("durability_bar_diamond"))
|
if (identifier.equals("durability_bar_diamond"))
|
||||||
return getCurrentDurabilityBar(player.getInventory().getItemInMainHand(), AltChar.diamond, 15);
|
return getCurrentDurabilityBar(player.getPlayer().getInventory().getItemInMainHand(), AltChar.diamond, 15);
|
||||||
|
|
||||||
if (identifier.equals("durability_bar_thin"))
|
if (identifier.equals("durability_bar_thin"))
|
||||||
return getCurrentDurabilityBar(player.getInventory().getItemInMainHand(), "|", 20);
|
return getCurrentDurabilityBar(player.getPlayer().getInventory().getItemInMainHand(), "|", 20);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
package net.Indyuce.mmoitems.comp.parse.placeholders;
|
package net.Indyuce.mmoitems.comp.parse.placeholders;
|
||||||
|
|
||||||
import net.asangarin.hexcolors.ColorParse;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
|
|
||||||
import me.clip.placeholderapi.PlaceholderAPI;
|
import me.clip.placeholderapi.PlaceholderAPI;
|
||||||
|
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||||
|
import net.asangarin.hexcolors.ColorParse;
|
||||||
|
|
||||||
public class PlaceholderAPIParser implements PlaceholderParser {
|
public class PlaceholderAPIParser implements PlaceholderParser {
|
||||||
public PlaceholderAPIParser() {
|
public PlaceholderAPIParser() {
|
||||||
new MMOItemsPlaceholders().register();
|
PlaceholderExpansion expansion = new MMOItemsPlaceholders();
|
||||||
|
expansion.getPlaceholderAPI().getLocalExpansionManager().register(expansion);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user