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, " | "));
}
}