Skip to content

Commit

Permalink
Fixed bug cancelling tasks.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jaytak committed Oct 5, 2024
1 parent 34184ff commit 5dff47c
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 9 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ plugins {
}

group = 'com.jaytak'
version = '0.1.10'
version = '0.1.13'

repositories {
mavenCentral()
Expand Down
22 changes: 15 additions & 7 deletions src/main/java/com/jaytak/playerPingLogger/PlayerPingLogger.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,15 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public final class PlayerPingLogger extends JavaPlugin implements Listener {
private File historyFile;
private final List<String> players = new ArrayList<>();
private Map<String, Integer> playerTasks = new HashMap<>();


@Override
public void onEnable() {
Expand Down Expand Up @@ -50,27 +54,31 @@ public void onDisable() {
public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
String playerName = player.getName();
JTLogger("Player " + player.getName() + " joined.");
if (players.contains(playerName)){
JTLogger("Player " + playerName + " joined.");

if (players.contains(playerName)) {
JTLogger("Task already running for player " + playerName);
return;
}
else{
} else {
players.add(playerName);
JTLogger("Creating new task for player " + playerName);
}
Bukkit.getScheduler().runTaskTimer(this, new Runnable() {

int taskId = Bukkit.getScheduler().runTaskTimer(this, new Runnable() {
@Override
public void run() {
if (player.isOnline()) {
JTLogger("Player " + playerName + "'s ping: " + player.getPing() + "ms");
} else {
JTLogger("Player " + playerName + " disconnected before capturing further ping measurements.");
players.remove(playerName);
Bukkit.getScheduler().cancelTasks(PlayerPingLogger.this);
Bukkit.getScheduler().cancelTask(playerTasks.get(playerName));
playerTasks.remove(playerName);
}
}
}, 0, 20 * 60);
}, 0, 20 * 60).getTaskId();

playerTasks.put(playerName, taskId);
}


Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: PlayerPingLogger
version: '0.1.10'
version: '0.1.13'
main: com.jaytak.playerPingLogger.PlayerPingLogger
api-version: '1.21'

0 comments on commit 5dff47c

Please sign in to comment.