diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java index a0f70a51..eeaf6dc5 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java @@ -77,7 +77,13 @@ public abstract class ConfPaths { public static final String DATA_CONSISTENCYCHECKS_CHECK = DATA_CONSISTENCYCHECKS + "active"; public static final String DATA_CONSISTENCYCHECKS_INTERVAL = DATA_CONSISTENCYCHECKS + "interval"; public static final String DATA_CONSISTENCYCHECKS_MAXTIME = DATA_CONSISTENCYCHECKS + "maxtime"; - + /** + * This might not might not be used by checks.
+ * Used by: DataMan/Player-instances + * + */ + public static final String DATA_CONSISTENCYCHECKS_SUPPRESSWARNINGS = DATA_CONSISTENCYCHECKS + "suppresswarnings"; + private static final String CHECKS = "checks."; /** Debug flag to debug all checks (!), individual sections debug flags override this, if present. */ public static final String CHECKS_DEBUG = CHECKS + SUB_DEBUG; diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/DefaultConfig.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/DefaultConfig.java index 3caf578b..aeccb6b7 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/DefaultConfig.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/DefaultConfig.java @@ -85,6 +85,7 @@ public class DefaultConfig extends ConfigFile { set(ConfPaths.DATA_CONSISTENCYCHECKS_CHECK, true); set(ConfPaths.DATA_CONSISTENCYCHECKS_INTERVAL, 10); set(ConfPaths.DATA_CONSISTENCYCHECKS_MAXTIME, 2); + set(ConfPaths.DATA_CONSISTENCYCHECKS_SUPPRESSWARNINGS, false); /* * 888 88b, 888 888 888 88b, 888 diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/players/DataManager.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/players/DataManager.java index 7847d0ab..af2c52c1 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/players/DataManager.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/players/DataManager.java @@ -66,6 +66,8 @@ public class DataManager implements Listener, INotifyReload, INeedConfig, Compon // Not static. ////////////////// + private int foundInconsistencies = 0; + /** PlayerData storage. */ protected final Map playerData = new LinkedHashMap(100); @@ -416,14 +418,16 @@ public class DataManager implements Listener, INotifyReload, INeedConfig, Compon */ public void onDisable() { clearData(CheckType.ALL); -// for (IRemoveData rmd : iRemoveData){ -// if (!(rmd instanceof IHaveCheckType)) rmd.removeAllData(); -// } iRemoveData.clear(); clearConfigs(); lastLogout.clear(); executionHistories.clear(); onlinePlayers.clear(); + // Finally alert (summary) if inconsistencies found. + if (foundInconsistencies > 0){ + LogUtil.logWarning("[NoCheatPlus] DataMan found " + foundInconsistencies + " inconsistencies, activate consistencychecks to get more details during runtime, if desired."); + foundInconsistencies = 0; + } } @Override @@ -458,19 +462,22 @@ public class DataManager implements Listener, INotifyReload, INeedConfig, Compon final int storedSize = this.onlinePlayers.size(); if (missing != 0 || changed != 0 || expectedSize != storedSize){ - final List details = new LinkedList(); - if (missing != 0){ - details.add("missing online players (" + missing + ")"); + foundInconsistencies ++; + if (ConfigManager.getConfigFile().getBoolean(ConfPaths.DATA_CONSISTENCYCHECKS_SUPPRESSWARNINGS)){ + final List details = new LinkedList(); + if (missing != 0){ + details.add("missing online players (" + missing + ")"); + } + if (expectedSize != storedSize){ + // TODO: Consider checking for not online players and remove them. + details.add("wrong number of online players (" + storedSize + " instead of " + expectedSize + ")"); + } + if (changed != 0){ + details.add("changed player instances (" + changed + ")"); + } + + LogUtil.logWarning("[NoCheatPlus] DataMan inconsistencies: " + StringUtil.join(details, " | ")); } - if (expectedSize != storedSize){ - // TODO: Consider checking for not online players and remove them. - details.add("wrong number of online players (" + storedSize + " instead of " + expectedSize + ")"); - } - if (changed != 0){ - details.add("changed player instances (" + changed + ")"); - } - - LogUtil.logWarning("[NoCheatPlus] DataMan inconsistencies: " + StringUtil.join(details, " | ")); } }