package de.jaschastarke.minecraft.limitedcreative.gmperm; import org.bukkit.configuration.ConfigurationSection; import de.jaschastarke.bukkit.lib.configuration.Configuration; import de.jaschastarke.bukkit.lib.configuration.ConfigurationContainer; import de.jaschastarke.configuration.IConfigurationNode; import de.jaschastarke.configuration.IConfigurationSubGroup; import de.jaschastarke.configuration.InvalidValueException; import de.jaschastarke.configuration.annotations.IsConfigurationNode; import de.jaschastarke.maven.ArchiveDocComments; import de.jaschastarke.maven.PluginConfigurations; import de.jaschastarke.minecraft.limitedcreative.Config; import de.jaschastarke.minecraft.limitedcreative.ModGameModePerm; import de.jaschastarke.modularize.IModule; import de.jaschastarke.modularize.ModuleEntry; /** * GameMode-Permissions-Feature * * This Feature requires Vault-Plugin to be active. * * http://dev.bukkit.org/server-mods/limited-creative/pages/features/gmperm/ */ @ArchiveDocComments @PluginConfigurations(parent = Config.class) public class GMPermConfig extends Configuration implements IConfigurationSubGroup { protected ModGameModePerm mod; protected ModuleEntry<IModule> entry; public GMPermConfig(ConfigurationContainer container) { super(container); } public GMPermConfig(ModGameModePerm modGameModePerm, ModuleEntry<IModule> modEntry) { super(modGameModePerm.getPlugin().getDocCommentStorage()); mod = modGameModePerm; entry = modEntry; } @Override public void setValue(IConfigurationNode node, Object pValue) throws InvalidValueException { super.setValue(node, pValue); if (node.getName().equals("enabled")) { entry.setEnabled(getEnabled()); } } @Override public void setValues(ConfigurationSection sect) { super.setValues(sect); entry.setDefaultEnabled(getEnabled()); } @Override public String getName() { return "gmperm"; } @Override public int getOrder() { return 600; } /** * GMPermEnabled * * Activates that players are put in a special permission group while in creative mode. * * default: false */ @IsConfigurationNode(order = 100) public boolean getEnabled() { return config.getBoolean("enabled", false); } /** * GMPermCreativeGroup * * Defines the Permission-Group which the player gets added to on entering creative-mode. If this value is changed * the old group won't be automatically removed from players already in it. So be sure to delete the old group or * remove all player of it, that they don't get stuck with that permissions. */ @IsConfigurationNode(order = 200) public String getCreativeGroup() { return config.getString("creativeGroup", ""); } /** * GMPermAdventureGroup * * Like GMPermCreativeGroup but for adventure users. This is optional, so you don't have to set any group. * * default: false */ @IsConfigurationNode(order = 300) public String getAdventureGroup() { if (config.isBoolean("adventureGroup")) return null; return config.getString("adventureGroup", null); } @Override public Object getValue(final IConfigurationNode node) { Object val = super.getValue(node); if (node.getName().equals("adventureGroup") && val == null) { return new Boolean(false); } else { return val; } } }