package fr.xephi.authme.settings.properties; import ch.jalu.configme.Comment; import ch.jalu.configme.SettingsHolder; import ch.jalu.configme.properties.Property; import java.util.List; import static ch.jalu.configme.properties.PropertyInitializer.newListProperty; import static ch.jalu.configme.properties.PropertyInitializer.newProperty; public final class ProtectionSettings implements SettingsHolder { @Comment("Enable some servers protection (country based login, antibot)") public static final Property ENABLE_PROTECTION = newProperty("Protection.enableProtection", false); @Comment("Apply the protection also to registered usernames") public static final Property ENABLE_PROTECTION_REGISTERED = newProperty("Protection.enableProtectionRegistered", true); @Comment("Enable GeoIp database") public static final Property ENABLE_GEOIP = newProperty("Protection.geoIpDatabase.enabled", true); @Comment({"The MaxMind clientId used to download the GeoIp database,", "get one at https://www.maxmind.com/en/accounts/current/license-key", "The EssentialsX project has a very useful tutorial on how to generate", "the license key: https://github.com/EssentialsX/Wiki/blob/master/GeoIP.md"}) public static final Property MAXMIND_API_CLIENT_ID = newProperty("Protection.geoIpDatabase.clientId", ""); @Comment("The MaxMind licenseKey used to download the GeoIp database.") public static final Property MAXMIND_API_LICENSE_KEY = newProperty("Protection.geoIpDatabase.licenseKey", ""); @Comment({ "Countries allowed to join the server and register. For country codes, see", "https://dev.maxmind.com/geoip/legacy/codes/iso3166/", "Use \"LOCALHOST\" for local addresses.", "PLEASE USE QUOTES!"}) public static final Property> COUNTRIES_WHITELIST = newListProperty("Protection.countries", "US", "GB", "LOCALHOST"); @Comment({ "Countries not allowed to join the server and register", "PLEASE USE QUOTES!"}) public static final Property> COUNTRIES_BLACKLIST = newListProperty("Protection.countriesBlacklist", "A1"); @Comment("Do we need to enable automatic antibot system?") public static final Property ENABLE_ANTIBOT = newProperty("Protection.enableAntiBot", true); @Comment("The interval in seconds") public static final Property ANTIBOT_INTERVAL = newProperty("Protection.antiBotInterval", 5); @Comment({ "Max number of players allowed to login in the interval", "before the AntiBot system is enabled automatically"}) public static final Property ANTIBOT_SENSIBILITY = newProperty("Protection.antiBotSensibility", 10); @Comment("Duration in minutes of the antibot automatic system") public static final Property ANTIBOT_DURATION = newProperty("Protection.antiBotDuration", 10); @Comment("Delay in seconds before the antibot activation") public static final Property ANTIBOT_DELAY = newProperty("Protection.antiBotDelay", 60); @Comment("Kicks the player that issued a command before the defined time after the join process") public static final Property QUICK_COMMANDS_DENIED_BEFORE_MILLISECONDS = newProperty("Protection.quickCommands.denyCommandsBeforeMilliseconds", 1000); private ProtectionSettings() { } }