1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-27 13:02:56 +08:00
Commit Graph

101 Commits

Author SHA1 Message Date
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
Huo Yaoyuan
ccc8aa6fa4 Apply brace style. 2019-11-11 20:13:13 +08:00