Fix NRE when pointing happens without player data or a mind (#1855)

This commit is contained in:
DrSmugleaf
2020-08-22 15:18:04 +02:00
committed by GitHub
parent 265afc9929
commit c87a8d5b51
2 changed files with 8 additions and 9 deletions

View File

@@ -3,12 +3,10 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using Content.Server.GameObjects.Components.Pointing; using Content.Server.GameObjects.Components.Pointing;
using Content.Server.Players; using Content.Server.Players;
using Content.Server.Utility;
using Content.Shared.GameObjects.EntitySystems; using Content.Shared.GameObjects.EntitySystems;
using Content.Shared.Input; using Content.Shared.Input;
using Content.Shared.Interfaces; using Content.Shared.Interfaces;
using JetBrains.Annotations; using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore.Diagnostics;
using Robust.Server.GameObjects.Components; using Robust.Server.GameObjects.Components;
using Robust.Server.Interfaces.Player; using Robust.Server.Interfaces.Player;
using Robust.Server.Player; using Robust.Server.Player;
@@ -84,7 +82,7 @@ namespace Content.Server.GameObjects.EntitySystems
public bool TryPoint(ICommonSession? session, GridCoordinates coords, EntityUid uid) public bool TryPoint(ICommonSession? session, GridCoordinates coords, EntityUid uid)
{ {
var player = (session as IPlayerSession)?.ContentData().Mind.CurrentEntity; var player = (session as IPlayerSession)?.ContentData()?.Mind?.CurrentEntity;
if (player == null) if (player == null)
{ {
return false; return false;
@@ -132,7 +130,7 @@ namespace Content.Server.GameObjects.EntitySystems
if ((playerSession.VisibilityMask & layer) == 0) if ((playerSession.VisibilityMask & layer) == 0)
return false; return false;
var ent = playerSession.ContentData().Mind.CurrentEntity; var ent = playerSession.ContentData()?.Mind?.CurrentEntity;
return ent != null return ent != null
&& ent.Transform.MapPosition.InRange(player.Transform.MapPosition, PointingRange); && ent.Transform.MapPosition.InRange(player.Transform.MapPosition, PointingRange);

View File

@@ -1,4 +1,5 @@
using Content.Server.Mobs; #nullable enable
using Content.Server.Mobs;
using Robust.Server.Interfaces.Player; using Robust.Server.Interfaces.Player;
using Robust.Shared.Network; using Robust.Shared.Network;
using Robust.Shared.ViewVariables; using Robust.Shared.ViewVariables;
@@ -22,7 +23,7 @@ namespace Content.Server.Players
/// DO NOT DIRECTLY SET THIS UNLESS YOU KNOW WHAT YOU'RE DOING. /// DO NOT DIRECTLY SET THIS UNLESS YOU KNOW WHAT YOU'RE DOING.
/// </summary> /// </summary>
[ViewVariables] [ViewVariables]
public Mind Mind { get; set; } public Mind? Mind { get; set; }
public void WipeMind() public void WipeMind()
{ {
@@ -41,15 +42,15 @@ namespace Content.Server.Players
/// <summary> /// <summary>
/// Gets the correctly cast instance of content player data from an engine player data storage. /// Gets the correctly cast instance of content player data from an engine player data storage.
/// </summary> /// </summary>
public static PlayerData ContentData(this IPlayerData data) public static PlayerData? ContentData(this IPlayerData data)
{ {
return (PlayerData)data.ContentDataUncast; return (PlayerData?) data.ContentDataUncast;
} }
/// <summary> /// <summary>
/// Gets the correctly cast instance of content player data from an engine player data storage. /// Gets the correctly cast instance of content player data from an engine player data storage.
/// </summary> /// </summary>
public static PlayerData ContentData(this IPlayerSession session) public static PlayerData? ContentData(this IPlayerSession session)
{ {
return session.Data.ContentData(); return session.Data.ContentData();
} }