diff --git a/pom.xml b/pom.xml
index 3153bbb8d..018ea2e87 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
- 2.7.13b1
+ 2.7.13b2
org.bukkit
diff --git a/src/main/java/uk/org/whoami/authme/AuthMe.java b/src/main/java/uk/org/whoami/authme/AuthMe.java
index 09fb63117..7cd12665f 100644
--- a/src/main/java/uk/org/whoami/authme/AuthMe.java
+++ b/src/main/java/uk/org/whoami/authme/AuthMe.java
@@ -21,6 +21,7 @@ import java.io.IOException;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
+import java.util.Random;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
@@ -255,7 +256,6 @@ public class AuthMe extends JavaPlugin {
if (permissionProvider != null)
permission = permissionProvider.getProvider();
else {
-
ConsoleLogger.showError("Vault and Permissions plugins is needed for enable AuthMe Reloaded!");
this.getServer().getPluginManager().disablePlugin(this);
}
@@ -498,4 +498,18 @@ public class AuthMe extends JavaPlugin {
return m;
}
+ public Player generateKickPlayer(Player[] players) {
+ Player player = null;
+ int i;
+ for (i = 0 ; i <= players.length ; i++) {
+ Random rdm = new Random();
+ int a = rdm.nextInt(players.length);
+ if (!players[a].hasPermission("authme.vip")) {
+ player = players[a];
+ break;
+ }
+ }
+ return player;
+ }
+
}
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 0b6616b36..ed2518a5e 100644
--- a/src/main/java/uk/org/whoami/authme/listener/AuthMePlayerListener.java
+++ b/src/main/java/uk/org/whoami/authme/listener/AuthMePlayerListener.java
@@ -566,7 +566,7 @@ public class AuthMePlayerListener implements Listener {
}
- @EventHandler(priority = EventPriority.LOWEST)
+ @EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerLogin(PlayerLoginEvent event) {
final Player player = event.getPlayer();
@@ -652,6 +652,26 @@ public class AuthMePlayerListener implements Listener {
return;
}
}
+ if (event.getResult() != Result.KICK_FULL) return;
+ if (player.isBanned()) return;
+ if (!player.hasPermission("authme.vip")) {
+ event.disallow(Result.KICK_FULL, m._("kick_fullserver"));
+ return;
+ }
+ if (plugin.getServer().getOnlinePlayers().length > plugin.getServer().getMaxPlayers()) {
+ event.allow();
+ return;
+ } else {
+ final Player pl = plugin.generateKickPlayer(plugin.getServer().getOnlinePlayers());
+ if (pl != null) {
+ pl.kickPlayer(m._("kick_forvip"));
+ event.allow();
+ return;
+ } else {
+ ConsoleLogger.info("The player " + player.getName() + " wants to join, but the server is full");
+ event.disallow(Result.KICK_FULL, m._("kick_fullserver"));
+ }
+ }
}
diff --git a/src/main/java/uk/org/whoami/authme/settings/Messages.java b/src/main/java/uk/org/whoami/authme/settings/Messages.java
index 7ae9cbb40..630a90c34 100644
--- a/src/main/java/uk/org/whoami/authme/settings/Messages.java
+++ b/src/main/java/uk/org/whoami/authme/settings/Messages.java
@@ -73,6 +73,8 @@ public class Messages extends CustomConfiguration {
this.set("usage_captcha", "&cUsage: /captcha ");
this.set("wrong_captcha", "&cWrong Captcha, please use : /captcha THE_CAPTCHA");
this.set("valid_captcha", "&cYour captcha is valid !");
+ this.set("kick_forvip", "&cA VIP Player join the full server!");
+ this.set("kick_fullserver", "&cThe server is actually full, Sorry!");
}
private void loadFile() {
diff --git a/src/main/resources/messages_br.yml b/src/main/resources/messages_br.yml
index 10c8fe51d..e9eb200a1 100644
--- a/src/main/resources/messages_br.yml
+++ b/src/main/resources/messages_br.yml
@@ -35,4 +35,6 @@ bad_database_email: '[AuthMe] This /email command only available with MySQL and
recovery_email: '&cForgot your password? Please use /email recovery '
usage_captcha: '&cUsage: /captcha '
wrong_captcha: '&cWrong Captcha, please use : /captcha THE_CAPTCHA'
-valid_captcha: '&cYour captcha is valid !'
\ No newline at end of file
+valid_captcha: '&cYour captcha is valid !'
+kick_forvip: '&cA VIP Player join the full server!'
+kick_fullserver: '&cThe server is actually full, Sorry!'
\ No newline at end of file
diff --git a/src/main/resources/messages_cz.yml b/src/main/resources/messages_cz.yml
index 1546bffce..1d0e5a14e 100644
--- a/src/main/resources/messages_cz.yml
+++ b/src/main/resources/messages_cz.yml
@@ -37,4 +37,6 @@ bad_database_email: '[AuthMe] This /email command only available with MySQL and
recovery_email: '&cForgot your password? Please use /email recovery '
usage_captcha: '&cUsage: /captcha '
wrong_captcha: '&cWrong Captcha, please use : /captcha THE_CAPTCHA'
-valid_captcha: '&cYour captcha is valid !'
\ No newline at end of file
+valid_captcha: '&cYour captcha is valid !'
+kick_forvip: '&cA VIP Player join the full server!'
+kick_fullserver: '&cThe server is actually full, Sorry!'
\ No newline at end of file
diff --git a/src/main/resources/messages_de.yml b/src/main/resources/messages_de.yml
index 142610737..92dfadc7b 100644
--- a/src/main/resources/messages_de.yml
+++ b/src/main/resources/messages_de.yml
@@ -38,4 +38,6 @@ bad_database_email: '[AuthMe] This /email command only available with MySQL and
recovery_email: '&cForgot your password? Please use /email recovery '
usage_captcha: '&cUsage: /captcha '
wrong_captcha: '&cWrong Captcha, please use : /captcha THE_CAPTCHA'
-valid_captcha: '&cYour captcha is valid !'
\ No newline at end of file
+valid_captcha: '&cYour captcha is valid !'
+kick_forvip: '&cA VIP Player join the full server!'
+kick_fullserver: '&cThe server is actually full, Sorry!'
\ No newline at end of file
diff --git a/src/main/resources/messages_en.yml b/src/main/resources/messages_en.yml
index 846cb60fa..273ed5d5c 100644
--- a/src/main/resources/messages_en.yml
+++ b/src/main/resources/messages_en.yml
@@ -38,5 +38,6 @@ recovery_email: '&cForgot your password? Please use /email recovery '
usage_captcha: '&cUsage: /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!'
diff --git a/src/main/resources/messages_es.yml b/src/main/resources/messages_es.yml
index da2682b70..72f29bc06 100644
--- a/src/main/resources/messages_es.yml
+++ b/src/main/resources/messages_es.yml
@@ -39,3 +39,5 @@ recovery_email: '&c¿Olvidaste tu contraseña? Por favor usa /email recovery '
wrong_captcha: '&cCaptcha incorrecto, please use : /captcha EL_CAPTCHA'
valid_captcha: '&c¡ Captcha ingresado correctamente !'
+kick_forvip: '&cA VIP Player join the full server!'
+kick_fullserver: '&cThe server is actually full, Sorry!'
\ No newline at end of file
diff --git a/src/main/resources/messages_fi.yml b/src/main/resources/messages_fi.yml
index b8606be7e..316701991 100644
--- a/src/main/resources/messages_fi.yml
+++ b/src/main/resources/messages_fi.yml
@@ -38,5 +38,5 @@ recovery_email: '&cUnohtuiko salasana?'
usage_captcha: '&cKäyttö: /captcha '
wrong_captcha: '&cVäärä varmistus, käytä : /captcha THE_CAPTCHA'
valid_captcha: '&cSinun varmistus epäonnistui.!'
-
-
+kick_forvip: '&cA VIP Player join the full server!'
+kick_fullserver: '&cThe server is actually full, Sorry!'
diff --git a/src/main/resources/messages_fr.yml b/src/main/resources/messages_fr.yml
index 60b4982fe..9dfb0fc15 100644
--- a/src/main/resources/messages_fr.yml
+++ b/src/main/resources/messages_fr.yml
@@ -37,4 +37,6 @@ bad_database_email: '[AuthMe] La commande /email est disponible uniquement pour
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!'
\ No newline at end of file
+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
diff --git a/src/main/resources/messages_hu.yml b/src/main/resources/messages_hu.yml
index 0f302655d..6639f0d1e 100644
--- a/src/main/resources/messages_hu.yml
+++ b/src/main/resources/messages_hu.yml
@@ -38,3 +38,5 @@ recovery_email: '&cForgot your password? Please use /email recovery '
usage_captcha: '&cUsage: /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!'
diff --git a/src/main/resources/messages_pl.yml b/src/main/resources/messages_pl.yml
index e0d129382..dc2c946b0 100644
--- a/src/main/resources/messages_pl.yml
+++ b/src/main/resources/messages_pl.yml
@@ -38,3 +38,5 @@ recovery_email: '&cForgot your password? Please use /email recovery '
usage_captcha: '&cUsage: /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!'
diff --git a/src/main/resources/messages_ru.yml b/src/main/resources/messages_ru.yml
index 488b17167..fe061a468 100644
--- a/src/main/resources/messages_ru.yml
+++ b/src/main/resources/messages_ru.yml
@@ -40,3 +40,8 @@ add_email: '&eДобавь свой email: &d/email add АДРЕС_ПОЧТЫ П
bad_database_email: '&c[AuthMe] Команда &d/email&c доступна только при работе с MySQL
или SQLite'
recovery_email: '&cЗабыл пароль? Используй команду &d/email recovery <АДРЕС_ПОЧТЫ>'
+usage_captcha: '&cUsage: /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!'
diff --git a/src/main/resources/messages_sk.yml b/src/main/resources/messages_sk.yml
index 38f23846b..e3e3e36f0 100644
--- a/src/main/resources/messages_sk.yml
+++ b/src/main/resources/messages_sk.yml
@@ -41,4 +41,6 @@ bad_database_email: '[AuthMe] Tento príkaz je dostupny iba pri MySQL SQLite'
recovery_email: '&cZabudol si heslo? Pouzi príkaz /email recovery '
usage_captcha: '&cUsage: /captcha '
wrong_captcha: '&cWrong Captcha, please use : /captcha THE_CAPTCHA'
-valid_captcha: '&cYour captcha is valid !'
\ No newline at end of file
+valid_captcha: '&cYour captcha is valid !'
+kick_forvip: '&cA VIP Player join the full server!'
+kick_fullserver: '&cThe server is actually full, Sorry!'
\ No newline at end of file
diff --git a/src/main/resources/messages_zhcn.yml b/src/main/resources/messages_zhcn.yml
index e090055cf..f69de08af 100644
--- a/src/main/resources/messages_zhcn.yml
+++ b/src/main/resources/messages_zhcn.yml
@@ -38,3 +38,5 @@ recovery_email: '&c忘了你的密码?请输入:“/email recovery <你的
usage_captcha: '&c正确用法:/captcha <验证码>'
wrong_captcha: '&c错误的验证码,请输入:“/captcha <验证码>”'
valid_captcha: '&c你的验证码是有效的!'
+kick_forvip: '&cA VIP Player join the full server!'
+kick_fullserver: '&cThe server is actually full, Sorry!'
diff --git a/src/main/resources/messages_zhtw.yml b/src/main/resources/messages_zhtw.yml
index 65be7a92f..886752fdf 100644
--- a/src/main/resources/messages_zhtw.yml
+++ b/src/main/resources/messages_zhtw.yml
@@ -38,3 +38,5 @@ recovery_email: '&c忘記密碼 ? 請使用這個的指令來更新密碼 :
usage_captcha: '&c用法 : 《 /captcha <驗證碼> 》'
wrong_captcha: '&c你輸入了錯誤的驗證碼,請使用 《 /captcha <驗證碼> 》 再次輸入 。'
valid_captcha: '&c你的驗證碼是無效的 !'
+kick_forvip: '&cA VIP Player join the full server!'
+kick_fullserver: '&cThe server is actually full, Sorry!'
\ No newline at end of file
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 08688423c..03553ef62 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.13
+version: 2.7.13b2
softdepend: [Vault, ChestShop, Spout, Multiverse-Core, Notifications, Citizens, CombatTag]
commands:
register:
@@ -131,4 +131,7 @@ permissions:
default: op
authme.admin.spawn:
description: Teleport to AuthMe spawn point
+ default: op
+ authme.vip:
+ description: Allow vip slot when the server is full
default: op
\ No newline at end of file