1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-15 16:27:43 +08:00
Commit Graph

811 Commits

Author SHA1 Message Date
jvyden
e053c08f6b
Hide social interactions while in Do Not Disturb 2024-02-27 16:23:36 -05:00
Bartłomiej Dach
87509fbf6e
Privatise registry-related constants
Don't see any reason for them to be public.
2024-02-27 14:07:49 +01:00
Dan Balasescu
069b400dd0
Move manager to desktop game 2024-02-27 19:36:03 +09:00
Susko3
9b3ec64f41 Inline HKCU\Software\Classes usage 2024-02-26 13:10:37 +01:00
Susko3
f2807470ef Inline EXE_PATH usage 2024-02-26 13:03:23 +01:00
Susko3
6dbba705b3 Refine uninstall logic to account for legacy windows features 2024-02-26 12:27:02 +01:00
jvyden
8934cf33f0
Apply Discord RPC changes regardless of user's status 2024-02-23 22:29:09 -05:00
Joseph Madamba
27ce965dd2 Update unsupported windows startup blocker comment 2024-02-15 22:52:27 -08:00
Dean Herbert
e705190664
Update windows icon metrics to match previous icon 2024-02-15 23:23:49 +08:00
Susko3
6ded79cf07 Make NotifyShellUpdate() public to ease testing 2024-02-08 01:15:37 +01:00
Susko3
1dc54d6f25 Fix stable install path lookup
`osu` is the `osu://` protocol handler, which gets overriden by lazer.
Instead, use `osu!` which is the stable file handler.
2024-02-08 00:54:48 +01:00
Susko3
dfa0c51bc8 Copy icons to nuget and install package
Don't ask me why this uses the folder for .NET Framework 4.5
2024-02-08 00:23:46 +01:00
Susko3
7864810fc9 Merge branch 'master' into windows-file-uri-association 2024-02-07 23:10:13 +01:00
Susko3
8049270ad2 Remove unused param 2024-02-07 22:45:58 +01:00
Susko3
bf47221594 Make things testable via 'Run static method' in Rider 2024-02-07 22:42:42 +01:00
Susko3
139072fa81 Standardise using declaration 2024-02-07 22:29:20 +01:00
Susko3
3419b8ffa8 Standardise using declaration 2024-02-07 22:28:54 +01:00
Susko3
7f5dedc118 Refactor ProgID logic so it's more visible 2024-02-07 22:23:59 +01:00
Susko3
da8c4541db Use Logger.Error 2024-02-07 22:21:04 +01:00
Susko3
ffdefbc742 Move public methods closer together 2024-02-07 22:18:12 +01:00
Susko3
738c28755c Refactor public methods 2024-02-07 22:17:13 +01:00
Susko3
6bdb076027 Move update/install logic into helper 2024-02-07 22:06:09 +01:00
Susko3
0563507295 Remove duplicate try-catch and move NotifyShellUpdate() to less hidden place 2024-02-07 22:03:16 +01:00
Susko3
f9d257b99e Install associations as part of initial squirrel install 2024-02-07 21:56:39 +01:00
Susko3
eeba937686 Make WindowsAssociationManager static
Usages/localisation logic TBD
2024-02-07 21:55:42 +01:00
Susko3
57d5717e6a Remove Win32Icon class and use plain strings instead 2024-02-07 21:33:23 +01:00
Susko3
17033e09f6 Change to class to satisfy CFS hopefully 2024-02-05 14:29:17 +01:00
Susko3
4ec9d26657 Inline constants 2024-02-05 14:16:35 +01:00
Susko3
7789cc01eb Copy .ico files when publishing
These icons should appear in end-user installation folder.
2024-02-05 14:03:16 +01:00
Susko3
01efd1b353 Move WindowsAssociationManager to osu.Desktop 2024-02-05 13:44:12 +01:00
Susko3
2f4211249e Use cleaner way to specify .exe path 2024-02-05 13:12:03 +01:00
Susko3
cdcf5bddda Uninstall associations when uninstalling from squirrel 2024-02-03 17:56:14 +01:00
Susko3
2bac09ee00 Only associate on a deployed build
Helps to reduce clutter when developing
2024-02-03 17:23:59 +01:00
Susko3
03578821c0 Associate on startup 2024-02-03 17:04:06 +01:00
Dan Balasescu
8e8ba9e77f
Fix more CI inspections 2024-02-02 21:36:41 +09:00
Dan Balasescu
dda691b8c2
Fix NVAPI compile error 2024-02-02 21:28:52 +09:00
Dan Balasescu
6e4d52863c
Upgrade to .NET 8 SDK 2024-02-02 21:28:51 +09:00
Bartłomiej Dach
6931af664e
Add missing icon.png entry to nuspec
This is only half of the deployment fix, the other half will be in
`osu-deploy` (making sure the icon is actually in the staging
directory).
2024-01-30 12:05:31 +01:00
Dean Herbert
f54e1418ae
Update to v4 2024-01-27 01:42:47 +09:00
Dean Herbert
84a0291c85
Update icon in nuspec file 2024-01-26 12:32:18 +09:00
Dean Herbert
2941787f5e
Update windows logo 2024-01-25 20:37:50 +09:00
Dean Herbert
7e8b3d03fa
Update copyright years 2024-01-25 20:37:50 +09:00
Dean Herbert
a69fd8198d
Update framework and other nuget packages
- Moq held back because dicks
- NUnit held back because large API changes (trivial but effort)
- SignalR held back due to api deprecations
2024-01-21 11:00:53 +09:00
Dean Herbert
82e7643df5
Update IPC usages
Of note, I've disabled IPC on visual test runners as we generally don't
use IPC in these cases. Having it set means that the game will not open
while visual tests are open, which has been a complaint from devs in the
past.
2024-01-18 19:45:36 +09:00
Bartłomiej Dach
1e3c332658
Fix broken installer
Closes https://github.com/ppy/osu/issues/26510.

