loadConfig

Loads the plugin configuration from the config.yml file and initializes all configuration properties.

This method performs a complete configuration loading sequence that includes:

  1. Ensuring the default configuration file exists

  2. Reloading the configuration from disk

  3. Parsing and caching all configuration values

  4. Applying default values for missing or invalid entries

  5. Validating configuration values for correctness

Configuration Loading Process:

  1. Default Configuration Setup:

    • Calls saveDefaultConfig() to create config.yml if it doesn't exist

    • Ensures the configuration file has all required sections and keys

    • Preserves existing configuration values when adding new defaults

  2. Configuration Reload:

    • Calls reloadConfig() to read the current configuration from disk

    • Refreshes the internal FileConfiguration instance

    • Handles YAML parsing errors gracefully

  3. Value Extraction and Caching:

    • Reads each configuration value using type-safe methods

    • Applies default values for missing or invalid configuration entries

    • Caches values in memory for efficient access throughout plugin lifecycle

Database Configuration Loading:

  • Host: Defaults to "localhost" for local database connections

  • Port: Defaults to 3306 (standard MySQL port)

  • Database Name: Defaults to "minecraft_mmo"

  • Username: Defaults to "user" (should be changed in production)

  • Password: Defaults to "password" (should be changed in production)

  • SSL Usage: Defaults to false (disabled for local connections)

  • Connection Pool Size: Defaults to 10 connections

Debug Configuration Loading:

  • Debug Mode: Defaults to true (enabled for development)

  • Log Level: Defaults to "INFO" for balanced logging

Gameplay Settings Loading:

  • Welcome Messages: Defaults to true (enabled by default)

  • Welcome Message: Defaults to "Welcome to Minecraft MMO, %player%!"

  • Autosave Interval: Defaults to 5 minutes

Error Handling:

  • Missing configuration sections are handled gracefully with defaults

  • Invalid data types are caught and replaced with default values

  • YAML parsing errors are logged but don't prevent plugin loading

  • Malformed configuration values fall back to safe defaults

Thread Safety: This method should be called from the main server thread during plugin initialization to avoid conflicts with Bukkit's configuration system.

Performance Considerations:

  • Configuration loading involves file I/O and should be done sparingly

  • All values are cached after loading for efficient runtime access

  • Configuration reloading during runtime is supported but not recommended

Since

1.0.0

See also

saveDefaultConfig

for default configuration file creation

reloadConfig

for configuration reloading from disk

FileConfiguration

for the underlying configuration system