ChatLoggingModule.java

package dev.aura.bungeechat.module;

import com.typesafe.config.Config;
import dev.aura.bungeechat.BungeeChat;
import dev.aura.bungeechat.chatlog.ChatLoggingManager;
import dev.aura.bungeechat.chatlog.ConsoleLogger;
import dev.aura.bungeechat.chatlog.FileLogger;
import dev.aura.bungeechat.listener.ChatLoggingListener;
import net.md_5.bungee.api.ProxyServer;

public class ChatLoggingModule extends Module {
  private ChatLoggingListener chatLoggingListener;

  private ConsoleLogger consoleLogger;
  private FileLogger fileLogger;

  @Override
  public String getName() {
    return "ChatLogging";
  }

  @Override
  public void onEnable() {
    Config section = getModuleSection();

    if (section.getBoolean("console")) {
      consoleLogger = new ConsoleLogger();

      ChatLoggingManager.addLogger(consoleLogger);
    }
    if (section.getBoolean("file")) {
      fileLogger = new FileLogger(section.getString("logFile"));

      ChatLoggingManager.addLogger(fileLogger);
    }

    ChatLoggingManager.loadFilteredCommands(section.getStringList("filteredCommands"));

    chatLoggingListener = new ChatLoggingListener();

    ProxyServer.getInstance()
        .getPluginManager()
        .registerListener(BungeeChat.getInstance(), chatLoggingListener);
  }

  @Override
  public void onDisable() {
    ProxyServer.getInstance().getPluginManager().unregisterListener(chatLoggingListener);

    if (chatLoggingListener != null) {
      ChatLoggingManager.removeLogger(consoleLogger);
    }
    if (fileLogger != null) {
      ChatLoggingManager.removeLogger(fileLogger);
    }
  }
}