2018-09-23 22:46:09 +00:00
|
|
|
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;
|
2018-09-23 22:46:09 +00:00
|
|
|
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 xyz.etztech.qol.QoL;
|
|
|
|
|
2018-12-08 22:34:57 +00:00
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.LinkedHashMap;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
|
2018-09-23 22:46:09 +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-09-23 22:46:09 +00:00
|
|
|
|
2018-12-08 22:34:57 +00:00
|
|
|
// Queue commands
|
|
|
|
List<?> queues = plugin.getConfig().getList("queue");
|
2019-02-27 17:00:56 +00:00
|
|
|
|
|
|
|
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
|
|
|
}
|
2019-02-27 17:00:56 +00:00
|
|
|
} catch (Exception ignored) {
|
2018-12-08 22:34:57 +00:00
|
|
|
}
|
2019-02-27 17:00:56 +00:00
|
|
|
}
|
2018-09-23 22:46:09 +00:00
|
|
|
}
|
2018-12-08 22:34:57 +00:00
|
|
|
|
2019-02-27 17:00:56 +00:00
|
|
|
plugin.updatePlayerViewDistance(player);
|
|
|
|
|
2018-09-23 22:46:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|