UltimateStacker/UltimateStacker-API/src/main/java/com/craftaro/ultimatestacker/api/UltimateStackerAPI.java

98 lines
3.3 KiB
Java

package com.craftaro.ultimatestacker.api;
import com.craftaro.ultimatestacker.api.stack.block.BlockStackManager;
import com.craftaro.ultimatestacker.api.stack.entity.EntityStackManager;
import com.craftaro.ultimatestacker.api.stack.item.StackedItemManager;
import com.craftaro.ultimatestacker.api.stack.spawner.SpawnerStackManager;
import com.craftaro.core.hooks.stackers.UltimateStacker;
import org.bukkit.plugin.Plugin;
/**
* The main class of the API
* <p>
* <b>!! {@link UltimateStackerAPI#getVersion()} value is automatically replaced by maven don't change it !!</b>
*/
public final class UltimateStackerAPI {
private static Plugin plugin;
private static EntityStackManager entityStackManager;
private static StackedItemManager stackedItemManager;
private static SpawnerStackManager spawnerStackManager;
private static BlockStackManager blockStackManager;
private static Settings settings;
private static UltimateStackerAPI instance;
public UltimateStackerAPI(Plugin plugin, EntityStackManager entityStackManager, StackedItemManager itemStackManager, SpawnerStackManager spawnerStackManager, BlockStackManager blockStackManager, Settings settings) {
if (UltimateStackerAPI.plugin != null || UltimateStackerAPI.entityStackManager != null || UltimateStackerAPI.stackedItemManager != null || UltimateStackerAPI.spawnerStackManager != null || UltimateStackerAPI.blockStackManager != null || UltimateStackerAPI.settings != null) {
throw new IllegalStateException("UltimateStackerAPI has already been initialized!");
}
UltimateStackerAPI.plugin = plugin;
UltimateStackerAPI.entityStackManager = entityStackManager;
UltimateStackerAPI.stackedItemManager = itemStackManager;
UltimateStackerAPI.spawnerStackManager = spawnerStackManager;
UltimateStackerAPI.blockStackManager = blockStackManager;
UltimateStackerAPI.settings = settings;
instance = this;
}
public static UltimateStackerAPI getInstance() {
return instance;
}
/**
* Used to interact with the plugin
* @return The plugin
*/
public static Plugin getPlugin() {
return plugin;
}
/**
* Used to interact with EntityStacks
* @return The EntityStackManager
*/
public static EntityStackManager getEntityStackManager() {
return entityStackManager;
}
/**
* Used to interact with ItemStacks
* @return The StackedItemManager
*/
public static StackedItemManager getStackedItemManager() {
return stackedItemManager;
}
/**
* Used to interact with SpawnerStacks
* @return The SpawnerStackManager
*/
public static SpawnerStackManager getSpawnerStackManager() {
return spawnerStackManager;
}
/**
* Used to interact with BlockStacks
* @return The BlockStackManager
*/
public static BlockStackManager getBlockStackManager() {
return blockStackManager;
}
/**
* Used to interact with the plugin's settings
* @return The Settings
*/
public static Settings getSettings() {
return settings;
}
/**
* Used to get the version of the plugin
* @return The version of the plugin
*/
public static String getVersion() {
return "UKNOWN_VERSION";
}
}