Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.cyvertray.ecratesplaceholder;
- import java.lang.reflect.Method;
- import java.util.Map;
- import me.clip.placeholderapi.expansion.PlaceholderExpansion;
- import org.bukkit.Bukkit;
- import org.bukkit.entity.Player;
- import org.bukkit.plugin.Plugin;
- import org.jetbrains.annotations.NotNull;
- import org.jetbrains.annotations.Nullable;
- public class ExcellentCratesPlaceholderExpansion extends PlaceholderExpansion {
- @Override public @NotNull String getIdentifier() { return "ec"; }
- @Override public @NotNull String getAuthor() { return "Cyvertray_"; }
- @Override public @NotNull String getVersion() { return "Paper/Spigot/Purpur 26.2 Java 25"; }
- @Override public boolean persist() { return true; }
- @Override
- public @Nullable String onPlaceholderRequest(Player player, @NotNull String params) {
- if (player == null) return "0";
- if (params.startsWith("keyz_")) {
- String requestedKeyId = params.substring("keyz_".length());
- Plugin ecPlugin = Bukkit.getPluginManager().getPlugin("ExcellentCrates");
- if (ecPlugin == null) return "0";
- try {
- Object userManager = ecPlugin.getClass().getMethod("getUserManager").invoke(ecPlugin);
- Object crateUser = userManager.getClass().getMethod("getOrFetch", Player.class).invoke(userManager, player);
- if (crateUser == null) return "0";
- Method getKeysMap = crateUser.getClass().getMethod("getKeysMap");
- Map<?, ?> keys = (Map<?, ?>) getKeysMap.invoke(crateUser);
- if (keys == null || keys.isEmpty()) return "0";
- for (Map.Entry<?, ?> entry : keys.entrySet()) {
- if (String.valueOf(entry.getKey()).equalsIgnoreCase(requestedKeyId)) {
- return String.valueOf(entry.getValue());
- }
- }
- return "0";
- } catch (Exception e) {
- return "0";
- }
- }
- if (params.startsWith("physicalkeyz_")) {
- String requestedKeyId = params.substring("physicalkeyz_".length());
- Plugin ecPlugin = Bukkit.getPluginManager().getPlugin("ExcellentCrates");
- if (ecPlugin == null) return "0";
- try {
- Object keyManager = ecPlugin.getClass().getMethod("getKeyManager").invoke(ecPlugin);
- Method getKeyById = keyManager.getClass().getMethod("getKeyById", String.class);
- Object crateKey = getKeyById.invoke(keyManager, requestedKeyId);
- if (crateKey == null) return "0";
- Method isVirtual = crateKey.getClass().getMethod("isVirtual");
- if ((boolean) isVirtual.invoke(crateKey)) return "0";
- Method getKeysAmount = keyManager.getClass().getMethod(
- "getKeysAmount",
- Player.class,
- crateKey.getClass()
- );
- Object amount = getKeysAmount.invoke(keyManager, player, crateKey);
- return String.valueOf(amount);
- } catch (Exception e) {
- return "0";
- }
- }
- return null;
- }
- }
Add Comment
Please, Sign In to add comment