package com.newhive.scammerradar.config.subconfig;

import java.awt.Color;
import net.labymod.api.client.gui.screen.widget.widgets.input.SwitchWidget.SwitchSetting;
import net.labymod.api.client.gui.screen.widget.widgets.input.TextFieldWidget.TextFieldSetting;
import net.labymod.api.client.gui.screen.widget.widgets.input.color.ColorPickerWidget.ColorPickerSetting;
import net.labymod.api.configuration.loader.Config;
import net.labymod.api.configuration.loader.annotation.ShowSettingInParent;
import net.labymod.api.configuration.loader.annotation.SpriteSlot;
import net.labymod.api.configuration.loader.annotation.SpriteTexture;
import net.labymod.api.configuration.loader.property.ConfigProperty;
import net.labymod.api.configuration.settings.annotation.SettingRequires;
import net.labymod.api.configuration.settings.annotation.SettingSection;

@SpriteTexture("sprite.png")
public class ChatSubConfig extends Config {
   @ShowSettingInParent
   @SwitchSetting
   private final ConfigProperty<Boolean> enabled = new ConfigProperty(true);
   @SettingSection(
      value = "icon",
      center = true
   )
   @SwitchSetting
   @SpriteSlot(
      x = 6,
      y = 0
   )
   private final ConfigProperty<Boolean> chatTagType = new ConfigProperty(false);
   @SettingSection(
      value = "texttag",
      center = true
   )
   @TextFieldSetting
   @SettingRequires(
      value = "chatTagType",
      invert = true
   )
   @SpriteSlot(
      x = 0,
      y = 1
   )
   private final ConfigProperty<String> middlemanTag = new ConfigProperty("MM");
   @TextFieldSetting
   @SettingRequires(
      value = "chatTagType",
      invert = true
   )
   @SpriteSlot(
      x = 2,
      y = 1
   )
   private final ConfigProperty<String> localScammerTag = new ConfigProperty("SCAMMER");
   @TextFieldSetting
   @SettingRequires(
      value = "chatTagType",
      invert = true
   )
   @SpriteSlot(
      x = 1,
      y = 1
   )
   private final ConfigProperty<String> scammerTag = new ConfigProperty("SCAMMER");
   @SettingSection(
      value = "color",
      center = true
   )
   @ColorPickerSetting
   @SettingRequires(
      value = "chatTagType",
      invert = true
   )
   @SpriteSlot(
      x = 4,
      y = 1
   )
   private final ConfigProperty<Integer> middlemanColor = new ConfigProperty((new Color(0, 180, 0)).getRGB());
   @ColorPickerSetting
   @SettingRequires(
      value = "chatTagType",
      invert = true
   )
   @SpriteSlot(
      x = 3,
      y = 1
   )
   private final ConfigProperty<Integer> scammerColorLocal = new ConfigProperty((new Color(255, 100, 0)).getRGB());
   @ColorPickerSetting
   @SettingRequires(
      value = "chatTagType",
      invert = true
   )
   @SpriteSlot(
      x = 7,
      y = 0
   )
   private final ConfigProperty<Integer> scammerColor = new ConfigProperty((new Color(255, 0, 0)).getRGB());

   public ConfigProperty<Boolean> enabled() {
      return this.enabled;
   }

   public ConfigProperty<Boolean> getChatTagType() {
      return this.chatTagType;
   }

   public ConfigProperty<String> getScammerTag() {
      return this.scammerTag;
   }

   public ConfigProperty<String> getLocalScammerTag() {
      return this.localScammerTag;
   }

   public ConfigProperty<String> getMiddlemanTag() {
      return this.middlemanTag;
   }

   public ConfigProperty<Integer> getScammerColor() {
      return this.scammerColor;
   }

   public ConfigProperty<Integer> getScammerColorLocal() {
      return this.scammerColorLocal;
   }

   public ConfigProperty<Integer> getMiddlemanColor() {
      return this.middlemanColor;
   }
}
