Dean Herbert
706adfb28c
Improve messaging when ruleset load fails
2022-11-01 13:57:34 +09:00
Dean Herbert
b0a740071e
Centralise logging of failed ruleset loads
2022-08-18 16:14:38 +09:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Dean Herbert
7a69de0060
Split out realm portion of RulesetStore
2022-02-16 17:13:31 +09:00
Dean Herbert
0c5da9370a
Fix rulesets potentially being marked Available
even when methods are missing
...
Came up when running the game after the recent breaking changes
(https://github.com/ppy/osu/pull/16722 ), where two template rulesets I
had loaded were erroring on startup but still being marked as available,
allowing them to crash the game on attempting to initiate relpay logic.
These cases are already handled for first-time ruleset loading via the
`GetTypes()` enumeration in `RulesetStore.addRuleset`, but when
consistency checking already present rulesets the only runtime
validation being done was `ruleset.CreateInstance()`, which does not
handle missing types or methods.
2022-02-02 14:52:01 +09:00
Dean Herbert
5637fd64d6
Perform ordering using IComparable
instead
2022-01-27 15:59:20 +09:00
Dean Herbert
f30d63107a
Add SortID
to RulesetInfo
to allow stable ordering of rulesets for display
2022-01-27 15:35:16 +09:00
Dean Herbert
57e624d8e7
Fix custom rulesets being displayed before official ones
2022-01-26 18:46:32 +09:00
Dean Herbert
d7342880f5
Update remaining cases of clashes with realm.Write
and realm.RegisterForNotifications
2022-01-25 13:09:48 +09:00
Dean Herbert
6eb2c28e41
Rename RealmContextFactory
to RealmAccess
2022-01-24 20:38:07 +09:00
Dean Herbert
114c9e8c1f
Update all usages of CreateContext
to use either Run
or Write
2022-01-21 17:27:08 +09:00
Dean Herbert
2d2faa72a9
Fix rulesets being out of order
2022-01-12 17:00:16 +09:00
Dean Herbert
a3da8dc49d
Fix missing interface implementation of IRulesetStore
2022-01-12 16:58:58 +09:00
Dean Herbert
3ecd889fef
Replace EF RulesetStore
with realm version
...
Pass full EF context factory to `RealmContextFactory` for migration purposes
2022-01-12 16:39:36 +09:00
Dean Herbert
675ecb603f
Add IRulesetStore
to allow for transitional usage in upcoming manager classes
2021-12-03 17:57:40 +09:00
Dean Herbert
4bca96d548
Throw again to ensure correct available state is set
...
Also standardises handling between `RulesetStore` and `RealmRulesetStore`.
2021-11-11 17:39:36 +09:00
Dan Balasescu
57c333b472
Remove unused using
2021-11-11 15:29:08 +09:00
Dean Herbert
ea536dea23
Gracefully handle missing type rather than triggering ArgumentNullException
2021-11-11 14:46:21 +09:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
Salman Ahmed
956112eb10
Reword comment and remove brackets
2021-08-22 12:40:41 +03:00
Michael Malloy
9cd0a182f6
Add null check for Android ruleset loading
2021-08-22 00:38:48 -05:00
Dean Herbert
2dadc9d686
Remove unused using statement
2021-06-18 19:39:01 +09:00
Dean Herbert
78c5ccda60
Fix renaming a ruleset DLL causing a startup crash
2021-06-18 19:32:40 +09:00
Bartłomiej Dach
628e7a71ed
Ignore possible nulls in Type.GetType()
calls
...
They're mostly used in extensibility scenarios, so everything happens in
runtime. There is no better resolution than to crash with a null
reference exception.
2021-05-15 00:09:34 +02:00
Salman Ahmed
5b1dc7d2b4
Remove unused using directive
2021-04-02 02:45:26 +03:00
Salman Ahmed
fcd56dba44
Guard against same ruleset file with loaded assembly filenames instead
2021-04-02 02:12:25 +03:00
Bartłomiej Dach
68352782db
Change .StartsWith() to .Equals()
...
In line with planned-but-delayed breaking change.
2021-01-06 18:38:24 +01:00
smoogipoo
6385d5f369
Replace with local tolist
2020-10-16 23:40:44 +09:00
smoogipoo
81cc5e1c42
Silence EF warning due to ordinal being unsupported
2020-10-16 23:31:37 +09:00
Dean Herbert
cc41845f56
Add missing string function ordinal specifications
2020-10-16 12:49:31 +09:00
Dean Herbert
471ed968e3
Fix crash when same ruleset loaded more than once
...
If the same ruleset assembly was present more than once in the current
AppDomain, the game would crash. We recently saw this in Rider EAP9.
While this behaviour may change going forward, this is a good safety
measure regardless.
2020-08-11 11:09:02 +09:00
Dean Herbert
62ba214dad
Use OrderByDescending
2020-07-31 16:21:47 +09:00
smoogipoo
23ab6f8f94
Fix dynamic compilation loading wrong ruleset versions
2020-07-30 21:10:13 +09:00
Dean Herbert
6c8c95677f
Fix incorrect usage of Directory.GetFiles
2020-06-02 14:55:10 +09:00
Salman Ahmed
2c6887e610
Remove unnecessary use of and remove StartupStorage
2020-05-31 19:49:03 +03:00
Salman Ahmed
82fe99cf4a
Replace any potential usage of Environment.CurrentDirectory with a new RuntimeInfo.StartupDirectory
...
Using `Environment.CurrentDirectory` for storing / reading files is dangerous as the current directory is mutable and can be changed when performing a certain operation (like opening solutions in roslyn type reference builder for example).
2020-05-31 02:24:49 +03:00
Dean Herbert
5c2778d5f0
Change comparison direction
2020-05-08 20:33:02 +09:00
Dean Herbert
a59db976d6
Fix loading a ruleset with a new version specification causing a crash
2020-05-08 18:05:06 +09:00
alex
0e2ccac33b
Add spaces to comments
2020-05-04 18:36:24 -07:00
Lucas A
a541f92682
Resolve ruleset dependencies on game core / framework assemblies by checking already loaded assemblies in AppDomain.
2020-04-20 13:56:15 +02:00
Bartłomiej Dach
1dcb0f53a2
Fix whitespace formatting
2020-04-19 16:29:32 +02:00
Lucas A
ba1c465edf
Add comment in regards to the attaching of event handler to the assembly lookup event before call to loadUserRulesets().
2020-04-19 15:26:00 +02:00
Lucas A
a7179d1c87
Fix comment wording
...
Co-Authored-By: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-04-19 15:15:04 +02:00
Lucas A
2087d8d09e
Don't search for user rulesets if rulesetsStorage isn't set (Testing environnment)
2020-04-07 16:01:47 +02:00
Lucas A
08308e07e7
Apply review suggestions
2020-04-07 12:22:09 +02:00
Lucas A
0e45a4d54e
Add back cached ruleset assembly lookup
2020-04-04 20:13:46 +02:00
Lucas A
8cdae790c3
Load user rulesets from the game data directory
2020-04-03 21:40:09 +02:00
Dean Herbert
fcb7a9ade5
Update RulesetStore to read from populated defaults
2019-12-24 16:16:55 +09:00
Dean Herbert
a324bfbc2c
Remove LegacyID from Ruleset
2019-12-24 13:48:27 +09:00
Dean Herbert
6e0802e50c
Remove RulesetInfo parameter from Ruleset constructor
2019-12-18 14:49:09 +09:00