package com.newhive.scammerradar;

import com.newhive.scammerradar.commands.ScammerCommand;
import com.newhive.scammerradar.config.ScammerRadarConfig;
import com.newhive.scammerradar.helper.Helper;
import com.newhive.scammerradar.listeners.ChatEventListener;
import com.newhive.scammerradar.tag.PlayerChatPrefix;
import com.newhive.scammerradar.tag.PlayerTabBadge;
import net.labymod.api.Laby;
import net.labymod.api.addon.LabyAddon;
import net.labymod.api.client.entity.player.badge.PositionType;
import net.labymod.api.client.entity.player.tag.TagRegistry;
import net.labymod.api.models.addon.annotation.AddonMain;

@AddonMain
public class ScammerRadarAddon extends LabyAddon<ScammerRadarConfig> {
   private Helper helper;

   protected void enable() {
      this.registerSettingCategory();
      this.setHelper(new Helper(this));
      TagRegistry tagRegistry = this.labyAPI().tagRegistry();
      Laby.references().badgeRegistry().register("scammerradar_tab_icon", PositionType.LEFT_TO_NAME, new PlayerTabBadge(this));
      this.labyAPI().chatProvider().prefixRegistry().register("scammerradar_chat", new PlayerChatPrefix(this));
      this.registerCommand(new ScammerCommand(this));
      this.registerListener(new ChatEventListener(this));
      this.logger().info("[+++] ScammerRadar Addon enabled. [+++]", new Object[0]);
   }

   protected Class<? extends ScammerRadarConfig> configurationClass() {
      return ScammerRadarConfig.class;
   }

   public void setHelper(Helper helper) {
      this.helper = helper;
   }

   public Helper getHelper() {
      return this.helper;
   }
}
