Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ dependencies {
compileOnly(libs.authlib)

compileOnly(libs.headdb)
compileOnly(libs.headdb.api)
compileOnly(libs.craftengine.core)
compileOnly(libs.craftengine.bukkit)
compileOnly(libs.itemsadder)
Expand Down
2 changes: 2 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ spigot = "1.21.5-R0.1-SNAPSHOT"
vault = "1.7.1"
authlib = "1.5.25"
headdb = "1.3.2"
headdb-api = "v7.0.0-rc.3"
craftengine = "26.5"
itemsadder = "3.6.3-beta-14"
nexo = "1.1.0"
Expand All @@ -26,6 +27,7 @@ spigot = { module = "org.spigotmc:spigot-api", version.ref = "spigot" }
vault = { module = "com.github.milkbowl:VaultAPI", version.ref = "vault" }
authlib = { module = "com.mojang:authlib", version.ref = "authlib" }
headdb = { module = "com.arcaniax:HeadDatabase-API", version.ref = "headdb" }
headdb-api = { module = "com.github.SilentDevelopment.HeadDB:headdb-api", version.ref = "headdb-api" }
craftengine-core = { module = "net.momirealms:craft-engine-core", version.ref = "craftengine"}
craftengine-bukkit = { module = "net.momirealms:craft-engine-bukkit", version.ref = "craftengine"}
itemsadder = { module = "com.github.LoneDev6:api-itemsadder", version.ref = "itemsadder" }
Expand Down
9 changes: 9 additions & 0 deletions src/main/java/com/extendedclip/deluxemenus/DeluxeMenus.java
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,15 @@ private void setUpItemHooks() {
}
}

if (Bukkit.getPluginManager().isPluginEnabled("HeadDB")) {
try {
Class.forName("io.github.silentdevelopment.headdb.HeadDBService");
this.itemHooks.put(HeadType.HEADDB.getHookName(), new HeadDBHook(this));
} catch (ClassNotFoundException ignored) {
// We are looking for this specific class to avoid hooking into unrelated plugins named HeadDB.
}
}

if (Bukkit.getPluginManager().isPluginEnabled("CraftEngine")) {
this.itemHooks.put("craftengine", new CraftEngineHook());
}
Expand Down
62 changes: 62 additions & 0 deletions src/main/java/com/extendedclip/deluxemenus/hooks/HeadDBHook.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package com.extendedclip.deluxemenus.hooks;

import com.extendedclip.deluxemenus.DeluxeMenus;
import io.github.silentdevelopment.headdb.HeadDBService;
import io.github.silentdevelopment.headdb.model.Head;
import org.bukkit.Bukkit;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.jetbrains.annotations.NotNull;

public final class HeadDBHook implements ItemHook {

private final DeluxeMenus plugin;
private final TextureHeadHook textureHook;

public HeadDBHook(@NotNull final DeluxeMenus plugin) {
this.plugin = plugin;
this.textureHook = new TextureHeadHook(plugin);
Comment thread
TheSilentPro marked this conversation as resolved.
Outdated
}

@Override
public ItemStack getItem(@NotNull final String... arguments) {
if (arguments.length == 0) {
return plugin.getHead().clone();
}

final HeadDBService service = service();

if (service == null) {
return plugin.getHead().clone();
}

final Head head = service.find(arguments[0]).orElse(null);

if (head == null) {
return plugin.getHead().clone();
}

return textureHook.getItem(head.texture().hash());
}

@Override
public boolean itemMatchesIdentifiers(@NotNull final ItemStack item, @NotNull final String... arguments) {
return false;
}

@Override
public String getPrefix() {
return "headdb-";
}

private HeadDBService service() {
final RegisteredServiceProvider<HeadDBService> registration =
Bukkit.getServicesManager().getRegistration(HeadDBService.class);

if (registration == null) {
return null;
}

return registration.getProvider();
}
}
Comment thread
TheSilentPro marked this conversation as resolved.
Outdated
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ public enum HeadType {
* @see com.extendedclip.deluxemenus.hooks.HeadDatabaseHook
*/
HDB(HDB_HEAD_TYPE, HDB_HEAD_PREFIX),
/**
* @see com.extendedclip.deluxemenus.hooks.HeadDBHook
*/
HEADDB(HEADDB_HEAD_TYPE, HEADDB_HEAD_PREFIX),
/**
* @see com.extendedclip.deluxemenus.hooks.BaseHeadHook
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,13 @@ private Constants() {
public static final String TEXTURE_HEAD_PREFIX = "texture-";
public static final String BASE64_HEAD_PREFIX = "basehead-";
public static final String HDB_HEAD_PREFIX = "hdb-";
public static final String HEADDB_HEAD_PREFIX = "headdb-";

public static final String NAMED_HEAD_TYPE = "namedhead";
public static final String TEXTURE_HEAD_TYPE = "texture";
public static final String BASE64_HEAD_TYPE = "basehead";
public static final String HDB_HEAD_TYPE = "hdb";
public static final String HEADDB_HEAD_TYPE = "headdb";

public static final String STACK_PREFIX = "stack-";
public static final String PLACEHOLDER_PREFIX = "placeholder-";
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: DeluxeMenus
main: com.extendedclip.deluxemenus.DeluxeMenus
version: ${version}
authors: [ HelpChat ]
softdepend: [ PlaceholderAPI, Vault, HeadDatabase, CraftEngine, ItemsAdder, Nexo, Oraxen, ExecutableItems, ExecutableBlocks, Score, SimpleItemGenerator, MMOItems ]
softdepend: [ PlaceholderAPI, Vault, HeadDatabase, HeadDB, CraftEngine, ItemsAdder, Nexo, Oraxen, ExecutableItems, ExecutableBlocks, Score, SimpleItemGenerator, MMOItems ]
description: All in one inventory menu system
commands:
deluxemenus:
Expand Down
Loading