From 93a320c8aeeb86d2bf930e05bc6e0d40264187e0 Mon Sep 17 00:00:00 2001 From: Xephi Date: Mon, 6 Jan 2014 17:54:50 +0100 Subject: [PATCH] Dev - 3.1.2-DEV-3 Developpement status actually Some Fixes for the 1.7.2 Remove some Magic Values Fix threads not start correctly Add a recall email adding message Fix catpcha messages Add multilines messages ( add &n ) Fix some inventory problem Fix some events problem Call login event after /register --- pom.xml | 4 +- src/main/java/fr/xephi/authme/AuthMe.java | 37 ++++-- src/main/java/fr/xephi/authme/Management.java | 26 +++-- .../xephi/authme/cache/auth/PlayerAuth.java | 14 +-- .../xephi/authme/cache/backup/FileCache.java | 6 +- .../xephi/authme/cache/limbo/LimboCache.java | 4 +- .../xephi/authme/cache/limbo/LimboPlayer.java | 9 +- .../xephi/authme/commands/AdminCommand.java | 29 +++-- .../xephi/authme/commands/CaptchaCommand.java | 14 +-- .../commands/ChangePasswordCommand.java | 14 +-- .../xephi/authme/commands/EmailCommand.java | 60 +++++----- .../xephi/authme/commands/LoginCommand.java | 4 +- .../xephi/authme/commands/LogoutCommand.java | 7 +- .../authme/commands/PasspartuCommand.java | 2 +- .../authme/commands/RegisterCommand.java | 36 +++--- .../authme/commands/UnregisterCommand.java | 8 +- .../authme/listener/AuthMePlayerListener.java | 60 +++++----- .../fr/xephi/authme/settings/Messages.java | 25 ++-- .../fr/xephi/authme/settings/Settings.java | 17 ++- .../fr/xephi/authme/task/MessageTask.java | 4 +- .../fr/xephi/authme/task/TimeoutTask.java | 6 +- src/main/resources/config.yml | 4 + src/main/resources/messages_es.yml | 6 +- src/main/resources/messages_it.yml | 44 +++---- src/main/resources/messages_pt.yml | 10 +- src/main/resources/messages_uk.yml | 56 +++++++++ src/main/resources/messages_zhhk.yml | 59 ++++++++++ src/main/resources/messages_zhtw.yml | 107 +++++++++--------- src/main/resources/plugin.yml | 2 +- 29 files changed, 420 insertions(+), 254 deletions(-) create mode 100644 src/main/resources/messages_uk.yml create mode 100644 src/main/resources/messages_zhhk.yml diff --git a/pom.xml b/pom.xml index 5f3b32fd..8252cd72 100644 --- a/pom.xml +++ b/pom.xml @@ -24,12 +24,12 @@ - 3.1.2-DEV-1 + 3.1.2-DEV-3 org.bukkit bukkit - 1.7.2-R0.1-SNAPSHOT + 1.7.2-R0.2 net.milkbowl.vault diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java index 7b283def..e44b94d3 100644 --- a/src/main/java/fr/xephi/authme/AuthMe.java +++ b/src/main/java/fr/xephi/authme/AuthMe.java @@ -145,7 +145,6 @@ public class AuthMe extends JavaPlugin { */ } - //Load MailApi if(!Settings.getmailAccount.isEmpty() && !Settings.getmailPassword.isEmpty()) mail = new SendMailSSL(this); @@ -184,7 +183,7 @@ public class AuthMe extends JavaPlugin { case FILE: if (Settings.useMultiThreading) { FlatFileThread fileThread = new FlatFileThread(); - fileThread.run(); + fileThread.start(); database = fileThread; databaseThread = fileThread; break; @@ -205,7 +204,7 @@ public class AuthMe extends JavaPlugin { case MYSQL: if (Settings.useMultiThreading) { MySQLThread sqlThread = new MySQLThread(); - sqlThread.run(); + sqlThread.start(); database = sqlThread; databaseThread = sqlThread; break; @@ -226,7 +225,7 @@ public class AuthMe extends JavaPlugin { case SQLITE: if (Settings.useMultiThreading) { SQLiteThread sqliteThread = new SQLiteThread(); - sqliteThread.run(); + sqliteThread.start(); database = sqliteThread; databaseThread = sqliteThread; break; @@ -255,6 +254,7 @@ public class AuthMe extends JavaPlugin { // Setup Management management = new Management(database, this); + management.start(); PluginManager pm = getServer().getPluginManager(); if (Settings.bungee) { @@ -325,6 +325,10 @@ public class AuthMe extends JavaPlugin { enableProtection(); if (Settings.usePurge) autoPurge(); + + // Start Email recall task if needed + recallEmail(); + ConsoleLogger.info("Authme " + this.getDescription().getVersion() + " enabled"); } @@ -354,9 +358,7 @@ public class AuthMe extends JavaPlugin { } catch (NumberFormatException nfee) { } } - } catch (NullPointerException npe) {} - catch (NoClassDefFoundError ncdfe) {} - catch (ClassCastException cce) {} + } catch (Exception e) {} } } @@ -739,4 +741,25 @@ public class AuthMe extends JavaPlugin { Settings.switchAntiBotMod(mode); } + private void recallEmail() { + if (!Settings.recallEmail) + return; + Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable(){ + @Override + public void run() { + for (Player player : Bukkit.getOnlinePlayers()) { + if (player.isOnline()) { + String name = player.getName().toLowerCase(); + if (database.isAuthAvailable(name)) + if (PlayerCache.getInstance().isAuthenticated(name)) { + String email = database.getAuth(name).getEmail(); + if (email == null || email.isEmpty() || email.equalsIgnoreCase("your@email.com")) + m._(player, "add_email"); + } + } + } + } + }, 1, 1200 * Settings.delayRecall); + } + } diff --git a/src/main/java/fr/xephi/authme/Management.java b/src/main/java/fr/xephi/authme/Management.java index 2e04889a..e91a29d4 100644 --- a/src/main/java/fr/xephi/authme/Management.java +++ b/src/main/java/fr/xephi/authme/Management.java @@ -34,7 +34,7 @@ import fr.xephi.authme.settings.Settings; * @authors Xephi59, Possible * */ -public class Management { +public class Management extends Thread { private Messages m = Messages.getInstance(); private PlayersLogs pllog = PlayersLogs.getInstance(); private Utils utils = Utils.getInstance(); @@ -49,6 +49,9 @@ public class Management { this.plugin = plugin; this.pm = plugin.getServer().getPluginManager(); } + + public void run() { + } public void performLogin(final Player player, final String password, final boolean passpartu, final boolean forceLogin) { if (passpartu) { @@ -111,20 +114,20 @@ public class Management { */ protected PlayerAuth preAuth() { if (PlayerCache.getInstance().isAuthenticated(name)) { - player.sendMessage(m._("logged_in")); + m._(player, "logged_in"); return null; } if (!database.isAuthAvailable(name)) { - player.sendMessage(m._("user_unknown")); + m._(player, "user_unknown"); return null; } PlayerAuth pAuth = database.getAuth(name); if (pAuth == null) { - player.sendMessage(m._("user_unknown")); + m._(player, "user_unknown"); return null; } if (!Settings.getMySQLColumnGroup.isEmpty() && pAuth.getGroupId() == Settings.getNonActivatedGroup) { - player.sendMessage(m._("vb_nonActiv")); + m._(player, "vb_nonActiv"); return null; } return pAuth; @@ -143,7 +146,7 @@ public class Management { passwordVerified = PasswordSecurity.comparePasswordWithHash(password, hash, name); } catch (Exception ex) { ConsoleLogger.showError(ex.getMessage()); - player.sendMessage(m._("error")); + m._(player, "error"); return; } if (passwordVerified && player.isOnline()) { @@ -174,7 +177,7 @@ public class Management { } player.setNoDamageTicks(0); - player.sendMessage(m._("login")); + m._(player, "login"); displayOtherAccounts(auth); @@ -204,13 +207,13 @@ public class Management { @Override public void run() { if (AuthMePlayerListener.gameMode != null && AuthMePlayerListener.gameMode.containsKey(name)) { - player.setGameMode(GameMode.getByValue(AuthMePlayerListener.gameMode.get(name))); + player.setGameMode(AuthMePlayerListener.gameMode.get(name)); } player.kickPlayer(m._("wrong_pwd")); } }); } else { - player.sendMessage(m._("wrong_pwd")); + m._(player, "wrong_pwd"); return; } } else { @@ -259,7 +262,7 @@ public class Management { } player.setNoDamageTicks(0); - player.sendMessage(m._("login")); + m._(player, "login"); displayOtherAccounts(auth); @@ -362,7 +365,7 @@ public class Management { * Also it's the current world inventory ! */ if (!Settings.forceOnlyAfterLogin) { - player.setGameMode(GameMode.getByValue(limbo.getGameMode())); + player.setGameMode(limbo.getGameMode()); // Inventory - Make it after restore GameMode , cause we need to restore the // right inventory in the right gamemode if (Settings.protectInventoryBeforeLogInEnabled && player.hasPlayedBefore()) { @@ -410,6 +413,7 @@ public class Management { if (p.isOnline()) p.sendMessage(AuthMePlayerListener.joinMessage.get(name)); } + AuthMePlayerListener.joinMessage.remove(name); } // The Loginevent now fires (as intended) after everything is processed diff --git a/src/main/java/fr/xephi/authme/cache/auth/PlayerAuth.java b/src/main/java/fr/xephi/authme/cache/auth/PlayerAuth.java index 324d8dfb..ce1937d0 100644 --- a/src/main/java/fr/xephi/authme/cache/auth/PlayerAuth.java +++ b/src/main/java/fr/xephi/authme/cache/auth/PlayerAuth.java @@ -106,13 +106,13 @@ public class PlayerAuth { } public String getHash() { - if(salt != null && !salt.isEmpty() && Settings.getPasswordHash == HashAlgorithm.MD5VB) { - vBhash = "$MD5vb$"+salt+"$"+hash; - return vBhash; - } - else { - return hash; - } + if (Settings.getPasswordHash == HashAlgorithm.MD5VB) { + if(salt != null && !salt.isEmpty() && Settings.getPasswordHash == HashAlgorithm.MD5VB) { + vBhash = "$MD5vb$"+salt+"$"+hash; + return vBhash; + } + } + return hash; } public String getSalt() { diff --git a/src/main/java/fr/xephi/authme/cache/backup/FileCache.java b/src/main/java/fr/xephi/authme/cache/backup/FileCache.java index 02f35dec..63b5d35c 100644 --- a/src/main/java/fr/xephi/authme/cache/backup/FileCache.java +++ b/src/main/java/fr/xephi/authme/cache/backup/FileCache.java @@ -4,6 +4,8 @@ import java.io.File; import java.io.FileWriter; import java.util.Scanner; + +import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; @@ -134,7 +136,7 @@ public class FileCache { } // can enchant item? size ofstring in file - 4 all / 2 = number of enchant if (in[0].equals("i")) { - stacki[i] = new ItemStack(Integer.parseInt(in[1]), + stacki[i] = new ItemStack(Material.getMaterial(Integer.parseInt(in[1])), Integer.parseInt(in[2]), Short.parseShort((in[3]))); if(in.length > 4 && !in[4].isEmpty()) { for(int k=4;k 4 && !in[4].isEmpty()) { for(int k=4;k - Register a player"); @@ -86,11 +90,6 @@ public class AdminCommand implements CommandExecutor { return true; } - if (!plugin.authmePermissible(sender, "authme.admin." + args[0].toLowerCase())) { - sender.sendMessage(m._("no_perm")); - return true; - } - if (args[0].equalsIgnoreCase("version")) { sender.sendMessage("AuthMe Version: "+AuthMe.getInstance().getDescription().getVersion()); return true; @@ -151,7 +150,7 @@ public class AdminCommand implements CommandExecutor { Settings.reloadConfigOptions(newConfig); m.reLoad(); s.reLoad(); - sender.sendMessage(m._("reload")); + m._(sender, "reload"); } else if (args[0].equalsIgnoreCase("lastlogin")) { if (args.length != 2) { sender.sendMessage("Usage: /authme lastlogin "); @@ -270,7 +269,7 @@ public class AdminCommand implements CommandExecutor { try { String name = args[1].toLowerCase(); if (database.isAuthAvailable(name)) { - sender.sendMessage(m._("user_regged")); + m._(sender, "user_regged"); return true; } String hash = PasswordSecurity.getHash(Settings.getPasswordHash, args[2], name); @@ -280,14 +279,14 @@ public class AdminCommand implements CommandExecutor { else auth.setSalt(""); if (!database.saveAuth(auth)) { - sender.sendMessage(m._("error")); + m._(sender, "error"); return true; } - sender.sendMessage(m._("registered")); + m._(sender, "registered"); ConsoleLogger.info(args[1] + " registered"); } catch (NoSuchAlgorithmException ex) { ConsoleLogger.showError(ex.getMessage()); - sender.sendMessage(m._("error")); + m._(sender, "error"); } return true; } else if (args[0].equalsIgnoreCase("convertflattosql")) { @@ -352,7 +351,7 @@ public class AdminCommand implements CommandExecutor { } getAuth.setEmail(args[2]); if (!database.updateEmail(getAuth)) { - sender.sendMessage(m._("error")); + m._(sender, "error"); return true; } if (PlayerCache.getInstance().getAuth(playername) != null) @@ -434,13 +433,13 @@ public class AdminCommand implements CommandExecutor { } else if (database.isAuthAvailable(name)) { auth = database.getAuth(name); } else { - sender.sendMessage(m._("unknown_user")); + m._(sender, "unknown_user"); return true; } auth.setHash(hash); auth.setSalt(PasswordSecurity.userSalt.get(name)); if (!database.updatePassword(auth)) { - sender.sendMessage(m._("error")); + m._(sender, "error"); return true; } database.updateSalt(auth); @@ -448,7 +447,7 @@ public class AdminCommand implements CommandExecutor { ConsoleLogger.info(args[1] + "'s password changed"); } catch (NoSuchAlgorithmException ex) { ConsoleLogger.showError(ex.getMessage()); - sender.sendMessage(m._("error")); + m._(sender, "error"); } return true; } else if (args[0].equalsIgnoreCase("unregister") || args[0].equalsIgnoreCase("unreg") || args[0].equalsIgnoreCase("del") ) { @@ -458,7 +457,7 @@ public class AdminCommand implements CommandExecutor { } String name = args[1].toLowerCase(); if (!database.removeAuth(name)) { - sender.sendMessage(m._("error")); + m._(sender, "error"); return true; } PlayerCache.getInstance().removePlayer(name); diff --git a/src/main/java/fr/xephi/authme/commands/CaptchaCommand.java b/src/main/java/fr/xephi/authme/commands/CaptchaCommand.java index e837de42..48cf146e 100644 --- a/src/main/java/fr/xephi/authme/commands/CaptchaCommand.java +++ b/src/main/java/fr/xephi/authme/commands/CaptchaCommand.java @@ -34,27 +34,27 @@ public class CaptchaCommand implements CommandExecutor { String name = player.getName().toLowerCase(); if (args.length == 0) { - player.sendMessage(m._("usage_captcha")); + m._(player, "usage_captcha"); return true; } if (PlayerCache.getInstance().isAuthenticated(name)) { - player.sendMessage(m._("logged_in")); + m._(player, "logged_in"); return true; } if (!plugin.authmePermissible(player, "authme." + label.toLowerCase())) { - player.sendMessage(m._("no_perm")); + m._(player, "no_perm"); return true; } if (!Settings.useCaptcha) { - player.sendMessage(m._("usage_log")); + m._(player, "usage_log"); return true; } if(!plugin.cap.containsKey(name)) { - player.sendMessage(m._("usage_log")); + m._(player, "usage_log"); return true; } @@ -69,8 +69,8 @@ public class CaptchaCommand implements CommandExecutor { plugin.cap.remove(name); } catch (NullPointerException npe) { } - player.sendMessage(m._("valid_captcha")); - player.sendMessage(m._("login_msg")); + m._(player, "valid_captcha"); + m._(player, "login_msg"); return true; } diff --git a/src/main/java/fr/xephi/authme/commands/ChangePasswordCommand.java b/src/main/java/fr/xephi/authme/commands/ChangePasswordCommand.java index 861834d5..d5f380c3 100644 --- a/src/main/java/fr/xephi/authme/commands/ChangePasswordCommand.java +++ b/src/main/java/fr/xephi/authme/commands/ChangePasswordCommand.java @@ -37,19 +37,19 @@ public class ChangePasswordCommand implements CommandExecutor { } if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) { - sender.sendMessage(m._("no_perm")); + m._(sender, "no_perm"); return true; } Player player = (Player) sender; String name = player.getName().toLowerCase(); if (!PlayerCache.getInstance().isAuthenticated(name)) { - player.sendMessage(m._("not_logged_in")); + m._(player, "not_logged_in"); return true; } if (args.length != 2) { - player.sendMessage(m._("usage_changepassword")); + m._(player, "usage_changepassword"); return true; } @@ -64,22 +64,22 @@ public class ChangePasswordCommand implements CommandExecutor { else auth.setSalt(""); if (!database.updatePassword(auth)) { - player.sendMessage(m._("error")); + m._(player, "error"); return true; } database.updateSalt(auth); PlayerCache.getInstance().updatePlayer(auth); - player.sendMessage(m._("pwd_changed")); + m._(player, "pwd_changed"); ConsoleLogger.info(player.getName() + " changed his password"); if(plugin.notifications != null) { plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " change his password!")); } } else { - player.sendMessage(m._("wrong_pwd")); + m._(player, "wrong_pwd"); } } catch (NoSuchAlgorithmException ex) { ConsoleLogger.showError(ex.getMessage()); - sender.sendMessage(m._("error")); + m._(sender, "error"); } return true; } diff --git a/src/main/java/fr/xephi/authme/commands/EmailCommand.java b/src/main/java/fr/xephi/authme/commands/EmailCommand.java index 17499236..6b9c2aeb 100644 --- a/src/main/java/fr/xephi/authme/commands/EmailCommand.java +++ b/src/main/java/fr/xephi/authme/commands/EmailCommand.java @@ -40,7 +40,7 @@ public class EmailCommand implements CommandExecutor { } if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) { - sender.sendMessage(m._("no_perm")); + m._(sender, "no_perm"); return true; } @@ -48,89 +48,89 @@ public class EmailCommand implements CommandExecutor { String name = player.getName().toLowerCase(); if (args.length == 0) { - player.sendMessage(m._("usage_email_add")); - player.sendMessage(m._("usage_email_change")); - player.sendMessage(m._("usage_email_recovery")); + m._(player, "usage_email_add"); + m._(player, "usage_email_change"); + m._(player, "usage_email_recovery"); return true; } if(args[0].equalsIgnoreCase("add")) { if (args.length != 3) { - player.sendMessage(m._("usage_email_add")); + m._(player, "usage_email_add"); return true; } if(args[1].equals(args[2]) && PlayerCache.getInstance().isAuthenticated(name)) { PlayerAuth auth = PlayerCache.getInstance().getAuth(name); if (auth.getEmail() == null || (!auth.getEmail().equals("your@email.com") && !auth.getEmail().isEmpty())) { - player.sendMessage("usage_email_change"); + m._(player, "usage_email_change"); return true; } if (!args[1].contains("@")) { - player.sendMessage(m._("email_invalid")); + m._(player, "email_invalid"); return true; } auth.setEmail(args[1]); if (!data.updateEmail(auth)) { - player.sendMessage(m._("error")); + m._(player, "error"); return true; } PlayerCache.getInstance().updatePlayer(auth); - player.sendMessage(m._("email_added")); + m._(player, "email_added"); player.sendMessage(auth.getEmail()); } else if (PlayerCache.getInstance().isAuthenticated(name)){ - player.sendMessage(m._("email_confirm")); + m._(player, "email_confirm"); } else { if (!data.isAuthAvailable(name)) { - player.sendMessage(m._("login_msg")); + m._(player, "login_msg"); } else { - player.sendMessage(m._("reg_email_msg")); + m._(player, "reg_email_msg"); } } } else if(args[0].equalsIgnoreCase("change") && args.length == 3 ) { if(PlayerCache.getInstance().isAuthenticated(name)) { PlayerAuth auth = PlayerCache.getInstance().getAuth(name); if (auth.getEmail() == null || auth.getEmail().equals("your@email.com") || auth.getEmail().isEmpty()) { - player.sendMessage(m._("usage_email_add")); + m._(player, "usage_email_add"); return true; } if (!args[1].equals(auth.getEmail())) { - player.sendMessage(m._("old_email_invalid")); + m._(player, "old_email_invalid"); return true; } if (!args[2].contains("@")) { - player.sendMessage(m._("new_email_invalid")); + m._(player, "new_email_invalid"); return true; } auth.setEmail(args[2]); if (!data.updateEmail(auth)) { - player.sendMessage(m._("bad_database_email")); + m._(player, "error"); return true; } PlayerCache.getInstance().updatePlayer(auth); - player.sendMessage(m._("email_changed")); + m._(player, "email_changed"); player.sendMessage(m._("email_defined") + auth.getEmail()); } else if (PlayerCache.getInstance().isAuthenticated(name)){ - player.sendMessage(m._("email_confirm")); + m._(player, "email_confirm"); } else { if (!data.isAuthAvailable(name)) { - player.sendMessage(m._("login_msg")); + m._(player, "login_msg"); } else { - player.sendMessage(m._("reg_email_msg")); + m._(player, "reg_email_msg"); } } } if(args[0].equalsIgnoreCase("recovery")) { if (args.length != 2) { - player.sendMessage(m._("usage_email_recovery")); + m._(player, "usage_email_recovery"); return true; } if (plugin.mail == null) { - player.sendMessage(m._("error")); + m._(player, "error"); return true; } if (data.isAuthAvailable(name)) { if (PlayerCache.getInstance().isAuthenticated(name)) { - player.sendMessage(m._("logged_in")); + m._(player, "logged_in"); return true; } try { @@ -143,16 +143,16 @@ public class EmailCommand implements CommandExecutor { } else if (data.isAuthAvailable(name)) { auth = data.getAuth(name); } else { - sender.sendMessage(m._("unknown_user")); + m._(player, "unknown_user"); return true; } if (Settings.getmailAccount.equals("") || Settings.getmailAccount.isEmpty()) { - player.sendMessage(m._("error")); + m._(player, "error"); return true; } if (!args[1].equalsIgnoreCase(auth.getEmail())) { - player.sendMessage(m._("email_invalid")); + m._(player, "email_invalid"); return true; } final String finalhashnew = hashnew; @@ -170,16 +170,16 @@ public class EmailCommand implements CommandExecutor { }); } plugin.mail.main(auth, thePass); - player.sendMessage(m._("email_send")); + m._(player, "email_send"); } catch (NoSuchAlgorithmException ex) { ConsoleLogger.showError(ex.getMessage()); - sender.sendMessage(m._("error")); + m._(sender, "error"); } catch (NoClassDefFoundError ncdfe) { ConsoleLogger.showError(ncdfe.getMessage()); - sender.sendMessage(m._("error")); + m._(sender, "error"); } } else { - player.sendMessage(m._("reg_email_msg")); + m._(player, "reg_email_msg"); } } return true; diff --git a/src/main/java/fr/xephi/authme/commands/LoginCommand.java b/src/main/java/fr/xephi/authme/commands/LoginCommand.java index 299c12a9..bff292f2 100644 --- a/src/main/java/fr/xephi/authme/commands/LoginCommand.java +++ b/src/main/java/fr/xephi/authme/commands/LoginCommand.java @@ -27,12 +27,12 @@ public class LoginCommand implements CommandExecutor { final Player player = (Player) sender; if (args.length == 0) { - player.sendMessage(m._("usage_log")); + m._(player, "usage_log"); return true; } if (!plugin.authmePermissible(player, "authme." + label.toLowerCase())) { - player.sendMessage(m._("no_perm")); + m._(player, "no_perm"); return true; } plugin.management.performLogin(player, args[0], false, false); diff --git a/src/main/java/fr/xephi/authme/commands/LogoutCommand.java b/src/main/java/fr/xephi/authme/commands/LogoutCommand.java index 5c62cbb9..968b13b1 100644 --- a/src/main/java/fr/xephi/authme/commands/LogoutCommand.java +++ b/src/main/java/fr/xephi/authme/commands/LogoutCommand.java @@ -7,7 +7,6 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitScheduler; import org.bukkit.scheduler.BukkitTask; @@ -50,7 +49,7 @@ public class LogoutCommand implements CommandExecutor { } if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) { - sender.sendMessage(m._("no_perm")); + m._(sender, "no_perm"); return true; } @@ -58,7 +57,7 @@ public class LogoutCommand implements CommandExecutor { String name = player.getName().toLowerCase(); if (!PlayerCache.getInstance().isAuthenticated(name)) { - player.sendMessage(m._("not_logged_in")); + m._(player, "not_logged_in"); return true; } @@ -119,7 +118,7 @@ public class LogoutCommand implements CommandExecutor { player.getVehicle().eject(); } catch (NullPointerException npe) { } - player.sendMessage(m._("logout")); + m._(player, "logout"); ConsoleLogger.info(player.getDisplayName() + " logged out"); if(plugin.notifications != null) { plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " logged out!")); diff --git a/src/main/java/fr/xephi/authme/commands/PasspartuCommand.java b/src/main/java/fr/xephi/authme/commands/PasspartuCommand.java index dcc6f167..292dab93 100644 --- a/src/main/java/fr/xephi/authme/commands/PasspartuCommand.java +++ b/src/main/java/fr/xephi/authme/commands/PasspartuCommand.java @@ -28,7 +28,7 @@ public class PasspartuCommand implements CommandExecutor { public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) { if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) { - sender.sendMessage(m._("no_perm")); + m._(sender, "no_perm"); return true; } diff --git a/src/main/java/fr/xephi/authme/commands/RegisterCommand.java b/src/main/java/fr/xephi/authme/commands/RegisterCommand.java index 78e9341d..e10053ea 100644 --- a/src/main/java/fr/xephi/authme/commands/RegisterCommand.java +++ b/src/main/java/fr/xephi/authme/commands/RegisterCommand.java @@ -55,7 +55,7 @@ public class RegisterCommand implements CommandExecutor { } if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) { - sender.sendMessage(m._("no_perm")); + m._(sender, "no_perm"); return true; } @@ -71,17 +71,17 @@ public class RegisterCommand implements CommandExecutor { final String ip = ipA; if (PlayerCache.getInstance().isAuthenticated(name)) { - player.sendMessage(m._("logged_in")); + m._(player, "logged_in"); return true; } if (!Settings.isRegistrationEnabled) { - player.sendMessage(m._("reg_disabled")); + m._(player, "reg_disabled"); return true; } if (database.isAuthAvailable(player.getName().toLowerCase())) { - player.sendMessage(m._("user_regged")); + m._(player, "user_regged"); if (pllog.getStringList("players").contains(player.getName())) { pllog.getStringList("players").remove(player.getName()); } @@ -90,30 +90,30 @@ public class RegisterCommand implements CommandExecutor { if(Settings.getmaxRegPerIp > 0 ){ if(!plugin.authmePermissible(sender, "authme.allow2accounts") && database.getAllAuthsByIp(ipA).size() >= Settings.getmaxRegPerIp) { - player.sendMessage(m._("max_reg")); + m._(player, "max_reg"); return true; } } if(Settings.emailRegistration && !Settings.getmailAccount.isEmpty()) { if(!args[0].contains("@")) { - player.sendMessage(m._("usage_reg")); + m._(player, "usage_reg"); return true; } if(Settings.doubleEmailCheck) { if(args.length < 2) { - player.sendMessage(m._("usage_reg")); + m._(player, "usage_reg"); return true; } if(!args[0].equals(args[1])) { - player.sendMessage(m._("usage_reg")); + m._(player, "usage_reg"); return true; } } final String email = args[0]; if(Settings.getmaxRegPerEmail > 0) { if (!plugin.authmePermissible(sender, "authme.allow2accounts") && database.getAllAuthsByEmail(email).size() >= Settings.getmaxRegPerEmail) { - player.sendMessage(m._("max_reg")); + m._(player, "max_reg"); return true; } } @@ -152,7 +152,7 @@ public class RegisterCommand implements CommandExecutor { if(!Settings.getRegisteredGroup.isEmpty()){ Utils.getInstance().setGroup(player, Utils.groupType.REGISTERED); } - player.sendMessage(m._("vb_nonActiv")); + m._(player, "vb_nonActiv"); String msg = m._("login_msg"); int time = Settings.getRegistrationTimeout * 20; int msgInterval = Settings.getWarnMessageInterval; @@ -195,12 +195,12 @@ public class RegisterCommand implements CommandExecutor { } if (args.length == 0 || (Settings.getEnablePasswordVerifier && args.length < 2) ) { - player.sendMessage(m._("usage_reg")); + m._(player, "usage_reg"); return true; } if(args[0].length() < Settings.getPasswordMinLen || args[0].length() > Settings.passwordMaxLength) { - player.sendMessage(m._("pass_len")); + m._(player, "pass_len"); return true; } try { @@ -209,7 +209,7 @@ public class RegisterCommand implements CommandExecutor { if (args[0].equals(args[1])) { hash = PasswordSecurity.getHash(Settings.getPasswordHash, args[0], name); } else { - player.sendMessage(m._("password_error")); + m._(player, "password_error"); return true; } } else @@ -221,13 +221,13 @@ public class RegisterCommand implements CommandExecutor { auth = new PlayerAuth(name, hash, PasswordSecurity.userSalt.get(name), ip, new Date().getTime(), player.getName()); } if (!database.saveAuth(auth)) { - player.sendMessage(m._("error")); + m._(player, "error"); return true; } PlayerCache.getInstance().addPlayer(auth); LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name); if (limbo != null) { - player.setGameMode(GameMode.getByValue(limbo.getGameMode())); + player.setGameMode(limbo.getGameMode()); if (Settings.isTeleportToSpawnEnabled) { World world = player.getWorld(); Location loca = plugin.getSpawnLocation(world); @@ -248,9 +248,9 @@ public class RegisterCommand implements CommandExecutor { if(!Settings.getRegisteredGroup.isEmpty()){ Utils.getInstance().setGroup(player, Utils.groupType.REGISTERED); } - player.sendMessage(m._("registered")); + m._(player, "registered"); if (!Settings.getmailAccount.isEmpty()) - player.sendMessage(m._("add_email")); + m._(player, "add_email"); this.isFirstTimeJoin = true; if (player.getGameMode() != GameMode.CREATIVE && !Settings.isMovementAllowed) { player.setAllowFlight(false); @@ -264,7 +264,7 @@ public class RegisterCommand implements CommandExecutor { } } catch (NoSuchAlgorithmException ex) { ConsoleLogger.showError(ex.getMessage()); - sender.sendMessage(m._("error")); + m._(sender, "error"); } return true; } diff --git a/src/main/java/fr/xephi/authme/commands/UnregisterCommand.java b/src/main/java/fr/xephi/authme/commands/UnregisterCommand.java index 3388e2ce..7b526f8a 100644 --- a/src/main/java/fr/xephi/authme/commands/UnregisterCommand.java +++ b/src/main/java/fr/xephi/authme/commands/UnregisterCommand.java @@ -49,7 +49,7 @@ public class UnregisterCommand implements CommandExecutor { } if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) { - sender.sendMessage(m._("no_perm")); + m._(sender, "no_perm"); return true; } @@ -57,12 +57,12 @@ public class UnregisterCommand implements CommandExecutor { String name = player.getName().toLowerCase(); if (!PlayerCache.getInstance().isAuthenticated(name)) { - player.sendMessage(m._("not_logged_in")); + m._(player, "not_logged_in"); return true; } if (args.length != 1) { - player.sendMessage(m._("usage_unreg")); + m._(player, "usage_unreg"); return true; } try { @@ -125,7 +125,7 @@ public class UnregisterCommand implements CommandExecutor { } return true; } else { - player.sendMessage(m._("wrong_pwd")); + m._(player, "wrong_pwd"); } } catch (NoSuchAlgorithmException ex) { ConsoleLogger.showError(ex.getMessage()); diff --git a/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java b/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java index 16fee6c5..d058d690 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java @@ -64,8 +64,8 @@ import fr.xephi.authme.task.TimeoutTask; public class AuthMePlayerListener implements Listener { - public static int gm = 0; - public static HashMap gameMode = new HashMap(); + public static GameMode gm = GameMode.SURVIVAL; + public static HashMap gameMode = new HashMap(); public static HashMap joinMessage = new HashMap(); private Utils utils = Utils.getInstance(); private Messages m = Messages.getInstance(); @@ -132,16 +132,16 @@ public class AuthMePlayerListener implements Listener { String cmd = event.getMessage().split(" ")[0]; if (data.isAuthAvailable(name)) { - player.sendMessage(m._("login_msg")); + m._(player, "login_msg"); } else { if (!Settings.isForcedRegistrationEnabled) { return; } if (Settings.emailRegistration) { - player.sendMessage(m._("reg_email_msg")); + m._(player, "reg_email_msg"); return; } else { - player.sendMessage(m._("reg_msg")); + m._(player, "reg_msg"); return; } } @@ -169,16 +169,16 @@ public class AuthMePlayerListener implements Listener { String cmd = event.getMessage().split(" ")[0]; if (data.isAuthAvailable(name)) { - player.sendMessage(m._("login_msg")); + m._(player, "login_msg"); } else { if (!Settings.isForcedRegistrationEnabled) { return; } if (Settings.emailRegistration) { - player.sendMessage(m._("reg_email_msg")); + m._(player, "reg_email_msg"); return; } else { - player.sendMessage(m._("reg_msg")); + m._(player, "reg_msg"); return; } } @@ -206,16 +206,16 @@ public class AuthMePlayerListener implements Listener { String cmd = event.getMessage().split(" ")[0]; if (data.isAuthAvailable(name)) { - player.sendMessage(m._("login_msg")); + m._(player, "login_msg"); } else { if (!Settings.isForcedRegistrationEnabled) { return; } if (Settings.emailRegistration) { - player.sendMessage(m._("reg_email_msg")); + m._(player, "reg_email_msg"); return; } else { - player.sendMessage(m._("reg_msg")); + m._(player, "reg_msg"); return; } } @@ -243,16 +243,16 @@ public class AuthMePlayerListener implements Listener { String cmd = event.getMessage().split(" ")[0]; if (data.isAuthAvailable(name)) { - player.sendMessage(m._("login_msg")); + m._(player, "login_msg"); } else { if (!Settings.isForcedRegistrationEnabled) { return; } if (Settings.emailRegistration) { - player.sendMessage(m._("reg_email_msg")); + m._(player, "reg_email_msg"); return; } else { - player.sendMessage(m._("reg_msg")); + m._(player, "reg_msg"); return; } } @@ -280,16 +280,16 @@ public class AuthMePlayerListener implements Listener { String cmd = event.getMessage().split(" ")[0]; if (data.isAuthAvailable(name)) { - player.sendMessage(m._("login_msg")); + m._(player, "login_msg"); } else { if (!Settings.isForcedRegistrationEnabled) { return; } if (Settings.emailRegistration) { - player.sendMessage(m._("reg_email_msg")); + m._(player, "reg_email_msg"); return; } else { - player.sendMessage(m._("reg_msg")); + m._(player, "reg_msg"); return; } } @@ -317,15 +317,15 @@ public class AuthMePlayerListener implements Listener { String cmd = event.getMessage().split(" ")[0]; if (data.isAuthAvailable(name)) { - player.sendMessage(m._("login_msg")); + m._(player, "login_msg"); } else { if (!Settings.isForcedRegistrationEnabled) { return; } if (Settings.emailRegistration) { - player.sendMessage(m._("reg_email_msg")); + m._(player, "reg_email_msg"); } else { - player.sendMessage(m._("reg_msg")); + m._(player, "reg_msg"); } } @@ -537,7 +537,7 @@ public class AuthMePlayerListener implements Listener { Player player = event.getPlayer(); World world = player.getWorld(); Location spawnLoc = plugin.getSpawnLocation(world); - gm = player.getGameMode().getValue(); + gm = player.getGameMode(); final String name = player.getName().toLowerCase(); gameMode.put(name, gm); BukkitScheduler sched = plugin.getServer().getScheduler(); @@ -558,9 +558,9 @@ public class AuthMePlayerListener implements Listener { ip = plugin.realIp.get(name); } if(Settings.isAllowRestrictedIp && !Settings.getRestrictedIp(name, ip)) { - int gM = gameMode.get(name); + GameMode gM = gameMode.get(name); this.causeByAuthMe = true; - player.setGameMode(GameMode.getByValue(gM)); + player.setGameMode(gM); this.causeByAuthMe = false; player.kickPlayer("You are not the Owner of this account, please try another name!"); if (Settings.banUnsafeIp) @@ -581,12 +581,12 @@ public class AuthMePlayerListener implements Listener { } else { PlayerCache.getInstance().addPlayer(auth); } - player.sendMessage(m._("valid_session")); + m._(player, "valid_session"); return; } else if (!Settings.sessionExpireOnIpChange){ - int gM = gameMode.get(name); + GameMode gM = gameMode.get(name); this.causeByAuthMe = true; - player.setGameMode(GameMode.getByValue(gM)); + player.setGameMode(gM); this.causeByAuthMe = false; player.kickPlayer(m._("unvalid_session")); return; @@ -600,9 +600,9 @@ public class AuthMePlayerListener implements Listener { PlayerCache.getInstance().removePlayer(name); LimboCache.getInstance().addLimboPlayer(player , utils.removeAll(player)); } else { - int gM = gameMode.get(name); + GameMode gM = gameMode.get(name); this.causeByAuthMe = true; - player.setGameMode(GameMode.getByValue(gM)); + player.setGameMode(gM); this.causeByAuthMe = false; player.kickPlayer(m._("unvalid_session")); return; @@ -698,7 +698,7 @@ public class AuthMePlayerListener implements Listener { return; Block b = player.getLocation().getBlock(); if (b.getType() == Material.PORTAL || b.getType() == Material.ENDER_PORTAL || b.getType() == Material.LAVA || b.getType() == Material.STATIONARY_LAVA) { - player.sendMessage(m._("unsafe_spawn")); + m._(player, "unsafe_spawn"); player.teleport(spawnLoc); return; } @@ -827,7 +827,7 @@ public class AuthMePlayerListener implements Listener { API.setPlayerInventory(player, ev.getInventory(), ev.getArmor()); } } catch (NullPointerException npe){ - ConsoleLogger.showError("Problem while restore " + name + "inventory after a kick"); + ConsoleLogger.showError("Problem while restore " + name + " inventory after a kick"); } } try { diff --git a/src/main/java/fr/xephi/authme/settings/Messages.java b/src/main/java/fr/xephi/authme/settings/Messages.java index 80cebbd4..64e201f8 100644 --- a/src/main/java/fr/xephi/authme/settings/Messages.java +++ b/src/main/java/fr/xephi/authme/settings/Messages.java @@ -2,9 +2,8 @@ package fr.xephi.authme.settings; import java.io.File; import java.io.InputStream; - +import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.YamlConfiguration; - import fr.xephi.authme.AuthMe; public class Messages extends CustomConfiguration { @@ -66,11 +65,8 @@ public class Messages extends CustomConfiguration { this.save(); } - public String _(String msg) { + public void _(CommandSender sender, String msg) { String loc = (String) this.get(msg, this.getDefault(msg)); - if (loc != null) { - return loc.replace("&", "\u00a7"); - } if (loc == null && !contains(msg)) { set(msg, this.getDefault(msg)); save(); @@ -78,7 +74,22 @@ public class Messages extends CustomConfiguration { loc = (String) this.get(msg, this.getDefault(msg)); } if (loc == null) - return "Error with Translation files; Please contact the admin "; + loc = "Error with Translation files; Please contact the admin "; + for (String l : loc.split("&n")) { + sender.sendMessage(l.replace("&", "\u00a7")); + } + } + + public String _(String msg) { + String loc = (String) this.get(msg, this.getDefault(msg)); + if (loc == null && !contains(msg)) { + set(msg, this.getDefault(msg)); + save(); + load(); + loc = (String) this.get(msg, this.getDefault(msg)); + } + if (loc == null) + loc = "Error with Translation files; Please contact the admin "; return loc.replace("&", "\u00a7"); } diff --git a/src/main/java/fr/xephi/authme/settings/Settings.java b/src/main/java/fr/xephi/authme/settings/Settings.java index ce99352d..f045c163 100644 --- a/src/main/java/fr/xephi/authme/settings/Settings.java +++ b/src/main/java/fr/xephi/authme/settings/Settings.java @@ -48,7 +48,7 @@ public final class Settings extends YamlConfiguration { useCaptcha, emailRegistration, multiverse, notifications, chestshop, bungee, banUnsafeIp, doubleEmailCheck, sessionExpireOnIpChange, disableSocialSpy, useMultiThreading, forceOnlyAfterLogin, useEssentialsMotd, usePurge, purgePlayerDat, purgeEssentialsFile, supportOldPassword, purgeLimitedCreative, - purgeAntiXray, purgePermissions, enableProtection, enableAntiBot; + purgeAntiXray, purgePermissions, enableProtection, enableAntiBot, recallEmail; public static String getNickRegex, getUnloggedinGroup, getMySQLHost, getMySQLPort, getMySQLUsername, getMySQLPassword, getMySQLDatabase, getMySQLTablename, @@ -62,7 +62,7 @@ public final class Settings extends YamlConfiguration { public static int getWarnMessageInterval, getSessionTimeout, getRegistrationTimeout, getMaxNickLength, getMinNickLength, getPasswordMinLen, getMovementRadius, getmaxRegPerIp, getNonActivatedGroup, passwordMaxLength, getRecoveryPassLength, getMailPort, maxLoginTry, captchaLength, saltLength, getmaxRegPerEmail, - bCryptLog2Rounds, purgeDelay, getPhpbbGroup, antiBotSensibility, antiBotDuration; + bCryptLog2Rounds, purgeDelay, getPhpbbGroup, antiBotSensibility, antiBotDuration, delayRecall; protected static YamlConfiguration configFile; @@ -218,6 +218,8 @@ public void loadConfigOptions() { antiBotSensibility = configFile.getInt("Protection.antiBotSensibility", 5); antiBotDuration = configFile.getInt("Protection.antiBotDuration", 10); forceCommands = (List) configFile.getList("settings.forceCommands", new ArrayList()); + recallEmail = configFile.getBoolean("Email.recallPlayers", false); + delayRecall = configFile.getInt("Email.delayRecall", 5); saveDefaults(); } @@ -360,6 +362,8 @@ public static void reloadConfigOptions(YamlConfiguration newConfig) { antiBotSensibility = configFile.getInt("Protection.antiBotSensibility", 5); antiBotDuration = configFile.getInt("Protection.antiBotDuration", 10); forceCommands = (List) configFile.getList("settings.forceCommands", new ArrayList()); + recallEmail = configFile.getBoolean("Email.recallPlayers", false); + delayRecall = configFile.getInt("Email.delayRecall", 5); } public void mergeConfig() { @@ -476,8 +480,13 @@ public void mergeConfig() { set("Protection.antiBotDuration", 10); if(!contains("settings.forceCommands")) set("settings.forceCommands", new ArrayList()); + if(!contains("Email.recallPlayers")) + set("Email.recallPlayers", false); + if(!contains("Email.delayRecall")) + set("Email.delayRecall", 5); - plugin.getLogger().info("Merge new Config Options if needed.."); + plugin.getLogger().warning("Merge new Config Options if needed.."); + plugin.getLogger().warning("Please check your config.yml file!"); plugin.saveConfig(); return; @@ -655,6 +664,6 @@ public void mergeConfig() { } public enum messagesLang { - en, de, br, cz, pl, fr, ru, hu, sk, es, zhtw, fi, zhcn, lt, it, ko, pt, nl + en, de, br, cz, pl, fr, uk, ru, hu, sk, es, fi, zhtw, zhhk, zhcn, lt, it, ko, pt, nl } } diff --git a/src/main/java/fr/xephi/authme/task/MessageTask.java b/src/main/java/fr/xephi/authme/task/MessageTask.java index b0aaf332..e1c04ca4 100644 --- a/src/main/java/fr/xephi/authme/task/MessageTask.java +++ b/src/main/java/fr/xephi/authme/task/MessageTask.java @@ -30,7 +30,9 @@ public class MessageTask implements Runnable { for (Player player : plugin.getServer().getOnlinePlayers()) { if (player.getName().toLowerCase().equals(name)) { - player.sendMessage(msg); + for (String ms : msg.split("\u00a7n")) { + player.sendMessage(ms); + } BukkitScheduler sched = plugin.getServer().getScheduler(); BukkitTask late = sched.runTaskLater(plugin, this, interval * 20); if(LimboCache.getInstance().hasLimboPlayer(name)) { diff --git a/src/main/java/fr/xephi/authme/task/TimeoutTask.java b/src/main/java/fr/xephi/authme/task/TimeoutTask.java index 9762a385..2ec4bae2 100644 --- a/src/main/java/fr/xephi/authme/task/TimeoutTask.java +++ b/src/main/java/fr/xephi/authme/task/TimeoutTask.java @@ -45,9 +45,9 @@ public class TimeoutTask implements Runnable { playerCache.removeCache(name); } } - int gm = AuthMePlayerListener.gameMode.get(name); - player.setGameMode(GameMode.getByValue(gm)); - ConsoleLogger.info("Set " + player.getName() + " to gamemode: " + GameMode.getByValue(gm).name()); + GameMode gm = AuthMePlayerListener.gameMode.get(name); + player.setGameMode(gm); + ConsoleLogger.info("Set " + player.getName() + " to gamemode: " + gm.name()); player.kickPlayer(m._("timeout")); break; } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 6da818f1..695f4bdb 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -321,6 +321,10 @@ Email: mailText: 'Dear ,

