de.stefan1200.jts3servermod.interfaces

## Interface LoadConfiguration

-     public interface LoadConfiguration

  This is the second important interface. If your plugin needs to load a configuration or to add information to the client list, your plugin has to implement this interface!
  The author of the JTS3ServerMod is not responsible for any damage or data loss!
  E-Mail:
  info@stefan1200.de
  Homepage:
  http://www.stefan1200.de
  Author:
    Stefan Martens

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `initConfig(ArrangedPropertiesWriter config)` Initialize the needed config keys and values for this plugin.
    `boolean` | `loadConfig(ArrangedPropertiesWriter config, boolean slowMode)` Load the configuration of this plugin and prepare everything to make sure, that this plugin can be activated.
    `void` | `setListModes(BitSet listOptions)` Set wanted clientlist arguments for this plugin.

- - ### Method Detail

    - #### initConfig

          void initConfig(ArrangedPropertiesWriter config)

      Initialize the needed config keys and values for this plugin.
      Important:
      The config key names have to be unique for this plugin and have to use the prefix from `HandleBotEvents.initClass(JTS3ServerMod_Interface, de.stefan1200.jts3serverquery.JTS3ServerQuery, String)` for this. This is not the right place to load the current configuration or other stuff!
      Example:
      `config.addKey(configPrefix + "_time", "After how many minutes all clients should be kicked?", "5");
      if (modClass.getMySQLConnection() == null) config.addKey(configPrefix + "_file", "Path to file which contains the Auto Kick Timer message.", "%apphome%config/server1/autokicktimermessages.cfg");`
      The second line checks first, if the MySQL mode is activated. Some config keys/values might be not needed, if the JTS3ServerMod stores the configuration in a MySQL database.
      Parameters:
        `config` - The ArrangedPropertiesWriter instance used from the current virtual bot instance.

    - #### loadConfig

          boolean loadConfig(ArrangedPropertiesWriter config,
                             boolean slowMode)
                      throws BotConfigurationException,
                             NumberFormatException

      Load the configuration of this plugin and prepare everything to make sure, that this plugin can be activated.
      Example:
      `config.getValue(configPrefix + "_time");`
      Parameters:
        `config` - The ArrangedPropertiesWriter instance used from the current virtual bot instance.
        `slowMode` - If set to `true`, you can decide what can be done without banning the bot (query_ip_whitelist.txt entry is missing).
      Returns:
        `true` if the configuration was loaded successfully and the plugin is ready to be activated. `false` if not.
      Throws:
        `BotConfigurationException` - Use this exception, if something was set wrong in the configuration by the user.
        `NumberFormatException` - Use this exception, if a number is not a number. :)

    - #### setListModes

          void setListModes(BitSet listOptions)

      Set wanted clientlist arguments for this plugin.
      To save performance at the Teamspeak 3 server and at the JTS3ServerMod process only that information will be requested, that are really needed. Look into the JTS3ServerMod_Interface at all static variables starting with the name LIST_ to know which are supported.
      If you don't need the client list or you only need the default client list information (clid (client id), cid (channel id), client_database_id, client_nickname and client_type), just do nothing here.
      Example to get the client idle and connection time:
      `listOptions.set(JTS3ServerMod_Interface.LIST_TIMES);`
      Parameters:
        `listOptions` - A BitSet containing the wanted clientlist flags.
      See Also:
        `JTS3ServerMod_Interface.LIST_AWAY`, `JTS3ServerMod_Interface.LIST_COUNTRY`, `JTS3ServerMod_Interface.LIST_GROUPS`, `JTS3ServerMod_Interface.LIST_INFO`, `JTS3ServerMod_Interface.LIST_IP`, `JTS3ServerMod_Interface.LIST_TIMES`, `JTS3ServerMod_Interface.LIST_UID`, `JTS3ServerMod_Interface.LIST_VOICE`