From aa85a9860c1c1e2acb7a9b738bdc315e7d6a3224 Mon Sep 17 00:00:00 2001 From: KZ Date: Sun, 7 Jun 2020 14:10:16 -0700 Subject: [PATCH] Reorder sections, format section titles --- TShockAPI/ConfigFile.cs | 503 ++++++++++++++++++++-------------------- 1 file changed, 252 insertions(+), 251 deletions(-) diff --git a/TShockAPI/ConfigFile.cs b/TShockAPI/ConfigFile.cs index d77a1253..27eaa9fc 100644 --- a/TShockAPI/ConfigFile.cs +++ b/TShockAPI/ConfigFile.cs @@ -31,7 +31,7 @@ namespace TShockAPI public class ConfigFile { - // Server + /* ~~~~~ Server ~~~~~ */ /// The server password required to join the server. [Description("The server password required to join the server.")] @@ -74,7 +74,7 @@ namespace TShockAPI public bool IgnoreChestStacksOnLoad = false; - // Backup and Save + /* ~~~~~ Backup and Save ~~~~~ */ /// Enable or disable Terraria's built-in world auto save. [Description("Enable or disable Terraria's built-in world auto save.")] @@ -105,130 +105,182 @@ namespace TShockAPI public bool SaveWorldOnLastPlayerExit = true; - // Chat + /* ~~~~~ World ~~~~~ */ - /// Specifies which string starts a command. - /// Note: Will not function properly if the string length is bigger than 1. - [Description("Specifies which string starts a command.\nNote: Will not function properly if the string length is bigger than 1.")] - public string CommandSpecifier = "/"; + /// Determines the size of invasion events. The equation for calculating invasion size = 100 + (multiplier * (number of active players > 200 hp)). + [Description("Determines the size of invasion events.\nThe equation for calculating invasion size is 100 + (multiplier * (number of active players with greater than 200 health)).")] + public int InvasionMultiplier = 1; - /// Specifies which string starts a command silently. - /// Note: Will not function properly if the string length is bigger than 1. - [Description("Specifies which string starts a command silently.\nNote: Will not function properly if the string length is bigger than 1.")] - public string CommandSilentSpecifier = "."; + /// The default maximum number of mobs that will spawn per wave. Higher means more mobs in that wave. + [Description("The default maximum number of mobs that will spawn per wave. Higher means more mobs in that wave.")] + public int DefaultMaximumSpawns = 5; - /// Disables sending logs as messages to players with the log permission. - [Description("Disables sending logs as messages to players with the log permission.")] - public bool DisableSpewLogs = true; + /// The delay between waves. Lower values lead to more mobs. + [Description("The delay between waves. Lower values lead to more mobs.")] + public int DefaultSpawnRate = 600; - /// Prevents OnSecondUpdate checks from writing to the log file. - [Description("Prevents OnSecondUpdate checks from writing to the log file.")] - public bool DisableSecondUpdateLogs = false; + /// Enables never-ending invasion events. You still need to start the event. + [Description("Enables never ending invasion events. You still need to start the event, such as with the /invade command.")] + public bool InfiniteInvasion; - /// The chat color for the superadmin group. - [Description("The chat color for the superadmin group.\n#.#.# = Red/Blue/Green\nMax value: 255")] - public int[] SuperAdminChatRGB = { 255, 255, 255 }; + /// Sets the PvP mode. Valid types are: "normal", "always", "disabled". + [Description("Sets the PvP mode. Valid types are: \"normal\", \"always\" and \"disabled\".")] + public string PvPMode = "normal"; - /// The superadmin chat prefix. - [Description("The superadmin chat prefix.")] - public string SuperAdminChatPrefix = "(Super Admin) "; + /// Prevents tiles from being placed within SpawnProtectionRadius of the default spawn. + [Description("Prevents tiles from being placed within SpawnProtectionRadius of the default spawn.")] + public bool SpawnProtection = true; - /// The superadmin chat suffix. - [Description("The superadmin chat suffix.")] - public string SuperAdminChatSuffix = ""; + /// The tile radius around the spawn tile that is protected by the SpawnProtection setting. + [Description("The tile radius around the spawn tile that is protected by the SpawnProtection setting.")] + public int SpawnProtectionRadius = 10; - /// Whether or not to announce a player's geographic location on join, based on their IP. - [Description("Whether or not to announce a player's geographic location on join, based on their IP.")] - public bool EnableGeoIP; + /// Enable or disable anti-cheat range checks based on distance between the player and their block placements. + [Description("Enable or disable anti-cheat range checks based on distance between the player and their block placements.")] + public bool RangeChecks = true; - /// Displays a player's IP on join to users with the log permission. - [Description("Displays a player's IP on join to users with the log permission.")] - public bool DisplayIPToAdmins; + /// Prevents non-hardcore players from connecting. + [Description("Prevents non-hardcore players from connecting.")] + public bool HardcoreOnly; - /// Changes in-game chat format: {0} = Group Name, {1} = Group Prefix, {2} = Player Name, {3} = Group Suffix, {4} = Chat Message. - [Description("Changes in-game chat format: {0} = Group Name, {1} = Group Prefix, {2} = Player Name, {3} = Group Suffix, {4} = Chat Message.")] - public string ChatFormat = "{1}{2}{3}: {4}"; + /// Prevents softcore players from connecting. + [Description("Prevents softcore players from connecting.")] + public bool MediumcoreOnly; - /// Changes the player name when using chat above heads. Starts with a player name wrapped in brackets, as per Terraria's formatting.\nSame formatting as ChatFormat without the message. - [Description("Changes the player name when using chat above heads. Starts with a player name wrapped in brackets, as per Terraria's formatting.\nSame formatting as ChatFormat without the message.")] - public string ChatAboveHeadsFormat = "{2}"; + /// Disables any placing, or removal of blocks. + [Description("Disables any placing, or removal of blocks.")] + public bool DisableBuild; - /// Whether or not to display chat messages above players' heads. - [Description("Whether or not to display chat messages above players' heads.")] - public bool EnableChatAboveHeads = false; + /// If enabled, hardmode will not be activated by the Wall of Flesh or the /starthardmode command. + [Description("If enabled, hardmode will not be activated by the Wall of Flesh or the /starthardmode command.")] + public bool DisableHardmode; - /// The RGB values used for the color of broadcast messages. - [Description("The RGB values used for the color of broadcast messages.\n#.#.# = Red/Blue/Green\nMax value: 255")] - public int[] BroadcastRGB = { 127, 255, 212 }; + /// Prevents the dungeon guardian from being spawned while sending players to their spawn point instead. + [Description("Prevents the dungeon guardian from being spawned while sending players to their spawn point instead.")] + public bool DisableDungeonGuardian; + + /// Disables clown bomb projectiles from spawning. + [Description("Disables clown bomb projectiles from spawning.")] + public bool DisableClownBombs; + + /// Disables snow ball projectiles from spawning. + [Description("Disables snow ball projectiles from spawning.")] + public bool DisableSnowBalls; + + /// Disables tombstone dropping during death for all players. + [Description("Disables tombstone dropping during death for all players.")] + public bool DisableTombstones = true; + + /// Forces the world time to be normal, day, or night. + [Description("Forces the world time to be normal, day, or night.")] + public string ForceTime = "normal"; + + /// Disables the effect of invisibility potions while PvP is enabled by turning the player visible to the other clients. + [Description("Disables the effect of invisibility potions while PvP is enabled by turning the player visible to the other clients.")] + public bool DisableInvisPvP; + + /// The maximum distance, in tiles, that disabled players can move from. + [Description("The maximum distance, in tiles, that disabled players can move from.")] + public int MaxRangeForDisabled = 10; + + /// Whether or not region protection should apply to chests. + [Description("Whether or not region protection should apply to chests.")] + public bool RegionProtectChests; + + /// Whether or not region protection should apply to gem locks. + [Description("Whether or not region protection should apply to gem locks.")] + public bool RegionProtectGemLocks = true; + + /// Ignores checks to see if a player 'can' update a projectile. + [Description("Ignores checks to see if a player 'can' update a projectile.")] + public bool IgnoreProjUpdate = false; + + /// Ignores checks to see if a player 'can' kill a projectile. + [Description("Ignores checks to see if a player 'can' kill a projectile.")] + public bool IgnoreProjKill = false; + + /// Allows players to break temporary tiles (grass, pots, etc) where they cannot usually build. + [Description("Allows players to break temporary tiles (grass, pots, etc) where they cannot usually build.")] + public bool AllowCutTilesAndBreakables = false; + + /// Allows ice placement even where a user cannot usually build. + [Description("Allows ice placement even where a user cannot usually build.")] + public bool AllowIce = false; + + /// Allows the crimson to spread when a world is in hardmode. + [Description("Allows the crimson to spread when a world is in hardmode.")] + public bool AllowCrimsonCreep = true; + + /// Allows the corruption to spread when a world is in hardmode. + [Description("Allows the corruption to spread when a world is in hardmode.")] + public bool AllowCorruptionCreep = true; + + /// Allows the hallow to spread when a world is in hardmode. + [Description("Allows the hallow to spread when a world is in hardmode.")] + public bool AllowHallowCreep = true; + + /// How many NPCs a statue can spawn within 200 pixels(?) before it stops spawning. + [Description("How many NPCs a statue can spawn within 200 pixels(?) before it stops spawning.\nDefault = 3.")] + public int StatueSpawn200 = 3; + + /// How many NPCs a statue can spawn within 600 pixels(?) before it stops spawning. + [Description("How many NPCs a statue can spawn within 600 pixels(?) before it stops spawning.\nDefault = 6.")] + public int StatueSpawn600 = 6; + + /// How many NPCs a statue can spawn before it stops spawning. + [Description("How many NPCs a statue can spawn before it stops spawning.\nDefault = 10.")] + public int StatueSpawnWorld = 10; + + /// Prevent banned items from being spawned or given with commands. + [Description("Prevent banned items from being spawned or given with commands.")] + public bool PreventBannedItemSpawn = false; + + /// Prevent players from interacting with the world while they are dead. + [Description("Prevent players from interacting with the world while they are dead.")] + public bool PreventDeadModification = true; + + /// Prevents players from placing tiles with an invalid style. + [Description("Prevents players from placing tiles with an invalid style.")] + public bool PreventInvalidPlaceStyle = true; + + /// Forces Christmas-only events to occur all year. + [Description("Forces Christmas-only events to occur all year.")] + public bool ForceXmas = false; + + /// Forces Halloween-only events to occur all year. + [Description("Forces Halloween-only events to occur all year.")] + public bool ForceHalloween = false; + + /// Allows groups on the banned item allowed list to spawn banned items even if PreventBannedItemSpawn is set to true. + [Description("Allows groups on the banned item allowed list to spawn banned items even if PreventBannedItemSpawn is set to true.")] + public bool AllowAllowedGroupsToSpawnBannedItems = false; + + /// The number of seconds a player must wait before being respawned. Cannot be longer than normal value now. Use at your own risk. + [Description("The number of seconds a player must wait before being respawned. Cannot be longer than normal value now. Use at your own risk.")] + public int RespawnSeconds = 5; + + /// The number of seconds a player must wait before being respawned if there is a boss nearby. Cannot be longer than normal value now. Use at your own risk. + [Description("The number of seconds a player must wait before being respawned if there is a boss nearby. Cannot be longer than normal value now. Use at your own risk.")] + public int RespawnBossSeconds = 10; + + /// Whether or not to announce boss spawning or invasion starts. + [Description("Whether or not to announce boss spawning or invasion starts.")] + public bool AnonymousBossInvasions = true; + + /// The maximum HP a player can have, before equipment buffs. + [Description("The maximum HP a player can have, before equipment buffs.")] + public int MaxHP = 500; + + /// The maximum MP a player can have, before equipment buffs. + [Description("The maximum MP a player can have, before equipment buffs.")] + public int MaxMP = 200; + + /// Determines the range in tiles that a bomb can affect tiles from detonation point. + [Description("Determines the range in tiles that a bomb can affect tiles from detonation point.")] + public int BombExplosionRadius = 5; - // MySQL - - /// The type of database to use when storing data (either "sqlite" or "mysql"). - [Description("The type of database to use when storing data (either \"sqlite\" or \"mysql\").")] - public string StorageType = "sqlite"; - - /// The path of sqlite db. - [Description("The path of sqlite db.")] - public string SqliteDBPath = "tshock.sqlite"; - - /// The MySQL hostname and port to direct connections to. - [Description("The MySQL hostname and port to direct connections to.")] - public string MySqlHost = "localhost:3306"; - - /// The database name to connect to when using MySQL as the database type. - [Description("The database name to connect to when using MySQL as the database type.")] - public string MySqlDbName = ""; - - /// The username used when connecting to a MySQL database. - [Description("The username used when connecting to a MySQL database.")] - public string MySqlUsername = ""; - - /// The password used when connecting to a MySQL database. - [Description("The password used when connecting to a MySQL database.")] - public string MySqlPassword = ""; - - /// Whether or not to save logs to the SQL database instead of a text file. - [Description("Whether or not to save logs to the SQL database instead of a text file.\nDefault = false.")] - public bool UseSqlLogs = false; - - /// Number of times the SQL log must fail to insert logs before falling back to the text log. - [Description("Number of times the SQL log must fail to insert logs before falling back to the text log.")] - public int RevertToTextLogsOnSqlFailures = 10; - - - // REST API - - /// Enable or disable the REST API. - [Description("Enable or disable the REST API.")] - public bool RestApiEnabled; - - /// The port used by the REST API. - [Description("The port used by the REST API.")] - public int RestApiPort = 7878; - - /// Whether or not to log REST API connections. - [Description("Whether or not to log REST API connections.")] - public bool LogRest = false; - - /// Whether or not to require token authentication to use the public REST API endpoints. - [Description("Whether or not to require token authentication to use the public REST API endpoints.")] - public bool EnableTokenEndpointAuthentication; - - /// The maximum REST requests in the bucket before denying requests. Minimum value is 5. - [Description("The maximum REST requests in the bucket before denying requests. Minimum value is 5.")] - public int RESTMaximumRequestsPerInterval = 5; - - /// How often in minutes the REST requests bucket is decreased by one. Minimum value is 1 minute. - [Description("How often in minutes the REST requests bucket is decreased by one. Minimum value is 1 minute.")] - public int RESTRequestBucketDecreaseIntervalMinutes = 1; - - /// A dictionary of REST tokens that external applications may use to make queries to your server. - [Description("A dictionary of REST tokens that external applications may use to make queries to your server.")] - public Dictionary ApplicationRestTokens = new Dictionary(); - - - // Login and Ban + /* ~~~~~ Login and Ban ~~~~~ */ /// The default group name to place newly registered users under. [Description("The default group name to place newly registered users under.")] @@ -409,179 +461,128 @@ namespace TShockAPI public bool KickOnHealOtherThresholdBroken = false; - // World + /* ~~~~~ Chat ~~~~~ */ - /// Determines the size of invasion events. The equation for calculating invasion size = 100 + (multiplier * (number of active players > 200 hp)). - [Description("Determines the size of invasion events.\nThe equation for calculating invasion size is 100 + (multiplier * (number of active players with greater than 200 health)).")] - public int InvasionMultiplier = 1; + /// Specifies which string starts a command. + /// Note: Will not function properly if the string length is bigger than 1. + [Description("Specifies which string starts a command.\nNote: Will not function properly if the string length is bigger than 1.")] + public string CommandSpecifier = "/"; - /// The default maximum number of mobs that will spawn per wave. Higher means more mobs in that wave. - [Description("The default maximum number of mobs that will spawn per wave. Higher means more mobs in that wave.")] - public int DefaultMaximumSpawns = 5; + /// Specifies which string starts a command silently. + /// Note: Will not function properly if the string length is bigger than 1. + [Description("Specifies which string starts a command silently.\nNote: Will not function properly if the string length is bigger than 1.")] + public string CommandSilentSpecifier = "."; - /// The delay between waves. Lower values lead to more mobs. - [Description("The delay between waves. Lower values lead to more mobs.")] - public int DefaultSpawnRate = 600; + /// Disables sending logs as messages to players with the log permission. + [Description("Disables sending logs as messages to players with the log permission.")] + public bool DisableSpewLogs = true; - /// Enables never-ending invasion events. You still need to start the event. - [Description("Enables never ending invasion events. You still need to start the event, such as with the /invade command.")] - public bool InfiniteInvasion; + /// Prevents OnSecondUpdate checks from writing to the log file. + [Description("Prevents OnSecondUpdate checks from writing to the log file.")] + public bool DisableSecondUpdateLogs = false; - /// Sets the PvP mode. Valid types are: "normal", "always", "disabled". - [Description("Sets the PvP mode. Valid types are: \"normal\", \"always\" and \"disabled\".")] - public string PvPMode = "normal"; + /// The chat color for the superadmin group. + [Description("The chat color for the superadmin group.\n#.#.# = Red/Blue/Green\nMax value: 255")] + public int[] SuperAdminChatRGB = { 255, 255, 255 }; - /// Prevents tiles from being placed within SpawnProtectionRadius of the default spawn. - [Description("Prevents tiles from being placed within SpawnProtectionRadius of the default spawn.")] - public bool SpawnProtection = true; + /// The superadmin chat prefix. + [Description("The superadmin chat prefix.")] + public string SuperAdminChatPrefix = "(Super Admin) "; - /// The tile radius around the spawn tile that is protected by the SpawnProtection setting. - [Description("The tile radius around the spawn tile that is protected by the SpawnProtection setting.")] - public int SpawnProtectionRadius = 10; + /// The superadmin chat suffix. + [Description("The superadmin chat suffix.")] + public string SuperAdminChatSuffix = ""; - /// Enable or disable anti-cheat range checks based on distance between the player and their block placements. - [Description("Enable or disable anti-cheat range checks based on distance between the player and their block placements.")] - public bool RangeChecks = true; + /// Whether or not to announce a player's geographic location on join, based on their IP. + [Description("Whether or not to announce a player's geographic location on join, based on their IP.")] + public bool EnableGeoIP; - /// Prevents non-hardcore players from connecting. - [Description("Prevents non-hardcore players from connecting.")] - public bool HardcoreOnly; + /// Displays a player's IP on join to users with the log permission. + [Description("Displays a player's IP on join to users with the log permission.")] + public bool DisplayIPToAdmins; - /// Prevents softcore players from connecting. - [Description("Prevents softcore players from connecting.")] - public bool MediumcoreOnly; + /// Changes in-game chat format: {0} = Group Name, {1} = Group Prefix, {2} = Player Name, {3} = Group Suffix, {4} = Chat Message. + [Description("Changes in-game chat format: {0} = Group Name, {1} = Group Prefix, {2} = Player Name, {3} = Group Suffix, {4} = Chat Message.")] + public string ChatFormat = "{1}{2}{3}: {4}"; - /// Disables any placing, or removal of blocks. - [Description("Disables any placing, or removal of blocks.")] - public bool DisableBuild; + /// Changes the player name when using chat above heads. Starts with a player name wrapped in brackets, as per Terraria's formatting.\nSame formatting as ChatFormat without the message. + [Description("Changes the player name when using chat above heads. Starts with a player name wrapped in brackets, as per Terraria's formatting.\nSame formatting as ChatFormat without the message.")] + public string ChatAboveHeadsFormat = "{2}"; - /// If enabled, hardmode will not be activated by the Wall of Flesh or the /starthardmode command. - [Description("If enabled, hardmode will not be activated by the Wall of Flesh or the /starthardmode command.")] - public bool DisableHardmode; + /// Whether or not to display chat messages above players' heads. + [Description("Whether or not to display chat messages above players' heads.")] + public bool EnableChatAboveHeads = false; - /// Prevents the dungeon guardian from being spawned while sending players to their spawn point instead. - [Description("Prevents the dungeon guardian from being spawned while sending players to their spawn point instead.")] - public bool DisableDungeonGuardian; + /// The RGB values used for the color of broadcast messages. + [Description("The RGB values used for the color of broadcast messages.\n#.#.# = Red/Blue/Green\nMax value: 255")] + public int[] BroadcastRGB = { 127, 255, 212 }; - /// Disables clown bomb projectiles from spawning. - [Description("Disables clown bomb projectiles from spawning.")] - public bool DisableClownBombs; - /// Disables snow ball projectiles from spawning. - [Description("Disables snow ball projectiles from spawning.")] - public bool DisableSnowBalls; + /* ~~~~~ MySQL ~~~~~ */ - /// Disables tombstone dropping during death for all players. - [Description("Disables tombstone dropping during death for all players.")] - public bool DisableTombstones = true; + /// The type of database to use when storing data (either "sqlite" or "mysql"). + [Description("The type of database to use when storing data (either \"sqlite\" or \"mysql\").")] + public string StorageType = "sqlite"; - /// Forces the world time to be normal, day, or night. - [Description("Forces the world time to be normal, day, or night.")] - public string ForceTime = "normal"; + /// The path of sqlite db. + [Description("The path of sqlite db.")] + public string SqliteDBPath = "tshock.sqlite"; - /// Disables the effect of invisibility potions while PvP is enabled by turning the player visible to the other clients. - [Description("Disables the effect of invisibility potions while PvP is enabled by turning the player visible to the other clients.")] - public bool DisableInvisPvP; + /// The MySQL hostname and port to direct connections to. + [Description("The MySQL hostname and port to direct connections to.")] + public string MySqlHost = "localhost:3306"; - /// The maximum distance, in tiles, that disabled players can move from. - [Description("The maximum distance, in tiles, that disabled players can move from.")] - public int MaxRangeForDisabled = 10; + /// The database name to connect to when using MySQL as the database type. + [Description("The database name to connect to when using MySQL as the database type.")] + public string MySqlDbName = ""; - /// Whether or not region protection should apply to chests. - [Description("Whether or not region protection should apply to chests.")] - public bool RegionProtectChests; + /// The username used when connecting to a MySQL database. + [Description("The username used when connecting to a MySQL database.")] + public string MySqlUsername = ""; - /// Whether or not region protection should apply to gem locks. - [Description("Whether or not region protection should apply to gem locks.")] - public bool RegionProtectGemLocks = true; + /// The password used when connecting to a MySQL database. + [Description("The password used when connecting to a MySQL database.")] + public string MySqlPassword = ""; - /// Ignores checks to see if a player 'can' update a projectile. - [Description("Ignores checks to see if a player 'can' update a projectile.")] - public bool IgnoreProjUpdate = false; + /// Whether or not to save logs to the SQL database instead of a text file. + [Description("Whether or not to save logs to the SQL database instead of a text file.\nDefault = false.")] + public bool UseSqlLogs = false; - /// Ignores checks to see if a player 'can' kill a projectile. - [Description("Ignores checks to see if a player 'can' kill a projectile.")] - public bool IgnoreProjKill = false; + /// Number of times the SQL log must fail to insert logs before falling back to the text log. + [Description("Number of times the SQL log must fail to insert logs before falling back to the text log.")] + public int RevertToTextLogsOnSqlFailures = 10; - /// Allows players to break temporary tiles (grass, pots, etc) where they cannot usually build. - [Description("Allows players to break temporary tiles (grass, pots, etc) where they cannot usually build.")] - public bool AllowCutTilesAndBreakables = false; - /// Allows ice placement even where a user cannot usually build. - [Description("Allows ice placement even where a user cannot usually build.")] - public bool AllowIce = false; + /* ~~~~~ REST API ~~~~~ */ - /// Allows the crimson to spread when a world is in hardmode. - [Description("Allows the crimson to spread when a world is in hardmode.")] - public bool AllowCrimsonCreep = true; + /// Enable or disable the REST API. + [Description("Enable or disable the REST API.")] + public bool RestApiEnabled; - /// Allows the corruption to spread when a world is in hardmode. - [Description("Allows the corruption to spread when a world is in hardmode.")] - public bool AllowCorruptionCreep = true; + /// The port used by the REST API. + [Description("The port used by the REST API.")] + public int RestApiPort = 7878; - /// Allows the hallow to spread when a world is in hardmode. - [Description("Allows the hallow to spread when a world is in hardmode.")] - public bool AllowHallowCreep = true; + /// Whether or not to log REST API connections. + [Description("Whether or not to log REST API connections.")] + public bool LogRest = false; - /// How many NPCs a statue can spawn within 200 pixels(?) before it stops spawning. - [Description("How many NPCs a statue can spawn within 200 pixels(?) before it stops spawning.\nDefault = 3.")] - public int StatueSpawn200 = 3; + /// Whether or not to require token authentication to use the public REST API endpoints. + [Description("Whether or not to require token authentication to use the public REST API endpoints.")] + public bool EnableTokenEndpointAuthentication; - /// How many NPCs a statue can spawn within 600 pixels(?) before it stops spawning. - [Description("How many NPCs a statue can spawn within 600 pixels(?) before it stops spawning.\nDefault = 6.")] - public int StatueSpawn600 = 6; + /// The maximum REST requests in the bucket before denying requests. Minimum value is 5. + [Description("The maximum REST requests in the bucket before denying requests. Minimum value is 5.")] + public int RESTMaximumRequestsPerInterval = 5; - /// How many NPCs a statue can spawn before it stops spawning. - [Description("How many NPCs a statue can spawn before it stops spawning.\nDefault = 10.")] - public int StatueSpawnWorld = 10; + /// How often in minutes the REST requests bucket is decreased by one. Minimum value is 1 minute. + [Description("How often in minutes the REST requests bucket is decreased by one. Minimum value is 1 minute.")] + public int RESTRequestBucketDecreaseIntervalMinutes = 1; - /// Prevent banned items from being spawned or given with commands. - [Description("Prevent banned items from being spawned or given with commands.")] - public bool PreventBannedItemSpawn = false; + /// A dictionary of REST tokens that external applications may use to make queries to your server. + [Description("A dictionary of REST tokens that external applications may use to make queries to your server.")] + public Dictionary ApplicationRestTokens = new Dictionary(); - /// Prevent players from interacting with the world while they are dead. - [Description("Prevent players from interacting with the world while they are dead.")] - public bool PreventDeadModification = true; - - /// Prevents players from placing tiles with an invalid style. - [Description("Prevents players from placing tiles with an invalid style.")] - public bool PreventInvalidPlaceStyle = true; - - /// Forces Christmas-only events to occur all year. - [Description("Forces Christmas-only events to occur all year.")] - public bool ForceXmas = false; - - /// Forces Halloween-only events to occur all year. - [Description("Forces Halloween-only events to occur all year.")] - public bool ForceHalloween = false; - - /// Allows groups on the banned item allowed list to spawn banned items even if PreventBannedItemSpawn is set to true. - [Description("Allows groups on the banned item allowed list to spawn banned items even if PreventBannedItemSpawn is set to true.")] - public bool AllowAllowedGroupsToSpawnBannedItems = false; - - /// The number of seconds a player must wait before being respawned. Cannot be longer than normal value now. Use at your own risk. - [Description("The number of seconds a player must wait before being respawned. Cannot be longer than normal value now. Use at your own risk.")] - public int RespawnSeconds = 5; - - /// The number of seconds a player must wait before being respawned if there is a boss nearby. Cannot be longer than normal value now. Use at your own risk. - [Description("The number of seconds a player must wait before being respawned if there is a boss nearby. Cannot be longer than normal value now. Use at your own risk.")] - public int RespawnBossSeconds = 10; - - /// Whether or not to announce boss spawning or invasion starts. - [Description("Whether or not to announce boss spawning or invasion starts.")] - public bool AnonymousBossInvasions = true; - - /// The maximum HP a player can have, before equipment buffs. - [Description("The maximum HP a player can have, before equipment buffs.")] - public int MaxHP = 500; - - /// The maximum MP a player can have, before equipment buffs. - [Description("The maximum MP a player can have, before equipment buffs.")] - public int MaxMP = 200; - - /// Determines the range in tiles that a bomb can affect tiles from detonation point. - [Description("Determines the range in tiles that a bomb can affect tiles from detonation point.")] - public int BombExplosionRadius = 5; ///