This is your new AuthMe password for the server

:



Do not forget to change password after login!
/changepassword newPassword' # Like maxRegPerIp but with email maxRegPerEmail: 1 + # Recall players to add an email ? + recallPlayers: false + # Delay in minute for the recall scheduler + delayRecall: 5 Hooks: # Do we need to hook with multiverse for spawn checking? multiverse: true diff --git a/src/main/resources/messages_es.yml b/src/main/resources/messages_es.yml index 9cae27ad..a27633b2 100644 --- a/src/main/resources/messages_es.yml +++ b/src/main/resources/messages_es.yml @@ -52,6 +52,6 @@ email_added: '[AuthMe] Email agregado !' email_confirm: '[AuthMe] Confirma tu Email !' email_changed: '[AuthMe] Email cambiado !' email_send: '[AuthMe] Correo de recuperación enviado !' -country_banned: 'Your country is banned from this server' -antibot_auto_enabled: '[AuthMe] AntiBotMod automatically enabled due to massive connections!' -antibot_auto_disabled: '[AuthMe] AntiBotMod automatically disabled after %m Minutes, hope invasion stopped' \ No newline at end of file +country_banned: 'Tu país ha sido baneado de este servidor!' +antibot_auto_enabled: '[AuthMe] AntiBotMod activado automáticamente debido a conexiones masivas!' +antibot_auto_disabled: '[AuthMe] AntiBotMod desactivado automáticamente luego de %m minutos. Esperamos que haya terminado' diff --git a/src/main/resources/messages_it.yml b/src/main/resources/messages_it.yml index 0eb355fcb..247a4f3b 100644 --- a/src/main/resources/messages_it.yml +++ b/src/main/resources/messages_it.yml @@ -1,15 +1,15 @@ -unknown_user: "L'utente non è nel database" +unknown_user: "L'utente non è presente nel database" unsafe_spawn: 'Il tuo punto di logout non era sicuro, sei stato teletrasportato allo Spawn' not_logged_in: '&cNon loggato!' reg_voluntarily: 'Puoi registrare il tuo nickname nel server con "/register "' usage_log: '&cUtilizzo: /login ' wrong_pwd: '&cPassword sbagliata' -unregistered: '&cDe-registrato correttamente!' +unregistered: '&cCancellato correttamente!' reg_disabled: '&cLe registrazioni sono disabilitate' valid_session: '&cLoggato attraverso la sessione' login: '&cLoggato correttamente!' -vb_nonActiv: "Il tuo account non è ancora attivo, controlla le tue Email!" -user_regged: "&cUtente già registrato" +vb_nonActiv: 'Il tuo account non è ancora attivo, controlla le tue Email!' +user_regged: '&cUtente già registrato' usage_reg: '&cUtilizzo: /register ' max_reg: 'Hai raggiunto il numero massimo di registrazioni per il tuo account' no_perm: '&cNessun Permesso' @@ -18,39 +18,39 @@ login_msg: '&cPerfavore, loggati con "/login "' reg_msg: '&cPerfavore, registrati con "/register "' reg_email_msg: '&cPerfavore, registrati con "/register "' usage_unreg: '&cUtilizzo: /unregister ' -pwd_changed: '&cPassword cambiata!' +pwd_changed: '&cPassword cambiata correttamente!' user_unknown: '&cUtente non registrato' -password_error: 'La Password non corrisponde' +password_error: 'Le Password non corrispondono' unvalid_session: "I tuoi dati non combaciano con l'ultima sessione. Per favore attendi la fine della sessione attuale" -reg_only: "Possono entrare solo utenti registrati! Perfavore, vai su http://example.com per registrarti" -logged_in: "&cSei già loggato!" +reg_only: 'Possono entrare solo utenti registrati! Perfavore, vai su http://example.com per registrarti' +logged_in: '&cSei già loggato!' logout: '&cDisconnesso correttamente' -same_nick: "Lo stesso nickname è già online" +same_nick: 'Lo stesso nickname è già online' registered: '&cRegistrato correttamente!' -pass_len: "La tua password è troppo corta o troppo lunga" +pass_len: 'La tua password è troppo corta o troppo lunga' reload: 'La configurazione e il database sono stati ricaricati' timeout: 'Timeout di Login' usage_changepassword: 'Utilizzo: /changepassword ' -name_len: "&cIl tuo nickname è troppo corto o troppo lungo" +name_len: '&cIl tuo nickname è troppo corto o troppo lungo' regex: '&cIl tuo nickname contiene caratteri strani. Caratteri abilitati: REG_EX' add_email: '&cPer una maggiore sicurezza, aggiungi una mail con : /email add ' -bad_database_email: "[AuthMe] Il comando /email è utilizzabile solo con MySQL o SQLite, contatta un admin" +bad_database_email: '[AuthMe] Il comando /email è utilizzabile solo con MySQL o SQLite, contatta un admin' recovery_email: '&cDimenticata la tua password? Perfavore, fai /email recovery ' usage_captcha: '&cUtilizzo: /captcha ' wrong_captcha: '&cCaptcha sbagliato, perfavore fai: /captcha THE_CAPTCHA' -valid_captcha: "&cIl tuo captcha è valido!" -kick_forvip: "&cUn player VIP è entrato mentre il server era pieno!" -kick_fullserver: "&cIl server è attualmente pieno, ci dispiace!" +valid_captcha: '&cIl tuo captcha è valido!' +kick_forvip: '&cUn utente VIP è entrato mentre il server era pieno!' +kick_fullserver: '&cIl server è attualmente pieno, riprova più tardi!' usage_email_add: '&fUtilizzo: /email add ' usage_email_change: '&fUtilizzo: /email change ' usage_email_recovery: '&fUtilizzo: /email recovery ' -new_email_invalid: '[AuthMe] La nuova email non è valida!' -old_email_invalid: '[AuthMe] La vecchia email non è valida!' -email_invalid: "[AuthMe] L'email non è valida" -email_added: '[AuthMe] Email Aggiunta!' +new_email_invalid: '[AuthMe] La nuova Email non è valida!' +old_email_invalid: '[AuthMe] La vecchia Email non è valida!' +email_invalid: "[AuthMe] L'Email non è valida" +email_added: '[AuthMe] Email aggiunta!' email_confirm: '[AuthMe] Conferma la tua Email!' email_changed: '[AuthMe] Email cambiata!' email_send: '[AuthMe] Email di recupero inviata!' -country_banned: 'Your country is banned from this server' -antibot_auto_enabled: '[AuthMe] AntiBotMod automatically enabled due to massive connections!' -antibot_auto_disabled: '[AuthMe] AntiBotMod automatically disabled after %m Minutes, hope invasion stopped' +country_banned: 'Il tuo paese è bannato su questo server' +antibot_auto_enabled: '[AuthMe] AntiBotMod è stato automaticamente abilitato a seguito delle numerose connessioni!' +antibot_auto_disabled: "[AuthMe] AntiBotMod è stato automaticamente disabilitato dopo %m Minuti, sperando che l'invasione sia finita" diff --git a/src/main/resources/messages_pt.yml b/src/main/resources/messages_pt.yml index faa41e32..d5321e9a 100644 --- a/src/main/resources/messages_pt.yml +++ b/src/main/resources/messages_pt.yml @@ -36,8 +36,8 @@ regex: '&cO seu nickname contém caracteres não permitidos. Permitido: REG_EX' add_email: '&cPor favor adicione o seu email com : /email add seuEmail confirmarSeuEmail' bad_database_email: '[AuthMe] O comando /email não está disponível contacte o staff via ticket' recovery_email: '&cPerdeu a sua password? Para a recuperar escreva /email recovery ' -usage_captcha: '&cUse: /captcha ' -wrong_captcha: '&cCaptcha errado, por favor use: /captcha THE_CAPTCHA' +usage_captcha: '&cVocê precisa digitar um captcha, escreva: /captcha ' +wrong_captcha: '&cCaptcha errado, por favor escreva: /captcha THE_CAPTCHA' valid_captcha: '&cO seu captcha é válido!' kick_forvip: '&cUm jogador VIP entrou no servidor cheio!' kick_fullserver: '&cO servidor está actualmente cheio, lamentamos!' @@ -52,6 +52,6 @@ email_added: 'Email adicionado com sucesso!' email_confirm: 'Confirme o seu email!' email_changed: 'Email alterado com sucesso!' email_send: 'Nova palavra-passe enviada para o seu email!' -country_banned: 'Your country is banned from this server' -antibot_auto_enabled: '[AuthMe] AntiBotMod automatically enabled due to massive connections!' -antibot_auto_disabled: '[AuthMe] AntiBotMod automatically disabled after %m Minutes, hope invasion stopped' \ No newline at end of file +country_banned: 'O seu país está banido deste servidor' +antibot_auto_enabled: '[AuthMe] AntiBotMod activado automaticamente devido a um aumento anormal de tentativas de ligação!' +antibot_auto_disabled: '[AuthMe] AntiBotMod desactivado automaticamente após %m minutos, esperamos que a invasão tenha parado' \ No newline at end of file diff --git a/src/main/resources/messages_uk.yml b/src/main/resources/messages_uk.yml new file mode 100644 index 00000000..afd8b7f8 --- /dev/null +++ b/src/main/resources/messages_uk.yml @@ -0,0 +1,56 @@ +unknown_user: '&fКористувача немає в базі даних' +unsafe_spawn: '&fМісце вашого виходу було небезпечне тому ми телепортували вас на спавн' +not_logged_in: '&cВи не ввійшли!' +reg_voluntarily: '&eЩоб зарєєструватися введіть команду &d"/reg Пароль Повтор пароля"' +usage_log: '&cВикористовуйте: /login Пароль' +wrong_pwd: '&cНевірний пароль' +unregistered: '&cВи успішно видалили свій акаунт!' +reg_disabled: '&cРеєстрація виключена' +valid_session: '&cСесія включена' +login: '&2Успішна авторизація!' +vb_nonActiv: '&fВаш акаунт не активований. Перевірте свою електронну адресу!' +user_regged: '&cТакий користувач вже зареєстрований' +usage_reg: '&cВикористовуйте: /reg Пароль Повтор пароля' +max_reg: '&fВи перевищили максимальне число реєстрацій на акаунт' +no_perm: '&cУ Вас недостатньо прав' +error: '&fЩось пішло не так; Будь ласка зв`яжіться з адміністратором' +login_msg: '&cДля авторизації введіть "/login Пароль"' +reg_msg: '&cДля реєстрації введіть "/reg Пароль Повтор пароля"' +reg_email_msg: '&cДля реєстрації введіть "/reg Email Email"' +usage_unreg: '&cВикористовуйте: /unregister Пароль' +pwd_changed: '&cПароль змінено!' +user_unknown: '&cТакий користувач не зарєєстрований' +password_error: '&fПаролі не співпадають' +unvalid_session: '&fСесія некоректна. Будь ласка зачекайте коли вона закінчиться' +reg_only: '&Вхід доступний лише зареєстрованим користувачам. Зареєструватися можна за адресою &9&nhttp://example.com&r' +logged_in: '&2Ви уже ввійшли!' +logout: '&cВи успішно вийшли' +same_nick: '&fТакий гравець уже іграє на сервері' +registered: '&cВи успішно зареєстровані!' +pass_len: '&fВиш пароля знадто довгий, бо занадто короткий' +reload: '&fКонфiгурацiя i база даних успiшно перезапущенi.' +timeout: '&fЧас входу вийшов' +usage_changepassword: '&fВикористовуйте: /changepassword СтарийПароль НовийПароль' +name_len: '&cВаш логін занадто довгий, або занадто короткий' +regex: '&cВаш логін містить заборонені символи. Доступні символи: REG_EX' +add_email: '&cБудь ласка додайте свою електронну скриньку: /email add ВашEmail ВашEmail' +bad_database_email: '[AuthMe] Команда /email доступна лише при роботі з MySQL, або SQLite, зверніться до адміністратора.' +recovery_email: '&cЗабули пароль? Введіть /email recovery ВашПароль' +usage_captcha: '&cБудь ласка введіть капчу: /captcha СимволиЗверху' +wrong_captcha: '&cНевірне значення капчи: /captcha СимволиЗверху' +valid_captcha: '&cКапча введена вірно!' +kick_forvip: '&cVIP зайшов на переповнений сервер!' +kick_fullserver: '&cНажаль, сервер переповнений!' +usage_email_add: '&fВикористовуйте: /email add ВашEmail ВашEmail' +usage_email_change: '&fВикористовуйте: /email change СтарийEmail НовийEmail' +usage_email_recovery: '&fВикористовуйте: /email recovery Email' +new_email_invalid: '[AuthMe] Новий Email недійсний!' +old_email_invalid: '[AuthMe] Старий Email недійсний!' +email_invalid: '[AuthMe] Невірний Email' +email_added: '[AuthMe] &2Email додано!' +email_confirm: '[AuthMe] Підтвердіть ваш Email!' +email_changed: '[AuthMe] &2Email змінено!' +email_send: '[AuthMe] Лист відновлення надіслано на ваш Email!' +country_banned: 'Сервер не доступний для вашої країни | Your country is banned from this server' +antibot_auto_enabled: '[AuthMe] AntiBotMod automatically enabled due to massive connections!' +antibot_auto_disabled: '[AuthMe] AntiBotMod automatically disabled after %m Minutes, hope invasion stopped' \ No newline at end of file diff --git a/src/main/resources/messages_zhhk.yml b/src/main/resources/messages_zhhk.yml new file mode 100644 index 00000000..ee56985c --- /dev/null +++ b/src/main/resources/messages_zhhk.yml @@ -0,0 +1,59 @@ +# Translator: uSoc_lifehome (http://lifeho.me) # +# '-- Last edit: 1387032046 UTC # +# -------------------------------------------- # +unknown_user: '&3[&b用戶系統&3] &f用戶資料並不存在於資料庫中 。' +unsafe_spawn: '&3[&b用戶系統&3] &f你的登出位置不安全 , 現在將傳送你到重生點 。' +not_logged_in: '&3[&b用戶系統&3] &c你還沒有登入 !' +reg_voluntarily: '&3[&b用戶系統&3] &f你可以使用這個的指令來註冊 : 《 /register <密碼> <重覆密碼> 》' +usage_log: '&3[&b用戶系統&3] &c用法 : 《 /login <密碼> 》' +wrong_pwd: '&3[&b用戶系統&3] &c你輸入了錯誤的密碼 。' +unregistered: '&3[&b用戶系統&3] &c你已成功取消會員註冊記錄 。' +reg_disabled: '&3[&b用戶系統&3] &c本伺服器已停止新玩家註冊 。' +valid_session: '&3[&b用戶系統&3] &b嗨 ! 我記得你 , 歡迎回來 ~' +login: '&3[&b用戶系統&3] &c你成功的登入了 。' +vb_nonActiv: '&3[&b用戶系統&3] &f你的帳戶還沒有經過電郵驗證 !' +user_regged: '&3[&b用戶系統&3] &c此用戶名已經註冊過了 。' +usage_reg: '&3[&b用戶系統&3] &c用法 : 《 /register <密碼> <重覆密碼> 》' +max_reg: '&3[&b用戶系統&3] &f你的IP地址已達到註冊數上限 。' +no_perm: '&3[&b用戶系統&3] &b你可以到 CraftingHK 玩家百科中查看說明文件。' +error: '&3[&b用戶系統&3] &f發生錯誤 , 請與管理員聯絡 。' +login_msg: '&3[&b用戶系統&3] &c請使用這個指令來登入 : 《 /login <密碼> 》' +reg_msg: '&3[&b用戶系統&3] &c請使用這個的指令來註冊 : 《 /register <密碼> <重覆密碼> 》' +reg_email_msg: '&3[&b用戶系統&3] &c請使用這個的指令來註冊 : 《 /register <電郵> <重覆電郵> 》' +usage_unreg: '&3[&b用戶系統&3] &c用法 : 《 /unregister <密碼> 》' +pwd_changed: '&3[&b用戶系統&3] &c你成功的更換了你的密碼 !' +user_unknown: '&3[&b用戶系統&3] &c此用戶名沒有已登記資料 。' +password_error: '&3[&b用戶系統&3] &f密碼不符合 。' +unvalid_session: '&3[&b用戶系統&3] &f登入階段資料已損壞 , 請等待登入階段結束 。' +reg_only: '&3[&b用戶系統&3] &f限已註冊會員 , 請先到 https://craftinghk.com/mcauth 註冊 。' +logged_in: '&3[&b用戶系統&3] &c你已經登入過了 。' +logout: '&3[&b用戶系統&3] &b你成功的登出了 。' +same_nick: '&3[&b用戶系統&3] &f同名玩家已在遊玩 。' +registered: '&3[&b用戶系統&3] &b你成功的註冊了 。' +pass_len: '&3[&b用戶系統&3] &f你的密碼並不符合規定長度 。' +reload: '&3[&b用戶系統&3] &b登入系統設定及資料庫重新載入完畢 。' +timeout: '&3[&b用戶系統&3] &f登入逾時 。' +usage_changepassword: '&3[&b用戶系統&3] &f用法 : 《 /changepassword <舊密碼> <新密碼> 》' +name_len: '&3[&b用戶系統&3] &c你的用戶名不符合規定長度 。' +regex: '&3[&b用戶系統&3] &c你的用戶名含有不容許之字符。以下為准許之字母 : REG_EX' +add_email: '&3[&b用戶系統&3] &b請為你的帳戶立即添加電郵地址 : 《 /email add <電郵地址> <重覆電郵地址> 》' +bad_database_email: '&3[&b用戶系統&3] 此指令只適用於使用MySQL或SQLite之伺服器。' +recovery_email: '&3[&b用戶系統&3] &c忘記密碼 ? 請使用這個的指令來更新密碼 : 《 /email recovery <電郵地址> 》' +usage_captcha: '&3[&b用戶系統&3] &c用法 : 《 /captcha <驗證碼> 》' +wrong_captcha: '&3[&b用戶系統&3] &c你輸入了錯誤的驗證碼,請使用 《 /captcha <驗證碼> 》 再次輸入 。' +valid_captcha: '&3[&b用戶系統&3] &c你所輸入的驗證碼是無效的 !' +kick_forvip: '&c因為有VIP玩家登入了伺服器 。' +kick_fullserver: '&c抱歉! 因為有VIP玩家登入了伺服器,所以你因為伺服器滿人而被踢出了 。' +usage_email_add: '&3[&b用戶系統&3] &f用法 : 《 /email add <電郵> <重覆電郵> 》' +usage_email_change: '&3[&b用戶系統&3] &f用法 : 《 /email change <舊電郵> <新電郵> 》' +usage_email_recovery: '&3[&b用戶系統&3] &f用法 : 《 /email recovery <電郵> 》' +new_email_invalid: '&3[&b用戶系統&3] 你所填寫的新電郵地址並不正確 。' +old_email_invalid: '&3[&b用戶系統&3] 你所填寫的舊電郵地址並不正確 。' +email_invalid: '&3[&b用戶系統&3] 你所填寫的電郵地址並不正確 。' +email_added: '&3[&b用戶系統&3] 已加入你的電郵地址記錄 。' +email_confirm: '&3[&b用戶系統&3] 請重覆輸入你的電郵地址 。' +email_changed: '&3[&b用戶系統&3] 你的電郵地址記錄已更改 。' +email_send: '&3[&b用戶系統&3] 忘記密碼信件已寄出,請查收 。' +country_banned: '&3[&b用戶系統&3] 本伺服器已停止對你的國家提供遊戲服務 。' +antibot_auto_enabled: '&3[&b用戶系統&3] 防止機械人程序已因應現時大量不尋常的連線而啟用 。' +antibot_auto_disabled: '&3[&b用戶系統&3] 防止機械人程序檢查到不正常連接數已減少,並於 %m 分鐘後停止運作 。' diff --git a/src/main/resources/messages_zhtw.yml b/src/main/resources/messages_zhtw.yml index cb549567..f35e3771 100644 --- a/src/main/resources/messages_zhtw.yml +++ b/src/main/resources/messages_zhtw.yml @@ -1,58 +1,55 @@ -# Translator: uSoc_lifehome (http://lifeho.me) # -# -------------------------------------------- # -unknown_user: '&f用戶資料並不存在於資料庫中 。' -unsafe_spawn: '&f你的登出位置不安全 , 現在將傳送你到重生點 。' -not_logged_in: '&c你還沒有登入 !' -reg_voluntarily: '&f你可以使用這個的指令來註冊 : 《 /register <密碼> <重覆密碼> 》' -usage_log: '&c用法 : 《 /login <密碼> 》' -wrong_pwd: '&c你輸入了錯誤的密碼 。' -unregistered: '&c你已成功註銷會員記錄 。' -reg_disabled: '&c註冊機制被停用 。' -valid_session: '&b嗨 ! 我記得你 , 歡迎回來 ~' -login: '&c你成功的登入了 。' -vb_nonActiv: '&f你的帳戶還沒有經過電郵驗證 !' -user_regged: '&c此用戶名已經註冊過了 。' -usage_reg: '&c用法 : 《 /register <密碼> <重覆密碼> 》' -max_reg: '&f你的IP地址已達到註冊數上限 。' -no_perm: '&c你並沒有這個權限 。' -error: '&f發生錯誤 , 請與管理員聯絡 。' -login_msg: '&c請使用這個指令來登入 : 《 /login <密碼> 》' -reg_msg: '&c請使用這個的指令來註冊 : 《 /register <密碼> <重覆密碼> 》' -reg_email_msg: '&c請使用這個的指令來註冊 : 《 /register <電郵> <重覆電郵> 》' -usage_unreg: '&c用法 : 《 /unregister <密碼> 》' -pwd_changed: '&c你成功的更換了你的密碼 !' -user_unknown: '&c此用戶名沒有已登記資料 。' -password_error: '&f密碼不符合 。' -unvalid_session: '&f登入階段資料已損壞 , 請等待登入階段結束 。' -reg_only: '&f限已註冊會員 , 請先到 https://www.craftinghk.com/ 註冊 。' -logged_in: '&c你已經登入過了 。' -logout: '&b你成功的登出了 。' -same_nick: '&f同名玩家已在遊玩 。' -registered: '&b你成功的註冊了 。' -pass_len: '&f你的密碼並不符合規定長度 。' -reload: '&b登入系統設定及資料庫重新載入完畢 。' -timeout: '&f登入逾時 。' -usage_changepassword: '&f用法 : 《 /changepassword <舊密碼> <新密碼> 》' -name_len: '&c你的用戶名不符合規定長度 。' -regex: '&c你的用戶名含有不容許之字符。以下為准許之字母 : REG_EX' -add_email: '&b請為你的帳戶立即添加電郵地址 : 《 /email add <電郵地址> <重覆電郵地址> 》' -bad_database_email: '[AuthMe] 此指令只適用於使用MySQL或SQLite之伺服器。' -recovery_email: '&c忘記密碼 ? 請使用這個的指令來更新密碼 : 《 /email recovery <電郵地址> 》' -usage_captcha: '&c用法 : 《 /captcha <驗證碼> 》' -wrong_captcha: '&c你輸入了錯誤的驗證碼,請使用 《 /captcha <驗證碼> 》 再次輸入 。' -valid_captcha: '&c你的驗證碼是無效的 !' -kick_forvip: '&cA 因為有VIP玩家進入了伺服器 。' -kick_fullserver: '&c抱歉! 這個伺服器滿人了,也許你需要VIP會藉?' -usage_email_add: '&f用法 : 《 /email add <電郵> <重覆電郵> 》' -usage_email_change: '&f用法 : 《 /email change <舊電郵> <新電郵> 》' -usage_email_recovery: '&f用法 : 《 /email recovery <電郵> 》' -new_email_invalid: '你所填寫的新電郵地址並不正確。' -old_email_invalid: '你所填寫的舊電郵地址並不正確。' -email_invalid: '你所填寫的電郵地址並不正確。' -email_added: '已加入你的電郵地址記錄。' -email_confirm: '請重覆輸入你的電郵地址。' -email_changed: '你的電郵地址記錄已更改。' -email_send: '忘記密碼確定信件已寄出,請查收。' +unknown_user: 使用者名稱不在資料庫內 +unsafe_spawn: 退出的位置是不安全的,你被傳送到重生點 +not_logged_in: '&c您還未登入!' +reg_voluntarily: 您可以在本伺服器創一個屬於您的密碼 ,指令:"/register <密碼> 確認密碼" +usage_log: '&c正確用法為:使用"/login <密碼>"來登入' +wrong_pwd: '&c密碼錯誤!' +unregistered: '&a此密碼尚未被註冊!' +reg_disabled: '&c註冊被禁用' +valid_session: '&c"會議"登入' +login: '&a登入成功!' +vb_nonActiv: 你的帳號沒有被繳活,請查看你的電子信箱! +user_regged: '&c此密碼已被註冊,請重新註冊您的新密碼!' +usage_reg: '&c正確用法為:使用"/register <密碼> <確認密碼>"來註冊你的密碼' +max_reg: 你的密碼註冊數量已滿,無法繼續註冊! +no_perm: '&c你沒有權限!' +error: 發生未知錯誤,請通知管理員! +login_msg: '&c請使用"/login <密碼>"來登入' +reg_msg: '&c初次登入請使用"/register <密碼> <確認密碼>"來註冊!' +usage_unreg: '&c正確用法為:使用"/unregister <密碼>"來取消現有密碼' +pwd_changed: '&c密碼變更成功!' +user_unknown: '&c此用戶名並未被註冊!' +password_error: <密碼>與<錯認密碼>不相同! +unvalid_session: Session Dataes doesnt corrispond Plaese wait the end of session +reg_only: Registered players only! Please visit http://example.com to register +logged_in: '&c您已經登入了!' +logout: '&a登出成功!' +same_nick: 與別人的密碼重複! +registered: '&a註冊成功!' +pass_len: 您的密碼未到達最小長度(4),或超過最大長度(20) +reload: 伺服器已重新配置數據庫 +timeout: 登入超時了! +usage_changepassword: 正確用法為:使用"/changepassword <舊密碼> <新密碼>"來更換密碼 +name_len: '&cYour nickname is too Short or too long' +regex: '&cYour nickname contains illegal characters. Allowed chars: REG_EX' +add_email: '&cPlease add your email with : /email add yourEmail confirmEmail' +bad_database_email: '[AuthMe] This /email command only available with MySQL and SQLite, contact an Admin' +recovery_email: '&cForgot your password? Please use /email recovery ' +usage_captcha: '&cYou need to type a captcha, please type: /captcha ' +wrong_captcha: '&cWrong Captcha, please use : /captcha THE_CAPTCHA' +valid_captcha: '&cYour captcha is valid !' +kick_forvip: '&cA VIP Player join the full server!' +kick_fullserver: '&cThe server is actually full, Sorry!' +usage_email_add: '&fUsage: /email add ' +usage_email_change: '&fUsage: /email change oldEmail> ' +usage_email_recovery: '&fUsage: /email recovery ' +new_email_invalid: '[AuthMe] New email invalid!' +old_email_invalid: '[AuthMe] Old email invalid!' +email_invalid: '[AuthMe] Invalid Email' +email_added: '[AuthMe] Email Added !' +email_confirm: '[AuthMe] Confirm your Email !' +email_changed: '[AuthMe] Email Change !' +email_send: '[AuthMe] Recovery Email Send !' country_banned: 'Your country is banned from this server' antibot_auto_enabled: '[AuthMe] AntiBotMod automatically enabled due to massive connections!' antibot_auto_disabled: '[AuthMe] AntiBotMod automatically disabled after %m Minutes, hope invasion stopped' \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 14541824..ffc63d4f 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -3,7 +3,7 @@ author: Xephi59 website: http://dev.bukkit.org/bukkit-plugins/authme-recoded/ description: AuthMe prevents people, which aren't logged in, from doing stuff like placing blocks, moving, typing commands or seeing the inventory of the current player. main: fr.xephi.authme.AuthMe -version: 3.1.2-DEV-1 +version: 3.1.2-DEV-3 softdepend: [Vault, ChestShop, Spout, Multiverse-Core, Notifications, Citizens, CombatTag, Essentials, EssentialsSpawn] commands: register: