@ -7,24 +7,30 @@ import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration ;
import org.bukkit.configuration.file.FileConfiguration ;
import org.bukkit.configuration.file.YamlConfiguration ;
import org.bukkit.configuration.file.YamlConfiguration ;
import ru.simsonic.rscCommonsLibrary.ConnectionMySQL.ConnectionParams ;
import ru.simsonic.rscCommonsLibrary.ConnectionMySQL.ConnectionParams ;
import ru.simsonic.rscMinecraftLibrary.Bukkit.GenericChatCodes ;
import ru.simsonic.rscPermissions.API.Settings ;
import ru.simsonic.rscPermissions.API.Settings ;
import ru.simsonic.rscPermissions.API.TranslationProvider ;
import ru.simsonic.rscPermissions.API.TranslationProvider ;
import ru.simsonic.rscPermissions.BukkitPluginMain ;
import ru.simsonic.rscPermissions.BukkitPluginMain ;
import ru.simsonic.rscPermissions.Engine.Phrases ;
public class BukkitPluginConfiguration implements Settings
public class BukkitPluginConfiguration implements Settings
{
{
private final BukkitPluginMain plugin ;
private final BukkitPluginMain plugin ;
private String strDefaultGroup = "Default" ;
private String strDefaultGroup = "Default" ;
private String strMaintenanceMode = "" ;
private String strMaintenanceMode = "" ;
private String strMaintenancePingMsg = Phrases . defaultMaintenancePingMsg ;
private String strMaintenanceKickMsg = Phrases . defaultMaintenanceKickMsg ;
private String strMaintenanceJoinMsg = Phrases . defaultMaintenanceJoinMsg ;
private String language = "english" ;
private String language = "english" ;
private boolean bAlwaysInheritDefault = false ;
private boolean bAlwaysInheritDefault = false ;
private boolean bTreatAsteriskAsOP = true ;
private boolean bTreatAsteriskAsOP = true ;
private boolean bUsingAncestorPrefixes = true ;
private boolean bUseMetrics = true ;
private boolean bUseMetrics = true ;
private boolean bUseWorldGuard = true ;
private boolean bUseWorldGuard = true ;
private boolean bUseResidence = true ;
private boolean bUseResidence = true ;
private int nAutoReloadDelayTicks = 20 * 900 ;
private int nAutoReloadDelayTicks = 20 * 900 ;
private int nRegionFinderGranularity = 1000 ;
private int nRegionFinderGranularity = 1000 ;
public final int CurrentVersion = 3 ;
public final int CurrentVersion = 4 ;
public BukkitPluginConfiguration ( final BukkitPluginMain plugin )
public BukkitPluginConfiguration ( final BukkitPluginMain plugin )
{
{
this . plugin = plugin ;
this . plugin = plugin ;
@ -42,6 +48,9 @@ public class BukkitPluginConfiguration implements Settings
case 2 :
case 2 :
update_v2_to_v3 ( config ) ;
update_v2_to_v3 ( config ) ;
BukkitPluginMain . consoleLog . info ( "[rscp] Configuration updated from v2 to v3." ) ;
BukkitPluginMain . consoleLog . info ( "[rscp] Configuration updated from v2 to v3." ) ;
case 3 :
update_v3_to_v4 ( config ) ;
BukkitPluginMain . consoleLog . info ( "[rscp] Configuration updated from v3 to v4." ) ;
case CurrentVersion : // Current version
case CurrentVersion : // Current version
plugin . saveConfig ( ) ;
plugin . saveConfig ( ) ;
break ;
break ;
@ -61,20 +70,34 @@ public class BukkitPluginConfiguration implements Settings
config . set ( "settings.language" , "english" ) ;
config . set ( "settings.language" , "english" ) ;
config . set ( "internal.version" , 3 ) ;
config . set ( "internal.version" , 3 ) ;
}
}
private void update_v3_to_v4 ( FileConfiguration config )
{
if ( ! config . contains ( "settings.slot-limits" ) )
{
config . set ( "settings.slot-limits.administrators" , 5 ) ;
config . set ( "settings.slot-limits.premium" , 25 ) ;
}
config . set ( "settings.groups-inherit-parent-prefixes" , true ) ;
config . set ( "settings.maintenances.default.ping-motd" , Phrases . defaultMaintenancePingMsg ) ;
config . set ( "settings.maintenances.default.kick-online" , Phrases . defaultMaintenancePingMsg ) ;
config . set ( "settings.maintenances.default.block-join" , Phrases . defaultMaintenancePingMsg ) ;
config . set ( "internal.version" , 4 ) ;
}
@Override
@Override
public void readSettings ( )
public void readSettings ( )
{
{
plugin . reloadConfig ( ) ;
plugin . reloadConfig ( ) ;
final FileConfiguration config = plugin . getConfig ( ) ;
final FileConfiguration config = plugin . getConfig ( ) ;
language = config . getString ( "settings.language" , "english" ) ;
language = config . getString ( "settings.language" , "english" ) ;
strDefaultGroup = config . getString ( "settings.default-group" , "Default" ) ;
strDefaultGroup = config . getString ( "settings.default-group" , "Default" ) ;
strMaintenanceMode = config . getString ( "settings.maintenance-mode" , "" ) ;
strMaintenanceMode = config . getString ( "settings.maintenance-mode" , "" ) ;
bAlwaysInheritDefault = config . getBoolean ( "settings.always-inherit-default-group" , false ) ;
bAlwaysInheritDefault = config . getBoolean ( "settings.always-inherit-default-group" , false ) ;
bTreatAsteriskAsOP = config . getBoolean ( "settings.treat-asterisk-as-op" , true ) ;
bTreatAsteriskAsOP = config . getBoolean ( "settings.treat-asterisk-as-op" , true ) ;
bUseMetrics = config . getBoolean ( "settings.use-metrics" , true ) ;
bUsingAncestorPrefixes = config . getBoolean ( "settings.groups-inherit-parent-prefixes" , true ) ;
bUseWorldGuard = config . getBoolean ( "settings.integration.worldguard" , true ) ;
bUseWorldGuard = config . getBoolean ( "settings.integration.worldguard" , true ) ;
bUseResidence = config . getBoolean ( "settings.integration.residence" , true ) ;
bUseResidence = config . getBoolean ( "settings.integration.residence" , true ) ;
nAutoReloadDelayTicks = config . getInt ( "settings.auto-reload-delay-sec" , 900 ) * 20 ;
bUseMetrics = config . getBoolean ( "settings.use-metrics" , true ) ;
nAutoReloadDelayTicks = config . getInt ( "settings.auto-reload-delay-sec" , 900 ) * 20 ;
nRegionFinderGranularity = config . getInt ( "settings.region-finder-thread-granularity-msec" , 1000 ) ;
nRegionFinderGranularity = config . getInt ( "settings.region-finder-thread-granularity-msec" , 1000 ) ;
if ( nAutoReloadDelayTicks < = 0 )
if ( nAutoReloadDelayTicks < = 0 )
nAutoReloadDelayTicks = - 1 ;
nAutoReloadDelayTicks = - 1 ;
@ -100,6 +123,33 @@ public class BukkitPluginConfiguration implements Settings
strMaintenanceMode = ( mode ! = null ) ? mode : "" ;
strMaintenanceMode = ( mode ! = null ) ? mode : "" ;
plugin . getConfig ( ) . set ( "settings.maintenance-mode" , strMaintenanceMode ) ;
plugin . getConfig ( ) . set ( "settings.maintenance-mode" , strMaintenanceMode ) ;
plugin . saveConfig ( ) ;
plugin . saveConfig ( ) ;
if ( ! "" . equals ( mode ) )
{
strMaintenancePingMsg = GenericChatCodes . processStringStatic ( plugin . getConfig ( ) . getString (
"settings.maintenances." + strMaintenanceMode . toLowerCase ( ) + ".ping-motd" ,
Phrases . defaultMaintenancePingMsg ) . replace ( "{MMODE}" , strMaintenanceMode ) ) ;
strMaintenanceKickMsg = GenericChatCodes . processStringStatic ( plugin . getConfig ( ) . getString (
"settings.maintenances." + strMaintenanceMode . toLowerCase ( ) + ".kick-online" ,
Phrases . defaultMaintenanceKickMsg ) . replace ( "{MMODE}" , strMaintenanceMode ) ) ;
strMaintenanceJoinMsg = GenericChatCodes . processStringStatic ( plugin . getConfig ( ) . getString (
"settings.maintenances." + strMaintenanceMode . toLowerCase ( ) + ".block-join" ,
Phrases . defaultMaintenanceJoinMsg ) . replace ( "{MMODE}" , strMaintenanceMode ) ) ;
}
}
@Override
public String getMaintenancePingMsg ( )
{
return isInMaintenance ( ) ? strMaintenancePingMsg : "" ;
}
@Override
public String getMaintenanceKickMsg ( )
{
return isInMaintenance ( ) ? strMaintenanceKickMsg : "" ;
}
@Override
public String getMaintenanceJoinMsg ( )
{
return isInMaintenance ( ) ? strMaintenanceJoinMsg : "" ;
}
}
@Override
@Override
public boolean isDefaultForever ( )
public boolean isDefaultForever ( )
@ -111,6 +161,10 @@ public class BukkitPluginConfiguration implements Settings
{
{
return bTreatAsteriskAsOP ;
return bTreatAsteriskAsOP ;
}
}
public boolean isUsingAncestorPrefixes ( )
{
return bUsingAncestorPrefixes ;
}
@Override
@Override
public boolean isUseMetrics ( )
public boolean isUseMetrics ( )
{
{