package de.tobiyas.racesandclasses.addins.groups; import de.tobiyas.racesandclasses.RacesAndClasses; import de.tobiyas.racesandclasses.addins.groups.impl.DisabledGroupManager; public class GroupManagerProvider { /** * The instance to use. */ private static GroupManagerProvider instance = new GroupManagerProvider(); /** * The GroupManager to use. */ private GroupManager manager = new DisabledGroupManager(); /** * Registers a new Provider. * @param manager to register. */ public void registerProvider(GroupManager manager){ if(manager != null) this.manager = manager; } /** * Generates a new Group-Manager. * @param manager to register. */ public void registerProvider(SupportedGroupsManager system){ if(manager != null) registerProvider(SupportedGroupsManager.generateNew(system)); } /** * Returns the GroupManager registered. * @return the Group Manager. */ public GroupManager getProvider(){ return manager; } /** * Reloads the Group-System. */ public void reload(){ boolean enabled = RacesAndClasses.getPlugin().getConfigManager().getGeneralConfig().isConfig_groups_enable(); String systemName = RacesAndClasses.getPlugin().getConfigManager().getGeneralConfig().getConfig_groups_system(); SupportedGroupsManager system = enabled ? SupportedGroupsManager.None : SupportedGroupsManager.parse(systemName); registerProvider(system); } /** * Gets the instance. * @return the instance. */ public static GroupManagerProvider get(){ return instance; } }