You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
147 lines
4.5 KiB
147 lines
4.5 KiB
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; |
|
} |
|
}
|
|
|