static void WorldSetHandler( Player player, Command cmd ) {
string worldName = cmd.Next();
string varName = cmd.Next();
string value = cmd.NextAll();
if( worldName == null || varName == null ) {
CdWorldSet.PrintUsage( player );
return;
}
World world = WorldManager.FindWorldOrPrintMatches( player, worldName );
if( world == null ) return;
switch( varName.ToLower() ) {
case "hide":
case "hidden":
if( String.IsNullOrEmpty( value ) ) {
player.Message( "World {0}&S is current {1}hidden.",
world.ClassyName,
world.IsHidden ? "" : "NOT " );
} else if( value.Equals( "on", StringComparison.OrdinalIgnoreCase ) ||
value.Equals( "true", StringComparison.OrdinalIgnoreCase ) ||
value == "1" ) {
if( world.IsHidden ) {
player.Message( "World {0}&S is already hidden.", world.ClassyName );
} else {
player.Message( "World {0}&S is now hidden.", world.ClassyName );
world.IsHidden = true;
WorldManager.SaveWorldList();
}
} else if( value.Equals( "off", StringComparison.OrdinalIgnoreCase ) ||
value.Equals( "false", StringComparison.OrdinalIgnoreCase ) ||
value == "0" ) {
if( world.IsHidden ) {
player.Message( "World {0}&S is no longer hidden.", world.ClassyName );
world.IsHidden = false;
WorldManager.SaveWorldList();
} else {
player.Message( "World {0}&S is not hidden.", world.ClassyName );
}
} else {
CdWorldSet.PrintUsage( player );
}
break;
case "backup":
case "backups":
TimeSpan backupInterval;
string oldDescription = world.BackupSettingDescription;
if( String.IsNullOrEmpty( value ) ) {
player.Message( GetBackupSettingsString( world ) );
return;
} else if( value.Equals( "off", StringComparison.OrdinalIgnoreCase ) || value.StartsWith( "disable", StringComparison.OrdinalIgnoreCase ) ) {
// Disable backups on the world
if( world.BackupEnabledState == YesNoAuto.No ) {
MessageSameBackupSettings( player, world );
return;
} else {
world.BackupEnabledState = YesNoAuto.No;
}
} else if( value.Equals( "default", StringComparison.OrdinalIgnoreCase ) || value.Equals( "auto", StringComparison.OrdinalIgnoreCase ) ) {
// Set world to use default settings
if( world.BackupEnabledState == YesNoAuto.Auto ) {
MessageSameBackupSettings( player, world );
return;
} else {
world.BackupEnabledState = YesNoAuto.Auto;
}
} else if( value.TryParseMiniTimespan( out backupInterval ) ) {
if( backupInterval == TimeSpan.Zero ) {
// Set world's backup interval to 0, which is equivalent to disabled
if( world.BackupEnabledState == YesNoAuto.No ) {
MessageSameBackupSettings( player, world );
return;
} else {
world.BackupEnabledState = YesNoAuto.No;
}
} else if( world.BackupEnabledState != YesNoAuto.Yes || world.BackupInterval != backupInterval ) {
// Alter world's backup interval
world.BackupInterval = backupInterval;
} else {
MessageSameBackupSettings( player, world );
return;
}
} else {
CdWorldSet.PrintUsage( player );
return;
}
player.Message( "Backup setting for world {0}&S changed from \"{1}\" to \"{2}\"",
world.ClassyName, oldDescription, world.BackupSettingDescription );
WorldManager.SaveWorldList();
break;
case "description":
case "greeting":
if( String.IsNullOrEmpty( value ) ) {
if( world.Greeting == null ) {
player.Message( "No greeting message is set for world {0}", world.ClassyName );
} else {
player.Message( "Greeting message removed for world {0}", world.ClassyName );
}
} else {
world.Greeting = value;
player.Message( "Greeting message for world {0}&S set to: &R{1}", world.ClassyName, value );
}
break;
default:
CdWorldSet.PrintUsage( player );
break;
}
}