package xyz.etztech.qol.listeners; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerLoginEvent; import org.dynmap.markers.Marker; import xyz.etztech.qol.QoL; import xyz.etztech.qol.commands.CheckupCommand; import java.util.*; public class JoinListener implements Listener { private QoL plugin; public JoinListener(QoL plugin) { this.plugin = plugin; } @EventHandler public void onJoin(PlayerJoinEvent event) { // First login final Player player = event.getPlayer(); if (!player.hasPlayedBefore()) { Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> { for (Player p : Bukkit.getServer().getOnlinePlayers()) { if (player != p) { p.sendMessage(ChatColor.GREEN + player.getName() + " is new here! Be sure to welcome them!"); } else { p.sendMessage(ChatColor.GREEN + "Welcome, " + player.getName() + "! Check out /rules and then /apply!"); } } }, 30); // ~1.5 seconds } // Queue commands List queues = plugin.getConfig().getList("queue"); if (queues != null) { for (int i = 0; i < queues.size(); i++) { try { LinkedHashMap queue = (LinkedHashMap) queues.get(i); String permission = (String) queue.get("permission"); if (player.hasPermission(permission)) { for (String command : (List) queue.get("commands")) { plugin.runTask(command.replace("", player.getName())); } } } catch (Exception ignored) { } } } plugin.updatePlayerViewDistance(player); CheckupCommand.join(player); } }