mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-11-27 20:57:35 +01:00
Start rework of Settings
Please move to another branch :3
This commit is contained in:
parent
1f55e85172
commit
0c5d835f47
@ -0,0 +1,46 @@
|
||||
package fr.xephi.authme.settings.custom;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import fr.xephi.authme.settings.custom.annotations.Comment;
|
||||
import fr.xephi.authme.settings.custom.annotations.Type;
|
||||
import fr.xephi.authme.settings.custom.annotations.Type.SettingType;
|
||||
|
||||
public class ConverterSettings extends CustomSetting {
|
||||
|
||||
@Comment("Rakamak file name")
|
||||
@Type(SettingType.String)
|
||||
public String rakamakFileName = "users.rak";
|
||||
|
||||
@Comment("Rakamak use Ip ?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean rakamakeUseIP = false;
|
||||
|
||||
@Comment("Rakamak IP file name")
|
||||
@Type(SettingType.String)
|
||||
public String rakamakIPFileName = "UsersIp.rak";
|
||||
|
||||
@Comment("CrazyLogin database file name")
|
||||
@Type(SettingType.String)
|
||||
public String crazyLoginFileName = "accounts.db";
|
||||
|
||||
private static File configFile = new File("." + File.separator + "plugins" + File.separator + "AuthMe" + File.separator + "converter.yml");
|
||||
|
||||
private ConverterSettings instance;
|
||||
|
||||
public ConverterSettings()
|
||||
{
|
||||
super(configFile);
|
||||
instance = this;
|
||||
}
|
||||
|
||||
public ConverterSettings getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public void setInstance(ConverterSettings instance) {
|
||||
this.instance = instance;
|
||||
}
|
||||
}
|
156
src/main/java/fr/xephi/authme/settings/custom/CustomSetting.java
Normal file
156
src/main/java/fr/xephi/authme/settings/custom/CustomSetting.java
Normal file
@ -0,0 +1,156 @@
|
||||
package fr.xephi.authme.settings.custom;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.List;
|
||||
|
||||
import fr.xephi.authme.ConsoleLogger;
|
||||
import fr.xephi.authme.settings.CustomConfiguration;
|
||||
import fr.xephi.authme.settings.custom.annotations.Comment;
|
||||
import fr.xephi.authme.settings.custom.annotations.Type;
|
||||
|
||||
public class CustomSetting extends CustomConfiguration {
|
||||
|
||||
private File configFile;
|
||||
public boolean isFirstLaunch = false;
|
||||
|
||||
public CustomSetting(File file) {
|
||||
super(file);
|
||||
this.configFile = file;
|
||||
try {
|
||||
if (!configFile.exists())
|
||||
{
|
||||
isFirstLaunch = true;
|
||||
configFile.createNewFile();
|
||||
}
|
||||
else
|
||||
{
|
||||
load();
|
||||
loadValues();
|
||||
}
|
||||
save();
|
||||
} catch (IOException e)
|
||||
{
|
||||
ConsoleLogger.writeStackTrace(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean reLoad()
|
||||
{
|
||||
boolean out = true;
|
||||
if (!configFile.exists()) {
|
||||
try {
|
||||
configFile.createNewFile();
|
||||
save();
|
||||
} catch (IOException e) {
|
||||
out = false;
|
||||
}
|
||||
}
|
||||
if (out)
|
||||
{
|
||||
load();
|
||||
loadValues();
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
public void loadValues()
|
||||
{
|
||||
for (Field f : this.getClass().getDeclaredFields())
|
||||
{
|
||||
if (!f.isAnnotationPresent(Type.class))
|
||||
continue;
|
||||
f.setAccessible(true);
|
||||
try {
|
||||
switch (f.getAnnotation(Type.class).value())
|
||||
{
|
||||
case Boolean:
|
||||
f.setBoolean(this, this.getBoolean(f.getName()));
|
||||
break;
|
||||
case Double:
|
||||
f.setDouble(this, this.getDouble(f.getName()));
|
||||
break;
|
||||
case Int:
|
||||
f.setInt(this, this.getInt(f.getName()));
|
||||
break;
|
||||
case Long:
|
||||
f.setLong(this, this.getLong(f.getName()));
|
||||
break;
|
||||
case String:
|
||||
f.set(this, this.getString(f.getName()));
|
||||
break;
|
||||
case StringList:
|
||||
f.set(this, this.getStringList(f.getName()));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} catch (Exception e)
|
||||
{
|
||||
ConsoleLogger.writeStackTrace(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save()
|
||||
{
|
||||
FileWriter writer = null;
|
||||
try {
|
||||
writer = new FileWriter(configFile);
|
||||
writer.write("");
|
||||
for (Field f : this.getClass().getDeclaredFields())
|
||||
{
|
||||
if (!f.isAnnotationPresent(Comment.class))
|
||||
continue;
|
||||
if (!f.isAnnotationPresent(Type.class))
|
||||
continue;
|
||||
for (String s : f.getAnnotation(Comment.class).value())
|
||||
{
|
||||
writer.append("# " + s + "\n");
|
||||
}
|
||||
writer.append(f.getName() + ": ");
|
||||
switch (f.getAnnotation(Type.class).value())
|
||||
{
|
||||
case Boolean:
|
||||
writer.append(f.getBoolean(this) ? "true" : "false");
|
||||
break;
|
||||
case Double:
|
||||
writer.append("" + f.getDouble(this));
|
||||
break;
|
||||
case Int:
|
||||
writer.append("" + f.getInt(this));
|
||||
break;
|
||||
case String:
|
||||
writer.append("'" + f.get(this).toString() + "'");
|
||||
break;
|
||||
case StringList:
|
||||
@SuppressWarnings("unchecked")
|
||||
List<String> list = (List<String>) f.get(this);
|
||||
writer.append("\n");
|
||||
if (list.isEmpty())
|
||||
writer.write("[]");
|
||||
else
|
||||
for (String s : list)
|
||||
writer.append(" - '" + s + "'\n");
|
||||
break;
|
||||
case Long:
|
||||
writer.append("" + f.getLong(this));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
writer.append("\n");
|
||||
writer.flush();
|
||||
}
|
||||
writer.close();
|
||||
} catch (Exception e) {
|
||||
ConsoleLogger.writeStackTrace(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,121 @@
|
||||
package fr.xephi.authme.settings.custom;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import fr.xephi.authme.settings.custom.annotations.Comment;
|
||||
import fr.xephi.authme.settings.custom.annotations.Type;
|
||||
import fr.xephi.authme.settings.custom.annotations.Type.SettingType;
|
||||
|
||||
public class DatabaseSettings extends CustomSetting {
|
||||
|
||||
@Comment({"What type of database do you want to use?",
|
||||
"Valid values: sqlite, mysql"})
|
||||
@Type(SettingType.String)
|
||||
public String backend = "sqlite";
|
||||
|
||||
@Comment("Enable database caching, should improve database performance")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean caching = true;
|
||||
|
||||
@Comment("Database host address")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLHost = "127.0.0.1";
|
||||
|
||||
@Comment("Database port")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLPort = "3306";
|
||||
|
||||
@Comment("Username about Database Connection Infos")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLUsername = "authme";
|
||||
|
||||
@Comment("Password about Database Connection Infos")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLPassword = "12345";
|
||||
|
||||
@Comment("Database Name, use with converters or as SQLITE database name")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLDatabase = "authme";
|
||||
|
||||
@Comment("Table of the database")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLTablename = "authme";
|
||||
|
||||
@Comment("Column of IDs to sort data")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLColumnId = "id";
|
||||
|
||||
@Comment("Column for storing or checking players nickname")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLColumnName = "username";
|
||||
|
||||
@Comment("Column for storing or checking players RealName ")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLColumnRealName = "realname";
|
||||
|
||||
@Comment("Column for storing players passwords")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLColumnPassword = "password";
|
||||
|
||||
@Comment("Column for storing players passwords salts")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLColumnSalt = "";
|
||||
|
||||
@Comment("Column for storing players emails")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLColumnEmail = "email";
|
||||
|
||||
@Comment("Column for storing if a player is logged in or not")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLColumnLogged = "isLogged";
|
||||
|
||||
@Comment("Column for storing players ips")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLColumnIp = "ip";
|
||||
|
||||
@Comment("Column for storing players lastlogins")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLColumnLastLogin = "lastlogin";
|
||||
|
||||
@Comment("Column for storing player LastLocation - X")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLColumnLastLocX = "x";
|
||||
|
||||
@Comment("Column for storing player LastLocation - Y")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLColumnLastLocY = "y";
|
||||
|
||||
@Comment("Column for storing player LastLocation - Z")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLColumnLastLocZ = "z";
|
||||
|
||||
@Comment("Column for storing player LastLocation - World Name")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLColumnLastLocWorld = "world";
|
||||
|
||||
@Comment("Column for storing players groups")
|
||||
@Type(SettingType.String)
|
||||
public String mySQLColumnGroup = "";
|
||||
|
||||
@Comment("Enable this when you allow registration through a website")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean mySQLWebsite = false;
|
||||
|
||||
private static File configFile = new File("." + File.separator + "plugins" + File.separator + "AuthMe" + File.separator + "database.yml");
|
||||
|
||||
private DatabaseSettings instance;
|
||||
|
||||
public DatabaseSettings()
|
||||
{
|
||||
super(configFile);
|
||||
instance = this;
|
||||
}
|
||||
|
||||
public DatabaseSettings getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public void setInstance(DatabaseSettings instance) {
|
||||
this.instance = instance;
|
||||
}
|
||||
}
|
@ -0,0 +1,83 @@
|
||||
package fr.xephi.authme.settings.custom;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import fr.xephi.authme.settings.custom.annotations.Comment;
|
||||
import fr.xephi.authme.settings.custom.annotations.Type;
|
||||
import fr.xephi.authme.settings.custom.annotations.Type.SettingType;
|
||||
|
||||
public class EmailSettings extends CustomSetting {
|
||||
|
||||
@Comment("Email SMTP server host")
|
||||
@Type(SettingType.String)
|
||||
public String mailSMTP = "smtp.gmail.com";
|
||||
|
||||
@Comment("Email SMTP server port")
|
||||
@Type(SettingType.Int)
|
||||
public int mailPort = 465;
|
||||
|
||||
@Comment("Email account whose send the mail")
|
||||
@Type(SettingType.String)
|
||||
public String mailAccount = "";
|
||||
|
||||
@Comment("Email account password")
|
||||
@Type(SettingType.String)
|
||||
public String mailPassword = "";
|
||||
|
||||
@Comment("Random password length")
|
||||
@Type(SettingType.Int)
|
||||
public int recoveryPasswordLength = 8;
|
||||
|
||||
@Comment("Mail Subject")
|
||||
@Type(SettingType.String)
|
||||
public String mailSubject = "Your new AuthMe password";
|
||||
|
||||
@Comment("Like maxRegPerIP but with email")
|
||||
@Type(SettingType.Int)
|
||||
public int maxRegPerEmail = 1;
|
||||
|
||||
@Comment("Recall players to add an email ?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean recallPlayers = false;
|
||||
|
||||
@Comment("Delay in minute for the recall scheduler")
|
||||
@Type(SettingType.Int)
|
||||
public int delayRecall = 5;
|
||||
|
||||
@Comment("Blacklist these domains for emails")
|
||||
@Type(SettingType.StringList)
|
||||
public List<String> emailBlackListed = new ArrayList<String>();
|
||||
|
||||
@Comment("Whitelist ONLY these domains for emails")
|
||||
@Type(SettingType.StringList)
|
||||
public List<String> emailWhiteListed = new ArrayList<String>();
|
||||
|
||||
@Comment("Do we need to send new password draw in an image ?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean generateImage = false;
|
||||
|
||||
private static File configFile = new File("." + File.separator + "plugins" + File.separator + "AuthMe" + File.separator + "emails.yml");
|
||||
|
||||
private EmailSettings instance;
|
||||
|
||||
public EmailSettings()
|
||||
{
|
||||
super(configFile);
|
||||
instance = this;
|
||||
if (this.isFirstLaunch)
|
||||
{
|
||||
this.emailBlackListed.add("10minutemail.com");
|
||||
save();
|
||||
}
|
||||
}
|
||||
|
||||
public EmailSettings getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public void setInstance(EmailSettings instance) {
|
||||
this.instance = instance;
|
||||
}
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
package fr.xephi.authme.settings.custom;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import fr.xephi.authme.settings.custom.annotations.Comment;
|
||||
import fr.xephi.authme.settings.custom.annotations.Type;
|
||||
import fr.xephi.authme.settings.custom.annotations.Type.SettingType;
|
||||
|
||||
public class HooksSettings extends CustomSetting {
|
||||
|
||||
@Comment("Do we need to hook with multiverse for spawn checking?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean multiverse = true;
|
||||
|
||||
@Comment("Do we need to hook with BungeeCord ?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean bungeecord = false;
|
||||
|
||||
@Comment("Send player to this BungeeCord server after register/login")
|
||||
@Type(SettingType.String)
|
||||
public String sendPlayerTo = "";
|
||||
|
||||
@Comment("Do we need to disable Essentials SocialSpy on join?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean disableSocialSpy = false;
|
||||
|
||||
@Comment("Do we need to force /motd Essentials command on join?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean useEssentialsMotd = false;
|
||||
|
||||
@Comment("Do we need to cache custom Attributes?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean customAttributes = false;
|
||||
|
||||
private static File configFile = new File("." + File.separator + "plugins" + File.separator + "AuthMe" + File.separator + "hooks.yml");
|
||||
|
||||
private HooksSettings instance;
|
||||
|
||||
public HooksSettings()
|
||||
{
|
||||
super(configFile);
|
||||
instance = this;
|
||||
}
|
||||
|
||||
public HooksSettings getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public void setInstance(HooksSettings instance) {
|
||||
this.instance = instance;
|
||||
}
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
package fr.xephi.authme.settings.custom;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import fr.xephi.authme.settings.custom.annotations.Comment;
|
||||
import fr.xephi.authme.settings.custom.annotations.Type;
|
||||
import fr.xephi.authme.settings.custom.annotations.Type.SettingType;
|
||||
|
||||
public class ProtectionSettings extends CustomSetting {
|
||||
|
||||
@Comment("Enable some servers protection ( country based login, antibot )")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean enableProtection = false;
|
||||
|
||||
@Comment({"Countries allowed to join the server and register, see http://dev.bukkit.org/bukkit-plugins/authme-reloaded/pages/countries-codes/ for countries' codes",
|
||||
"PLEASE USE QUOTES !"})
|
||||
@Type(SettingType.StringList)
|
||||
public List<String> countriesWhitelist = new ArrayList<String>();
|
||||
|
||||
@Comment({"Countries not allowed to join the server and register",
|
||||
"PLEASE USE QUOTES !"})
|
||||
@Type(SettingType.StringList)
|
||||
public List<String> countriesBlacklist = new ArrayList<String>();
|
||||
|
||||
@Comment("Do we need to enable automatic antibot system?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean enableAntiBot = false;
|
||||
|
||||
@Comment("Max number of player allowed to login in 5 secs before enable AntiBot system automatically")
|
||||
@Type(SettingType.Int)
|
||||
public int antiBotSensibility = 5;
|
||||
|
||||
@Comment("Duration in minutes of the antibot automatic system")
|
||||
@Type(SettingType.Int)
|
||||
public int antiBotDuration = 10;
|
||||
|
||||
private static File configFile = new File("." + File.separator + "plugins" + File.separator + "AuthMe" + File.separator + "protection.yml");
|
||||
|
||||
private ProtectionSettings instance;
|
||||
|
||||
public ProtectionSettings()
|
||||
{
|
||||
super(configFile);
|
||||
instance = this;
|
||||
if (this.isFirstLaunch)
|
||||
{
|
||||
this.countriesWhitelist.add("US");
|
||||
this.countriesWhitelist.add("GB");
|
||||
this.countriesBlacklist.add("A1");
|
||||
save();
|
||||
}
|
||||
}
|
||||
|
||||
public ProtectionSettings getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public void setInstance(ProtectionSettings instance) {
|
||||
this.instance = instance;
|
||||
}
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
package fr.xephi.authme.settings.custom;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import fr.xephi.authme.settings.custom.annotations.Comment;
|
||||
import fr.xephi.authme.settings.custom.annotations.Type;
|
||||
import fr.xephi.authme.settings.custom.annotations.Type.SettingType;
|
||||
|
||||
public class PurgeSettings extends CustomSetting {
|
||||
|
||||
@Comment("If enabled, AuthMe automatically purges old, unused accounts")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean useAutoPurge = false;
|
||||
|
||||
@Comment("Number of Days an account become Unused")
|
||||
@Type(SettingType.Int)
|
||||
public int daysBeforeRemovePlayer = 60;
|
||||
|
||||
@Comment("Do we need to remove the player.dat file during purge process?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean removePlayerDat = false;
|
||||
|
||||
@Comment("Do we need to remove the Essentials/users/player.yml file during purge process?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean removeEssentialsFiles = false;
|
||||
|
||||
@Comment("World where are players.dat stores")
|
||||
@Type(SettingType.String)
|
||||
public String defaultWorld = "world";
|
||||
|
||||
@Comment("Do we need to remove LimitedCreative/inventories/player.yml, player_creative.yml files during purge process ?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean removeLimiteCreativeInventories = false;
|
||||
|
||||
@Comment("Do we need to remove the AntiXRayData/PlayerData/player file during purge process?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean removeAntiXRayFile = false;
|
||||
|
||||
@Comment("Do we need to remove permissions?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean removePermissions = false;
|
||||
|
||||
private static File configFile = new File("." + File.separator + "plugins" + File.separator + "AuthMe" + File.separator + "purge.yml");
|
||||
|
||||
private PurgeSettings instance;
|
||||
|
||||
public PurgeSettings()
|
||||
{
|
||||
super(configFile);
|
||||
instance = this;
|
||||
}
|
||||
|
||||
public PurgeSettings getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public void setInstance(PurgeSettings instance) {
|
||||
this.instance = instance;
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
package fr.xephi.authme.settings.custom;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import fr.xephi.authme.settings.custom.annotations.Comment;
|
||||
import fr.xephi.authme.settings.custom.annotations.Type;
|
||||
import fr.xephi.authme.settings.custom.annotations.Type.SettingType;
|
||||
|
||||
public class SecuritySettings extends CustomSetting {
|
||||
|
||||
@Comment({"Stop the server if we can't contact the sql database",
|
||||
"Take care with this, if you set that to false,",
|
||||
"AuthMe automatically disable and the server is not protected!"})
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean stopServerOnProblem = true;
|
||||
|
||||
@Comment("/reload support")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean useReloadCommandSupport = true;
|
||||
|
||||
@Comment("Remove Spam from Console ?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean removeSpamFromConsole = false;
|
||||
|
||||
@Comment("Remove Password from Console ?")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean removePasswordFromConsole = true;
|
||||
|
||||
@Comment("Player need to put a captcha when he fails too lot the password")
|
||||
@Type(SettingType.Boolean)
|
||||
public boolean useCaptcha = false;
|
||||
|
||||
@Comment("Max allowed tries before request a captcha")
|
||||
@Type(SettingType.Int)
|
||||
public int maxLoginTryBeforeCaptcha = 5;
|
||||
|
||||
@Comment("Captcha length ")
|
||||
@Type(SettingType.Int)
|
||||
public int captchaLength = 5;
|
||||
|
||||
private static File configFile = new File("." + File.separator + "plugins" + File.separator + "AuthMe" + File.separator + "security.yml");
|
||||
|
||||
private SecuritySettings instance;
|
||||
|
||||
public SecuritySettings()
|
||||
{
|
||||
super(configFile);
|
||||
instance = this;
|
||||
}
|
||||
|
||||
public SecuritySettings getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public void setInstance(SecuritySettings instance) {
|
||||
this.instance = instance;
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package fr.xephi.authme.settings.custom.annotations;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
*
|
||||
* Add a comment to a field value
|
||||
*
|
||||
* @author xephi59
|
||||
*
|
||||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.FIELD)
|
||||
public @interface Comment {
|
||||
|
||||
public String[] value() default "";
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
package fr.xephi.authme.settings.custom.annotations;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import fr.xephi.authme.settings.custom.annotations.Type.SettingType;
|
||||
|
||||
/**
|
||||
*
|
||||
* Set the type of a field value
|
||||
*
|
||||
* @author xephi59
|
||||
*
|
||||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.FIELD)
|
||||
public @interface Type {
|
||||
|
||||
public enum SettingType {
|
||||
String(0),
|
||||
Int(1),
|
||||
Boolean(2),
|
||||
Double(3),
|
||||
StringList(4),
|
||||
Long(5);
|
||||
|
||||
private int type;
|
||||
|
||||
SettingType(int type)
|
||||
{
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public int getType()
|
||||
{
|
||||
return this.type;
|
||||
}
|
||||
}
|
||||
|
||||
public SettingType value() default SettingType.String;
|
||||
}
|
Loading…
Reference in New Issue
Block a user