Before using the API, verify that ClansPlus is installed and enabled on the server:
@Overridepublic void onEnable() { if (Bukkit.getPluginManager().getPlugin("ClansPlus") == null) { getLogger().severe("ClansPlus is not in the server!"); Bukkit.getPluginManager().disablePlugin(this); return; } // Continue with plugin initialization initializeAPI();}
Always check if ClansPlus is loaded before attempting to use the API to prevent NullPointerExceptions.
Once you’ve confirmed ClansPlus is loaded, get the API instance through Bukkit’s ServicesManager:
import com.cortezromeo.clansplus.api.ClanPlus;import org.bukkit.Bukkit;public class YourPlugin extends JavaPlugin { private ClanPlus clansPlusAPI; @Override public void onEnable() { // Check if ClansPlus is loaded if (Bukkit.getPluginManager().getPlugin("ClansPlus") == null) { getLogger().severe("ClansPlus is not in the server!"); Bukkit.getPluginManager().disablePlugin(this); return; } // Initialize the API clansPlusAPI = Bukkit.getServicesManager() .getRegistration(ClanPlus.class) .getProvider(); getLogger().info("Successfully hooked into ClansPlus!"); } public ClanPlus getClansPlusAPI() { return clansPlusAPI; }}
Here’s a complete example showing how to set up and use the API:
import com.cortezromeo.clansplus.api.ClanPlus;import com.cortezromeo.clansplus.api.storage.IClanData;import com.cortezromeo.clansplus.api.enums.Rank;import org.bukkit.Bukkit;import org.bukkit.plugin.java.JavaPlugin;public class MyClanPlugin extends JavaPlugin { private ClanPlus clansPlusAPI; @Override public void onEnable() { // Verify ClansPlus is loaded if (Bukkit.getPluginManager().getPlugin("ClansPlus") == null) { getLogger().severe("ClansPlus is not in the server!"); Bukkit.getPluginManager().disablePlugin(this); return; } // Initialize plugin API clansPlusAPI = Bukkit.getServicesManager() .getRegistration(ClanPlus.class) .getProvider(); // Example: Create a clan programmatically createExampleClan(); } private void createExampleClan() { String clanName = "HelloClan"; String playerName = "Cortez_Romeo"; // Check if clan already exists if (!clansPlusAPI.getPluginDataManager() .getClanDatabase().containsKey(clanName)) { // Load clan database (creates if doesn't exist) clansPlusAPI.getPluginDataManager() .loadClanDatabase(clanName); } // Get clan data IClanData clanData = clansPlusAPI.getPluginDataManager() .getClanDatabase(clanName); // Add a player to the clan clansPlusAPI.getClanManager() .addPlayerToAClan(playerName, clanName, false); // Promote player to leader clansPlusAPI.getPluginDataManager() .getPlayerDatabase(playerName).setRank(Rank.LEADER); clanData.setOwner(playerName); // Customize clan clanData.setMessage("This is the first message of this clan!"); clanData.setCustomName("&bSuper Clan"); // Send alert to clan members clansPlusAPI.getClanManager() .alertClan(clanName, "Have a good day!"); // Save changes to storage clansPlusAPI.getPluginDataManager() .saveClanDatabaseToStorage(clanName, clanData); getLogger().info("Created clan: " + clanName); }}