|
|
|
package ru.simsonic.rscPermissions.Bukkit;
|
|
|
|
import org.bukkit.configuration.file.FileConfiguration;
|
|
|
|
import ru.simsonic.rscPermissions.API.Settings;
|
|
|
|
import ru.simsonic.rscPermissions.BukkitPluginMain;
|
|
|
|
import ru.simsonic.rscUtilityLibrary.ConnectionMySQL.ConnectionParams;
|
|
|
|
|
|
|
|
public class BukkitPluginConfiguration implements Settings
|
|
|
|
{
|
|
|
|
private final BukkitPluginMain plugin;
|
|
|
|
private String strDefaultGroup = "Default";
|
|
|
|
private String strMaintenanceMode = "";
|
|
|
|
private String language = "english";
|
|
|
|
private boolean bAlwaysInheritDefault = false;
|
|
|
|
private boolean bTreatAsteriskAsOP = true;
|
|
|
|
private boolean bUseMetrics = true;
|
|
|
|
private boolean bUseWorldGuard = true;
|
|
|
|
private boolean bUseResidence = true;
|
|
|
|
private int nAutoReloadDelayTicks = 20 * 900;
|
|
|
|
private int nRegionFinderGranularity = 1000;
|
|
|
|
public final int CurrentVersion = 3;
|
|
|
|
public BukkitPluginConfiguration(final BukkitPluginMain plugin)
|
|
|
|
{
|
|
|
|
this.plugin = plugin;
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public void onLoad()
|
|
|
|
{
|
|
|
|
plugin.saveDefaultConfig();
|
|
|
|
final FileConfiguration config = plugin.getConfig();
|
|
|
|
switch(plugin.getConfig().getInt("internal.version", CurrentVersion))
|
|
|
|
{
|
|
|
|
case 1:
|
|
|
|
update_v1_to_v2(config);
|
|
|
|
BukkitPluginMain.consoleLog.info("[rscp] Configuration updated from v1 to v2.");
|
|
|
|
case 2:
|
|
|
|
update_v2_to_v3(config);
|
|
|
|
BukkitPluginMain.consoleLog.info("[rscp] Configuration updated from v2 to v3.");
|
|
|
|
case CurrentVersion: // Current version
|
|
|
|
plugin.saveConfig();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
private void update_v1_to_v2(FileConfiguration config)
|
|
|
|
{
|
|
|
|
config.set("settings.enable-bans", null);
|
|
|
|
config.set("settings.integration.worldguard", true);
|
|
|
|
config.set("settings.integration.residence", true);
|
|
|
|
config.set("internal.version", 2);
|
|
|
|
}
|
|
|
|
private void update_v2_to_v3(FileConfiguration config)
|
|
|
|
{
|
|
|
|
config.set("settings.enable-rewards", null);
|
|
|
|
config.set("settings.auto-update", null);
|
|
|
|
config.set("settings.language", "english");
|
|
|
|
config.set("internal.version", 3);
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public void readSettings()
|
|
|
|
{
|
|
|
|
plugin.reloadConfig();
|
|
|
|
final FileConfiguration config = plugin.getConfig();
|
|
|
|
language = config.getString("settings.language", "english");
|
|
|
|
strDefaultGroup = config.getString("settings.default-group", "Default");
|
|
|
|
strMaintenanceMode = config.getString("settings.maintenance-mode", "");
|
|
|
|
bAlwaysInheritDefault = config.getBoolean("always-inherit-default-group", false);
|
|
|
|
bTreatAsteriskAsOP = config.getBoolean("settings.treat-asterisk-as-op", true);
|
|
|
|
bUseMetrics = config.getBoolean("settings.use-metrics", true);
|
|
|
|
bUseWorldGuard = config.getBoolean("settings.integration.worldguard", true);
|
|
|
|
bUseResidence = config.getBoolean("settings.integration.residence", true);
|
|
|
|
nAutoReloadDelayTicks = config.getInt("settings.auto-reload-delay-sec", 900) * 20;
|
|
|
|
nRegionFinderGranularity = config.getInt("settings.region-finder-thread-granularity-msec", 1000);
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public String getDefaultGroup()
|
|
|
|
{
|
|
|
|
return strDefaultGroup;
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public boolean isInMaintenance()
|
|
|
|
{
|
|
|
|
return ! "".equals(strMaintenanceMode);
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public String getMaintenanceMode()
|
|
|
|
{
|
|
|
|
return strMaintenanceMode;
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public void setMaintenanceMode(String mode)
|
|
|
|
{
|
|
|
|
strMaintenanceMode = (mode == null) ? "" : mode;
|
|
|
|
plugin.getConfig().set("settings.maintenance-mode", strMaintenanceMode);
|
|
|
|
plugin.saveConfig();
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public boolean isDefaultForever()
|
|
|
|
{
|
|
|
|
return bAlwaysInheritDefault;
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public boolean isAsteriskOP()
|
|
|
|
{
|
|
|
|
return bTreatAsteriskAsOP;
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public boolean isUseMetrics()
|
|
|
|
{
|
|
|
|
return bUseMetrics;
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public boolean isUseWorldGuard()
|
|
|
|
{
|
|
|
|
return bUseWorldGuard;
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public boolean isUseResidence()
|
|
|
|
{
|
|
|
|
return bUseResidence;
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public int getAutoReloadDelayTicks()
|
|
|
|
{
|
|
|
|
return nAutoReloadDelayTicks;
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public long getRegionFinderGranularity()
|
|
|
|
{
|
|
|
|
return nRegionFinderGranularity;
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public String getLanguage()
|
|
|
|
{
|
|
|
|
return language;
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public ConnectionParams getConnectionParams()
|
|
|
|
{
|
|
|
|
final FileConfiguration config = plugin.getConfig();
|
|
|
|
final ConnectionParams result = new ConnectionParams();
|
|
|
|
result.nodename = "rscp";
|
|
|
|
result.database = config.getString("settings.connection.database", "localhost:3306/minecraft");
|
|
|
|
result.username = config.getString("settings.connection.username", "user1");
|
|
|
|
result.password = config.getString("settings.connection.password", "pass1");
|
|
|
|
result.prefixes = config.getString("settings.connection.prefixes", "rscp_");
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|