From 781fad6c1d6d2152a1e9094affa92555eff372cb Mon Sep 17 00:00:00 2001 From: Maxetto Date: Thu, 9 Jul 2015 17:26:50 +0200 Subject: [PATCH 01/11] ZHTW Language Update By enderwolf50 from Bukkit Dev. --- src/main/resources/messages_zhtw.yml | 112 ++++++++++++++------------- 1 file changed, 57 insertions(+), 55 deletions(-) diff --git a/src/main/resources/messages_zhtw.yml b/src/main/resources/messages_zhtw.yml index c011b020b..2b159a242 100644 --- a/src/main/resources/messages_zhtw.yml +++ b/src/main/resources/messages_zhtw.yml @@ -1,57 +1,59 @@ -unknown_user: '使用者名稱不在資料庫內' -unsafe_spawn: '退出的位置是不安全的,你被傳送到重生點' -not_logged_in: '&c您還未登入!' -reg_voluntarily: '您可以在本伺服器創一個屬於您的密碼 ,指令:"/register <密碼> 確認密碼"' -usage_log: '&c正確用法為:使用"/login <密碼>"來登入' -wrong_pwd: '&c密碼錯誤!' -unregistered: '&a此密碼尚未被註冊!' -reg_disabled: '&c註冊被禁用' +unknown_user: "&b【AuthMe】&6沒有在資料庫內找到該玩家。" +unsafe_spawn: '&b【AuthMe】&6你登出的地點不安全,已傳送你到安全的地點。' +not_logged_in: '&b【AuthMe】&6你還沒有登入!' +reg_voluntarily: '&b【AuthMe】&6使用 &c"/register <密碼> <確認密碼>" &6來註冊你的暱稱' +usage_log: '&b【AuthMe】&6用法: &c"/login <密碼>"' +wrong_pwd: '&b【AuthMe】&6密碼錯誤!' +unregistered: '&b【AuthMe】&6你還沒有註冊!' +reg_disabled: '&b【AuthMe】&6已關閉註冊功能' password_error_nick: '&fYou can''t use your name as password' password_error_unsafe: '&fYou can''t use unsafe passwords' -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: <密碼>與<錯認密碼>不相同! -invalid_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' +valid_session: '&b【AuthMe】&6憑證登入' +login: '&b【AuthMe】&6密碼正確,你已成功登入!' +vb_nonActiv: '&b【AuthMe】&6你的帳號還沒有經過驗證! 檢查看看你的電子信箱 (Email) 吧!' +user_regged: '&b【AuthMe】&6這個帳號已經被註冊過了!' +usage_reg: '&b【AuthMe】&6用法: &c"/register <密碼> <確認密碼>"' +max_reg: '&b【AuthMe】&6你註冊的帳號數量已達到最大。' +no_perm: '&b【AuthMe】&6你沒有使用該指令的權限。' +error: '&b【AuthMe】&6發生錯誤,請聯繫管理員' +login_msg: '&b【AuthMe】&6請使用 &c"/login <密碼>" &6來登入。' +reg_msg: '&b【AuthMe】&6請使用 "&c/register <密碼> <確認密碼>" 來註冊。' +reg_email_msg: '&b【AuthMe】&6請使用 &c"/register <重複Email>" 來註冊' +usage_unreg: '&b【AuthMe】&6用法: &c"/unregister <密碼>"' +pwd_changed: '&b【AuthMe】&6密碼變更成功!' +user_unknown: '&b【AuthMe】&6這個帳號還沒有註冊過' +password_error: '&b【AuthMe】&6兩次輸入的密碼不一致!' +invalid_session: '&b【AuthMe】&6憑證日期不相符!' +reg_only: '&b【AuthMe】&6請訪問 http://example.com 進行註冊' +logged_in: '&b【AuthMe】&6你已經登入了!' +logout: '&b【AuthMe】&6你已成功登出' +same_nick: '&b【AuthMe】&6有同樣帳號的玩家在線上!' +registered: '&b【AuthMe】&6你已成功註冊' +pass_len: '&b【AuthMe】&6你的密碼 超過最大字數 / 小於最小字數' +reload: '&b【AuthMe】&6已重新讀取設定檔及資料庫' +timeout: '&b【AuthMe】&6超過登入時間,請再試一次' +usage_changepassword: '&b【AuthMe】&6用法: &c"/changepassword <舊密碼> <新密碼>"' +name_len: '&b【AuthMe】&6你的暱稱 太長 / 太短 了!' +regex: '&b【AuthMe】&6暱稱裡包含不能使用的字符' +add_email: '&b【AuthMe】&6請使用 &c"/email add <你的Email> <再次輸入你的Email>" &6來增加Email' +bad_database_email: '&b【AuthMe】&6這個 &c"/email" &6指令只適用於有使用MySQL和SQLite的時候,請聯繫管理員' +recovery_email: '&b【AuthMe】&6忘記密碼了嗎? 使用 &c"/email recovery <你的Email>"' +usage_captcha: '&b【AuthMe】&6請用 &c"/captcha " &6來輸入你的驗證碼' +wrong_captcha: '&b【AuthMe】&6錯誤的驗證碼' +valid_captcha: '&b【AuthMe】&6驗證碼無效!' +kick_forvip: '&&b【AuthMe】&6VIP玩家只能在伺服器滿人時登入伺服器!' +kick_fullserver: '&b【AuthMe】&6伺服器已經滿了,請等等再試一次' +usage_email_add: '&b【AuthMe】&6用法: &c"/email add <你的Email> <重複輸入你的Email>"' +usage_email_change: '&b【AuthMe】&6用法: &c"/email change <現在的Email> <要替換的Email>"' +usage_email_recovery: '&b【AuthMe】&6用法: &c"/email recovery <你的Email>"' +new_email_invalid: '&b【AuthMe】&6新的Email無效!' +old_email_invalid: '&b【AuthMe】&6舊的Email無效!' +email_invalid: '&b【AuthMe】&6無效的Email!' +email_added: '&b【AuthMe】&6已添加Email!' +email_confirm: '&b【AuthMe】&6驗證你的Email!' +email_changed: '&b【AuthMe】&6Email已變更!' +email_send: '&b【AuthMe】&6已經送出要求至你的Email!' +email_exists: '&b【AuthMe】&6這個帳戶已經有設定電子郵件了' +country_banned: '你所在的地區無法進入此伺服器' +antibot_auto_enabled: '&b【AuthMe】&6AntiBotMod已自動啟用!' +antibot_auto_disabled: '&b【AuthMe】&6AntiBotMod將會於 &c%m &6分鐘後自動關閉' From 7a4550246fb0d345b85534809f21d248140bd5b3 Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Thu, 9 Jul 2015 18:04:43 +0200 Subject: [PATCH 02/11] Fix Fly and GameMode --- src/main/java/fr/xephi/authme/AuthMe.java | 2 +- src/main/java/fr/xephi/authme/api/API.java | 14 +----- .../xephi/authme/cache/limbo/LimboCache.java | 5 +- .../authme/listener/AuthMeEntityListener.java | 48 +++++++++---------- .../authme/listener/AuthMePlayerListener.java | 24 +++++----- .../plugin/manager/CitizensCommunicator.java | 2 +- .../authme/process/join/AsyncronousJoin.java | 4 +- .../login/ProcessSyncronousPlayerLogin.java | 15 ++++-- .../logout/ProcessSyncronousPlayerLogout.java | 6 ++- .../authme/process/quit/AsyncronousQuit.java | 2 +- 10 files changed, 59 insertions(+), 63 deletions(-) diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java index c1b99337d..4a097b93c 100644 --- a/src/main/java/fr/xephi/authme/AuthMe.java +++ b/src/main/java/fr/xephi/authme/AuthMe.java @@ -460,7 +460,7 @@ public class AuthMe extends JavaPlugin { public void savePlayer(Player player) throws IllegalStateException, NullPointerException { try { - if ((citizens.isNPC(player, this)) || (Utils.getInstance().isUnrestricted(player)) || (CombatTagComunicator.isNPC(player))) { + if ((citizens.isNPC(player)) || (Utils.getInstance().isUnrestricted(player)) || (CombatTagComunicator.isNPC(player))) { return; } } catch (Exception e) { diff --git a/src/main/java/fr/xephi/authme/api/API.java b/src/main/java/fr/xephi/authme/api/API.java index 1117dbdfa..c60de1210 100644 --- a/src/main/java/fr/xephi/authme/api/API.java +++ b/src/main/java/fr/xephi/authme/api/API.java @@ -67,25 +67,13 @@ public class API { return PlayerCache.getInstance().isAuthenticated(player.getName()); } - /** - * - * @param player - * @return true if player is a npc - */ - @Deprecated - public boolean isaNPC(Player player) { - if (plugin.getCitizensCommunicator().isNPC(player, plugin)) - return true; - return CombatTagComunicator.isNPC(player); - } - /** * * @param player * @return true if player is a npc */ public boolean isNPC(Player player) { - if (plugin.getCitizensCommunicator().isNPC(player, plugin)) + if (plugin.getCitizensCommunicator().isNPC(player)) return true; return CombatTagComunicator.isNPC(player); } diff --git a/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java b/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java index c09c27b39..a67a3d1ce 100644 --- a/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java +++ b/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java @@ -39,7 +39,7 @@ public class LimboCache { boolean flying = false; if (playerData.doesCacheExist(player)) { - StoreInventoryEvent event = new StoreInventoryEvent(player, playerData); + final StoreInventoryEvent event = new StoreInventoryEvent(player, playerData); Bukkit.getServer().getPluginManager().callEvent(event); if (!event.isCancelled() && event.getInventory() != null && event.getArmor() != null) { inv = event.getInventory(); @@ -90,6 +90,9 @@ public class LimboCache { player.sendMessage("Your inventory has been cleaned!"); } } + if (gameMode == GameMode.CREATIVE) { + flying = false; + } gameMode = GameMode.SURVIVAL; } if (player.isDead()) { diff --git a/src/main/java/fr/xephi/authme/listener/AuthMeEntityListener.java b/src/main/java/fr/xephi/authme/listener/AuthMeEntityListener.java index 52829e7af..56b637e94 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMeEntityListener.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMeEntityListener.java @@ -5,8 +5,8 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; -import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityInteractEvent; import org.bukkit.event.entity.EntityRegainHealthEvent; import org.bukkit.event.entity.EntityTargetEvent; @@ -29,7 +29,7 @@ public class AuthMeEntityListener implements Listener { this.instance = instance; } - @EventHandler (priority = EventPriority.LOWEST) + @EventHandler(priority = EventPriority.LOWEST) public void onEntityDamage(EntityDamageEvent event) { if (event.isCancelled()) { return; @@ -44,7 +44,7 @@ public class AuthMeEntityListener implements Listener { return; } - if (instance.citizens.isNPC(entity, instance)) + if (instance.citizens.isNPC(entity)) return; Player player = (Player) entity; @@ -67,7 +67,7 @@ public class AuthMeEntityListener implements Listener { event.setCancelled(true); } - @EventHandler (priority = EventPriority.LOWEST) + @EventHandler(priority = EventPriority.LOWEST) public void onEntityTarget(EntityTargetEvent event) { if (event.isCancelled()) { return; @@ -79,7 +79,7 @@ public class AuthMeEntityListener implements Listener { return; } - if (instance.citizens.isNPC(entity, instance)) + if (instance.citizens.isNPC(entity)) return; Player player = (Player) entity; @@ -97,22 +97,22 @@ public class AuthMeEntityListener implements Listener { event.setTarget(null); event.setCancelled(true); } - + @EventHandler(priority = EventPriority.LOWEST) - public void onDmg(EntityDamageByEntityEvent event) { - if (event.isCancelled()) { + public void onDmg(EntityDamageByEntityEvent event) { + if (event.isCancelled()) { return; } - - Entity entity = event.getDamager(); - - if (entity == null || !(entity instanceof Player)) { + + Entity entity = event.getDamager(); + + if (entity == null || !(entity instanceof Player)) { return; } - - Player player = (Player) entity; - String name = player.getName().toLowerCase(); - + + Player player = (Player) entity; + String name = player.getName().toLowerCase(); + if (PlayerCache.getInstance().isAuthenticated(name)) { return; } @@ -122,11 +122,11 @@ public class AuthMeEntityListener implements Listener { return; } } - - event.setCancelled(true); - } - @EventHandler (priority = EventPriority.LOWEST) + event.setCancelled(true); + } + + @EventHandler(priority = EventPriority.LOWEST) public void onFoodLevelChange(FoodLevelChangeEvent event) { if (event.isCancelled()) { return; @@ -137,7 +137,7 @@ public class AuthMeEntityListener implements Listener { return; } - if (instance.citizens.isNPC(entity, instance)) + if (instance.citizens.isNPC(entity)) return; Player player = (Player) entity; @@ -168,7 +168,7 @@ public class AuthMeEntityListener implements Listener { return; } - if (instance.citizens.isNPC(entity, instance)) + if (instance.citizens.isNPC(entity)) return; Player player = (Player) entity; @@ -205,7 +205,7 @@ public class AuthMeEntityListener implements Listener { return; } - if (instance.citizens.isNPC(player, instance)) + if (instance.citizens.isNPC(player)) return; if (PlayerCache.getInstance().isAuthenticated(player.getName())) { @@ -237,7 +237,7 @@ public class AuthMeEntityListener implements Listener { return; } - if (instance.citizens.isNPC(player, instance)) + if (instance.citizens.isNPC(player)) return; if (PlayerCache.getInstance().isAuthenticated(player.getName())) { diff --git a/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java b/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java index 218858976..cda89dc58 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java @@ -50,7 +50,6 @@ import fr.xephi.authme.settings.Settings; public class AuthMePlayerListener implements Listener { - public static GameMode gm = GameMode.SURVIVAL; public static ConcurrentHashMap gameMode = new ConcurrentHashMap(); public static ConcurrentHashMap joinMessage = new ConcurrentHashMap(); private Messages m = Messages.getInstance(); @@ -328,7 +327,7 @@ public class AuthMePlayerListener implements Listener { Player player = event.getPlayer(); String name = player.getName().toLowerCase(); - if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { + if (plugin.getCitizensCommunicator().isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { return; } @@ -407,7 +406,7 @@ public class AuthMePlayerListener implements Listener { final String name = player.getName().toLowerCase(); boolean isAuthAvailable = data.isAuthAvailable(name); - if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { + if (plugin.getCitizensCommunicator().isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { return; } @@ -616,7 +615,7 @@ public class AuthMePlayerListener implements Listener { return; } - if (plugin.getCitizensCommunicator().isNPC(player, plugin)) + if (plugin.getCitizensCommunicator().isNPC(player)) return; if (PlayerCache.getInstance().isAuthenticated(name)) { @@ -644,7 +643,7 @@ public class AuthMePlayerListener implements Listener { return; } - if (plugin.getCitizensCommunicator().isNPC(player, plugin)) + if (plugin.getCitizensCommunicator().isNPC(player)) return; if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) { @@ -673,7 +672,7 @@ public class AuthMePlayerListener implements Listener { return; } - if (plugin.getCitizensCommunicator().isNPC(player, plugin)) + if (plugin.getCitizensCommunicator().isNPC(player)) return; if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) { @@ -702,7 +701,7 @@ public class AuthMePlayerListener implements Listener { return; } - if (plugin.getCitizensCommunicator().isNPC(player, plugin)) + if (plugin.getCitizensCommunicator().isNPC(player)) return; if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) { @@ -727,7 +726,7 @@ public class AuthMePlayerListener implements Listener { Player player = event.getPlayer(); String name = player.getName().toLowerCase(); - if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { + if (plugin.getCitizensCommunicator().isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { return; } @@ -755,7 +754,7 @@ public class AuthMePlayerListener implements Listener { return; } - if (plugin.getCitizensCommunicator().isNPC(player, plugin)) + if (plugin.getCitizensCommunicator().isNPC(player)) return; if (PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) { @@ -827,7 +826,7 @@ public class AuthMePlayerListener implements Listener { if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) return; - if (plugin.getCitizensCommunicator().isNPC(player, plugin)) + if (plugin.getCitizensCommunicator().isNPC(player)) return; if (PlayerCache.getInstance().isAuthenticated(name)) @@ -855,8 +854,6 @@ public class AuthMePlayerListener implements Listener { return; if (event.getPlayer() == null || event == null) return; - if (!Settings.isForceSurvivalModeEnabled) - return; Player player = event.getPlayer(); @@ -868,7 +865,7 @@ public class AuthMePlayerListener implements Listener { if (Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) return; - if (plugin.getCitizensCommunicator().isNPC(player, plugin)) + if (plugin.getCitizensCommunicator().isNPC(player)) return; if (PlayerCache.getInstance().isAuthenticated(name)) @@ -880,6 +877,7 @@ public class AuthMePlayerListener implements Listener { if (causeByAuthMe.containsKey(name) && causeByAuthMe.get(name)) return; + event.setCancelled(true); } } diff --git a/src/main/java/fr/xephi/authme/plugin/manager/CitizensCommunicator.java b/src/main/java/fr/xephi/authme/plugin/manager/CitizensCommunicator.java index b93314355..d09a5fcdd 100644 --- a/src/main/java/fr/xephi/authme/plugin/manager/CitizensCommunicator.java +++ b/src/main/java/fr/xephi/authme/plugin/manager/CitizensCommunicator.java @@ -13,7 +13,7 @@ public class CitizensCommunicator { this.instance = instance; } - public boolean isNPC(final Entity player, AuthMe instance) { + public boolean isNPC(final Entity player) { if (!this.instance.isCitizensActive) return false; try { diff --git a/src/main/java/fr/xephi/authme/process/join/AsyncronousJoin.java b/src/main/java/fr/xephi/authme/process/join/AsyncronousJoin.java index 78fd0f8d3..d13754047 100644 --- a/src/main/java/fr/xephi/authme/process/join/AsyncronousJoin.java +++ b/src/main/java/fr/xephi/authme/process/join/AsyncronousJoin.java @@ -53,7 +53,7 @@ public class AsyncronousJoin { AuthMePlayerListener.gameMode.put(name, player.getGameMode()); BukkitScheduler sched = plugin.getServer().getScheduler(); - if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { + if (plugin.getCitizensCommunicator().isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { return; } @@ -216,7 +216,7 @@ public class AsyncronousJoin { public void run() { if (player.isOp()) player.setOp(false); - if (!Settings.isMovementAllowed) { + if (player.getGameMode() != GameMode.CREATIVE && !Settings.isMovementAllowed) { player.setAllowFlight(true); player.setFlying(true); } diff --git a/src/main/java/fr/xephi/authme/process/login/ProcessSyncronousPlayerLogin.java b/src/main/java/fr/xephi/authme/process/login/ProcessSyncronousPlayerLogin.java index eaee58ee1..276a8c23b 100644 --- a/src/main/java/fr/xephi/authme/process/login/ProcessSyncronousPlayerLogin.java +++ b/src/main/java/fr/xephi/authme/process/login/ProcessSyncronousPlayerLogin.java @@ -10,7 +10,6 @@ import org.bukkit.potion.PotionEffectType; import fr.xephi.authme.AuthMe; import fr.xephi.authme.Utils; import fr.xephi.authme.Utils.groupType; -import fr.xephi.authme.api.API; import fr.xephi.authme.cache.auth.PlayerAuth; import fr.xephi.authme.cache.backup.FileCache; import fr.xephi.authme.cache.limbo.LimboCache; @@ -53,8 +52,13 @@ public class ProcessSyncronousPlayerLogin implements Runnable { protected void restoreOpState() { player.setOp(limbo.getOperator()); if (player.getGameMode() != GameMode.CREATIVE && !Settings.isMovementAllowed) { - player.setAllowFlight(limbo.isFlying()); - player.setFlying(limbo.isFlying()); + if (limbo.getGameMode() != GameMode.CREATIVE) { + player.setAllowFlight(limbo.isFlying()); + player.setFlying(limbo.isFlying()); + } else { + player.setAllowFlight(false); + player.setFlying(false); + } } } @@ -120,8 +124,8 @@ public class ProcessSyncronousPlayerLogin implements Runnable { * ProtectInventoryEvent after Teleporting Also it's the current * world inventory ! */ + player.setGameMode(limbo.getGameMode()); if (!Settings.forceOnlyAfterLogin) { - player.setGameMode(limbo.getGameMode()); // Inventory - Make it after restore GameMode , cause we need to // restore the // right inventory in the right gamemode @@ -146,7 +150,8 @@ public class ProcessSyncronousPlayerLogin implements Runnable { } else { teleportBackFromSpawn(); } - } else if (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())) { + } else + if (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())) { teleportToSpawn(); } else if (Settings.isSaveQuitLocationEnabled && auth.getQuitLocY() != 0) { packQuitLocation(); diff --git a/src/main/java/fr/xephi/authme/process/logout/ProcessSyncronousPlayerLogout.java b/src/main/java/fr/xephi/authme/process/logout/ProcessSyncronousPlayerLogout.java index 1a0ddab6e..29077488f 100644 --- a/src/main/java/fr/xephi/authme/process/logout/ProcessSyncronousPlayerLogout.java +++ b/src/main/java/fr/xephi/authme/process/logout/ProcessSyncronousPlayerLogout.java @@ -51,8 +51,10 @@ public class ProcessSyncronousPlayerLogout implements Runnable { if (Settings.applyBlindEffect) player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, Settings.getRegistrationTimeout * 20, 2)); player.setOp(false); - player.setAllowFlight(true); - player.setFlying(true); + if (!Settings.isMovementAllowed) { + player.setAllowFlight(true); + player.setFlying(true); + } // Player is now logout... Time to fire event ! sched.scheduleSyncDelayedTask(plugin, new Runnable() { diff --git a/src/main/java/fr/xephi/authme/process/quit/AsyncronousQuit.java b/src/main/java/fr/xephi/authme/process/quit/AsyncronousQuit.java index 5e34fd008..6394cac80 100644 --- a/src/main/java/fr/xephi/authme/process/quit/AsyncronousQuit.java +++ b/src/main/java/fr/xephi/authme/process/quit/AsyncronousQuit.java @@ -45,7 +45,7 @@ public class AsyncronousQuit { public void process() { final Player player = p; - if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { + if (plugin.getCitizensCommunicator().isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { return; } From e904038f4ef1d45ce515d6ff984f562bae493d99 Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Thu, 9 Jul 2015 18:56:47 +0200 Subject: [PATCH 03/11] Change how first spawn work --- src/main/java/fr/xephi/authme/AuthMe.java | 10 ++--- .../events/FirstSpawnTeleportEvent.java | 40 +++++++++++++++++++ .../authme/process/join/AsyncronousJoin.java | 35 ++++++++++++++-- 3 files changed, 77 insertions(+), 8 deletions(-) create mode 100644 src/main/java/fr/xephi/authme/events/FirstSpawnTeleportEvent.java diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java index 4a097b93c..f11b5105e 100644 --- a/src/main/java/fr/xephi/authme/AuthMe.java +++ b/src/main/java/fr/xephi/authme/AuthMe.java @@ -566,8 +566,8 @@ public class AuthMe extends JavaPlugin { Location spawnLoc = world.getSpawnLocation(); for (int i = spawnPriority.length - 1; i >= 0; i--) { String s = spawnPriority[i]; - if (s.equalsIgnoreCase("default") && getDefaultSpawn(world) != null) - spawnLoc = getDefaultSpawn(world); + if (s.equalsIgnoreCase("default") && getDefaultSpawn() != null) + spawnLoc = getDefaultSpawn(); if (s.equalsIgnoreCase("multiverse") && getMultiverseSpawn(world) != null) spawnLoc = getMultiverseSpawn(world); if (s.equalsIgnoreCase("essentials") && getEssentialsSpawn() != null) @@ -580,8 +580,8 @@ public class AuthMe extends JavaPlugin { return spawnLoc; } - private Location getDefaultSpawn(World world) { - return world.getSpawnLocation(); + private Location getDefaultSpawn() { + return this.getServer().getWorld(Settings.defaultWorld).getSpawnLocation(); } private Location getMultiverseSpawn(World world) { @@ -607,7 +607,7 @@ public class AuthMe extends JavaPlugin { return Spawn.getInstance().getFirstSpawn(); if (Spawn.getInstance().getSpawn() != null) return Spawn.getInstance().getSpawn(); - return null; + return this.getServer().getWorld(Settings.defaultWorld).getSpawnLocation(); } public void downloadGeoIp() { diff --git a/src/main/java/fr/xephi/authme/events/FirstSpawnTeleportEvent.java b/src/main/java/fr/xephi/authme/events/FirstSpawnTeleportEvent.java new file mode 100644 index 000000000..079a4614d --- /dev/null +++ b/src/main/java/fr/xephi/authme/events/FirstSpawnTeleportEvent.java @@ -0,0 +1,40 @@ +package fr.xephi.authme.events; + +import org.bukkit.Location; +import org.bukkit.entity.Player; + +/** + * + * Called if a player is teleported to the authme first spawn + * + * @author Xephi59 + */ +public class FirstSpawnTeleportEvent extends CustomEvent { + + private Player player; + private Location to; + private Location from; + + public FirstSpawnTeleportEvent(Player player, Location from, Location to) { + this.player = player; + this.from = from; + this.to = to; + } + + public Player getPlayer() { + return player; + } + + public void setTo(Location to) { + this.to = to; + } + + public Location getTo() { + return to; + } + + public Location getFrom() { + return from; + } + +} diff --git a/src/main/java/fr/xephi/authme/process/join/AsyncronousJoin.java b/src/main/java/fr/xephi/authme/process/join/AsyncronousJoin.java index d13754047..12e3f3f7d 100644 --- a/src/main/java/fr/xephi/authme/process/join/AsyncronousJoin.java +++ b/src/main/java/fr/xephi/authme/process/join/AsyncronousJoin.java @@ -22,12 +22,14 @@ import fr.xephi.authme.cache.backup.FileCache; import fr.xephi.authme.cache.limbo.LimboCache; import fr.xephi.authme.cache.limbo.LimboPlayer; import fr.xephi.authme.datasource.DataSource; +import fr.xephi.authme.events.FirstSpawnTeleportEvent; import fr.xephi.authme.events.ProtectInventoryEvent; import fr.xephi.authme.events.SpawnTeleportEvent; import fr.xephi.authme.listener.AuthMePlayerListener; import fr.xephi.authme.plugin.manager.CombatTagComunicator; import fr.xephi.authme.settings.Messages; import fr.xephi.authme.settings.Settings; +import fr.xephi.authme.settings.Spawn; import fr.xephi.authme.task.MessageTask; import fr.xephi.authme.task.TimeoutTask; @@ -149,7 +151,7 @@ public class AsyncronousJoin { return; } if (!Settings.noTeleport) - if (Settings.isTeleportToSpawnEnabled || (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName()))) { + if (!needFirstspawn() && Settings.isTeleportToSpawnEnabled || (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName()))) { sched.scheduleSyncDelayedTask(plugin, new Runnable() { @Override @@ -249,6 +251,31 @@ public class AsyncronousJoin { LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(msgT); } + private boolean needFirstspawn() { + if (database.isAuthAvailable(player.getName().toLowerCase()) && player.hasPlayedBefore()) + return false; + else { + if (Spawn.getInstance().getFirstSpawn() == null || Spawn.getInstance().getFirstSpawn().getWorld() == null) + return false; + final Location loc = Spawn.getInstance().getFirstSpawn(); + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { + + @Override + public void run() { + FirstSpawnTeleportEvent tpEvent = new FirstSpawnTeleportEvent(player, player.getLocation(), loc); + plugin.getServer().getPluginManager().callEvent(tpEvent); + if (!tpEvent.isCancelled()) { + if (player != null && player.isOnline() && tpEvent.getTo() != null && tpEvent.getTo().getWorld() != null) { + player.teleport(tpEvent.getTo()); + } + } + } + + }); + return true; + } + } + private void placePlayerSafely(final Player player, final Location spawnLoc) { Location loc = null; @@ -258,14 +285,16 @@ public class AsyncronousJoin { return; if (Settings.isTeleportToSpawnEnabled || (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName()))) return; + if (!database.isAuthAvailable(player.getName().toLowerCase()) || !player.hasPlayedBefore()) + 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) { + if (b.getType() == Material.PORTAL || b.getType() == Material.ENDER_PORTAL) { m.send(player, "unsafe_spawn"); if (spawnLoc.getWorld() != null) loc = spawnLoc; } else { Block c = player.getLocation().add(0D, 1D, 0D).getBlock(); - if (c.getType() == Material.PORTAL || c.getType() == Material.ENDER_PORTAL || c.getType() == Material.LAVA || c.getType() == Material.STATIONARY_LAVA) { + if (c.getType() == Material.PORTAL || c.getType() == Material.ENDER_PORTAL) { m.send(player, "unsafe_spawn"); if (spawnLoc.getWorld() != null) loc = spawnLoc; From 30b3dff96561ee3ddb74ad13bfd9fcc4b47ade4a Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Thu, 9 Jul 2015 19:14:14 +0200 Subject: [PATCH 04/11] Er... idk why these changes disappear T.T --- src/main/java/fr/xephi/authme/SendMailSSL.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/fr/xephi/authme/SendMailSSL.java b/src/main/java/fr/xephi/authme/SendMailSSL.java index 5c1288d69..2382124f2 100644 --- a/src/main/java/fr/xephi/authme/SendMailSSL.java +++ b/src/main/java/fr/xephi/authme/SendMailSSL.java @@ -46,9 +46,8 @@ public class SendMailSSL { final String subject = Settings.getMailSubject; final String smtp = Settings.getmailSMTP; final String password = Settings.getmailPassword; - final String mailText = Settings.getMailText; + final String mailText = Settings.getMailText.replace("", auth.getNickname()).replace("", plugin.getServer().getServerName()).replace("", newPass); final String mail = auth.getEmail(); - Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() { @Override From f114019e5f43add7c3873ce7b0f15134364ceb65 Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Thu, 9 Jul 2015 19:24:00 +0200 Subject: [PATCH 05/11] Option to send an image as new password --- .../java/fr/xephi/authme/ImageGenerator.java | 33 +++++++++++++++++++ .../java/fr/xephi/authme/SendMailSSL.java | 21 ++++++++++++ .../fr/xephi/authme/settings/Settings.java | 8 ++++- 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 src/main/java/fr/xephi/authme/ImageGenerator.java diff --git a/src/main/java/fr/xephi/authme/ImageGenerator.java b/src/main/java/fr/xephi/authme/ImageGenerator.java new file mode 100644 index 000000000..0a635c28a --- /dev/null +++ b/src/main/java/fr/xephi/authme/ImageGenerator.java @@ -0,0 +1,33 @@ +package fr.xephi.authme; + +import java.awt.Color; +import java.awt.Font; +import java.awt.GradientPaint; +import java.awt.Graphics2D; +import java.awt.image.BufferedImage; + +public class ImageGenerator { + + private String pass; + private AuthMe plugin; + + public ImageGenerator(AuthMe plugin, String pass) { + this.pass = pass; + this.plugin = plugin; + } + + public BufferedImage generateImage() { + BufferedImage image = new BufferedImage(200, 60, BufferedImage.TYPE_BYTE_INDEXED); + Graphics2D graphics = image.createGraphics(); + graphics.setColor(Color.BLACK); + graphics.fillRect(0, 0, 200, 40); + GradientPaint gradientPaint = new GradientPaint(10, 5, Color.WHITE, 20, 10, Color.WHITE, true); + graphics.setPaint(gradientPaint); + Font font = new Font("Comic Sans MS", Font.BOLD, 30); + graphics.setFont(font); + graphics.drawString(pass, 5, 30); + graphics.dispose(); + image.flush(); + return image; + } +} diff --git a/src/main/java/fr/xephi/authme/SendMailSSL.java b/src/main/java/fr/xephi/authme/SendMailSSL.java index 2382124f2..1927071f5 100644 --- a/src/main/java/fr/xephi/authme/SendMailSSL.java +++ b/src/main/java/fr/xephi/authme/SendMailSSL.java @@ -1,9 +1,14 @@ package fr.xephi.authme; +import java.io.File; import java.io.UnsupportedEncodingException; import java.util.Date; import java.util.Properties; +import javax.activation.DataHandler; +import javax.activation.DataSource; +import javax.activation.FileDataSource; +import javax.imageio.ImageIO; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Multipart; @@ -73,10 +78,26 @@ public class SendMailSSL { messageBodyPart.setText(mailText); Multipart multipart = new MimeMultipart(); multipart.addBodyPart(messageBodyPart); + + // Generate an image ? + File file = null; + if (Settings.generateImage) { + ImageGenerator gen = new ImageGenerator(plugin, newPass); + file = new File(plugin.getDataFolder() + File.separator + auth.getNickname() + "_new_pass.jpg"); + ImageIO.write(gen.generateImage(), "jpg", file); + messageBodyPart = new MimeBodyPart(); + DataSource source = new FileDataSource(file); + messageBodyPart.setDataHandler(new DataHandler(source)); + messageBodyPart.setFileName(auth.getNickname() + "_new_pass.jpg"); + multipart.addBodyPart(messageBodyPart); + } + message.setContent(multipart); Transport transport = session.getTransport("smtp"); transport.connect(smtp, acc, password); transport.sendMessage(message, message.getAllRecipients()); + if (file != null) + file.delete(); } catch (Exception e) { System.out.println("Some error occured while trying to send a mail to " + mail); diff --git a/src/main/java/fr/xephi/authme/settings/Settings.java b/src/main/java/fr/xephi/authme/settings/Settings.java index 0696c6041..fc6891974 100644 --- a/src/main/java/fr/xephi/authme/settings/Settings.java +++ b/src/main/java/fr/xephi/authme/settings/Settings.java @@ -70,7 +70,7 @@ public final class Settings extends YamlConfiguration { purgePermissions, enableProtection, enableAntiBot, recallEmail, useWelcomeMessage, broadcastWelcomeMessage, forceRegKick, forceRegLogin, checkVeryGames, delayJoinMessage, noTeleport, - applyBlindEffect, customAttributes; + applyBlindEffect, customAttributes, generateImage; public static String getNickRegex, getUnloggedinGroup, getMySQLHost, getMySQLPort, getMySQLUsername, getMySQLPassword, getMySQLDatabase, @@ -269,6 +269,7 @@ public final class Settings extends YamlConfiguration { forceRegisterCommands = (List) configFile.getList("settings.forceRegisterCommands", new ArrayList()); forceRegisterCommandsAsConsole = (List) configFile.getList("settings.forceRegisterCommandsAsConsole", new ArrayList()); customAttributes = configFile.getBoolean("Hooks.customAttributes"); + generateImage = configFile.getBoolean("Email.generateImage", true); // Load the welcome message getWelcomeMessage(plugin); @@ -435,6 +436,7 @@ public final class Settings extends YamlConfiguration { forceRegisterCommands = (List) configFile.getList("settings.forceRegisterCommands", new ArrayList()); forceRegisterCommandsAsConsole = (List) configFile.getList("settings.forceRegisterCommandsAsConsole", new ArrayList()); customAttributes = configFile.getBoolean("Hooks.customAttributes"); + generateImage = configFile.getBoolean("Email.generateImage", true); // Reload the welcome message getWelcomeMessage(AuthMe.getInstance()); @@ -587,6 +589,10 @@ public final class Settings extends YamlConfiguration { } if (contains("Hooks.notifications")) set("Hooks.notifications", null); + if (!contains("Email.generateImage")) { + set("Email.generateImage", true); + changes = true; + } if (changes) { plugin.getLogger().warning("Merge new Config Options - I'm not an error, please don't report me"); From 36632bbb58b3b32f0fb15d9796dfb3c5a1c9ef34 Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Thu, 9 Jul 2015 21:02:37 +0200 Subject: [PATCH 06/11] Fix the instance of database --- src/main/java/fr/xephi/authme/AuthMe.java | 26 +++++----- .../java/fr/xephi/authme/DataManager.java | 8 +-- src/main/java/fr/xephi/authme/api/API.java | 14 ++--- .../xephi/authme/commands/AdminCommand.java | 49 +++++++++--------- .../commands/ChangePasswordCommand.java | 9 ++-- .../authme/commands/ConverterCommand.java | 15 +++--- .../xephi/authme/commands/EmailCommand.java | 25 ++++----- .../xephi/authme/commands/LogoutCommand.java | 10 +--- .../authme/commands/UnregisterCommand.java | 7 +-- .../authme/converter/CrazyLoginConverter.java | 6 +-- .../authme/converter/RakamakConverter.java | 5 +- .../fr/xephi/authme/converter/SqlToFlat.java | 4 +- .../authme/converter/vAuthConverter.java | 7 ++- .../authme/converter/vAuthFileReader.java | 5 +- .../authme/converter/xAuthConverter.java | 8 +-- .../xephi/authme/converter/xAuthToFlat.java | 5 +- .../authme/listener/AuthMeBlockListener.java | 10 ++-- .../listener/AuthMeChestShopListener.java | 7 +-- .../authme/listener/AuthMeEntityListener.java | 19 +++---- .../authme/listener/AuthMePlayerListener.java | 51 +++++++++---------- .../fr/xephi/authme/process/Management.java | 15 +++--- 21 files changed, 126 insertions(+), 179 deletions(-) diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java index f11b5105e..ec7cea77d 100644 --- a/src/main/java/fr/xephi/authme/AuthMe.java +++ b/src/main/java/fr/xephi/authme/AuthMe.java @@ -208,13 +208,13 @@ public class AuthMe extends JavaPlugin { setupDatabase(); - dataManager = new DataManager(this, database); + dataManager = new DataManager(this); // Setup API - api = new API(this, database); + api = new API(this); // Setup Management - management = new Management(database, this); + management = new Management(this); PluginManager pm = getServer().getPluginManager(); if (Settings.bungee) { @@ -222,25 +222,25 @@ public class AuthMe extends JavaPlugin { Bukkit.getMessenger().registerIncomingPluginChannel(this, "BungeeCord", new BungeeCordMessage(this)); } - pm.registerEvents(new AuthMePlayerListener(this, database), this); - pm.registerEvents(new AuthMeBlockListener(database, this), this); - pm.registerEvents(new AuthMeEntityListener(database, this), this); + pm.registerEvents(new AuthMePlayerListener(this), this); + pm.registerEvents(new AuthMeBlockListener(this), this); + pm.registerEvents(new AuthMeEntityListener(this), this); pm.registerEvents(new AuthMeServerListener(this), this); if (ChestShop != 0) { - pm.registerEvents(new AuthMeChestShopListener(database, this), this); + pm.registerEvents(new AuthMeChestShopListener(this), this); ConsoleLogger.info("Successfully hook with ChestShop!"); } - this.getCommand("authme").setExecutor(new AdminCommand(this, database)); + this.getCommand("authme").setExecutor(new AdminCommand(this)); this.getCommand("register").setExecutor(new RegisterCommand(this)); this.getCommand("login").setExecutor(new LoginCommand(this)); - this.getCommand("changepassword").setExecutor(new ChangePasswordCommand(database, this)); - this.getCommand("logout").setExecutor(new LogoutCommand(this, database)); - this.getCommand("unregister").setExecutor(new UnregisterCommand(this, database)); + this.getCommand("changepassword").setExecutor(new ChangePasswordCommand(this)); + this.getCommand("logout").setExecutor(new LogoutCommand(this)); + this.getCommand("unregister").setExecutor(new UnregisterCommand(this)); this.getCommand("passpartu").setExecutor(new PasspartuCommand(this)); - this.getCommand("email").setExecutor(new EmailCommand(this, database)); + this.getCommand("email").setExecutor(new EmailCommand(this)); this.getCommand("captcha").setExecutor(new CaptchaCommand(this)); - this.getCommand("converter").setExecutor(new ConverterCommand(this, database)); + this.getCommand("converter").setExecutor(new ConverterCommand(this)); if (!Settings.isForceSingleSessionEnabled) { ConsoleLogger.showError("BECAREFUL !!! By disabling ForceSingleSession, your server protection is set to LOW"); diff --git a/src/main/java/fr/xephi/authme/DataManager.java b/src/main/java/fr/xephi/authme/DataManager.java index a1de30f31..3804999ad 100644 --- a/src/main/java/fr/xephi/authme/DataManager.java +++ b/src/main/java/fr/xephi/authme/DataManager.java @@ -8,23 +8,19 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; -import net.milkbowl.vault.permission.Permission; - import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.settings.Settings; +import net.milkbowl.vault.permission.Permission; public class DataManager { public AuthMe plugin; - public DataSource database; - public DataManager(AuthMe plugin, DataSource database) { + public DataManager(AuthMe plugin) { this.plugin = plugin; - this.database = database; } public void run() { diff --git a/src/main/java/fr/xephi/authme/api/API.java b/src/main/java/fr/xephi/authme/api/API.java index c60de1210..d718a0adb 100644 --- a/src/main/java/fr/xephi/authme/api/API.java +++ b/src/main/java/fr/xephi/authme/api/API.java @@ -13,7 +13,6 @@ import fr.xephi.authme.AuthMe; import fr.xephi.authme.Utils; import fr.xephi.authme.cache.auth.PlayerAuth; import fr.xephi.authme.cache.auth.PlayerCache; -import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.plugin.manager.CombatTagComunicator; import fr.xephi.authme.security.PasswordSecurity; import fr.xephi.authme.settings.Settings; @@ -23,16 +22,13 @@ public class API { public static final String newline = System.getProperty("line.separator"); public static API singleton; public AuthMe plugin; - public DataSource database; - public API(AuthMe plugin, DataSource database) { + public API(AuthMe plugin) { this.plugin = plugin; - this.database = database; } public API(Server serv) { this.plugin = (AuthMe) serv.getPluginManager().getPlugin("AuthMe"); - this.database = this.plugin.database; } /** @@ -50,7 +46,7 @@ public class API { return null; } AuthMe authme = (AuthMe) p; - singleton = (new API(authme, authme.database)); + singleton = (new API(authme)); return singleton; } @@ -119,7 +115,7 @@ public class API { */ public boolean isRegistered(String playerName) { String player = playerName.toLowerCase(); - return database.isAuthAvailable(player); + return plugin.database.isAuthAvailable(player); } /** @@ -131,7 +127,7 @@ public class API { if (!isRegistered(playerName)) return false; String player = playerName.toLowerCase(); - PlayerAuth auth = database.getAuth(player); + PlayerAuth auth = plugin.database.getAuth(player); try { return PasswordSecurity.comparePasswordWithHash(passwordToCheck, auth.getHash(), playerName); } catch (NoSuchAlgorithmException e) { @@ -154,7 +150,7 @@ public class API { return false; } PlayerAuth auth = new PlayerAuth(name, hash, "198.18.0.1", 0, "your@email.com"); - if (!database.saveAuth(auth)) { + if (!plugin.database.saveAuth(auth)) { return false; } return true; diff --git a/src/main/java/fr/xephi/authme/commands/AdminCommand.java b/src/main/java/fr/xephi/authme/commands/AdminCommand.java index 947df69a2..fffc0aca1 100644 --- a/src/main/java/fr/xephi/authme/commands/AdminCommand.java +++ b/src/main/java/fr/xephi/authme/commands/AdminCommand.java @@ -33,7 +33,6 @@ import fr.xephi.authme.Utils.groupType; import fr.xephi.authme.cache.auth.PlayerAuth; import fr.xephi.authme.cache.auth.PlayerCache; import fr.xephi.authme.cache.limbo.LimboCache; -import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.events.SpawnTeleportEvent; import fr.xephi.authme.security.PasswordSecurity; import fr.xephi.authme.settings.Messages; @@ -46,10 +45,8 @@ public class AdminCommand implements CommandExecutor { public AuthMe plugin; private Messages m = Messages.getInstance(); - public DataSource database; - public AdminCommand(AuthMe plugin, DataSource database) { - this.database = database; + public AdminCommand(AuthMe plugin) { this.plugin = plugin; } @@ -107,7 +104,7 @@ public class AdminCommand implements CommandExecutor { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -(Integer.parseInt(args[1]))); long until = calendar.getTimeInMillis(); - List purged = database.autoPurgeDatabase(until); + List purged = plugin.database.autoPurgeDatabase(until); sender.sendMessage("Deleted " + purged.size() + " user accounts"); if (Settings.purgeEssentialsFile && plugin.ess != null) plugin.dataManager.purgeEssentials(purged); @@ -161,8 +158,8 @@ public class AdminCommand implements CommandExecutor { return true; } try { - if (database.getAuth(args[1].toLowerCase()) != null) { - PlayerAuth player = database.getAuth(args[1].toLowerCase()); + if (plugin.database.getAuth(args[1].toLowerCase()) != null) { + PlayerAuth player = plugin.database.getAuth(args[1].toLowerCase()); long lastLogin = player.getLastLogin(); Date d = new Date(lastLogin); final long diff = System.currentTimeMillis() - lastLogin; @@ -195,13 +192,13 @@ public class AdminCommand implements CommandExecutor { PlayerAuth pAuth = null; String message = "[AuthMe] "; try { - pAuth = database.getAuth(arguments[1].toLowerCase()); + pAuth = plugin.database.getAuth(arguments[1].toLowerCase()); } catch (NullPointerException npe) { fSender.sendMessage("[AuthMe] This player is unknown"); return; } if (pAuth != null) { - List accountList = database.getAllAuthsByName(pAuth); + List accountList = plugin.database.getAllAuthsByName(pAuth); if (accountList.isEmpty() || accountList == null) { fSender.sendMessage("[AuthMe] This player is unknown"); return; @@ -238,7 +235,7 @@ public class AdminCommand implements CommandExecutor { public void run() { String message = "[AuthMe] "; if (arguments[1] != null) { - List accountList = database.getAllAuthsByIp(arguments[1]); + List accountList = plugin.database.getAllAuthsByIp(arguments[1]); if (accountList.isEmpty() || accountList == null) { fSender.sendMessage("[AuthMe] Please put a valid IP"); return; @@ -275,7 +272,7 @@ public class AdminCommand implements CommandExecutor { } try { String name = args[1].toLowerCase(); - if (database.isAuthAvailable(name)) { + if (plugin.database.isAuthAvailable(name)) { m.send(sender, "user_regged"); return true; } @@ -284,7 +281,7 @@ public class AdminCommand implements CommandExecutor { if (PasswordSecurity.userSalt.containsKey(name) && PasswordSecurity.userSalt.get(name) != null) auth.setSalt(PasswordSecurity.userSalt.get(name)); else auth.setSalt(""); - if (!database.saveAuth(auth)) { + if (!plugin.database.saveAuth(auth)) { m.send(sender, "error"); return true; } @@ -301,7 +298,7 @@ public class AdminCommand implements CommandExecutor { return true; } String playername = args[1].toLowerCase(); - PlayerAuth getAuth = database.getAuth(playername); + PlayerAuth getAuth = plugin.database.getAuth(playername); if (getAuth == null) { m.send(sender, "unknown_user"); return true; @@ -314,13 +311,13 @@ public class AdminCommand implements CommandExecutor { return true; } String playername = args[1].toLowerCase(); - PlayerAuth getAuth = database.getAuth(playername); + PlayerAuth getAuth = plugin.database.getAuth(playername); if (getAuth == null) { m.send(sender, "unknown_user"); return true; } getAuth.setEmail(args[2]); - if (!database.updateEmail(getAuth)) { + if (!plugin.database.updateEmail(getAuth)) { m.send(sender, "error"); return true; } @@ -358,7 +355,7 @@ public class AdminCommand implements CommandExecutor { for (OfflinePlayer off : plugin.getServer().getBannedPlayers()) { bannedPlayers.add(off.getName().toLowerCase()); } - database.purgeBanned(bannedPlayers); + plugin.database.purgeBanned(bannedPlayers); if (Settings.purgeEssentialsFile && plugin.ess != null) plugin.dataManager.purgeEssentials(bannedPlayers); if (Settings.purgePlayerDat) @@ -406,8 +403,8 @@ public class AdminCommand implements CommandExecutor { PlayerAuth auth = null; if (PlayerCache.getInstance().isAuthenticated(name)) { auth = PlayerCache.getInstance().getAuth(name); - } else if (database.isAuthAvailable(name)) { - auth = database.getAuth(name); + } else if (plugin.database.isAuthAvailable(name)) { + auth = plugin.database.getAuth(name); } if (auth == null) { m.send(sender, "unknown_user"); @@ -416,9 +413,9 @@ public class AdminCommand implements CommandExecutor { auth.setHash(hash); if (PasswordSecurity.userSalt.containsKey(name)) { auth.setSalt(PasswordSecurity.userSalt.get(name)); - database.updateSalt(auth); + plugin.database.updateSalt(auth); } - if (!database.updatePassword(auth)) { + if (!plugin.database.updatePassword(auth)) { m.send(sender, "error"); return true; } @@ -435,11 +432,11 @@ public class AdminCommand implements CommandExecutor { return true; } String name = args[1].toLowerCase(); - if (!database.isAuthAvailable(name)) { + if (!plugin.database.isAuthAvailable(name)) { m.send(sender, "user_unknown"); return true; } - if (!database.removeAuth(name)) { + if (!plugin.database.removeAuth(name)) { m.send(sender, "error"); return true; } @@ -484,7 +481,7 @@ public class AdminCommand implements CommandExecutor { } try { String name = args[1].toLowerCase(); - PlayerAuth auth = database.getAuth(name); + PlayerAuth auth = plugin.database.getAuth(name); if (auth == null) { sender.sendMessage("The player " + name + " is not registered "); return true; @@ -493,7 +490,7 @@ public class AdminCommand implements CommandExecutor { auth.setQuitLocY(0); auth.setQuitLocZ(0); auth.setWorld("world"); - database.updateQuitLoc(auth); + plugin.database.updateQuitLoc(auth); sender.sendMessage(name + " 's last pos location is now reset"); } catch (Exception e) { ConsoleLogger.showError("An error occured while trying to reset location or player do not exist, please see below: "); @@ -539,7 +536,7 @@ public class AdminCommand implements CommandExecutor { sender.sendMessage("Usage : /authme resetPosition "); return true; } - PlayerAuth auth = database.getAuth(args[1]); + PlayerAuth auth = plugin.database.getAuth(args[1]); if (auth == null) { m.send(sender, "unknown_user"); return true; @@ -548,7 +545,7 @@ public class AdminCommand implements CommandExecutor { auth.setQuitLocY(0D); auth.setQuitLocZ(0D); auth.setWorld("world"); - database.updateQuitLoc(auth); + plugin.database.updateQuitLoc(auth); sender.sendMessage("[AuthMe] Successfully reset position for " + auth.getNickname()); return true; } else if (args[0].equalsIgnoreCase("forcelogin")) { diff --git a/src/main/java/fr/xephi/authme/commands/ChangePasswordCommand.java b/src/main/java/fr/xephi/authme/commands/ChangePasswordCommand.java index c6c5fb5c7..aa905658f 100644 --- a/src/main/java/fr/xephi/authme/commands/ChangePasswordCommand.java +++ b/src/main/java/fr/xephi/authme/commands/ChangePasswordCommand.java @@ -11,7 +11,6 @@ import fr.xephi.authme.AuthMe; import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.cache.auth.PlayerAuth; import fr.xephi.authme.cache.auth.PlayerCache; -import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.security.PasswordSecurity; import fr.xephi.authme.settings.Messages; import fr.xephi.authme.settings.Settings; @@ -19,11 +18,9 @@ import fr.xephi.authme.settings.Settings; public class ChangePasswordCommand implements CommandExecutor { private Messages m = Messages.getInstance(); - private DataSource database; public AuthMe plugin; - public ChangePasswordCommand(DataSource database, AuthMe plugin) { - this.database = database; + public ChangePasswordCommand(AuthMe plugin) { this.plugin = plugin; } @@ -79,11 +76,11 @@ public class ChangePasswordCommand implements CommandExecutor { if (PasswordSecurity.userSalt.containsKey(name) && PasswordSecurity.userSalt.get(name) != null) auth.setSalt(PasswordSecurity.userSalt.get(name)); else auth.setSalt(""); - if (!database.updatePassword(auth)) { + if (!plugin.database.updatePassword(auth)) { m.send(player, "error"); return true; } - database.updateSalt(auth); + plugin.database.updateSalt(auth); PlayerCache.getInstance().updatePlayer(auth); m.send(player, "pwd_changed"); ConsoleLogger.info(player.getName() + " changed his password"); diff --git a/src/main/java/fr/xephi/authme/commands/ConverterCommand.java b/src/main/java/fr/xephi/authme/commands/ConverterCommand.java index a5c3a1155..3da052a04 100644 --- a/src/main/java/fr/xephi/authme/commands/ConverterCommand.java +++ b/src/main/java/fr/xephi/authme/commands/ConverterCommand.java @@ -16,18 +16,15 @@ import fr.xephi.authme.converter.RoyalAuthConverter; import fr.xephi.authme.converter.SqlToFlat; import fr.xephi.authme.converter.vAuthConverter; import fr.xephi.authme.converter.xAuthConverter; -import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.settings.Messages; public class ConverterCommand implements CommandExecutor { private AuthMe plugin; private Messages m = Messages.getInstance(); - private DataSource database; - public ConverterCommand(AuthMe plugin, DataSource database) { + public ConverterCommand(AuthMe plugin) { this.plugin = plugin; - this.database = database; } @Override @@ -61,22 +58,22 @@ public class ConverterCommand implements CommandExecutor { converter = new FlatToSqlite(sender); break; case xauth: - converter = new xAuthConverter(plugin, database, sender); + converter = new xAuthConverter(plugin, sender); break; case crazylogin: - converter = new CrazyLoginConverter(plugin, database, sender); + converter = new CrazyLoginConverter(plugin, sender); break; case rakamak: - converter = new RakamakConverter(plugin, database, sender); + converter = new RakamakConverter(plugin, sender); break; case royalauth: converter = new RoyalAuthConverter(plugin); break; case vauth: - converter = new vAuthConverter(plugin, database, sender); + converter = new vAuthConverter(plugin, sender); break; case sqltoflat: - converter = new SqlToFlat(plugin, database, sender); + converter = new SqlToFlat(plugin, sender); break; default: break; diff --git a/src/main/java/fr/xephi/authme/commands/EmailCommand.java b/src/main/java/fr/xephi/authme/commands/EmailCommand.java index ab32be6de..a5ada2c0d 100644 --- a/src/main/java/fr/xephi/authme/commands/EmailCommand.java +++ b/src/main/java/fr/xephi/authme/commands/EmailCommand.java @@ -11,7 +11,6 @@ import fr.xephi.authme.AuthMe; import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.cache.auth.PlayerAuth; import fr.xephi.authme.cache.auth.PlayerCache; -import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.security.PasswordSecurity; import fr.xephi.authme.security.RandomString; import fr.xephi.authme.settings.Messages; @@ -24,12 +23,10 @@ import fr.xephi.authme.settings.Settings; public class EmailCommand implements CommandExecutor { public AuthMe plugin; - private DataSource data; private Messages m = Messages.getInstance(); - public EmailCommand(AuthMe plugin, DataSource data) { + public EmailCommand(AuthMe plugin) { this.plugin = plugin; - this.data = data; } @Override @@ -60,7 +57,7 @@ public class EmailCommand implements CommandExecutor { return true; } if (Settings.getmaxRegPerEmail > 0) { - if (!plugin.authmePermissible(sender, "authme.allow2accounts") && data.getAllAuthsByEmail(args[1]).size() >= Settings.getmaxRegPerEmail) { + if (!plugin.authmePermissible(sender, "authme.allow2accounts") && plugin.database.getAllAuthsByEmail(args[1]).size() >= Settings.getmaxRegPerEmail) { m.send(player, "max_reg"); return true; } @@ -76,7 +73,7 @@ public class EmailCommand implements CommandExecutor { return true; } auth.setEmail(args[1]); - if (!data.updateEmail(auth)) { + if (!plugin.database.updateEmail(auth)) { m.send(player, "error"); return true; } @@ -86,7 +83,7 @@ public class EmailCommand implements CommandExecutor { } else if (PlayerCache.getInstance().isAuthenticated(name)) { m.send(player, "email_confirm"); } else { - if (!data.isAuthAvailable(name)) { + if (!plugin.database.isAuthAvailable(name)) { m.send(player, "login_msg"); } else { m.send(player, "reg_email_msg"); @@ -98,7 +95,7 @@ public class EmailCommand implements CommandExecutor { return true; } if (Settings.getmaxRegPerEmail > 0) { - if (!plugin.authmePermissible(sender, "authme.allow2accounts") && data.getAllAuthsByEmail(args[2]).size() >= Settings.getmaxRegPerEmail) { + if (!plugin.authmePermissible(sender, "authme.allow2accounts") && plugin.database.getAllAuthsByEmail(args[2]).size() >= Settings.getmaxRegPerEmail) { m.send(player, "max_reg"); return true; } @@ -118,7 +115,7 @@ public class EmailCommand implements CommandExecutor { return true; } auth.setEmail(args[2]); - if (!data.updateEmail(auth)) { + if (!plugin.database.updateEmail(auth)) { m.send(player, "error"); return true; } @@ -128,7 +125,7 @@ public class EmailCommand implements CommandExecutor { } else if (PlayerCache.getInstance().isAuthenticated(name)) { m.send(player, "email_confirm"); } else { - if (!data.isAuthAvailable(name)) { + if (!plugin.database.isAuthAvailable(name)) { m.send(player, "login_msg"); } else { m.send(player, "reg_email_msg"); @@ -144,7 +141,7 @@ public class EmailCommand implements CommandExecutor { m.send(player, "error"); return true; } - if (data.isAuthAvailable(name)) { + if (plugin.database.isAuthAvailable(name)) { if (PlayerCache.getInstance().isAuthenticated(name)) { m.send(player, "logged_in"); return true; @@ -156,8 +153,8 @@ public class EmailCommand implements CommandExecutor { PlayerAuth auth = null; if (PlayerCache.getInstance().isAuthenticated(name)) { auth = PlayerCache.getInstance().getAuth(name); - } else if (data.isAuthAvailable(name)) { - auth = data.getAuth(name); + } else if (plugin.database.isAuthAvailable(name)) { + auth = plugin.database.getAuth(name); } else { m.send(player, "unknown_user"); return true; @@ -172,7 +169,7 @@ public class EmailCommand implements CommandExecutor { return true; } auth.setHash(hashnew); - data.updatePassword(auth); + plugin.database.updatePassword(auth); plugin.mail.main(auth, thePass); m.send(player, "email_send"); } catch (NoSuchAlgorithmException ex) { diff --git a/src/main/java/fr/xephi/authme/commands/LogoutCommand.java b/src/main/java/fr/xephi/authme/commands/LogoutCommand.java index cb05b4de0..4c21f7f66 100644 --- a/src/main/java/fr/xephi/authme/commands/LogoutCommand.java +++ b/src/main/java/fr/xephi/authme/commands/LogoutCommand.java @@ -6,23 +6,15 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import fr.xephi.authme.AuthMe; -import fr.xephi.authme.Utils; -import fr.xephi.authme.cache.backup.FileCache; -import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.settings.Messages; public class LogoutCommand implements CommandExecutor { private Messages m = Messages.getInstance(); private AuthMe plugin; - private DataSource database; - private Utils utils = Utils.getInstance(); - private FileCache playerBackup; - public LogoutCommand(AuthMe plugin, DataSource database) { + public LogoutCommand(AuthMe plugin) { this.plugin = plugin; - this.database = database; - this.playerBackup = new FileCache(plugin); } @Override diff --git a/src/main/java/fr/xephi/authme/commands/UnregisterCommand.java b/src/main/java/fr/xephi/authme/commands/UnregisterCommand.java index 0b8bf9435..dd1a94e94 100644 --- a/src/main/java/fr/xephi/authme/commands/UnregisterCommand.java +++ b/src/main/java/fr/xephi/authme/commands/UnregisterCommand.java @@ -20,7 +20,6 @@ import fr.xephi.authme.Utils.groupType; import fr.xephi.authme.cache.auth.PlayerCache; import fr.xephi.authme.cache.backup.FileCache; import fr.xephi.authme.cache.limbo.LimboCache; -import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.events.SpawnTeleportEvent; import fr.xephi.authme.security.PasswordSecurity; import fr.xephi.authme.settings.Messages; @@ -32,12 +31,10 @@ public class UnregisterCommand implements CommandExecutor { private Messages m = Messages.getInstance(); public AuthMe plugin; - private DataSource database; private FileCache playerCache; - public UnregisterCommand(AuthMe plugin, DataSource database) { + public UnregisterCommand(AuthMe plugin) { this.plugin = plugin; - this.database = database; this.playerCache = new FileCache(plugin); } @@ -67,7 +64,7 @@ public class UnregisterCommand implements CommandExecutor { } try { if (PasswordSecurity.comparePasswordWithHash(args[0], PlayerCache.getInstance().getAuth(name).getHash(), player.getName())) { - if (!database.removeAuth(name)) { + if (!plugin.database.removeAuth(name)) { player.sendMessage("error"); return true; } diff --git a/src/main/java/fr/xephi/authme/converter/CrazyLoginConverter.java b/src/main/java/fr/xephi/authme/converter/CrazyLoginConverter.java index fdd8e34f0..d4577bcd7 100644 --- a/src/main/java/fr/xephi/authme/converter/CrazyLoginConverter.java +++ b/src/main/java/fr/xephi/authme/converter/CrazyLoginConverter.java @@ -5,6 +5,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; + import org.bukkit.command.CommandSender; import fr.xephi.authme.AuthMe; @@ -23,10 +24,9 @@ public class CrazyLoginConverter implements Converter { public DataSource database; public CommandSender sender; - public CrazyLoginConverter(AuthMe instance, DataSource database, - CommandSender sender) { + public CrazyLoginConverter(AuthMe instance, CommandSender sender) { this.instance = instance; - this.database = database; + this.database = instance.database; this.sender = sender; } diff --git a/src/main/java/fr/xephi/authme/converter/RakamakConverter.java b/src/main/java/fr/xephi/authme/converter/RakamakConverter.java index 2d0c5a51e..712207673 100644 --- a/src/main/java/fr/xephi/authme/converter/RakamakConverter.java +++ b/src/main/java/fr/xephi/authme/converter/RakamakConverter.java @@ -29,10 +29,9 @@ public class RakamakConverter implements Converter { public DataSource database; public CommandSender sender; - public RakamakConverter(AuthMe instance, DataSource database, - CommandSender sender) { + public RakamakConverter(AuthMe instance, CommandSender sender) { this.instance = instance; - this.database = database; + this.database = instance.database; this.sender = sender; } diff --git a/src/main/java/fr/xephi/authme/converter/SqlToFlat.java b/src/main/java/fr/xephi/authme/converter/SqlToFlat.java index 0194e412f..4dccbd439 100644 --- a/src/main/java/fr/xephi/authme/converter/SqlToFlat.java +++ b/src/main/java/fr/xephi/authme/converter/SqlToFlat.java @@ -17,9 +17,9 @@ public class SqlToFlat implements Converter { public DataSource database; public CommandSender sender; - public SqlToFlat(AuthMe plugin, DataSource database, CommandSender sender) { + public SqlToFlat(AuthMe plugin, CommandSender sender) { this.plugin = plugin; - this.database = database; + this.database = plugin.database; this.sender = sender; } diff --git a/src/main/java/fr/xephi/authme/converter/vAuthConverter.java b/src/main/java/fr/xephi/authme/converter/vAuthConverter.java index bc9bc8de3..1939c6c1a 100644 --- a/src/main/java/fr/xephi/authme/converter/vAuthConverter.java +++ b/src/main/java/fr/xephi/authme/converter/vAuthConverter.java @@ -12,17 +12,16 @@ public class vAuthConverter implements Converter { public DataSource database; public CommandSender sender; - public vAuthConverter(AuthMe plugin, DataSource database, - CommandSender sender) { + public vAuthConverter(AuthMe plugin, CommandSender sender) { this.plugin = plugin; - this.database = database; + this.database = plugin.database; this.sender = sender; } @Override public void run() { try { - new vAuthFileReader(plugin, database, sender).convert(); + new vAuthFileReader(plugin, sender).convert(); } catch (Exception e) { sender.sendMessage(e.getMessage()); ConsoleLogger.showError(e.getMessage()); diff --git a/src/main/java/fr/xephi/authme/converter/vAuthFileReader.java b/src/main/java/fr/xephi/authme/converter/vAuthFileReader.java index 55cbec588..5b2a0be99 100644 --- a/src/main/java/fr/xephi/authme/converter/vAuthFileReader.java +++ b/src/main/java/fr/xephi/authme/converter/vAuthFileReader.java @@ -19,10 +19,9 @@ public class vAuthFileReader { public DataSource database; public CommandSender sender; - public vAuthFileReader(AuthMe plugin, DataSource database, - CommandSender sender) { + public vAuthFileReader(AuthMe plugin, CommandSender sender) { this.plugin = plugin; - this.database = database; + this.database = plugin.database; this.sender = sender; } diff --git a/src/main/java/fr/xephi/authme/converter/xAuthConverter.java b/src/main/java/fr/xephi/authme/converter/xAuthConverter.java index 46f549ead..1f8136682 100644 --- a/src/main/java/fr/xephi/authme/converter/xAuthConverter.java +++ b/src/main/java/fr/xephi/authme/converter/xAuthConverter.java @@ -3,18 +3,14 @@ package fr.xephi.authme.converter; import org.bukkit.command.CommandSender; import fr.xephi.authme.AuthMe; -import fr.xephi.authme.datasource.DataSource; public class xAuthConverter implements Converter { public AuthMe plugin; - public DataSource database; public CommandSender sender; - public xAuthConverter(AuthMe plugin, DataSource database, - CommandSender sender) { + public xAuthConverter(AuthMe plugin, CommandSender sender) { this.plugin = plugin; - this.database = database; this.sender = sender; } @@ -22,7 +18,7 @@ public class xAuthConverter implements Converter { public void run() { try { Class.forName("de.luricos.bukkit.xAuth.xAuth"); - xAuthToFlat converter = new xAuthToFlat(plugin, database, sender); + xAuthToFlat converter = new xAuthToFlat(plugin, sender); converter.convert(); } catch (ClassNotFoundException ce) { sender.sendMessage("xAuth has not been found, please put xAuth.jar in your plugin folder and restart!"); diff --git a/src/main/java/fr/xephi/authme/converter/xAuthToFlat.java b/src/main/java/fr/xephi/authme/converter/xAuthToFlat.java index 02d9946f5..e8ac1c9a6 100644 --- a/src/main/java/fr/xephi/authme/converter/xAuthToFlat.java +++ b/src/main/java/fr/xephi/authme/converter/xAuthToFlat.java @@ -23,10 +23,9 @@ public class xAuthToFlat { public DataSource database; public CommandSender sender; - public xAuthToFlat(AuthMe instance, DataSource database, - CommandSender sender) { + public xAuthToFlat(AuthMe instance, CommandSender sender) { this.instance = instance; - this.database = database; + this.database = instance.database; this.sender = sender; } diff --git a/src/main/java/fr/xephi/authme/listener/AuthMeBlockListener.java b/src/main/java/fr/xephi/authme/listener/AuthMeBlockListener.java index d706f0953..763797109 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMeBlockListener.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMeBlockListener.java @@ -9,16 +9,14 @@ import org.bukkit.event.block.BlockPlaceEvent; import fr.xephi.authme.AuthMe; import fr.xephi.authme.Utils; import fr.xephi.authme.cache.auth.PlayerCache; -import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.settings.Settings; public class AuthMeBlockListener implements Listener { - private DataSource data; public AuthMe instance; - public AuthMeBlockListener(DataSource data, AuthMe instance) { - this.data = data; + public AuthMeBlockListener(AuthMe instance) { + this.instance = instance; } @@ -39,7 +37,7 @@ public class AuthMeBlockListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!instance.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } @@ -64,7 +62,7 @@ public class AuthMeBlockListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!instance.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } diff --git a/src/main/java/fr/xephi/authme/listener/AuthMeChestShopListener.java b/src/main/java/fr/xephi/authme/listener/AuthMeChestShopListener.java index ae3c41aa2..563218759 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMeChestShopListener.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMeChestShopListener.java @@ -11,16 +11,13 @@ import com.Acrobot.ChestShop.Events.PreTransactionEvent.TransactionOutcome; import fr.xephi.authme.AuthMe; import fr.xephi.authme.Utils; import fr.xephi.authme.cache.auth.PlayerCache; -import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.settings.Settings; public class AuthMeChestShopListener implements Listener { - public DataSource database; public AuthMe plugin; - public AuthMeChestShopListener(DataSource database, AuthMe plugin) { - this.database = database; + public AuthMeChestShopListener(AuthMe plugin) { this.plugin = plugin; } @@ -41,7 +38,7 @@ public class AuthMeChestShopListener implements Listener { return; } - if (!database.isAuthAvailable(name)) { + if (!plugin.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } diff --git a/src/main/java/fr/xephi/authme/listener/AuthMeEntityListener.java b/src/main/java/fr/xephi/authme/listener/AuthMeEntityListener.java index 56b637e94..f0a62591e 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMeEntityListener.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMeEntityListener.java @@ -15,17 +15,14 @@ import org.bukkit.event.entity.FoodLevelChangeEvent; import fr.xephi.authme.AuthMe; import fr.xephi.authme.Utils; import fr.xephi.authme.cache.auth.PlayerCache; -import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.plugin.manager.CombatTagComunicator; import fr.xephi.authme.settings.Settings; public class AuthMeEntityListener implements Listener { - private DataSource data; public AuthMe instance; - public AuthMeEntityListener(DataSource data, AuthMe instance) { - this.data = data; + public AuthMeEntityListener(AuthMe instance) { this.instance = instance; } @@ -57,7 +54,7 @@ public class AuthMeEntityListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!instance.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } @@ -89,7 +86,7 @@ public class AuthMeEntityListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!instance.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } @@ -117,7 +114,7 @@ public class AuthMeEntityListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!instance.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } @@ -147,7 +144,7 @@ public class AuthMeEntityListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!instance.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } @@ -178,7 +175,7 @@ public class AuthMeEntityListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!instance.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } @@ -212,7 +209,7 @@ public class AuthMeEntityListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!instance.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } @@ -244,7 +241,7 @@ public class AuthMeEntityListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!instance.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } diff --git a/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java b/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java index cda89dc58..ac1551de8 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java @@ -43,7 +43,6 @@ import fr.xephi.authme.cache.auth.PlayerAuth; import fr.xephi.authme.cache.auth.PlayerCache; import fr.xephi.authme.cache.limbo.LimboCache; import fr.xephi.authme.cache.limbo.LimboPlayer; -import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.plugin.manager.CombatTagComunicator; import fr.xephi.authme.settings.Messages; import fr.xephi.authme.settings.Settings; @@ -54,13 +53,11 @@ public class AuthMePlayerListener implements Listener { public static ConcurrentHashMap joinMessage = new ConcurrentHashMap(); private Messages m = Messages.getInstance(); public AuthMe plugin; - private DataSource data; public static ConcurrentHashMap causeByAuthMe = new ConcurrentHashMap(); private List antibot = new ArrayList(); - public AuthMePlayerListener(AuthMe plugin, DataSource data) { + public AuthMePlayerListener(AuthMe plugin) { this.plugin = plugin; - this.data = data; } @EventHandler(priority = EventPriority.LOWEST) @@ -77,7 +74,7 @@ public class AuthMePlayerListener implements Listener { if (PlayerCache.getInstance().isAuthenticated(name)) return; - if (!data.isAuthAvailable(name)) + if (!plugin.database.isAuthAvailable(name)) if (!Settings.isForcedRegistrationEnabled) return; @@ -113,7 +110,7 @@ public class AuthMePlayerListener implements Listener { String cmd = event.getMessage().split(" ")[0]; - if (data.isAuthAvailable(name)) { + if (plugin.database.isAuthAvailable(name)) { m.send(player, "login_msg"); } else { if (!Settings.isForcedRegistrationEnabled) { @@ -150,7 +147,7 @@ public class AuthMePlayerListener implements Listener { String cmd = event.getMessage().split(" ")[0]; - if (data.isAuthAvailable(name)) { + if (plugin.database.isAuthAvailable(name)) { m.send(player, "login_msg"); } else { if (!Settings.isForcedRegistrationEnabled) { @@ -187,7 +184,7 @@ public class AuthMePlayerListener implements Listener { String cmd = event.getMessage().split(" ")[0]; - if (data.isAuthAvailable(name)) { + if (plugin.database.isAuthAvailable(name)) { m.send(player, "login_msg"); } else { if (!Settings.isForcedRegistrationEnabled) { @@ -224,7 +221,7 @@ public class AuthMePlayerListener implements Listener { String cmd = event.getMessage().split(" ")[0]; - if (data.isAuthAvailable(name)) { + if (plugin.database.isAuthAvailable(name)) { m.send(player, "login_msg"); } else { if (!Settings.isForcedRegistrationEnabled) { @@ -262,7 +259,7 @@ public class AuthMePlayerListener implements Listener { String cmd = event.getMessage().split(" ")[0]; - if (data.isAuthAvailable(name)) { + if (plugin.database.isAuthAvailable(name)) { m.send(player, "login_msg"); } else { if (!Settings.isForcedRegistrationEnabled) { @@ -299,7 +296,7 @@ public class AuthMePlayerListener implements Listener { String cmd = event.getMessage().split(" ")[0]; - if (data.isAuthAvailable(name)) { + if (plugin.database.isAuthAvailable(name)) { m.send(player, "login_msg"); } else { if (!Settings.isForcedRegistrationEnabled) { @@ -336,7 +333,7 @@ public class AuthMePlayerListener implements Listener { } if (!Settings.isForcedRegistrationEnabled) { - if (!data.isAuthAvailable(name)) + if (!plugin.database.isAuthAvailable(name)) return; } @@ -404,7 +401,7 @@ public class AuthMePlayerListener implements Listener { if (player == null) return; final String name = player.getName().toLowerCase(); - boolean isAuthAvailable = data.isAuthAvailable(name); + boolean isAuthAvailable = plugin.database.isAuthAvailable(name); if (plugin.getCitizensCommunicator().isNPC(player) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) { return; @@ -428,7 +425,7 @@ public class AuthMePlayerListener implements Listener { } if (Settings.isKickNonRegisteredEnabled) { - if (!data.isAuthAvailable(name)) { + if (!plugin.database.isAuthAvailable(name)) { event.setKickMessage(m.send("reg_only")[0]); event.setResult(PlayerLoginEvent.Result.KICK_OTHER); return; @@ -579,7 +576,7 @@ public class AuthMePlayerListener implements Listener { plugin.management.performQuit(player, false); - if (data.getAuth(name) != null && !PlayerCache.getInstance().isAuthenticated(name) && Settings.enableProtection) + if (plugin.database.getAuth(name) != null && !PlayerCache.getInstance().isAuthenticated(name) && Settings.enableProtection) event.setQuitMessage(null); } @@ -622,7 +619,7 @@ public class AuthMePlayerListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!plugin.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } @@ -650,7 +647,7 @@ public class AuthMePlayerListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!plugin.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } @@ -679,7 +676,7 @@ public class AuthMePlayerListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!plugin.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } @@ -708,7 +705,7 @@ public class AuthMePlayerListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!plugin.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } @@ -734,7 +731,7 @@ public class AuthMePlayerListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!plugin.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } @@ -761,7 +758,7 @@ public class AuthMePlayerListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!plugin.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } @@ -785,7 +782,7 @@ public class AuthMePlayerListener implements Listener { return; } - if (!data.isAuthAvailable(name)) { + if (!plugin.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } @@ -806,7 +803,7 @@ public class AuthMePlayerListener implements Listener { if (PlayerCache.getInstance().isAuthenticated(name)) { return; } - if (!data.isAuthAvailable(name)) { + if (!plugin.database.isAuthAvailable(name)) { if (!Settings.isForcedRegistrationEnabled) { return; } @@ -832,15 +829,15 @@ public class AuthMePlayerListener implements Listener { if (PlayerCache.getInstance().isAuthenticated(name)) return; - if (!data.isAuthAvailable(name)) + if (!plugin.database.isAuthAvailable(name)) if (!Settings.isForcedRegistrationEnabled) return; Location spawn = plugin.getSpawnLocation(player); - if (Settings.isSaveQuitLocationEnabled && data.isAuthAvailable(name)) { + if (Settings.isSaveQuitLocationEnabled && plugin.database.isAuthAvailable(name)) { final PlayerAuth auth = new PlayerAuth(name, spawn.getX(), spawn.getY(), spawn.getZ(), spawn.getWorld().getName()); try { - data.updateQuitLoc(auth); + plugin.database.updateQuitLoc(auth); } catch (NullPointerException npe) { } } @@ -871,7 +868,7 @@ public class AuthMePlayerListener implements Listener { if (PlayerCache.getInstance().isAuthenticated(name)) return; - if (!data.isAuthAvailable(name)) + if (!plugin.database.isAuthAvailable(name)) if (!Settings.isForcedRegistrationEnabled) return; diff --git a/src/main/java/fr/xephi/authme/process/Management.java b/src/main/java/fr/xephi/authme/process/Management.java index 45fc97fa9..479790e58 100644 --- a/src/main/java/fr/xephi/authme/process/Management.java +++ b/src/main/java/fr/xephi/authme/process/Management.java @@ -5,7 +5,6 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.PluginManager; import fr.xephi.authme.AuthMe; -import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.process.join.AsyncronousJoin; import fr.xephi.authme.process.login.AsyncronousLogin; import fr.xephi.authme.process.logout.AsyncronousLogout; @@ -22,13 +21,11 @@ import fr.xephi.authme.settings.Settings; */ public class Management { - public DataSource database; public AuthMe plugin; public static RandomString rdm = new RandomString(Settings.captchaLength); public PluginManager pm; - public Management(DataSource database, AuthMe plugin) { - this.database = database; + public Management(AuthMe plugin) { this.plugin = plugin; this.pm = plugin.getServer().getPluginManager(); } @@ -39,7 +36,7 @@ public class Management { @Override public void run() { - new AsyncronousLogin(player, password, forceLogin, plugin, database).process(); + new AsyncronousLogin(player, password, forceLogin, plugin, plugin.database).process(); } }); } @@ -50,7 +47,7 @@ public class Management { @Override public void run() { - new AsyncronousRegister(player, password, email, plugin, database).process(); + new AsyncronousRegister(player, password, email, plugin, plugin.database).process(); } }); } @@ -60,7 +57,7 @@ public class Management { @Override public void run() { - new AsyncronousLogout(player, plugin, database).process(); + new AsyncronousLogout(player, plugin, plugin.database).process(); } }); } @@ -70,7 +67,7 @@ public class Management { @Override public void run() { - new AsyncronousQuit(player, plugin, database, isKick).process(); + new AsyncronousQuit(player, plugin, plugin.database, isKick).process(); } }); @@ -81,7 +78,7 @@ public class Management { @Override public void run() { - new AsyncronousJoin(player, plugin, database).process(); + new AsyncronousJoin(player, plugin, plugin.database).process(); } }); From 63a90abec14f4855c7e010ecf99feb5721ff37a3 Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Fri, 10 Jul 2015 12:00:26 +0200 Subject: [PATCH 07/11] Change how PlayersLogs work - Change how reload work --- src/main/java/fr/xephi/authme/AuthMe.java | 37 +++------------ .../xephi/authme/cache/auth/PlayerCache.java | 4 ++ .../fr/xephi/authme/datasource/FlatFile.java | 7 +-- .../fr/xephi/authme/datasource/SQLite.java | 11 +++-- .../process/register/AsyncronousRegister.java | 5 +- .../ProcessSyncronousPasswordRegister.java | 3 +- .../fr/xephi/authme/settings/PlayersLogs.java | 47 ++++++++++++------- 7 files changed, 53 insertions(+), 61 deletions(-) diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java index ec7cea77d..450e83564 100644 --- a/src/main/java/fr/xephi/authme/AuthMe.java +++ b/src/main/java/fr/xephi/authme/AuthMe.java @@ -12,8 +12,6 @@ import java.net.URL; import java.net.URLConnection; import java.util.Calendar; import java.util.Collection; -import java.util.Date; -import java.util.HashMap; import java.util.List; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; @@ -80,7 +78,6 @@ public class AuthMe extends JavaPlugin { public DataSource database = null; private Settings settings; private Messages m; - public PlayersLogs pllog; public OtherAccounts otherAccounts; public static Server server; public static Logger authmeLogger = Logger.getLogger("AuthMe"); @@ -97,9 +94,9 @@ public class AuthMe extends JavaPlugin { public Essentials ess; public API api; public Management management; - public HashMap captcha = new HashMap(); - public HashMap cap = new HashMap(); - public HashMap realIp = new HashMap(); + public ConcurrentHashMap captcha = new ConcurrentHashMap(); + public ConcurrentHashMap cap = new ConcurrentHashMap(); + public ConcurrentHashMap realIp = new ConcurrentHashMap(); public MultiverseCore multiverse = null; public Location essentialsSpawn; public LookupService ls = null; @@ -151,8 +148,6 @@ public class AuthMe extends JavaPlugin { m = Messages.getInstance(); - pllog = PlayersLogs.getInstance(); - otherAccounts = OtherAccounts.getInstance(); server = getServer(); @@ -246,9 +241,10 @@ public class AuthMe extends JavaPlugin { ConsoleLogger.showError("BECAREFUL !!! By disabling ForceSingleSession, your server protection is set to LOW"); } + PlayersLogs.getInstance(); + if (Settings.reloadSupport) try { - onReload(); int playersOnline = 0; try { if (Bukkit.class.getMethod("getOnlinePlayers", new Class[0]).getReturnType() == Collection.class) @@ -261,7 +257,7 @@ public class AuthMe extends JavaPlugin { database.purgeLogged(); } catch (NullPointerException npe) { } - } + } else PlayersLogs.getInstance().loadPlayers(); } catch (Exception ex) { } @@ -432,27 +428,6 @@ public class AuthMe extends JavaPlugin { ConsoleLogger.info("Authme " + this.getDescription().getVersion() + " disabled"); } - private void onReload() { - try { - if (Bukkit.getServer().getOnlinePlayers() != null) { - for (Player player : Bukkit.getServer().getOnlinePlayers()) { - if (database.isLogged(player.getName().toLowerCase())) { - String name = player.getName().toLowerCase(); - PlayerAuth pAuth = database.getAuth(name); - if (pAuth == null) - break; - PlayerAuth auth = new PlayerAuth(name, pAuth.getHash(), pAuth.getIp(), new Date().getTime(), pAuth.getEmail()); - database.updateSession(auth); - PlayerCache.getInstance().addPlayer(auth); - } - } - } - return; - } catch (Exception ex) { - return; - } - } - public static AuthMe getInstance() { return authme; } diff --git a/src/main/java/fr/xephi/authme/cache/auth/PlayerCache.java b/src/main/java/fr/xephi/authme/cache/auth/PlayerCache.java index a517c7568..17911bdc8 100644 --- a/src/main/java/fr/xephi/authme/cache/auth/PlayerCache.java +++ b/src/main/java/fr/xephi/authme/cache/auth/PlayerCache.java @@ -43,4 +43,8 @@ public class PlayerCache { return cache.size(); } + public ConcurrentHashMap getCache() { + return this.cache; + } + } diff --git a/src/main/java/fr/xephi/authme/datasource/FlatFile.java b/src/main/java/fr/xephi/authme/datasource/FlatFile.java index 654f72e56..825579f44 100644 --- a/src/main/java/fr/xephi/authme/datasource/FlatFile.java +++ b/src/main/java/fr/xephi/authme/datasource/FlatFile.java @@ -13,6 +13,7 @@ import java.util.List; import fr.xephi.authme.AuthMe; import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.cache.auth.PlayerAuth; +import fr.xephi.authme.cache.auth.PlayerCache; import fr.xephi.authme.settings.PlayersLogs; import fr.xephi.authme.settings.Settings; @@ -648,17 +649,17 @@ public class FlatFile implements DataSource { @Override public boolean isLogged(String user) { - return PlayersLogs.getInstance().players.contains(user.toLowerCase()); + return PlayerCache.getInstance().isAuthenticated(user); } @Override public void setLogged(String user) { - PlayersLogs.getInstance().addPlayer(user.toLowerCase()); + PlayersLogs.getInstance().savePlayerLogs(); } @Override public void setUnlogged(String user) { - PlayersLogs.getInstance().removePlayer(user.toLowerCase()); + PlayersLogs.getInstance().savePlayerLogs(); } @Override diff --git a/src/main/java/fr/xephi/authme/datasource/SQLite.java b/src/main/java/fr/xephi/authme/datasource/SQLite.java index cdbac8493..674aa449c 100644 --- a/src/main/java/fr/xephi/authme/datasource/SQLite.java +++ b/src/main/java/fr/xephi/authme/datasource/SQLite.java @@ -12,6 +12,7 @@ import java.util.List; import fr.xephi.authme.AuthMe; import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.cache.auth.PlayerAuth; +import fr.xephi.authme.cache.auth.PlayerCache; import fr.xephi.authme.datasource.MiniConnectionPoolManager.TimeoutException; import fr.xephi.authme.settings.PlayersLogs; import fr.xephi.authme.settings.Settings; @@ -74,8 +75,8 @@ public class SQLite implements DataSource { } } - private synchronized void connect() throws ClassNotFoundException, - SQLException { + private synchronized void connect() + throws ClassNotFoundException, SQLException { Class.forName("org.sqlite.JDBC"); ConsoleLogger.info("SQLite driver loaded"); this.con = DriverManager.getConnection("jdbc:sqlite:plugins/AuthMe/" + database + ".db"); @@ -508,17 +509,17 @@ public class SQLite implements DataSource { @Override public boolean isLogged(String user) { - return PlayersLogs.getInstance().players.contains(user.toLowerCase()); + return PlayerCache.getInstance().isAuthenticated(user); } @Override public void setLogged(String user) { - PlayersLogs.getInstance().addPlayer(user.toLowerCase()); + PlayersLogs.getInstance().savePlayerLogs(); } @Override public void setUnlogged(String user) { - PlayersLogs.getInstance().removePlayer(user.toLowerCase()); + PlayersLogs.getInstance().savePlayerLogs(); } @Override diff --git a/src/main/java/fr/xephi/authme/process/register/AsyncronousRegister.java b/src/main/java/fr/xephi/authme/process/register/AsyncronousRegister.java index 0a6be53f7..774471946 100644 --- a/src/main/java/fr/xephi/authme/process/register/AsyncronousRegister.java +++ b/src/main/java/fr/xephi/authme/process/register/AsyncronousRegister.java @@ -12,6 +12,7 @@ import fr.xephi.authme.cache.auth.PlayerCache; import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.security.PasswordSecurity; import fr.xephi.authme.settings.Messages; +import fr.xephi.authme.settings.PlayersLogs; import fr.xephi.authme.settings.Settings; public class AsyncronousRegister { @@ -64,9 +65,7 @@ public class AsyncronousRegister { else if (database.isAuthAvailable(name)) { m.send(player, "user_regged"); - if (plugin.pllog.getStringList("players").contains(name)) { - plugin.pllog.getStringList("players").remove(name); - } + PlayersLogs.getInstance().savePlayerLogs(); allowRegister = false; } diff --git a/src/main/java/fr/xephi/authme/process/register/ProcessSyncronousPasswordRegister.java b/src/main/java/fr/xephi/authme/process/register/ProcessSyncronousPasswordRegister.java index cf0544565..c2ffe57fd 100644 --- a/src/main/java/fr/xephi/authme/process/register/ProcessSyncronousPasswordRegister.java +++ b/src/main/java/fr/xephi/authme/process/register/ProcessSyncronousPasswordRegister.java @@ -17,6 +17,7 @@ import fr.xephi.authme.events.AuthMeTeleportEvent; import fr.xephi.authme.events.LoginEvent; import fr.xephi.authme.events.RegisterTeleportEvent; import fr.xephi.authme.settings.Messages; +import fr.xephi.authme.settings.PlayersLogs; import fr.xephi.authme.settings.Settings; import fr.xephi.authme.task.MessageTask; import fr.xephi.authme.task.TimeoutTask; @@ -71,7 +72,7 @@ public class ProcessSyncronousPasswordRegister implements Runnable { BukkitTask msgT = sched.runTaskAsynchronously(plugin, new MessageTask(plugin, name, m.send("login_msg"), interval)); LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(msgT); try { - plugin.pllog.removePlayer(name); + PlayersLogs.getInstance().save(); if (player.isInsideVehicle()) player.getVehicle().eject(); } catch (NullPointerException npe) { diff --git a/src/main/java/fr/xephi/authme/settings/PlayersLogs.java b/src/main/java/fr/xephi/authme/settings/PlayersLogs.java index b95d2098e..7e827fa54 100644 --- a/src/main/java/fr/xephi/authme/settings/PlayersLogs.java +++ b/src/main/java/fr/xephi/authme/settings/PlayersLogs.java @@ -2,8 +2,14 @@ package fr.xephi.authme.settings; import java.io.File; import java.util.ArrayList; +import java.util.Date; import java.util.List; +import fr.xephi.authme.AuthMe; +import fr.xephi.authme.cache.auth.PlayerAuth; +import fr.xephi.authme.cache.auth.PlayerCache; +import fr.xephi.authme.datasource.DataSource; + /** * * @author Xephi59 @@ -11,19 +17,27 @@ import java.util.List; public class PlayersLogs extends CustomConfiguration { private static PlayersLogs pllog = null; - public List players; public PlayersLogs() { super(new File("." + File.separator + "plugins" + File.separator + "AuthMe" + File.separator + "players.yml")); pllog = this; load(); save(); - players = this.getStringList("players"); } - public void clear() { - set("players", new ArrayList()); - save(); + public void loadPlayers() { + DataSource database = AuthMe.getInstance().database; + List list = this.getStringList("players"); + if (list == null || list.isEmpty()) + return; + for (String s : list) { + PlayerAuth auth = database.getAuth(s); + if (auth == null) + continue; + auth.setLastLogin(new Date().getTime()); + database.updateSession(auth); + PlayerCache.getInstance().addPlayer(auth); + } } public static PlayersLogs getInstance() { @@ -33,21 +47,18 @@ public class PlayersLogs extends CustomConfiguration { return pllog; } - public void addPlayer(String user) { - players = this.getStringList("players"); - if (!players.contains(user.toLowerCase())) { - players.add(user.toLowerCase()); - set("players", players); - save(); + public void savePlayerLogs() { + List players = new ArrayList(); + for (String s : PlayerCache.getInstance().getCache().keySet()) { + players.add(s); } + this.set("players", players); + this.save(); } - public void removePlayer(String user) { - players = this.getStringList("players"); - if (players.contains(user.toLowerCase())) { - players.remove(user.toLowerCase()); - set("players", players); - save(); - } + public void clear() { + this.set("players", new ArrayList()); + this.save(); } + } From a8194ac1ed1dd17e8301845b6c4bbddfe4058592 Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Fri, 10 Jul 2015 12:05:49 +0200 Subject: [PATCH 08/11] change repo order --- pom.xml | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/pom.xml b/pom.xml index a6bacb27e..e3c95a0dd 100644 --- a/pom.xml +++ b/pom.xml @@ -119,16 +119,10 @@ https://hub.spigotmc.org/nexus/content/repositories/snapshots - + - Plugin Metrics - http://repo.mcstats.org/content/repositories/releases - - - - - vault-repo - http://nexus.theyeticave.net/content/repositories/pub_releases + ess-repo + http://repo.ess3.net/content/groups/public @@ -137,24 +131,12 @@ http://repo.citizensnpcs.co - - - ess-repo - http://repo.ess3.net/content/groups/essentials - - minelink-thirdparty http://repo.minelink.net/content/repositories/public - - - luricos-releases - http://repo.luricos.de/content/repositories/bukkit-plugins - - comphenix-snapshots @@ -167,6 +149,24 @@ http://repo.onarandombox.com/content/repositories/multiverse + + + vault-repo + http://nexus.theyeticave.net/content/repositories/pub_releases + + + + + Plugin Metrics + http://repo.mcstats.org/content/repositories/releases + + + + + luricos-releases + http://repo.luricos.de/content/repositories/bukkit-plugins + + From d851eb5f077741c2578b75e5a0e89ca1fa01ce2a Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Fri, 10 Jul 2015 12:10:33 +0200 Subject: [PATCH 09/11] Change to provided as readme said --- pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e3c95a0dd..9817d3ab0 100644 --- a/pom.xml +++ b/pom.xml @@ -248,6 +248,7 @@ net.milkbowl.vault VaultAPI 1.5 + provided org.bukkit @@ -300,7 +301,7 @@ net.ess3 Essentials - 2.13-SNAPSHOT + 2.14-SNAPSHOT org.bukkit From 4b274b1ef60c84923ccb51396e2fbf8144fdd439 Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Fri, 10 Jul 2015 12:17:52 +0200 Subject: [PATCH 10/11] Some ignores --- pom.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pom.xml b/pom.xml index 9817d3ab0..f169390a1 100644 --- a/pom.xml +++ b/pom.xml @@ -328,6 +328,22 @@ org.bukkit craftbukkit + + net.minelink + CombatTagPlusCompat-* + + + net.minelink + CombatTagPlusHook + + + net.minelink + CombatTagPlusFactions-* + + + net.minelink + CombatTagPlusWG-* + From 2255b9b6dbfd5c04bc11cf5412a1a9e8b9283457 Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Fri, 10 Jul 2015 12:19:04 +0200 Subject: [PATCH 11/11] Revert previous commit --- pom.xml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/pom.xml b/pom.xml index f169390a1..9817d3ab0 100644 --- a/pom.xml +++ b/pom.xml @@ -328,22 +328,6 @@ org.bukkit craftbukkit - - net.minelink - CombatTagPlusCompat-* - - - net.minelink - CombatTagPlusHook - - - net.minelink - CombatTagPlusFactions-* - - - net.minelink - CombatTagPlusWG-* -