9
0
mirror of https://github.com/HibiscusMC/HMCCosmetics.git synced 2025-12-19 15:09:19 +00:00

feat: expose the config for a cosmetic if available

This commit is contained in:
LoJoSho
2025-07-09 18:06:22 -05:00
parent 2f9325b2fb
commit 58c955a00f

View File

@@ -12,6 +12,7 @@ import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -56,8 +57,12 @@ public abstract class Cosmetic {
/** Whether the cosmetic is dyeable or not. */
private boolean dyeable;
/** The config for the cosmetic */
private ConfigurationNode config;
protected Cosmetic(@NotNull String id, @NotNull ConfigurationNode config) {
this.id = id;
this.config = config;
if (!config.node("permission").virtual()) {
this.permission = config.node("permission").getString();
@@ -135,4 +140,14 @@ public abstract class Cosmetic {
throw new RuntimeException(e);
}
}
/**
* While cosmetics registered in HMCC are made through a configuration, cosmetics registered from other plugins
* may not and instead opt for {@link Cosmetic#Cosmetic(String, String, ItemStack, String, CosmeticSlot, boolean)}, which doesn't use a config.
* This should be used only for reference.
*/
@ApiStatus.Experimental
public @Nullable ConfigurationNode getConfig() {
return config;
}
}