Time for a rant.

Technically, this "broke" with 9e8d07d314,
but it is actually an end result of upstream behaviours that I am
failing to find a better description for than "utterly broken".

Squirrel (the installer we use) has unit tests. Which is great, power
to them. However, the method in which that testing is implemented leads
to epic levels of WTF breakage.

To determine whether Squirrel is being tested right now, it is checking
all currently loaded assemblies, and determining that if any loaded
assembly contains the magic string of "NUNIT" - among others - it must
be being tested right now:

    2442721748/src/Squirrel/SimpleSplat/PlatformModeDetector.cs (L17-L32)

If one assumes that there is no conceivable way that an NUnit assembly
*may* be loaded *without* it being a test context, this *may* seem sane.
Foreshadowing.

(Now, to avoid being hypocritical, we also do this, *but* we do this
by checking if the *entry* assembly is an NUnit:

    92db55a527/osu.Framework/Development/DebugUtils.cs (L16-L34)

which seems *much* saner, no?)

Now, why did this break with 9e8d07d314
*specifically*, you might wonder?

Well the reason is this line:

    3d3f58c252/osu.Desktop/NVAPI.cs (L183)

Yes you are reading this correctly, it's not NVAPI anything itself that
breaks this, it is *a log statement*. To be precise, what the log
statement *does* to provoke this, is calling into framework. That causes
the framework assembly to load, *which* transitively loads the
`nunit.framework` assembly.

(If you ever find yourself wanting to find out this sort of cursed
knowledge - I hope you never need to - you can run something along
the lines of

    dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:4 -- .\osu!.exe

then open the resulting trace in PerfView, and then search the
`Microsoft-Windows-DotNETRuntime/AssemblyLoader/Start` log for
the cursed assembly. In this case, the relevant entry said something
along the lines of

    HasStack="True"
    ThreadID="23,924"
    ProcessorNumber="0"
    ClrInstanceID="6"
    AssemblyName="nunit.framework, Version=3.13.3.0, Culture=neutral, PublicKeyToken=2638cd05610744eb"
    AssemblyPath=""
    RequestingAssembly="osu.Framework, Version=2024.113.0.0, Culture=neutral, PublicKeyToken=null"
    AssemblyLoadContext="Default"
    RequestingAssemblyLoadContext="Default"
    ActivityID="/#21032/1/26/"

Either that or just comment the log line for kicks. But the above
is *much* faster.)

