src/main/java/de/viper/survivalplus/listeners/AFKListener.java aktualisiert
This commit is contained in:
@@ -1,120 +1,120 @@
|
|||||||
package de.viper.survivalplus.listeners;
|
package de.viper.survivalplus.listeners;
|
||||||
|
|
||||||
import de.viper.survivalplus.SurvivalPlus;
|
import de.viper.survivalplus.SurvivalPlus;
|
||||||
import de.viper.survivalplus.tasks.AFKManager;
|
import de.viper.survivalplus.tasks.AFKManager;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.*;
|
import org.bukkit.event.player.*;
|
||||||
import org.bukkit.event.block.BlockBreakEvent;
|
import org.bukkit.event.block.BlockBreakEvent;
|
||||||
import org.bukkit.event.block.BlockPlaceEvent;
|
import org.bukkit.event.block.BlockPlaceEvent;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
public class AFKListener implements Listener {
|
public class AFKListener implements Listener {
|
||||||
|
|
||||||
private final SurvivalPlus plugin;
|
private final SurvivalPlus plugin;
|
||||||
private AFKManager afkManager;
|
private AFKManager afkManager;
|
||||||
private boolean afkEnabled;
|
private boolean afkEnabled;
|
||||||
private FileConfiguration config;
|
private FileConfiguration config;
|
||||||
|
|
||||||
private BukkitRunnable afkTask;
|
private BukkitRunnable afkTask;
|
||||||
|
|
||||||
public AFKListener(SurvivalPlus plugin) {
|
public AFKListener(SurvivalPlus plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.config = plugin.getConfig();
|
this.config = plugin.getConfig();
|
||||||
loadSettings();
|
loadSettings();
|
||||||
|
|
||||||
if (afkEnabled) {
|
if (afkEnabled) {
|
||||||
startTask();
|
startTask();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadSettings() {
|
private void loadSettings() {
|
||||||
this.afkEnabled = config.getBoolean("afk.enabled", true);
|
this.afkEnabled = config.getBoolean("afk.enabled", true);
|
||||||
|
|
||||||
long afkAfter = config.getLong("afk.afk-after-seconds", 300);
|
long afkAfter = config.getLong("afk.afk-after-seconds", 300);
|
||||||
long kickAfter = config.getLong("afk.kick-after-seconds", 0);
|
long kickAfter = config.getLong("afk.kick-after-seconds", 0);
|
||||||
this.afkManager = new AFKManager(plugin, afkAfter, kickAfter);
|
this.afkManager = new AFKManager(plugin, afkAfter, kickAfter);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startTask() {
|
private void startTask() {
|
||||||
if (afkTask != null) {
|
if (afkTask != null) {
|
||||||
afkTask.cancel();
|
afkTask.cancel();
|
||||||
}
|
}
|
||||||
afkTask = new BukkitRunnable() {
|
afkTask = new BukkitRunnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||||
afkManager.checkAFKStatus(player);
|
afkManager.checkAFKStatus(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
afkTask.runTaskTimer(plugin, 20L, 100L);
|
afkTask.runTaskTimer(plugin, 60L, 100L); // Start nach 3 Sekunden (60 Ticks), dann alle 5 Sekunden (100 Ticks)
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleActivity(Player player) {
|
private void handleActivity(Player player) {
|
||||||
if (!afkEnabled) return;
|
if (!afkEnabled) return;
|
||||||
|
|
||||||
afkManager.updateActivity(player);
|
afkManager.updateActivity(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@org.bukkit.event.EventHandler
|
@org.bukkit.event.EventHandler
|
||||||
public void onMove(PlayerMoveEvent event) {
|
public void onMove(PlayerMoveEvent event) {
|
||||||
if (!event.getFrom().toVector().equals(event.getTo().toVector())) {
|
if (!event.getFrom().toVector().equals(event.getTo().toVector())) {
|
||||||
handleActivity(event.getPlayer());
|
handleActivity(event.getPlayer());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@org.bukkit.event.EventHandler
|
@org.bukkit.event.EventHandler
|
||||||
public void onChat(AsyncPlayerChatEvent event) {
|
public void onChat(AsyncPlayerChatEvent event) {
|
||||||
handleActivity(event.getPlayer());
|
handleActivity(event.getPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
@org.bukkit.event.EventHandler
|
@org.bukkit.event.EventHandler
|
||||||
public void onInteract(PlayerInteractEvent event) {
|
public void onInteract(PlayerInteractEvent event) {
|
||||||
handleActivity(event.getPlayer());
|
handleActivity(event.getPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
@org.bukkit.event.EventHandler
|
@org.bukkit.event.EventHandler
|
||||||
public void onInventoryClick(InventoryClickEvent event) {
|
public void onInventoryClick(InventoryClickEvent event) {
|
||||||
if (event.getWhoClicked() instanceof Player player) {
|
if (event.getWhoClicked() instanceof Player player) {
|
||||||
handleActivity(player);
|
handleActivity(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@org.bukkit.event.EventHandler
|
@org.bukkit.event.EventHandler
|
||||||
public void onBlockPlace(BlockPlaceEvent event) {
|
public void onBlockPlace(BlockPlaceEvent event) {
|
||||||
handleActivity(event.getPlayer());
|
handleActivity(event.getPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
@org.bukkit.event.EventHandler
|
@org.bukkit.event.EventHandler
|
||||||
public void onBlockBreak(BlockBreakEvent event) {
|
public void onBlockBreak(BlockBreakEvent event) {
|
||||||
handleActivity(event.getPlayer());
|
handleActivity(event.getPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
@org.bukkit.event.EventHandler
|
@org.bukkit.event.EventHandler
|
||||||
public void onJoin(PlayerJoinEvent event) {
|
public void onJoin(PlayerJoinEvent event) {
|
||||||
afkManager.updateActivity(event.getPlayer());
|
afkManager.updateActivity(event.getPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
@org.bukkit.event.EventHandler
|
@org.bukkit.event.EventHandler
|
||||||
public void onQuit(PlayerQuitEvent event) {
|
public void onQuit(PlayerQuitEvent event) {
|
||||||
afkManager.reset(event.getPlayer());
|
afkManager.reset(event.getPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reloadConfig(FileConfiguration config) {
|
public void reloadConfig(FileConfiguration config) {
|
||||||
this.config = config;
|
this.config = config;
|
||||||
loadSettings();
|
loadSettings();
|
||||||
|
|
||||||
if (afkTask != null) {
|
if (afkTask != null) {
|
||||||
afkTask.cancel();
|
afkTask.cancel();
|
||||||
afkTask = null;
|
afkTask = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (afkEnabled) {
|
if (afkEnabled) {
|
||||||
startTask();
|
startTask();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user