50 lines
1.7 KiB
Java
50 lines
1.7 KiB
Java
package xyz.etztech.qol.listeners;
|
|
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.Listener;
|
|
import org.bukkit.event.player.PlayerLoginEvent;
|
|
import xyz.etztech.qol.QoL;
|
|
|
|
public class LoginListener implements Listener {
|
|
|
|
private QoL plugin;
|
|
|
|
public LoginListener(QoL plugin) {
|
|
this.plugin = plugin;
|
|
}
|
|
|
|
@EventHandler
|
|
public void onLogin(PlayerLoginEvent event) {
|
|
// Whitelist mode
|
|
if (QoL.getWhitelist() && !event.getPlayer().hasPermission("qol.whitelist.bypass")) {
|
|
event.disallow(PlayerLoginEvent.Result.KICK_WHITELIST, "QoL Whitelist is enabled. Please check back soon.");
|
|
}
|
|
|
|
// Player cap
|
|
int max = plugin.getConfig().getInt("server-list.max");
|
|
Player player = event.getPlayer();
|
|
if (max > 0 && Bukkit.getServer().getOnlinePlayers().size() >= max) {
|
|
if (player.hasPermission("qol.priority")) {
|
|
Bukkit.getConsoleSender().sendMessage(player.getName() + " has permission to bypass the player cap.");
|
|
} else {
|
|
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "The server is full!");
|
|
}
|
|
}
|
|
|
|
// First login
|
|
if (!player.hasPlayedBefore()) {
|
|
for (Player p : Bukkit.getServer().getOnlinePlayers()) {
|
|
if (p != player) {
|
|
p.sendMessage(ChatColor.YELLOW + player.getName() + " is new here!");
|
|
} else {
|
|
p.sendMessage(ChatColor.YELLOW + "Welcome, " + p.getName() + "! Check out /rules and then /apply!");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|