diff --git a/lib/BungeeCord.jar b/lib/BungeeCord.jar
deleted file mode 100644
index 6a71d747..00000000
Binary files a/lib/BungeeCord.jar and /dev/null differ
diff --git a/lib/SpoutPlugin.jar b/lib/SpoutPlugin.jar
index 6b378964..f206002e 100644
Binary files a/lib/SpoutPlugin.jar and b/lib/SpoutPlugin.jar differ
diff --git a/pom.xml b/pom.xml
index 2627a691..0bba9591 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,12 +28,12 @@
- 2.7.15b1
+ 2.7.16
org.bukkit
bukkit
- 1.5.1-R0.2
+ 1.5.2-R0.1
net.milkbowl.vault
@@ -59,7 +59,7 @@
org.getSpout
SpoutPlugin
- 1.4.7-R1.0-SNAPSHOT
+ 1.5.1-R0.3-SNAPSHOT
system
${project.basedir}/lib/SpoutPlugin.jar
@@ -118,13 +118,6 @@
2.5-b654
system
${project.basedir}/lib/Multiverse-Core-2.5.jar
-
-
- net.md-5
- bungeecord-api
- 1.5-SNAPSHOT
- system
- ${project.basedir}/lib/BungeeCord.jar
com.sun.mail
diff --git a/src/main/java/uk/org/whoami/authme/AuthMe.java b/src/main/java/uk/org/whoami/authme/AuthMe.java
index 037f8b25..634ebdb6 100644
--- a/src/main/java/uk/org/whoami/authme/AuthMe.java
+++ b/src/main/java/uk/org/whoami/authme/AuthMe.java
@@ -23,6 +23,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.Random;
+import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
@@ -53,6 +54,7 @@ import uk.org.whoami.authme.listener.AuthMeChestShopListener;
import uk.org.whoami.authme.listener.AuthMeEntityListener;
import uk.org.whoami.authme.listener.AuthMePlayerListener;
import uk.org.whoami.authme.listener.AuthMeSpoutListener;
+import uk.org.whoami.authme.plugin.manager.BungeeCordMessage;
import uk.org.whoami.authme.plugin.manager.CitizensCommunicator;
import uk.org.whoami.authme.plugin.manager.CombatTagComunicator;
import uk.org.whoami.authme.settings.Messages;
@@ -96,6 +98,7 @@ public class AuthMe extends JavaPlugin {
public API api;
public HashMap captcha = new HashMap();
public HashMap cap = new HashMap();
+ public HashMap realIp = new HashMap();
public MultiverseCore mv = null;
@Override
@@ -245,17 +248,19 @@ public class AuthMe extends JavaPlugin {
pm.registerEvents(new AuthMeChestShopListener(database, this), this);
ConsoleLogger.info("Successfully hook with ChestShop!");
}
+ if (Settings.bungee)
+ Bukkit.getMessenger().registerIncomingPluginChannel(this, "BungeeCord", new BungeeCordMessage(this));
//Find Permissions
- if(Settings.isPermissionCheckEnabled) {
- RegisteredServiceProvider permissionProvider =
+ if (pm.getPlugin("Vault") != null) {
+ RegisteredServiceProvider permissionProvider =
getServer().getServicesManager().getRegistration(net.milkbowl.vault.permission.Permission.class);
- if (permissionProvider != null)
- permission = permissionProvider.getProvider();
- else {
- ConsoleLogger.showError("Vault and Permissions plugins is needed for enable AuthMe Reloaded!");
- ConsoleLogger.showError("Server Shutdown for Security");
- this.getServer().shutdown();
+ if (permissionProvider != null) {
+ permission = permissionProvider.getProvider();
+ ConsoleLogger.info("Vault plugin detected, hook with " + permission.getName() + " system");
+ }
+ else {
+ ConsoleLogger.showError("Vault plugin is detected but not the permissions plugin!");
}
}
@@ -433,8 +438,13 @@ public class AuthMe extends JavaPlugin {
String name = player.getName().toLowerCase();
if ((PlayerCache.getInstance().isAuthenticated(name)) && (!player.isDead()) &&
(Settings.isSaveQuitLocationEnabled.booleanValue())) {
- PlayerAuth auth = new PlayerAuth(player.getName().toLowerCase(), (int)player.getLocation().getX(), (int)player.getLocation().getY(), (int)player.getLocation().getZ());
- this.database.updateQuitLoc(auth);
+ final PlayerAuth auth = new PlayerAuth(player.getName().toLowerCase(), (int)player.getLocation().getX(), (int)player.getLocation().getY(), (int)player.getLocation().getZ());
+ Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
+ @Override
+ public void run() {
+ database.updateQuitLoc(auth);
+ }
+ });
}
if (LimboCache.getInstance().hasLimboPlayer(name))
{
@@ -461,10 +471,6 @@ public class AuthMe extends JavaPlugin {
}
}
- public void setCitizensCommunicator(CitizensCommunicator citizens) {
- this.citizens = citizens;
- }
-
public CitizensCommunicator getCitizensCommunicator() {
return citizens;
}
@@ -483,14 +489,14 @@ public class AuthMe extends JavaPlugin {
for (i = 0 ; i <= players.length ; i++) {
Random rdm = new Random();
int a = rdm.nextInt(players.length);
- if (!(players[a].hasPermission("authme.vip"))) {
+ if (!(authmePermissible(players[a], "authme.vip"))) {
player = players[a];
break;
}
}
if (player == null) {
for (Player p : players) {
- if (!(p.hasPermission("authme.vip"))) {
+ if (!(authmePermissible(p, "authme.vip"))) {
player = p;
break;
}
@@ -498,5 +504,22 @@ public class AuthMe extends JavaPlugin {
}
return player;
}
+
+ public boolean authmePermissible(Player player, String perm) {
+ if (player.hasPermission(perm))
+ return true;
+ else if (permission != null) {
+ return permission.playerHas(player, perm);
+ }
+ return false;
+ }
+
+ public boolean authmePermissible(CommandSender sender, String perm) {
+ if (sender.hasPermission(perm)) return true;
+ else if (permission != null) {
+ return permission.has(sender, perm);
+ }
+ return false;
+ }
}
diff --git a/src/main/java/uk/org/whoami/authme/LogActions.java b/src/main/java/uk/org/whoami/authme/LogActions.java
deleted file mode 100644
index 79b65482..00000000
--- a/src/main/java/uk/org/whoami/authme/LogActions.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package uk.org.whoami.authme;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-
-/**
- *
- * @author stefano
- */
-public class LogActions {
-
- private boolean logData;
- private File dataLog;
- private boolean logMessages;
- private File messageLog;
- private String dataFolder;
- private String dLog,mLog;
-
- public LogActions() {
- try {
- if (logData)
- this.dataLog = new File(dataFolder, dLog);
- if (logMessages)
- this.messageLog = new File(dataFolder, mLog);
- } catch (Exception e){
-
- ConsoleLogger.showError("[AuthMe] Error opening logfiles; bad filename?");
- if (logData)
- this.dataLog = new File(dataFolder, "death_data.log");
- if (logMessages)
- this.messageLog = new File(dataFolder, "death_messages.log");
- }
- }
-
-
- @SuppressWarnings("unused")
- private void initFiles() {
- if (logData && !this.dataLog.exists()) {
- try {
- this.dataLog.createNewFile();
- BufferedWriter writer = new BufferedWriter(new FileWriter(this.dataLog,true));
- writer.write("#AuthMe Registration Log - This file stores serialized data on player regitration, changepassword and unregistration:");
- writer.newLine();
- writer.write("#Date | Time | Player | ip | Action [Register|ChangePassword|Unregister]");
- writer.newLine();
- writer.write("#Dont remove this file if you want to store all Registration Action");
- writer.newLine();
- writer.write("#If This file will become too big, rename it and let plugin create new one");
- writer.newLine();
- writer.close();
- } catch (IOException e) {
- ConsoleLogger.showError("[AuthMe] Error writing data log: ");
- e.printStackTrace();
- }
- }
- if (logMessages && !this.messageLog.exists()) {
- try {
- this.messageLog.createNewFile();
- BufferedWriter writer = new BufferedWriter(new FileWriter(this.messageLog,true));
- writer.write("#AuthMe Multiple Access Log - This file stores player Login, Wrong Password and Error");
- writer.newLine();
- writer.close();
- } catch (IOException e) {
- ConsoleLogger.showError("[AuthMe] Error writing message log: ");
- e.printStackTrace();
- }
- }
- }
-}
diff --git a/src/main/java/uk/org/whoami/authme/Management.java b/src/main/java/uk/org/whoami/authme/Management.java
index f8fd3631..b42ed74d 100644
--- a/src/main/java/uk/org/whoami/authme/Management.java
+++ b/src/main/java/uk/org/whoami/authme/Management.java
@@ -5,8 +5,6 @@ import java.util.Date;
import java.util.List;
import me.muizers.Notifications.Notification;
-import net.md_5.bungee.BungeeCord;
-import net.md_5.bungee.api.connection.ProxiedPlayer;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
@@ -68,15 +66,8 @@ public class Management {
public void run() {
String ip = player.getAddress().getAddress().getHostAddress();
if (Settings.bungee) {
- try {
- for (ProxiedPlayer pp : BungeeCord.getInstance().getPlayers()) {
- if (pp.getName().toLowerCase() == name) {
- ip = pp.getAddress().getAddress().getHostAddress();
- break;
- }
- }
- } catch (NoClassDefFoundError ncdfe) {
- }
+ if (plugin.realIp.containsKey(name))
+ ip = plugin.realIp.get(name);
}
World world = player.getWorld();
Location spawnLoc = world.getSpawnLocation();
@@ -502,7 +493,7 @@ public class Management {
}
for (Player player : AuthMe.getInstance().getServer().getOnlinePlayers()) {
- if (player.hasPermission("authme.seeOtherAccounts")) {
+ if (plugin.authmePermissible(player, "authme.seeOtherAccounts")) {
player.sendMessage("[AuthMe] The player " + auth.getNickname() + " has " + String.valueOf(accountList.size()) + " accounts");
player.sendMessage(message);
}
diff --git a/src/main/java/uk/org/whoami/authme/Utils.java b/src/main/java/uk/org/whoami/authme/Utils.java
index 6987a5f8..2e4bfd2b 100644
--- a/src/main/java/uk/org/whoami/authme/Utils.java
+++ b/src/main/java/uk/org/whoami/authme/Utils.java
@@ -173,7 +173,7 @@ public class Utils {
String token = generateToken();
writer.write(token+":"+System.currentTimeMillis()/1000+"\r\n");
writer.flush();
- System.out.println("[AuthMe] Security passpartu token: "+ token);
+ ConsoleLogger.info("[AuthMe] Security passpartu token: "+ token);
writer.close();
return true;
} catch(Exception e) {
diff --git a/src/main/java/uk/org/whoami/authme/commands/AdminCommand.java b/src/main/java/uk/org/whoami/authme/commands/AdminCommand.java
index ed9f89b0..a4acbc13 100644
--- a/src/main/java/uk/org/whoami/authme/commands/AdminCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/AdminCommand.java
@@ -91,7 +91,7 @@ public class AdminCommand implements CommandExecutor {
return true;
}
- if (!sender.hasPermission("authme.admin." + args[0].toLowerCase())) {
+ if (!plugin.authmePermissible(sender, "authme.admin." + args[0].toLowerCase())) {
sender.sendMessage(m._("no_perm"));
return true;
}
diff --git a/src/main/java/uk/org/whoami/authme/commands/CaptchaCommand.java b/src/main/java/uk/org/whoami/authme/commands/CaptchaCommand.java
index 406c4efe..cff9ca99 100644
--- a/src/main/java/uk/org/whoami/authme/commands/CaptchaCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/CaptchaCommand.java
@@ -42,7 +42,7 @@ public class CaptchaCommand implements CommandExecutor {
return true;
}
- if (!player.hasPermission("authme." + label.toLowerCase())) {
+ if (!plugin.authmePermissible(player, "authme." + label.toLowerCase())) {
player.sendMessage(m._("no_perm"));
return true;
}
diff --git a/src/main/java/uk/org/whoami/authme/commands/ChangePasswordCommand.java b/src/main/java/uk/org/whoami/authme/commands/ChangePasswordCommand.java
index 2c0d71e5..570b1830 100644
--- a/src/main/java/uk/org/whoami/authme/commands/ChangePasswordCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/ChangePasswordCommand.java
@@ -51,7 +51,7 @@ public class ChangePasswordCommand implements CommandExecutor {
return true;
}
- if (!sender.hasPermission("authme." + label.toLowerCase())) {
+ if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
sender.sendMessage(m._("no_perm"));
return true;
}
diff --git a/src/main/java/uk/org/whoami/authme/commands/EmailCommand.java b/src/main/java/uk/org/whoami/authme/commands/EmailCommand.java
index 54830dd1..2ee66e93 100644
--- a/src/main/java/uk/org/whoami/authme/commands/EmailCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/EmailCommand.java
@@ -53,7 +53,7 @@ public class EmailCommand implements CommandExecutor {
return true;
}
- if (!sender.hasPermission("authme." + label.toLowerCase())) {
+ if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
sender.sendMessage(m._("no_perm"));
return true;
}
diff --git a/src/main/java/uk/org/whoami/authme/commands/LoginCommand.java b/src/main/java/uk/org/whoami/authme/commands/LoginCommand.java
index e8c8f546..80e8ad1c 100644
--- a/src/main/java/uk/org/whoami/authme/commands/LoginCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/LoginCommand.java
@@ -46,7 +46,7 @@ public class LoginCommand implements CommandExecutor {
return true;
}
- if (!player.hasPermission("authme." + label.toLowerCase())) {
+ if (!plugin.authmePermissible(player, "authme." + label.toLowerCase())) {
player.sendMessage(m._("no_perm"));
return true;
}
diff --git a/src/main/java/uk/org/whoami/authme/commands/LogoutCommand.java b/src/main/java/uk/org/whoami/authme/commands/LogoutCommand.java
index ce6c1d84..9e9e1d50 100644
--- a/src/main/java/uk/org/whoami/authme/commands/LogoutCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/LogoutCommand.java
@@ -64,7 +64,7 @@ public class LogoutCommand implements CommandExecutor {
return true;
}
- if (!sender.hasPermission("authme." + label.toLowerCase())) {
+ if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
sender.sendMessage(m._("no_perm"));
return true;
}
diff --git a/src/main/java/uk/org/whoami/authme/commands/PasspartuCommand.java b/src/main/java/uk/org/whoami/authme/commands/PasspartuCommand.java
index f044f572..6bfafa9d 100644
--- a/src/main/java/uk/org/whoami/authme/commands/PasspartuCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/PasspartuCommand.java
@@ -14,6 +14,7 @@ import uk.org.whoami.authme.Management;
import uk.org.whoami.authme.Utils;
import uk.org.whoami.authme.cache.auth.PlayerCache;
import uk.org.whoami.authme.datasource.DataSource;
+import uk.org.whoami.authme.settings.Messages;
/**
*
@@ -23,6 +24,7 @@ public class PasspartuCommand implements CommandExecutor {
private Utils utils = new Utils();
private DataSource database;
public AuthMe plugin;
+ private Messages m;
public PasspartuCommand(DataSource database, AuthMe plugin) {
this.database = database;
@@ -30,7 +32,12 @@ public class PasspartuCommand implements CommandExecutor {
}
@Override
- public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
+ public boolean onCommand(CommandSender sender, Command cmnd, String label, String[] args) {
+
+ if (!plugin.authmePermissible(sender, "authme.admin." + args[0].toLowerCase())) {
+ sender.sendMessage(m._("no_perm"));
+ return true;
+ }
if (PlayerCache.getInstance().isAuthenticated(sender.getName().toLowerCase())) {
return true;
diff --git a/src/main/java/uk/org/whoami/authme/commands/RegisterCommand.java b/src/main/java/uk/org/whoami/authme/commands/RegisterCommand.java
index d858cc61..6e7a777f 100644
--- a/src/main/java/uk/org/whoami/authme/commands/RegisterCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/RegisterCommand.java
@@ -20,8 +20,6 @@ import java.security.NoSuchAlgorithmException;
import java.util.Date;
import me.muizers.Notifications.Notification;
-import net.md_5.bungee.BungeeCord;
-import net.md_5.bungee.api.connection.ProxiedPlayer;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
@@ -72,7 +70,7 @@ public class RegisterCommand implements CommandExecutor {
return true;
}
- if (!sender.hasPermission("authme." + label.toLowerCase())) {
+ if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
sender.sendMessage(m._("no_perm"));
return true;
}
@@ -82,15 +80,8 @@ public class RegisterCommand implements CommandExecutor {
String ipA = player.getAddress().getAddress().getHostAddress();
if (Settings.bungee) {
- try {
- for (ProxiedPlayer pp : BungeeCord.getInstance().getPlayers()) {
- if (pp.getName().toLowerCase() == name) {
- ipA = pp.getAddress().getAddress().getHostAddress();
- break;
- }
- }
- } catch (NoClassDefFoundError ncdfe) {
- }
+ if (plugin.realIp.containsKey(name))
+ ipA = plugin.realIp.get(name);
}
final String ip = ipA;
@@ -113,7 +104,7 @@ public class RegisterCommand implements CommandExecutor {
}
if(Settings.getmaxRegPerIp > 0 ){
- if(!sender.hasPermission("authme.allow2accounts") && database.getAllAuthsByIp(ipA).size() >= Settings.getmaxRegPerIp) {
+ if(!plugin.authmePermissible(sender, "authme.allow2accounts") && database.getAllAuthsByIp(ipA).size() >= Settings.getmaxRegPerIp) {
player.sendMessage(m._("max_reg"));
return true;
}
@@ -136,7 +127,7 @@ public class RegisterCommand implements CommandExecutor {
}
final String email = args[0];
if(Settings.getmaxRegPerEmail > 0) {
- if (!sender.hasPermission("authme.allow2accounts") && database.getAllAuthsByEmail(email).size() >= Settings.getmaxRegPerEmail) {
+ if (!plugin.authmePermissible(sender, "authme.allow2accounts") && database.getAllAuthsByEmail(email).size() >= Settings.getmaxRegPerEmail) {
player.sendMessage(m._("max_reg"));
return true;
}
@@ -144,7 +135,7 @@ public class RegisterCommand implements CommandExecutor {
RandomString rand = new RandomString(Settings.getRecoveryPassLength);
final String thePass = rand.nextString();
if (!thePass.isEmpty()) {
- Bukkit.getScheduler().runTask(plugin, new Runnable() {
+ Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
if (PasswordSecurity.userSalt.containsKey(name)) {
diff --git a/src/main/java/uk/org/whoami/authme/commands/UnregisterCommand.java b/src/main/java/uk/org/whoami/authme/commands/UnregisterCommand.java
index 252c1c97..09132ee2 100644
--- a/src/main/java/uk/org/whoami/authme/commands/UnregisterCommand.java
+++ b/src/main/java/uk/org/whoami/authme/commands/UnregisterCommand.java
@@ -64,7 +64,7 @@ public class UnregisterCommand implements CommandExecutor {
return true;
}
- if (!sender.hasPermission("authme." + label.toLowerCase())) {
+ if (!plugin.authmePermissible(sender, "authme." + label.toLowerCase())) {
sender.sendMessage(m._("no_perm"));
return true;
}
diff --git a/src/main/java/uk/org/whoami/authme/listener/AuthMePlayerListener.java b/src/main/java/uk/org/whoami/authme/listener/AuthMePlayerListener.java
index 4455276b..0a6e47f7 100644
--- a/src/main/java/uk/org/whoami/authme/listener/AuthMePlayerListener.java
+++ b/src/main/java/uk/org/whoami/authme/listener/AuthMePlayerListener.java
@@ -16,12 +16,12 @@
package uk.org.whoami.authme.listener;
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
-import net.md_5.bungee.BungeeCord;
-import net.md_5.bungee.api.connection.ProxiedPlayer;
-
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location;
@@ -582,7 +582,6 @@ public class AuthMePlayerListener implements Listener {
//Check if forceSingleSession is set to true, so kick player that has joined with same nick of online player
if(player.isOnline() && Settings.isForceSingleSessionEnabled ) {
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(player.getName().toLowerCase());
- //System.out.println(" limbo ? "+limbo.getGroup());
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, m._("same_nick"));
if(PlayerCache.getInstance().isAuthenticated(player.getName().toLowerCase())) {
utils.addNormal(player, limbo.getGroup());
@@ -615,9 +614,19 @@ public class AuthMePlayerListener implements Listener {
return;
}
}
+ if (Settings.bungee) {
+ ByteArrayOutputStream b = new ByteArrayOutputStream();
+ DataOutputStream out = new DataOutputStream(b);
+
+ try {
+ out.writeUTF("IP");
+ } catch (IOException e) {
+ }
+ player.sendPluginMessage(this.plugin, "BungeeCord", b.toByteArray());
+ }
if (event.getResult() != PlayerLoginEvent.Result.KICK_FULL) return;
if (player.isBanned()) return;
- if (!player.hasPermission("authme.vip")) {
+ if (!plugin.authmePermissible(player, "authme.vip")) {
event.disallow(Result.KICK_FULL, m._("kick_fullserver"));
return;
}
@@ -661,15 +670,8 @@ public class AuthMePlayerListener implements Listener {
String ip = player.getAddress().getAddress().getHostAddress();
if (Settings.bungee) {
- try {
- for (ProxiedPlayer pp : BungeeCord.getInstance().getPlayers()) {
- if (pp.getName().toLowerCase() == name) {
- ip = pp.getAddress().getAddress().getHostAddress();
- break;
- }
- }
- } catch (NoClassDefFoundError ncdfe) {
- }
+ if (plugin.realIp.containsKey(name))
+ ip = plugin.realIp.get(name);
}
if(Settings.isAllowRestrictedIp && !Settings.getRestrictedIp(name, ip)) {
int gM = gameMode.get(name);
@@ -774,7 +776,7 @@ public class AuthMePlayerListener implements Listener {
});
}
- @EventHandler(priority = EventPriority.MONITOR)
+ @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerQuit(PlayerQuitEvent event) {
if (event.getPlayer() == null) {
return;
@@ -789,7 +791,7 @@ public class AuthMePlayerListener implements Listener {
if (PlayerCache.getInstance().isAuthenticated(name) && !player.isDead()) {
if(Settings.isSaveQuitLocationEnabled && data.isAuthAvailable(name)) {
- final PlayerAuth auth = new PlayerAuth(event.getPlayer().getName().toLowerCase(),(int)player.getLocation().getX(),(int)player.getLocation().getY(),(int)player.getLocation().getZ());
+ final PlayerAuth auth = new PlayerAuth(event.getPlayer().getName().toLowerCase(),player.getLocation().getBlock().getX(),player.getLocation().getBlock().getY(),player.getLocation().getBlock().getZ());
try {
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
@@ -802,7 +804,6 @@ public class AuthMePlayerListener implements Listener {
}
if (LimboCache.getInstance().hasLimboPlayer(name)) {
- //System.out.println("e' nel quit");
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
if(Settings.protectInventoryBeforeLogInEnabled && player.hasPlayedBefore()) {
RestoreInventoryEvent ev = new RestoreInventoryEvent(player, limbo.getInventory(), limbo.getArmour());
@@ -813,7 +814,6 @@ public class AuthMePlayerListener implements Listener {
}
utils.addNormal(player, limbo.getGroup());
player.setOp(limbo.getOperator());
- //System.out.println("debug quit group reset "+limbo.getGroup());
this.plugin.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
LimboCache.getInstance().deleteLimboPlayer(name);
if(playerBackup.doesCacheExist(name)) {
@@ -937,7 +937,6 @@ public class AuthMePlayerListener implements Listener {
@EventHandler(priority = EventPriority.LOWEST)
public void onPlayerInteract(PlayerInteractEvent event) {
if (event.isCancelled() || event.getPlayer() == null) return;
- if (event.getClickedBlock() == null) return;
Player player = event.getPlayer();
String name = player.getName().toLowerCase();
@@ -955,18 +954,13 @@ public class AuthMePlayerListener implements Listener {
return;
}
}
-
- try {
- final int sign = event.getClickedBlock().getTypeId();
- if (sign == Material.SIGN_POST.getId() || sign == Material.WALL_SIGN.getId()) {
- event.setUseInteractedBlock(org.bukkit.event.Event.Result.DENY);
- }
- } catch (NullPointerException npe) {
- }
+ if (event.getClickedBlock() != null && event.getClickedBlock().getType() != Material.AIR)
+ event.setUseInteractedBlock(org.bukkit.event.Event.Result.DENY);
+ event.setUseItemInHand(org.bukkit.event.Event.Result.DENY);
event.setCancelled(true);
}
- @EventHandler(priority = EventPriority.MONITOR)
+ @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
if (event.isCancelled() || event.getPlayer() == null) {
return;
@@ -991,7 +985,7 @@ public class AuthMePlayerListener implements Listener {
event.setCancelled(true);
}
- @EventHandler(priority = EventPriority.MONITOR)
+ @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerDropItem(PlayerDropItemEvent event) {
if (event.isCancelled() || event.getPlayer() == null) {
return;
@@ -1015,7 +1009,7 @@ public class AuthMePlayerListener implements Listener {
event.setCancelled(true);
}
- @EventHandler(priority = EventPriority.MONITOR)
+ @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerBedEnter(PlayerBedEnterEvent event) {
if (event.isCancelled() || event.getPlayer() == null) {
return;
@@ -1062,4 +1056,5 @@ public class AuthMePlayerListener implements Listener {
}
event.setCancelled(true);
}
+
}
diff --git a/src/main/java/uk/org/whoami/authme/plugin/manager/BungeeCordMessage.java b/src/main/java/uk/org/whoami/authme/plugin/manager/BungeeCordMessage.java
new file mode 100644
index 00000000..365eb5fa
--- /dev/null
+++ b/src/main/java/uk/org/whoami/authme/plugin/manager/BungeeCordMessage.java
@@ -0,0 +1,24 @@
+package uk.org.whoami.authme.plugin.manager;
+
+import org.bukkit.entity.Player;
+import org.bukkit.plugin.messaging.PluginMessageListener;
+
+import uk.org.whoami.authme.AuthMe;
+import uk.org.whoami.authme.ConsoleLogger;
+
+public class BungeeCordMessage implements PluginMessageListener {
+
+ public AuthMe plugin;
+
+ public BungeeCordMessage(AuthMe plugin)
+ {
+ this.plugin = plugin;
+ }
+
+ @Override
+ public void onPluginMessageReceived(String channel, Player player, byte[] message) {
+ ConsoleLogger.info("PluginMessage send to " + player.getName() + " , the message was : " + message.toString());
+ plugin.realIp.put(player.getName().toLowerCase(), message.toString());
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/uk/org/whoami/authme/plugin/manager/CitizensCommunicator.java b/src/main/java/uk/org/whoami/authme/plugin/manager/CitizensCommunicator.java
index c5767471..be20207e 100644
--- a/src/main/java/uk/org/whoami/authme/plugin/manager/CitizensCommunicator.java
+++ b/src/main/java/uk/org/whoami/authme/plugin/manager/CitizensCommunicator.java
@@ -16,11 +16,17 @@ public class CitizensCommunicator {
}
public boolean isNPC(final Entity player, AuthMe instance) {
- if (instance.CitizensVersion == 1) {
- return CitizensManager.isNPC(player);
- } else if (instance.CitizensVersion == 2) {
- return CitizensAPI.getNPCRegistry().isNPC(player);
- } else {
+ try {
+ if (instance.CitizensVersion == 1) {
+ return CitizensManager.isNPC(player);
+ } else if (instance.CitizensVersion == 2) {
+ return CitizensAPI.getNPCRegistry().isNPC(player);
+ } else {
+ return false;
+ }
+ } catch (NoClassDefFoundError ncdfe) {
+ return false;
+ } catch (NullPointerException npe) {
return false;
}
}
diff --git a/src/main/java/uk/org/whoami/authme/settings/Settings.java b/src/main/java/uk/org/whoami/authme/settings/Settings.java
index 60e5ff39..80b53a9e 100644
--- a/src/main/java/uk/org/whoami/authme/settings/Settings.java
+++ b/src/main/java/uk/org/whoami/authme/settings/Settings.java
@@ -563,7 +563,7 @@ public void mergeConfig() {
}
public enum messagesLang {
- en, de, br, cz, pl, fr, ru, hu, sk, es, zhtw, fi, zhcn
+ en, de, br, cz, pl, fr, ru, hu, sk, es, zhtw, fi, zhcn, lt
}
}
diff --git a/src/main/resources/messages_fr.yml b/src/main/resources/messages_fr.yml
index 9dfb0fc1..3ebb7b8c 100644
--- a/src/main/resources/messages_fr.yml
+++ b/src/main/resources/messages_fr.yml
@@ -1,42 +1,43 @@
-unknown_user: '&fUtilisateur non enregistrer'
-unsafe_spawn: '&fTeleportation dans un endroit sur'
-not_logged_in: '&cNon connecter!'
-reg_voluntarily: '&fVous venez d arriver? faites un "/register motdepasse confirmermotdepasse"'
+# Traduction par: André
+unknown_user: '&fUtilisateur non enregistré'
+unsafe_spawn: '&fTéléportation dans un endroit sûr'
+not_logged_in: '&cNon connecté!'
+reg_voluntarily: '&fVous venez d''arriver? faites un "/register motdepasse confirmermotdepasse"'
usage_log: '&cUtilisez: /login motdepasse'
-wrong_pwd: '&cMauvais MotDePasse'
-unregistered: '&cVous avez ete desenregistrer!'
-reg_disabled: '&cL''enregistrement est desactiver'
-valid_session: '&cVous etes authentifier'
-login: '&cLogin effectuer!'
-vb_nonActiv: '&fCe compte n''est pas activer, consultez vos emails!'
-user_regged: '&cCe nom est deja utiliser'
+wrong_pwd: '&cMauvais MotdePasse'
+unregistered: '&cCe compte a été supprimé!'
+reg_disabled: '&cL''enregistrement est désactivé'
+valid_session: '&cVous êtes authentifié'
+login: '&cConnection effectuée!'
+vb_nonActiv: '&fCe compte n''est pas actif, consultez vos emails!'
+user_regged: '&cCe nom est deja utilisé..'
usage_reg: '&cUtilisez la commande /register motdepasse confirmermotdepasse'
-max_reg: '&fLimite d''enregistrement atteinte pour cet account'
+max_reg: '&fLimite d''enregistrement atteinte pour ce compte'
no_perm: '&cVous n''avez pas la permission'
error: '&fUne erreur est apparue, veuillez contacter un administrateur'
-login_msg: '&cConnectez-vous via un /login motdepasse'
-reg_msg: '&cUtilisez /register motdepasse confirmermotdepasse'
-usage_unreg: '&cUtilisez: /unregister password'
-pwd_changed: '&cMotdePasse changer avec succes!'
-user_unknown: '&c Ce pseudo n est pas enregistrer'
+login_msg: '&cPour vous connecter, utilisez: /login motdepasse'
+reg_msg: '&cPour vous inscrire, utilisez /register motdepasse confirmermotdepasse'
+usage_unreg: '&cPour supprimer ce compte, utilisez: /unregister password'
+pwd_changed: '&cMotdePasse changé avec succès!'
+user_unknown: '&c Ce compte n''est pas enregistré'
password_error: '&fCe mot de passe est incorrect'
unvalid_session: '&fSession invalide, relancez le jeu ou attendez la fin de la session'
-reg_only: '&fSeul les joueurs enregistrer sont admis!'
-logged_in: '&cVous etes deja connecter!'
-logout: '&cVous avez ete deconnecter'
-same_nick: '&fUne personne ayant ce pseudo joue deja !'
-registered: '&cEnregistrement reussi!'
-pass_len: '&fVotre mot de passe ne respecte pas les normes de longueurs'
-reload: '&fConfig et BDD ont ete relancer'
-timeout: '&fVous avez ete expulser, trop lent pour vous enregistrer !'
-usage_changepassword: '&fCommande /changepassword ancienmdp nouveaumdp'
+reg_only: '&fSeul les joueurs enregistré sont admis!'
+logged_in: '&cVous êtes déjà connecté!'
+logout: '&cVous avez été déconnecté!'
+same_nick: '&fUne personne ayant ce même pseudo joue deja..'
+registered: '&cEnregistrement réussi avec succès!'
+pass_len: '&fVotre mot de passe n''est pas assez long..'
+reload: '&fConfiguration et BDD relancé avec succès'
+timeout: '&fVous avez été expulsé car vous êtes trop lent pour vous enregistrer !'
+usage_changepassword: '&fPour changer de mot de passe, utilisez: /changepassword ancienmdp nouveaumdp'
name_len: '&cVotre pseudo est trop long ou trop court'
-regex: '&cVotre pseudo contient des caracteres interdits! Caracteres Autorises: REG_EX'
+regex: '&cCaractères autorisés: REG_EX'
add_email: '&cMerci d''ajouter votre email : /email add yourEmail confirmEmail'
bad_database_email: '[AuthMe] La commande /email est disponible uniquement pour MySQL et SQLite, contactez un Admin'
-recovery_email: '&cOublie de MotDePasse? Utilisez /email recovery '
-usage_captcha: '&cTrop de Mauvais MotDePasse, utilisez: /captcha '
-wrong_captcha: '&cCaptcha Incorrect, entrez de nouveau : /captcha THE_CAPTCHA'
-valid_captcha: '&cLe Captcha est valide, Merci!'
+recovery_email: '&cVous avez oublié votre MotdePasse? Utilisez /email recovery '
+usage_captcha: '&cTrop de tentatives de connexion échouées, utilisez: /captcha '
+wrong_captcha: '&cCaptcha incorrect, écrivez de nouveau : /captcha THE_CAPTCHA'
+valid_captcha: '&cLe Captcha est valide, merci!'
kick_forvip: '&cUn joueur VIP a rejoint le serveur plein!'
-kick_fullserver: '&cThe server is actually full, Sorry!'
\ No newline at end of file
+kick_fullserver: '&cLe serveur est actuellement plein, désolé!'
diff --git a/src/main/resources/messages_lt.yml b/src/main/resources/messages_lt.yml
new file mode 100644
index 00000000..6e6d482c
--- /dev/null
+++ b/src/main/resources/messages_lt.yml
@@ -0,0 +1,42 @@
+unknown_user: '&cNaudotojo nera duombazeje'
+unsafe_spawn: '&6Atsijungimo vieta nesaugi, perkeliame jus i atsiradimo vieta.'
+not_logged_in: '&cTu neprisijunges!'
+reg_voluntarily: '&ePrisiregistruokite: /register slaptazodis pakartotiSlaptazodi'
+usage_log: '&eKomandos panaudojimas: /login slaptazodis'
+wrong_pwd: '&cNeteisingas slaptazosdis'
+unregistered: '&aSekmingai issiregistravote!'
+reg_disabled: '&6Registracija yra isjungta'
+valid_session: '&aSesijos prisijungimas'
+login: '&aSekmingai prisijungete'
+vb_nonActiv: '&aJusu vartotojas nera patvirtintas, patikrinkite el.pasta.'
+user_regged: '&cVartotojo vardas jau uzregistruotas'
+usage_reg: '&eNaudojimas: /register slaptazodis pakartotiSlaptazodi'
+max_reg: '&cJus pasiekete maksimalu registraciju skaiciu.'
+no_perm: '&cNera leidimo'
+error: '&cAtsirado klaida, praneskite adminstratoriui.'
+login_msg: '&ePrasome prisijungti: /login slaptazodis'
+reg_msg: '&ePrasome prisiregistruoti: /register slaptazodis pakartotiSlaptazodi'
+usage_unreg: '&ePanaikinti registracija: /unregister slaptazodis"
+pwd_changed: '&aSlaptazodis pakeistas'
+user_unknown: '&cVartotojas neprisiregistraves'
+password_error: '&cSlaptazodziai nesutampa'
+unvalid_session: '&cSesijos laikai nesutampa, prasome palaukti kol secija baigsis.'
+reg_only: '&cTik prisiregistravusiem zaidejams: apsilankykite: http://example.com tam kad uzsiregistruoti.'
+logged_in: '&cTu aju prisijunges!'
+logout: '&aSekmingai atsijungete'
+same_nick: '&cKazkas situo vardu jau zaidzia.'
+registered: '&aSekmingai prisiregistravote.'
+pass_len: '&cJusu slaptazodis buvo per ilgas arba per trumpas.'
+reload: '&aNustatymai ir duomenu baze buvo perkrauta.'
+timeout: '&cNespejote prisijungti'
+usage_changepassword: '&ePanaudojimas: /changepassword senasSlaptazodis naujasSlaptazodis'
+name_len: '&cJusu varsdas yra per ilgas arba per trumpas.'
+regex: '&cJusu varde yra neledziamu simboliu, leidziami: REG_EX'
+add_email: '&ePrasau pridekite savo el.pasta : /email add Email confirmEmail'
+bad_database_email: '&c[AuthMe] si /email komanda leidziama tik su MySQL ir SQLite, susisiekite su administratorium'
+recovery_email: '&cPamirsote slaptazodi? Rasykite: /email recovery el.pastas'
+usage_captcha: '&cPanaudojimas: /captcha '
+wrong_captcha: '&cNeteisinga Captcha, naudokite : /captcha THE_CAPTCHA'
+valid_captcha: '&cJusu captcha Teisinga!'
+kick_forvip: '&cA VIP prisijunge i pilna serveri!'
+kick_fullserver: '&cServeris yra pilnas, Atsiprasome.'
\ No newline at end of file
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 63aab287..8a4112f1 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -3,7 +3,7 @@ author: darkwarriros,Xephi
website: http://www.multiplayer-italia.com/
description: AuthMe prevents people, which aren't logged in, from doing stuff like placing blocks, moving, typing commands or seeing the inventory of the current player.
main: uk.org.whoami.authme.AuthMe
-version: 2.7.15b1
+version: 2.7.16
softdepend: [Vault, ChestShop, Spout, Multiverse-Core, Notifications, Citizens, CombatTag]
commands:
register: