QoL/src/main/java/xyz/etztech/qol/listeners/JoinListener.java

66 lines
2.1 KiB
Java
Raw Normal View History

package xyz.etztech.qol.listeners;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
2018-12-08 22:34:57 +00:00
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;
2019-10-09 16:30:54 +00:00
import org.dynmap.markers.Marker;
import xyz.etztech.qol.QoL;
2019-09-30 17:15:29 +00:00
import xyz.etztech.qol.commands.CheckupCommand;
2019-09-30 17:15:29 +00:00
import java.util.*;
2018-12-08 22:34:57 +00:00
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
2018-12-08 22:34:57 +00:00
}
2018-12-08 22:34:57 +00:00
// 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<String>) queue.get("commands")) {
plugin.runTask(command.replace("<player>", player.getName()));
}
2018-12-08 22:34:57 +00:00
}
} catch (Exception ignored) {
2018-12-08 22:34:57 +00:00
}
}
}
2018-12-08 22:34:57 +00:00
plugin.updatePlayerViewDistance(player);
2019-09-30 17:15:29 +00:00
CheckupCommand.join(player);
}
}