Now, what *happens* if Squirrel "detects" that it is being "tested"?
Well, it will refuse to close after executing the "hooks" defined via
`SquirrelAwareApp`:

    2442721748/src/Squirrel/SquirrelAwareApp.cs (L85-L88)

and it will also refuse to create version shortcuts:

    2442721748/src/Squirrel/UpdateManager.Shortcuts.cs (L63-L65)

Sounds familiar, don't it?

There are days on which I tire of computers. Today is one of them.
2024-01-13 22:04:21 +01:00
Bartłomiej Dach
474c416bd9
Make dotnet format shut up about naming 2024-01-03 10:05:11 +01:00
Dean Herbert
d38f8d9c78
Change threaded optimisations setting to "Auto" on startup 2024-01-03 15:41:08 +09:00
Dean Herbert
9e8d07d314
Add NVAPI and force thread optimisations on
This undoes what stable does to force this setting off.
2024-01-03 15:41:08 +09:00
Bartłomiej Dach
d66fa09320
Simplify UserStatus to be an enumeration type
There were absolutely no gains from having it be a reference type /
class, only complications, especially when coming from the serialisation
angle.
2023-12-06 18:52:27 +01:00
Bartłomiej Dach
cb823f367f
Simplify UserActivity for serialisability over the wire
Up until now, the `UserActivity` class hierarchy contained things like
beatmap info, room info, full replay info, etc. While this was
convenient, it is soon going to be less so, as the data is sent over the
wire to the spectator server so that the user's activity can be
broadcast to other clients.

To counteract this without creating a second separate and slimmed-down
class hierarchy, slim down the `UserActivity` structure to contain the
bare minimum amounts of data such that the structures aren't overly
large and complex to serialise, but also contain enough data that they
can be used by receiving clients directly without having to do beatmap
or score lookups.
2023-12-06 18:52:26 +01:00
Dean Herbert
12a148d108
Use new initialisation structure for github sourced update manager 2023-11-09 12:26:41 +09:00
Dean Herbert
02d9f005d0
Update squirrel to latest release
Quite a few fixes since our last update. See https://github.com/clowd/Clowd.Squirrel/releases.

