1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 07:32:55 +08:00

Permitted nulls in ChatOverlay.load() so that in testing, no "OsuGame" instance is required. Also added null checks to the links' on click actions

This commit is contained in:
FreezyLemon 2017-12-07 10:31:02 +01:00
parent 006ac44e11
commit ec8b5c2465
2 changed files with 10 additions and 8 deletions

View File

@ -99,7 +99,7 @@ namespace osu.Game.Graphics.Sprites
break;
case "edit":
chat.Game.LoadEditorTimestamp();
chat.Game?.LoadEditorTimestamp();
break;
case "b":
if (args.Length > 1 && int.TryParse(args[1], out int mapId))
@ -122,16 +122,14 @@ namespace osu.Game.Graphics.Sprites
req.Success += user =>
{
// TODO: Open spectator screen and start spectating
chat.Game?.LoadSpectatorScreen();
};
// api.Queue(req);
chat.Game.LoadSpectatorScreen();
api.Queue(req);
break;
default:
throw new ArgumentException($"Unknown osu:// link at {nameof(OsuLinkSpriteText)} (https://osu.ppy.sh/{args[0]}).");
}
}
}
else if (url.StartsWith("osump://"))
{
@ -139,7 +137,7 @@ namespace osu.Game.Graphics.Sprites
if (!int.TryParse(url.Split('/').ElementAtOrDefault(1), out int multiId))
return;
chat.Game.LoadMultiplayerLobby();
chat.Game?.LoadMultiplayerLobby();
}
else if (url.StartsWith("http://") || url.StartsWith("https://"))
{

View File

@ -41,6 +41,9 @@ namespace osu.Game.Overlays
private readonly FocusedTextBox textbox;
/// <summary>
/// The current OsuGame instance. Will be null for Tests.
/// </summary>
public OsuGame Game;
private APIAccess api;
@ -272,9 +275,10 @@ namespace osu.Game.Overlays
base.PopOut();
}
[BackgroundDependencyLoader]
[BackgroundDependencyLoader(true)]
private void load(APIAccess api, OsuConfigManager config, OsuColour colours, OsuGame game)
{
// game will be null in testing, so some links will not work
Game = game;
this.api = api;
api.Register(this);