mirror of
https://github.com/NoCheatPlus/NoCheatPlus.git
synced 2025-01-31 20:01:25 +01:00
Synchronize changing the config file map. USe sync access form chat
checks.
This commit is contained in:
parent
f13ea3065d
commit
dc0aa6bf28
@ -63,7 +63,7 @@ public class ChatConfig extends AsyncCheckConfig {
|
|||||||
synchronized (worldsMap) {
|
synchronized (worldsMap) {
|
||||||
if (!worldsMap.containsKey(player.getWorld().getName()))
|
if (!worldsMap.containsKey(player.getWorld().getName()))
|
||||||
worldsMap.put(player.getWorld().getName(),
|
worldsMap.put(player.getWorld().getName(),
|
||||||
new ChatConfig(ConfigManager.getConfigFile(player.getWorld().getName())));
|
new ChatConfig(ConfigManager.getConfigFileSync(player.getWorld().getName())));
|
||||||
return worldsMap.get(player.getWorld().getName());
|
return worldsMap.get(player.getWorld().getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,8 @@ import fr.neatmonster.nocheatplus.utilities.CheckUtils;
|
|||||||
* d8888P d8888P
|
* d8888P d8888P
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* Central location for everything that's described in the configuration file(s).
|
* Central location for everything that's described in the configuration file(s).<br>
|
||||||
|
* The synchronized methods are to ensure that changing the configurations won't lead to trouble for the asynchronous checks.
|
||||||
*/
|
*/
|
||||||
public class ConfigManager {
|
public class ConfigManager {
|
||||||
|
|
||||||
@ -112,6 +113,14 @@ public class ConfigManager {
|
|||||||
public static ConfigFile getConfigFile() {
|
public static ConfigFile getConfigFile() {
|
||||||
return worldsMap.get(null);
|
return worldsMap.get(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Synchronized version).
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static synchronized ConfigFile getConfigFileSync() {
|
||||||
|
return getConfigFile();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the configuration file.
|
* Gets the configuration file.
|
||||||
@ -121,10 +130,19 @@ public class ConfigManager {
|
|||||||
* @return the configuration file
|
* @return the configuration file
|
||||||
*/
|
*/
|
||||||
public static ConfigFile getConfigFile(final String worldName) {
|
public static ConfigFile getConfigFile(final String worldName) {
|
||||||
if (worldsMap.containsKey(worldName))
|
final ConfigFile configFile = worldsMap.get(worldName);
|
||||||
return worldsMap.get(worldName);
|
if (configFile != null) return configFile;
|
||||||
return getConfigFile();
|
return getConfigFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Synchronized version).
|
||||||
|
* @param worldName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static synchronized ConfigFile getConfigFileSync(final String worldName) {
|
||||||
|
return getConfigFile(worldName);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes the configuration manager.
|
* Initializes the configuration manager.
|
||||||
@ -132,7 +150,8 @@ public class ConfigManager {
|
|||||||
* @param plugin
|
* @param plugin
|
||||||
* the instance of NoCheatPlus
|
* the instance of NoCheatPlus
|
||||||
*/
|
*/
|
||||||
public static void init(final NoCheatPlus plugin) {
|
public static synchronized void init(final NoCheatPlus plugin) {
|
||||||
|
worldsMap.clear();
|
||||||
// Try to obtain and parse the global configuration file.
|
// Try to obtain and parse the global configuration file.
|
||||||
final File globalFile = new File(plugin.getDataFolder(), "config.yml");
|
final File globalFile = new File(plugin.getDataFolder(), "config.yml");
|
||||||
final ConfigFile globalConfig = new ConfigFile();
|
final ConfigFile globalConfig = new ConfigFile();
|
||||||
|
Loading…
Reference in New Issue
Block a user