* Fixes pooled timer leaking * Fixes `[dumptimers` command so it outputs properly, adds spacing, and stacktraces * Adds `[Tidy]` for serializing Lists. This will remove deleted entities during world save before serializing the list. * Adds helpers for managing Lists/Sets/Dictionaries ### New API ```cs // Creates the list if it is null, then adds Utility.Add(ref list, value); Utility.Add(ref set, value); Utility.Add(ref dict, key, value); // Nulls the variable if the count is zero Utility.Remove(ref list, value); Utility.Remove(ref set, value); Utility.Remove(ref dict, key); // Marks entity as dirty in addition to doing the action entity.Add(list, value); // Marks entity as dirty, and will create list if it doesn't exist entity.Add(ref list, value); // Marks entity as dirty in addition to doing the action entity.Remove(list, value); // Marks entity as dirty, and will null the list count is zero entity.Remove(ref list, value); ``` ### Updates to [dumptimers <img width="825" alt="Screen Shot 2021-08-14 at 2 55 10 AM" src="https://user-images.githubusercontent.com/3953314/129442449-ccf7fe14-29d6-4f3f-9366-c8eb7b9828a7.png">
119 lines
No EOL
2.8 KiB
JSON
119 lines
No EOL
2.8 KiB
JSON
{
|
|
"version": 2,
|
|
"type": "Server.Accounting.Account",
|
|
"properties": [
|
|
{
|
|
"name": "Username",
|
|
"type": "string",
|
|
"rule": "PrimitiveTypeMigrationRule",
|
|
"ruleArguments": []
|
|
},
|
|
{
|
|
"name": "PasswordAlgorithm",
|
|
"type": "Server.Accounting.Security.PasswordProtectionAlgorithm",
|
|
"rule": "EnumMigrationRule",
|
|
"ruleArguments": []
|
|
},
|
|
{
|
|
"name": "Password",
|
|
"type": "string",
|
|
"rule": "PrimitiveTypeMigrationRule",
|
|
"ruleArguments": []
|
|
},
|
|
{
|
|
"name": "AccessLevel",
|
|
"type": "Server.AccessLevel",
|
|
"rule": "EnumMigrationRule",
|
|
"ruleArguments": []
|
|
},
|
|
{
|
|
"name": "Flags",
|
|
"type": "int",
|
|
"rule": "PrimitiveTypeMigrationRule",
|
|
"ruleArguments": []
|
|
},
|
|
{
|
|
"name": "Created",
|
|
"type": "System.DateTime",
|
|
"rule": "PrimitiveTypeMigrationRule",
|
|
"ruleArguments": []
|
|
},
|
|
{
|
|
"name": "LastLogin",
|
|
"type": "System.DateTime",
|
|
"rule": "PrimitiveTypeMigrationRule",
|
|
"ruleArguments": []
|
|
},
|
|
{
|
|
"name": "TotalGold",
|
|
"type": "int",
|
|
"rule": "PrimitiveTypeMigrationRule",
|
|
"ruleArguments": []
|
|
},
|
|
{
|
|
"name": "TotalPlat",
|
|
"type": "int",
|
|
"rule": "PrimitiveTypeMigrationRule",
|
|
"ruleArguments": []
|
|
},
|
|
{
|
|
"name": "Mobiles",
|
|
"type": "Server.Mobile[]",
|
|
"rule": "ArrayMigrationRule",
|
|
"ruleArguments": [
|
|
"Server.Mobile",
|
|
"SerializableInterfaceMigrationRule"
|
|
]
|
|
},
|
|
{
|
|
"name": "Comments",
|
|
"type": "System.Collections.Generic.List\u003CServer.Accounting.AccountComment\u003E",
|
|
"rule": "ListMigrationRule",
|
|
"ruleArguments": [
|
|
"",
|
|
"Server.Accounting.AccountComment",
|
|
"SerializationMethodSignatureMigrationRule"
|
|
]
|
|
},
|
|
{
|
|
"name": "Tags",
|
|
"type": "System.Collections.Generic.List\u003CServer.Accounting.AccountTag\u003E",
|
|
"rule": "ListMigrationRule",
|
|
"ruleArguments": [
|
|
"",
|
|
"Server.Accounting.AccountTag",
|
|
"SerializationMethodSignatureMigrationRule"
|
|
]
|
|
},
|
|
{
|
|
"name": "LoginIPs",
|
|
"type": "System.Net.IPAddress[]",
|
|
"rule": "ArrayMigrationRule",
|
|
"ruleArguments": [
|
|
"System.Net.IPAddress",
|
|
"PrimitiveTypeMigrationRule"
|
|
]
|
|
},
|
|
{
|
|
"name": "IpRestrictions",
|
|
"type": "string[]",
|
|
"rule": "ArrayMigrationRule",
|
|
"ruleArguments": [
|
|
"string",
|
|
"PrimitiveTypeMigrationRule"
|
|
]
|
|
},
|
|
{
|
|
"name": "TotalGameTime",
|
|
"type": "System.TimeSpan",
|
|
"rule": "PrimitiveTypeMigrationRule",
|
|
"ruleArguments": []
|
|
},
|
|
{
|
|
"name": "Email",
|
|
"type": "string",
|
|
"rule": "PrimitiveTypeMigrationRule",
|
|
"ruleArguments": []
|
|
}
|
|
]
|
|
} |