Dateien nach "src/main/java/craftersland/eco/bridge/events" hochladen

This commit is contained in:
2025-08-12 22:09:19 +00:00
parent b7db1c4c9c
commit 13333130a4
2 changed files with 113 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
package net.craftersland.eco.bridge.events;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerQuitEvent;
import net.craftersland.eco.bridge.Eco;
public class PlayerDisconnect implements Listener {
private Eco eco;
public PlayerDisconnect(Eco eco) {
this.eco = eco;
}
@EventHandler
public void onDisconnect(final PlayerQuitEvent event) {
Bukkit.getScheduler().runTaskLaterAsynchronously(eco, new Runnable() {
@Override
public void run() {
if (event.getPlayer() != null) {
Player p = event.getPlayer();
cleanup(p);
eco.getEcoDataHandler().onDataSaveFunction(p, true, "true", false);
}
}
}, 1L);
}
private void cleanup(Player p) {
if (eco.syncCompleteTasks.containsKey(p) == true) {
Bukkit.getScheduler().cancelTask(eco.syncCompleteTasks.get(p));
eco.syncCompleteTasks.remove(p);
}
}
}

View File

@@ -0,0 +1,71 @@
package net.craftersland.eco.bridge.events;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.scheduler.BukkitTask;
import net.craftersland.eco.bridge.Eco;
public class PlayerJoin implements Listener {
private Eco eco;
public PlayerJoin(Eco eco) {
this.eco = eco;
}
@EventHandler
public void onJoin(final PlayerJoinEvent event) {
Bukkit.getScheduler().runTaskLaterAsynchronously(eco, new Runnable() {
@Override
public void run() {
if (event.getPlayer() != null) {
if (event.getPlayer().isOnline() == true) {
Player p = event.getPlayer();
eco.getEcoDataHandler().onJoinFunction(p);
syncCompleteTask(p);
}
}
}
}, 5L);
}
private void syncCompleteTask(final Player p) {
if (p != null) {
if (p.isOnline() == true) {
final long startTime = System.currentTimeMillis();
BukkitTask task = Bukkit.getScheduler().runTaskTimerAsynchronously(eco, new Runnable() {
@Override
public void run() {
if (p.isOnline() == true) {
if (eco.getEcoDataHandler().isSyncComplete(p)) {
if (eco.syncCompleteTasks.containsKey(p) == true) {
int taskID = eco.syncCompleteTasks.get(p);
eco.syncCompleteTasks.remove(p);
Bukkit.getScheduler().cancelTask(taskID);
}
} else {
if (System.currentTimeMillis() - startTime >= 10 * 1000) {
if (eco.syncCompleteTasks.containsKey(p) == true) {
int taskID = eco.syncCompleteTasks.get(p);
eco.syncCompleteTasks.remove(p);
Bukkit.getScheduler().cancelTask(taskID);
}
}
}
}
}
}, 5L, 20L);
eco.syncCompleteTasks.put(p, task.getTaskId());
}
}
}
}