Of special note is [a fix for incomplete updates](https://github.com/clowd/Clowd.Squirrel/issues/182)
which I believe we've seen cause issues in the wild before.
2023-11-07 21:28:36 +09:00
Dean Herbert
56b5f52e83 Update all dependencies (except for Moq) 2023-09-16 15:37:31 +09:00
Dean Herbert
56a4989f71 Disable IPC binding in tournament client to allow running concurrently 2023-08-16 16:55:48 +09:00
Bartłomiej Dach
37361cd683
Repurpose Flat{File -> }WorkingBeatmap 2023-08-12 00:49:42 +02:00
Bartłomiej Dach
17aac0694e
Re-enable connection retrying on discord connector 2023-07-17 19:19:03 +02:00
Dean Herbert
a6b1559e1f Update DiscordRichPresence to pull in performance fix
See https://github.com/Lachee/discord-rpc-csharp/pull/237
2023-07-17 02:24:51 +09:00
Dean Herbert
4ee1f6a49f
Merge pull request #24092 from Susko3/fix-manifest-dpi
Merge `app.manifest`s and let framework set DPI awareness options
2023-07-11 14:12:28 +09:00
Dean Herbert
1d9d90e6e3 Merge branch 'master' into framework-IWindow-changes 2023-07-07 20:57:48 +09:00
Dean Herbert
d74b1e148d Make ScoreInfo.BeatmapInfo nullable 2023-07-04 14:50:34 +09:00
Susko3
e38ac4185c Update inline with framework IWindow changes 2023-07-01 19:02:09 +02:00
Susko3
e505e71d07 Merge the two app.manifest files 2023-06-30 21:40:00 +02:00
Dean Herbert
c3f772f0da Add method to queue a restart after app is exited (when supported) 2023-06-21 19:06:28 +09:00
Salman Ahmed
25fa4a2eb5 Move DragDrop handling to base game implementation for iOS support 2023-06-17 20:30:22 +03:00
Dean Herbert
7cf50b1e18 Disallow game to check for updates while gameplay is active 2023-05-23 18:06:04 +09:00
Dean Herbert
09899819c9
Merge pull request #22914 from Susko3/remove-arbitrary-extension-limitation
Remove arbitrary extension limitation from drag and drop imports
2023-03-20 14:55:03 +09:00
Dean Herbert
11f52d5bf4 Remove unused using statement 2023-03-20 14:01:35 +09:00
Susko3
b254dbd7ca Remove arbitrary extension limitation from drag and drop imports
`OsuGameBase` already properly handles multiple extensions in the same import.
2023-03-19 17:37:49 +01:00
Susko3
48b6e214af Fix URL handling on macOS 2023-03-19 17:14:25 +01:00
Joseph Madamba
afb66d8af4 Make user activity class names more specific 2023-02-12 12:32:17 -08:00
Bartłomiej Dach
7b2c5ab7eb
Merge pull request #22608 from peppy/update-dependencies
Update realm and other dependencies
2023-02-11 12:37:02 +01:00
Dean Herbert
20f3ab167e Re-centralise BannedApiAnalysers nuget package 2023-02-11 19:36:40 +09:00
Dean Herbert
0c5dae5f26
Merge pull request #22529 from ItsShamed/dsc/presence
Add support for `Watching` and `Spectating` activities in `ReplayPlayer` and `SoloSpectatingPlayer`
2023-02-11 17:29:47 +09:00
Dean Herbert
86c8675910 Update realm and other dependencies 2023-02-11 13:52:24 +09:00
tsrk
da10166628
quality: convert getter property to method so that sensible information can be hidden via an argument 2023-02-06 21:30:55 +00:00
tsrk
bc89f8dc5b
feat: add name and rulset verb display support 2023-02-06 12:44:00 +00:00
Susko3
5087377da6 Use IPC archive import in OsuGameDesktop 2023-02-03 18:57:50 +01:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Dean Herbert
923d44a769 Update dependencies 2022-11-04 17:00:58 +09:00
Salman Ahmed
27ce3d8342 Fix input settings not displaying in visual test browser 2022-10-21 01:52:19 +03:00
Dean Herbert
e06ece7531 Update framework 2022-10-05 14:19:51 +09:00
Dean Herbert
65d1c40dd5 Remove remaining package references and replace with SQLitePCLRaw direct reference
This may require further consideration for test and iOS projects.
2022-09-15 16:58:58 +09:00
Dean Herbert
40a60f7145 Remove all entity framework code and migrations 2022-09-15 16:58:58 +09:00
Dean Herbert
eca241e9a7 Move UpdateProgressNotification to base UpdateManager class 2022-09-12 14:52:11 +09:00
Dean Herbert
d13e353a53 Fix double colour application in update progress notification
I'd like to restore it to yellow, but let's clean the slate first.
2022-09-02 03:03:35 +09:00
Dean Herbert
09aa3e065d Move colouring to full icon content rather than background 2022-08-30 18:06:48 +09:00
Salman Ahmed
b00c3a4d6d Move properties and mark as get-only 2022-08-03 20:31:51 +03:00
andy840119
8b02c955d8 Give this class a constructor to make sure that message data will always assigned. 2022-08-03 23:17:09 +08:00
andy840119
8d175bc402 Remove the null check. 2022-08-02 23:14:08 +08:00
andy840119
c8c2758d63 give the object a default value(null). 2022-08-02 23:02:14 +08:00
andy840119
13b2441c51 give the field a default value. 2022-08-02 22:29:54 +08:00
andy840119
11a4bb5833 Prevent return the null value. 2022-08-02 22:29:54 +08:00
andy840119
78cc28d75f Remove nullable disable annotation and fix the api broken. 2022-08-02 22:29:54 +08:00
Dean Herbert
a5f48e336a Isolate development builds' storage from release builds 2022-08-01 14:38:02 +09:00
Susko3
38a8b9cf0a Add battery info for desktop platforms 2022-07-30 14:26:19 +02:00
Dean Herbert
09613f1af3 Add mention of "compatibility mode" in windows version check error message 2022-07-19 17:25:52 +09:00
Susko3
cf7af0061c Add Touch input handler settings section 2022-07-16 15:20:15 +02:00
Salman Ahmed
c046585842 Fix unsupported OS message stating Windows 8 to be supported 2022-07-12 18:29:17 +03:00
Dean Herbert
a36f786725 Change minimum version to Windows 8.1 instead of Windows 8 2022-07-12 16:16:46 +09:00
Dean Herbert
10a14f39ed Show an error message on startup when attempting to run on an unsupported version of windows
A lot of sentry error reports are coming from realm / EF failures due to the host operating system being too old. Let's give the user some proper feedback rather than a silent crash and error report hitting our logging.
2022-07-12 15:48:36 +09:00
Dean Herbert
44d2e001ed Update various dependencies 2022-07-11 20:16:49 +09:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Bartłomiej Dach
6807d0e44f
Merge branch 'master' into osu-link-ipc 2022-06-21 07:27:35 +02:00
Bartłomiej Dach
ee96d84ffa
Merge branch 'master' into input-settings 2022-06-20 22:55:43 +02:00
Bartłomiej Dach
330af7ec74
Handle osu:// scheme links via IPC in desktop game 2022-06-20 21:26:22 +02:00
Dean Herbert
50e40756c4 Rename GracefullyExit to AttemptExit 2022-06-19 12:34:44 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dean Herbert
c55c7becba Always use current ruleset to ensure URL is valid 2022-06-15 02:38:44 +09:00
Dean Herbert
1951eb30bc Remove call to RegisterUriScheme
Seems both unnecessary, and crashes the whole came on macOS.
2022-06-15 02:27:51 +09:00
Dean Herbert
0d36495cfc Fix up code quality, use more correct URL and update button text 2022-06-15 02:25:06 +09:00
Dean Herbert
cf82843e3d Merge branch 'master' into jaxxibae/master 2022-06-15 02:15:24 +09:00
Joseph Madamba
e3418f570a Fix app version not updating on windows uninstaller entry 2022-06-10 20:01:45 -07:00
Dean Herbert
3799689c7d Tidy up variable naming and layout 2022-06-09 12:32:30 +09:00
tornac1234
caa29e1f9e Removed ruleset rankings request from DiscordRichPresence.cs 2022-06-01 12:05:24 +02:00
tornac1234
bcee9ac438 Removed IAPIProvider from load and unified it's usage 2022-05-30 23:32:55 +02:00
tornac1234
80fa90f65d Removed a useless branch in the statistics request 2022-05-30 23:23:54 +02:00
tornac1234
bc1b20291b Revert "Show beatmap star rating in RPC"
This reverts commit a3f5e2458d.
2022-05-30 23:12:39 +02:00
tornac1234
a3f5e2458d Show beatmap star rating in RPC 2022-05-30 22:39:49 +02:00
tornac1234
0d7fa3b55c Added rulesets rankings updating for Discord RPC 2022-05-30 22:39:23 +02:00
Dan Balasescu
3f71224dfc Package .json files in nupkg output 2022-05-18 14:05:21 +09:00
Dean Herbert
fecf92e16f Update libraries to latest versions 2022-05-11 19:54:59 +09:00
Salman Ahmed
bcd91ac743 Move exception soft-handling logic to OsuGameBase 2022-05-10 10:02:32 +03:00
Dean Herbert
7e9d51f33f Fix windows taskbar context menu not popping up correctly
Closes https://github.com/ppy/osu/issues/17965.

Note that this will cause a second osu! icon to appear after running the
application (after any update). As per the inline comment, this will
eventually be resolved via https://github.com/clowd/Clowd.Squirrel/issues/24.

I do think having context menus working is more important than duplicate
icons.

Note that for anyone who already has a pinned taskbar icon, it will need
to be manually unpinned and repinned after a future update to actually
fix this issue.

Thanks to @caesay for help with investigation.
2022-04-25 18:37:41 +09:00
Salman Ahmed
94335c2938 Update further usages to cache/resolve via interface 2022-04-19 00:18:10 +03:00
Dean Herbert
043599081b Split out INotificationOverlay to allow for easier testing 2022-04-18 20:14:01 +09:00
Dean Herbert
f37444938f Update squirrel to latest version
Includes disk space checks and better erroring.
2022-04-18 02:05:15 +09:00
Dean Herbert
0e92486240 Update various licence years to 2022 2022-04-07 22:05:04 +09:00
Huo Yaoyuan
ec4f1bcbc8 Remove outdated NETCore packages. 2022-04-06 19:18:18 +08:00
Dean Herbert
5fb51b578f Update dependencies
Mainly for a `Clowd.Squirrel` bump to fix https://github.com/ppy/osu/discussions/17190.
2022-03-09 19:09:51 +09:00
Dan Balasescu
e0d2c8ca5e
Merge pull request #17046 from peppy/clowd-squirrel
Replace squirrel fork with `Clowd.Squirrel`
2022-03-07 16:25:40 +09:00
Dean Herbert
42e07b7308 Convert to extension method to avoid recursive calls 2022-03-03 14:15:37 +09:00
Dean Herbert
fab9323707 Replace all legacy ruleset checks with a helper property call 2022-03-03 14:08:48 +09:00
Dean Herbert
b286122413 Move uninstaller registry operation to onInitialInstall 2022-03-03 03:54:39 +09:00
Dean Herbert
3aa2d4548a Add startup squirrel icon/association handling 2022-03-02 17:55:35 +09:00
Dean Herbert
1c705f3b33 Mark osu.Desktop as squirrel-aware 2022-03-02 17:43:51 +09:00
Dean Herbert
6a4d731eb3 Update obsolete usages in line with Clowd.Squirrel changes 2022-03-02 17:43:51 +09:00
Dean Herbert
411252e004 Replace squirrel fork with Clowd.Squirrel 2022-03-02 17:01:27 +09:00
Susko3
acf226bb58
Merge branch 'master' into input-settings 2022-02-19 21:28:40 +01:00
Dean Herbert
c869be87d1 Update FlatFileWorkingBeatmap to not require a ruleset store 2022-02-19 20:53:04 +09:00
Dean Herbert
60153bb69d Update nuget packages to highest usable versions
EF packages are intentionally pinned to 5.0.14 as higher versions no
longer support `netstandard2.1`, which we require for xamarin projects.
2022-02-15 15:19:23 +09:00
Susko3
214b2724de Merge branch 'master' into input-settings
# Conflicts:
#	osu.Game/OsuGameBase.cs
#	osu.iOS/OsuGameIOS.cs
2022-02-12 11:48:46 +01:00
Dean Herbert
176bb4a4e2 Update desktop projects to target .NET 6 2022-02-10 17:42:09 +09:00
Dean Herbert
5872dabf60 Fix incorrect flag to options conversion 2022-01-25 14:16:15 +09:00
Dean Herbert
dd2caea694 Update GetSuitableHost usages in line with new HostOptions 2022-01-25 13:52:02 +09:00
Susko3
6e4214de4d Move VersionManager from osu.Desktop to osu.Game 2022-01-15 19:42:38 +01:00
Susko3
f3eaa95041 Move input handler settings creation to OsuGameBase 2022-01-15 14:53:41 +01:00
Susko3
19467e58c1 Remove unused params from BDL methods 2022-01-15 01:06:39 +01:00
Joseph Madamba
66773f6d7d Use comments to disable identifier typos instead 2022-01-12 15:49:28 -08:00
Joseph Madamba
cdc148f78e Increase scope of identifier typo disables on special cases 2021-12-29 14:07:36 -08:00
Joseph Madamba
c22a07d9fc Bump identifier typo inspection and fix remaining identifier names 2021-12-28 11:26:42 -08:00