feat: 修复数据保存增加异步
This commit is contained in:
@@ -47,18 +47,16 @@ public class AuOnlineReward extends JavaPlugin {
|
||||
}
|
||||
|
||||
public void startOnlineTimeTask() {
|
||||
Bukkit.getScheduler().runTaskTimerAsynchronously(this, () -> {
|
||||
Bukkit.getScheduler().runTaskTimer(this, () -> {
|
||||
RefreshData refreshData = DataRefreshUtil.getSetting("OnlineDaily");
|
||||
if(refreshData != null && !refreshData.isSameDayAsRecord()){
|
||||
refreshData.setRecordTime(System.currentTimeMillis());
|
||||
DataRefreshUtil.SaveRefreshDataRecord(refreshData);
|
||||
// 每日数据刷新处理
|
||||
getPlayerManager().clearAllPlayerData();
|
||||
getPlayerManager().refreshLocalPlayerData(TimeType.DAILY);
|
||||
return;
|
||||
}
|
||||
if(TimeCheckUtil.isMonthlySettleAccounts()){
|
||||
getPlayerManager().clearAllPlayerData();
|
||||
getPlayerManager().refreshLocalPlayerData(TimeType.MONTHLY);
|
||||
return;
|
||||
}
|
||||
@@ -73,12 +71,16 @@ public class AuOnlineReward extends JavaPlugin {
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
getPlayerManager().saveAllPlayerData();
|
||||
getPlayerManager().clearAllPlayerData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if(args.length == 1 && args[0].equalsIgnoreCase("open")){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage("§c该命令只能由玩家执行.");
|
||||
return true;
|
||||
}
|
||||
OnlineGui.OpenGui((Player) sender);
|
||||
return true;
|
||||
}
|
||||
@@ -135,15 +137,28 @@ public class AuOnlineReward extends JavaPlugin {
|
||||
if("top".equalsIgnoreCase(args[0]) || "topDay".equalsIgnoreCase(args[0])){
|
||||
HashMap<String,Integer> hashMap = new HashMap<>();
|
||||
for (PlayerData playerData : getPlayerManager().getPlayerDataMap().values()) {
|
||||
hashMap.put(playerData.getPlayerName(),playerData.todayOnline);
|
||||
if ("topDay".equalsIgnoreCase(args[0])) {
|
||||
hashMap.put(playerData.getPlayerName(), playerData.todayOnline / 60);
|
||||
} else {
|
||||
hashMap.put(playerData.getPlayerName(), playerData.totalOnline / 60);
|
||||
}
|
||||
}
|
||||
Ranking ranking = new Ranking(hashMap);
|
||||
sender.sendMessage(" ");
|
||||
sender.sendMessage("§e§l★ §a"+DemonAPI.getTime("yyyy-MM-dd")+"在线排行榜 §7(不定时更新数据)");
|
||||
for (int rank = 1; rank < 15; rank++) {
|
||||
String rankingPlayer = ranking.getRankingPlayer(rank, "name");
|
||||
String onlineTime = ranking.getRankingPlayer(rank, "value");
|
||||
sender.sendMessage("§a§l★ §7第 §e" + rank + " §7名: §e" + rankingPlayer + "§7累积在线: §e"+onlineTime+"分钟");
|
||||
String valueString = ranking.getRankingPlayer(rank, "value");
|
||||
if(valueString.contains("§")){
|
||||
sender.sendMessage("§a§l★ §7第 §e" + rank + " §7名: §e" + rankingPlayer + "§7累积在线: §e" + valueString);
|
||||
continue;
|
||||
}
|
||||
if ("topDay".equalsIgnoreCase(args[0])) {
|
||||
sender.sendMessage("§a§l★ §7第 §e" + rank + " §7名: §e" + rankingPlayer + "§7累积在线: §e" + valueString + "分钟");
|
||||
} else {
|
||||
int onlineTime = Integer.parseInt(valueString);
|
||||
sender.sendMessage("§a§l★ §7第 §e" + rank + " §7名: §e" + rankingPlayer + "§7累积在线: §e" + (onlineTime/60) + "小时");
|
||||
}
|
||||
}
|
||||
sender.sendMessage(" ");
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user