[HOTFIX] fix some nullreferences

This commit is contained in:
hydrant
2021-04-11 22:35:03 +02:00
parent ae90c82855
commit 231edc71d9
3 changed files with 30 additions and 22 deletions

View File

@@ -238,8 +238,12 @@ namespace ReallifeGamemode.Server.Events
}
player.RemoveAllWeapons();
MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == player.Name);
if(task != null)
{
Player medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName);
Medic.RemoveTaskFromList(task);
}
player.SafeTeleport(new Vector3(-495.45, -336.33, 34.5), 0, true);
}

View File

@@ -30,6 +30,13 @@ namespace ReallifeGamemode.Server.Events
public void OnPlayerDisconnected(Player player, DisconnectionType type, string reason)
{
if (!player.IsLoggedIn()) return;
using var saveUser = new DatabaseContext();
User user = player.GetUser(saveUser);
if(user == null)
{
return;
}
if (type == DisconnectionType.Left)
{
@@ -49,7 +56,7 @@ namespace ReallifeGamemode.Server.Events
GlobalHelper.DutyAdmins.Remove(player);
}*/
if (player.GetUser().IsAdmin(AdminLevel.MAPPING))
if (user.IsAdmin(AdminLevel.MAPPING))
{
ChatService.BroadcastAdmin("!{#FFFF00}*** " + player.Name + " hat den Server verlassen", AdminLevel.MAPPING);
}
@@ -74,8 +81,8 @@ namespace ReallifeGamemode.Server.Events
{
Report.Report.listReports.Remove(temp);
Player user = PlayerService.GetPlayerByNameOrId(temp.getUser());
user.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der Admin hat den Server verlassen");
Player ticketUser = PlayerService.GetPlayerByNameOrId(temp.getUser());
ticketUser.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der Admin hat den Server verlassen");
break;
}
@@ -124,9 +131,6 @@ namespace ReallifeGamemode.Server.Events
}
}
using (var saveUser = new DatabaseContext())
{
var user = player.GetUser(saveUser);
Vector3 pos = player.Position;
user.PositionX = pos.X;
@@ -137,10 +141,9 @@ namespace ReallifeGamemode.Server.Events
if (user.Wanteds > 0)
{
ChatService.HQMessage("Der Straftäter " + player.GetUser().Name + " ist vom Radar verschwunden");
ChatService.HQMessage("Der Straftäter " + user.Name + " ist vom Radar verschwunden");
}
}
player.SetData("isLoggedIn", false);
player.TriggerEvent("CLIENT:DestroyPed", 1);
player.TriggerEvent("CLIENT:DestroyPed", 2);

View File

@@ -31,8 +31,9 @@ namespace ReallifeGamemode.Server.Extensions
/// <returns></returns>
public static User GetUser(this Player client, DatabaseContext context = null)
{
context = context ?? new DatabaseContext();
if (!client.IsLoggedIn()) return null;
context = context ?? new DatabaseContext();
return context
.Users
.Include(u => u.Faction)