Add VIP Slots method

This commit is contained in:
Xephi
2013-04-03 03:21:33 +02:00
parent 6485acca53
commit 468aaa18a3
18 changed files with 77 additions and 12 deletions
+15 -1
View File
@@ -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;
}
}
@@ -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"));
}
}
}
@@ -73,6 +73,8 @@ public class Messages extends CustomConfiguration {
this.set("usage_captcha", "&cUsage: /captcha <theCaptcha>");
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() {