Skip to content

Commit

Permalink
feat: 添加玩家加入事件处理
Browse files Browse the repository at this point in the history
  • Loading branch information
shulng committed Aug 7, 2024
1 parent f519d27 commit 84b6441
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 15 deletions.
7 changes: 7 additions & 0 deletions src/main/java/cc/baka9/catseedlogin/bukkit/CatSeedLogin.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import org.bukkit.command.PluginCommand;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;

Expand Down Expand Up @@ -142,6 +143,12 @@ public void onPlayerQuit(PlayerQuitEvent event) {
timeoutManager.onPlayerQuit(event.getPlayer().getName());
}

@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
// 当玩家加入时调用
timeoutManager.onPlayerJoin(event.getPlayer().getName());
}

@Override
public void onDisable(){
Task.cancelAll();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,27 +139,17 @@ public void onPlayerQuit(String playerName) {
long exitTime = System.currentTimeMillis();
playerExitTimes.put(playerName, exitTime);
System.out.println("玩家 " + playerName + " 退出,时间: " + exitTime);
System.out.println("当前退出时间记录: " + playerExitTimes);
}

public boolean onPlayerJoin(String playerName) {
long currentTime = System.currentTimeMillis();
Long exitTime = playerExitTimes.get(playerName);
System.out.println("玩家 " + playerName + " 退出,时间: " + exitTime);
System.out.println("玩家 " + playerName + " 加入,时间: " + currentTime);
System.out.println("玩家 " + playerName + " 退出时间: " + exitTime);
System.out.println("当前退出时间记录: " + playerExitTimes);

if (exitTime != null) {
// 检查是否超时
if (currentTime - exitTime > timeoutDuration) {
// 超时,返回false
return false;
} else {
// 未超时,返回true并清除记录
playerExitTimes.remove(playerName);
return true;
}
} else {
// 没有退出时间记录,可能是新玩家,返回false
return false;
}
return exitTime != null && currentTime - exitTime <= timeoutDuration ? playerExitTimes.remove(playerName) : false;
}


Expand Down

0 comments on commit 84b6441

Please sign in to comment.