diff --git a/pom.xml b/pom.xml
index 8df2250..a619b12 100644
--- a/pom.xml
+++ b/pom.xml
@@ -175,12 +175,5 @@
2.20.1
provided
-
-
- CMI-API
- CMI-API
- 9.7.4.1
- provided
-
diff --git a/src/main/java/com/craftaro/ultimatekits/conversion/hooks/CMIHook.java b/src/main/java/com/craftaro/ultimatekits/conversion/hooks/CMIHook.java
index b44ea60..8c03f6b 100644
--- a/src/main/java/com/craftaro/ultimatekits/conversion/hooks/CMIHook.java
+++ b/src/main/java/com/craftaro/ultimatekits/conversion/hooks/CMIHook.java
@@ -1,44 +1,70 @@
package com.craftaro.ultimatekits.conversion.hooks;
-import com.Zrips.CMI.CMI;
-import com.Zrips.CMI.Modules.Kits.Kit;
import com.craftaro.ultimatekits.conversion.ConversionKit;
import com.craftaro.ultimatekits.conversion.Hook;
import com.craftaro.ultimatekits.kit.type.KitContentCommand;
import org.bukkit.Bukkit;
import org.bukkit.inventory.ItemStack;
+import java.lang.reflect.Method;
import java.util.*;
public class CMIHook implements Hook {
- private final CMI cmi;
+ private Object cmi;
+ private Method getKitsManagerMethod;
+ private Method getKitMapMethod;
+ private Method getKitMethod;
+ private Method getItemsMethod;
+ private Method getCommandsMethod;
+ private Method getDelayMethod;
public CMIHook() {
- this.cmi = (CMI) Bukkit.getPluginManager().getPlugin("CMI");
+ try {
+ Class> cmiClass = Class.forName("com.Zrips.CMI.CMI");
+ this.cmi = Bukkit.getPluginManager().getPlugin("CMI");
+ Class> kitsManagerClass = Class.forName("com.Zrips.CMI.Modules.Kits.KitsManager");
+ this.getKitsManagerMethod = cmiClass.getMethod("getKitsManager");
+ Object kitsManager = this.getKitsManagerMethod.invoke(this.cmi);
+ this.getKitMapMethod = kitsManagerClass.getMethod("getKitMap");
+ Class> kitClass = Class.forName("com.Zrips.CMI.Modules.Kits.Kit");
+ this.getKitMethod = kitsManagerClass.getMethod("getKit", String.class, boolean.class);
+ this.getItemsMethod = kitClass.getMethod("getItems");
+ this.getCommandsMethod = kitClass.getMethod("getCommands");
+ this.getDelayMethod = kitClass.getMethod("getDelay");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
@Override
public Map getKits() {
Map kits = new LinkedHashMap<>();
- for (String kitName : this.cmi.getKitsManager().getKitMap().keySet()) {
- Set stacks = new HashSet<>();
- try {
- Kit kit = this.cmi.getKitsManager().getKit(kitName, true);
-
- for (ItemStack item : kit.getItems()) {
- if (item != null) {
- stacks.add(item);
+ try {
+ Object kitsManager = this.getKitsManagerMethod.invoke(this.cmi);
+ Map kitMap = (Map) this.getKitMapMethod.invoke(kitsManager);
+ for (String kitName : kitMap.keySet()) {
+ Set stacks = new HashSet<>();
+ try {
+ Object kit = this.getKitMethod.invoke(kitsManager, kitName, true);
+ List items = (List) this.getItemsMethod.invoke(kit);
+ for (ItemStack item : items) {
+ if (item != null) {
+ stacks.add(item);
+ }
}
+ List commands = (List) this.getCommandsMethod.invoke(kit);
+ for (String command : commands) {
+ stacks.add(new KitContentCommand(command).getItemForDisplay());
+ }
+ long delay = (long) this.getDelayMethod.invoke(kit);
+ kits.put(kitName, new ConversionKit(stacks, delay));
+ } catch (Exception ex) {
+ ex.printStackTrace();
}
-
- for (String command : kit.getCommands()) {
- stacks.add(new KitContentCommand(command).getItemForDisplay());
- }
- } catch (Exception ex) {
- ex.printStackTrace();
}
- kits.put(kitName, new ConversionKit(stacks, this.cmi.getKitsManager().getKit(kitName, true).getDelay()));
+ } catch (Exception e) {
+ e.printStackTrace();
}
return kits;
}