UltimateKits/src/main/java/com/craftaro/ultimatekits/conversion/Convert.java

80 lines
2.9 KiB
Java

package com.craftaro.ultimatekits.conversion;
import com.craftaro.ultimatekits.UltimateKits;
import com.craftaro.ultimatekits.conversion.hooks.CMIHook;
import com.craftaro.ultimatekits.conversion.hooks.DefaultHook;
import com.craftaro.ultimatekits.conversion.hooks.EssentialsHook;
import com.craftaro.ultimatekits.conversion.hooks.UltimateCoreHook;
import com.craftaro.ultimatekits.kit.Kit;
import com.craftaro.ultimatekits.kit.KitItem;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import java.util.List;
import java.util.Set;
public class Convert {
public static void runKitConversions(UltimateKits plugin) {
if (!plugin.getKitConfig().contains("Kits")) {
if (Bukkit.getPluginManager().isPluginEnabled("Essentials")) {
try {
Class.forName("com.earth2me.essentials.metrics.MetricsListener");
} catch (ClassNotFoundException ex) {
convertKits(new EssentialsHook());
}
}
if (Bukkit.getPluginManager().isPluginEnabled("UltimateCore")) {
convertKits(new UltimateCoreHook());
}
if (Bukkit.getPluginManager().isPluginEnabled("CMI")) {
convertKits(new CMIHook());
}
}
if (!isInJsonFormat()) {
convertKits(new DefaultHook());
}
}
private static void convertKits(Hook hook) {
try {
Set<String> kits = hook.getKits();
for (String kit : kits) {
Kit kitObj = UltimateKits.getInstance().getKitManager().addKit(new Kit(kit));
if (kitObj == null) {
continue;
}
for (ItemStack item : hook.getItems(kit)) {
if (item == null || item.getType() == Material.AIR) {
continue;
}
kitObj.getContents().add(new KitItem(item));
}
kitObj.setDelay(hook.getDelay(kit));
}
UltimateKits.getInstance().saveKits(true);
} catch (NoSuchMethodError | NoClassDefFoundError e) {
System.out.println("UltimateKits conversion failed.");
}
}
private static boolean isInJsonFormat() {
if (!UltimateKits.getInstance().getKitConfig().contains("Kits")) {
return false;
}
for (String kit : UltimateKits.getInstance().getKitConfig().getConfigurationSection("Kits").getKeys(false)) {
if (UltimateKits.getInstance().getKitConfig().contains("Kits." + kit + ".items")) {
List<String> itemList = UltimateKits.getInstance().getKitConfig().getStringList("Kits." + kit + ".items");
if (!itemList.isEmpty()) {
if (itemList.get(0).startsWith("{")) {
return true;
}
}
}
}
return false;
}
}