[Bleeding] Added option to completely disable all automatic help topic generation by adding "All" to the ignore-plugins list in help.yml. Addresses BUKKIT-1264

This commit is contained in:
rmichela 2012-03-21 23:01:06 -04:00 committed by EvilSeph
parent 31b1bc02ca
commit eb3c092ef8
3 changed files with 22 additions and 9 deletions

View File

@ -17,21 +17,28 @@ import java.util.logging.Level;
*/
public class HelpYamlReader {
private final YamlConfiguration helpYaml;
private YamlConfiguration helpYaml;
private final char ALT_COLOR_CODE = '&';
public HelpYamlReader(Server server) {
File helpYamlFile = new File("help.yml");
YamlConfiguration defaultConfig = YamlConfiguration.loadConfiguration(getClass().getClassLoader().getResourceAsStream("configurations/help.yml"));
helpYaml = YamlConfiguration.loadConfiguration(helpYamlFile);
helpYaml.options().copyDefaults(true);
helpYaml.setDefaults(YamlConfiguration.loadConfiguration(getClass().getClassLoader().getResourceAsStream("configurations/help.yml")));
try {
if (!helpYamlFile.exists()) {
helpYaml.save(helpYamlFile);
helpYaml = YamlConfiguration.loadConfiguration(helpYamlFile);
helpYaml.options().copyDefaults(true);
helpYaml.setDefaults(defaultConfig);
try {
if (!helpYamlFile.exists()) {
helpYaml.save(helpYamlFile);
}
} catch (IOException ex) {
server.getLogger().log(Level.SEVERE, "Could not save " + helpYamlFile, ex);
}
} catch (IOException ex) {
server.getLogger().log(Level.SEVERE, "Could not save " + helpYamlFile, ex);
} catch (Exception ex) {
server.getLogger().severe("Failed to load help.yml. Verify the yaml indentation is correct. Reverting to default help.yml.");
helpYaml = defaultConfig;
}
}

View File

@ -90,6 +90,11 @@ public class SimpleHelpMap implements HelpMap {
public synchronized void initializeCommands() {
// ** Load topics from highest to lowest priority order **
Set<String> ignoredPlugins = new HashSet<String>(yaml.getIgnoredPlugins());
// Don't load any automatic help topics if All is ignored
if (ignoredPlugins.contains("All")) {
return;
}
// Initialize help topics from the server's command map
outer: for (Command command : server.getCommandMap().getCommands()) {

View File

@ -33,7 +33,8 @@
# permission: you.dont.have
#
# Any plugin in the ignored plugins list will be excluded from help. The name must match the name displayed by
# the /plugins command. Ignore "Bukkit" to remove the standard bukkit commands from the index.
# the /plugins command. Ignore "Bukkit" to remove the standard bukkit commands from the index. Ignore "All"
# to completely disable automatic help topic generation.
# ignore-plugins:
# - PluginNameOne
# - PluginNameTwo