This commit is contained in:
parent
1bd499baf2
commit
d87f636c2e
@ -159,6 +159,10 @@ MaxX: 128
|
||||
MaxY: 64
|
||||
MaxZ: 128
|
||||
|
||||
AutoClean:
|
||||
Enabled: false
|
||||
AfterDays: 180
|
||||
|
||||
BlueMap: true
|
||||
|
||||
Debug: false
|
||||
|
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>cn.lunadeer</groupId>
|
||||
<artifactId>Dominion</artifactId>
|
||||
<version>1.5.0-beta</version>
|
||||
<version>1.6.0-beta</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>Dominion</name>
|
||||
|
25
src/main/java/cn/lunadeer/dominion/AutoClean.java
Normal file
25
src/main/java/cn/lunadeer/dominion/AutoClean.java
Normal file
@ -0,0 +1,25 @@
|
||||
package cn.lunadeer.dominion;
|
||||
|
||||
import cn.lunadeer.dominion.controllers.PlayerController;
|
||||
import cn.lunadeer.dominion.dtos.PlayerDTO;
|
||||
import cn.lunadeer.dominion.utils.XLogger;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class AutoClean {
|
||||
public static void run() {
|
||||
if (!Dominion.config.getAutoCleanEnable()) {
|
||||
return;
|
||||
}
|
||||
XLogger.info("开始自动清理长时间未登录玩家领地数据");
|
||||
int auto_clean_after_days = Dominion.config.getAutoCleanAfterDays();
|
||||
List<PlayerDTO> players = PlayerController.allPlayers();
|
||||
for (PlayerDTO p : players) {
|
||||
if (p.getLastJoinAt() + (long) auto_clean_after_days * 24 * 60 * 60 * 1000 < System.currentTimeMillis()) {
|
||||
PlayerDTO.delete(p);
|
||||
XLogger.info("已清理玩家 " + p.getLastKnownName() + " 的领地数据");
|
||||
}
|
||||
}
|
||||
XLogger.info("自动清理完成");
|
||||
}
|
||||
}
|
@ -44,6 +44,7 @@ public final class Dominion extends JavaPlugin {
|
||||
XLogger.info(" |_____/ \\___/|_| |_| |_|_|_| |_|_|\\___/|_| |_|");
|
||||
XLogger.info(" ");
|
||||
|
||||
Time.runLater(this, AutoClean::run, 20 * 30);
|
||||
Time.runLater(this, BlueMapConnect::render, 20 * 60);
|
||||
}
|
||||
|
||||
|
@ -68,6 +68,11 @@ public class PlayerDTO {
|
||||
return query(sql);
|
||||
}
|
||||
|
||||
public static void delete(PlayerDTO player) {
|
||||
String sql = "DELETE FROM player_name WHERE uuid = '" + player.getUuid().toString() + "';";
|
||||
query(sql);
|
||||
}
|
||||
|
||||
private static PlayerDTO insert(PlayerDTO player) {
|
||||
String sql = "INSERT INTO player_name (uuid, last_known_name, last_join_at) " +
|
||||
"VALUES" +
|
||||
|
@ -25,6 +25,8 @@ public class ConfigManager {
|
||||
_max_y = _file.getInt("MaxY", 64);
|
||||
_max_z = _file.getInt("MaxZ", 128);
|
||||
_blue_map = _file.getBoolean("BlueMap", true);
|
||||
_auto_clean_enable = _file.getBoolean("AutoClean.Enable", false);
|
||||
_auto_clean_after_days = _file.getInt("AutoClean.AfterDays", 180);
|
||||
}
|
||||
|
||||
public Boolean isDebug() {
|
||||
@ -118,6 +120,26 @@ public class ConfigManager {
|
||||
_plugin.saveConfig();
|
||||
}
|
||||
|
||||
public Boolean getAutoCleanEnable() {
|
||||
return _auto_clean_enable;
|
||||
}
|
||||
|
||||
public void setAutoCleanEnable(Boolean auto_clean_enable) {
|
||||
_auto_clean_enable = auto_clean_enable;
|
||||
_file.set("AutoClean.Enable", auto_clean_enable);
|
||||
_plugin.saveConfig();
|
||||
}
|
||||
|
||||
public Integer getAutoCleanAfterDays() {
|
||||
return _auto_clean_after_days;
|
||||
}
|
||||
|
||||
public void setAutoCleanAfterDays(Integer auto_clean_after_days) {
|
||||
_auto_clean_after_days = auto_clean_after_days;
|
||||
_file.set("AutoClean.AfterDays", auto_clean_after_days);
|
||||
_plugin.saveConfig();
|
||||
}
|
||||
|
||||
|
||||
private final Dominion _plugin;
|
||||
private FileConfiguration _file;
|
||||
@ -136,4 +158,7 @@ public class ConfigManager {
|
||||
private Integer _max_z;
|
||||
|
||||
private Boolean _blue_map;
|
||||
|
||||
private Boolean _auto_clean_enable;
|
||||
private Integer _auto_clean_after_days;
|
||||
}
|
||||
|
@ -10,6 +10,10 @@ MaxX: 128
|
||||
MaxY: 64
|
||||
MaxZ: 128
|
||||
|
||||
AutoClean:
|
||||
Enabled: false
|
||||
AfterDays: 180
|
||||
|
||||
BlueMap: true
|
||||
|
||||
Debug: false
|
Reference in New Issue
Block a user