From 231edc71d9ff448f818e9c785e8dc11337188307 Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 11 Apr 2021 22:35:03 +0200 Subject: [PATCH 1/4] [HOTFIX] fix some nullreferences --- ReallifeGamemode.Server/Events/Death.cs | 8 +++- ReallifeGamemode.Server/Events/Disconnect.cs | 41 ++++++++++--------- .../Extensions/ClientExtension.cs | 3 +- 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index 5dff77b5..c810c4ff 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -238,8 +238,12 @@ namespace ReallifeGamemode.Server.Events } player.RemoveAllWeapons(); MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == player.Name); - Player medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName); - Medic.RemoveTaskFromList(task); + + if(task != null) + { + Player medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName); + Medic.RemoveTaskFromList(task); + } player.SafeTeleport(new Vector3(-495.45, -336.33, 34.5), 0, true); } diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index de3dd8c8..ab181cb4 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -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,27 +131,23 @@ namespace ReallifeGamemode.Server.Events } } - using (var saveUser = new DatabaseContext()) + Vector3 pos = player.Position; + + user.PositionX = pos.X; + user.PositionY = pos.Y; + user.PositionZ = pos.Z; + saveUser.SaveChanges(); + user.Dead = player.HasData("isDead") ? (bool)player.GetData("isDead") : false; + + if (user.Wanteds > 0) { - var user = player.GetUser(saveUser); - Vector3 pos = player.Position; - - user.PositionX = pos.X; - user.PositionY = pos.Y; - user.PositionZ = pos.Z; - saveUser.SaveChanges(); - user.Dead = player.HasData("isDead") ? (bool)player.GetData("isDead") : false; - - 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); - player.TriggerEvent("CLIENT:DestroyPed", 3); + player.TriggerEvent("CLIENT:DestroyPed", 3); player.TriggerEvent("CLIENT:DestroyPed", 4); Medic.delHealTask(player); diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index 38d79ada..9c354a51 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -31,8 +31,9 @@ namespace ReallifeGamemode.Server.Extensions /// 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) From fbbc61a523d90d94f57e0b08682360c7da24b5c7 Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 11 Apr 2021 22:39:24 +0200 Subject: [PATCH 2/4] [HOTFIX] Set Spawn dimension --- ReallifeGamemode.Server/Events/Connect.cs | 1 + ReallifeGamemode.Server/Events/Login.cs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/ReallifeGamemode.Server/Events/Connect.cs b/ReallifeGamemode.Server/Events/Connect.cs index 7852a425..9a235a20 100644 --- a/ReallifeGamemode.Server/Events/Connect.cs +++ b/ReallifeGamemode.Server/Events/Connect.cs @@ -27,6 +27,7 @@ namespace ReallifeGamemode.Server.Events //player.SetSharedData("vehicleAdminSpeed2", 1.0); player.SetData("isLoggedIn", false); player.SafeTeleport(new Vector3(-1883.736, -781.4911, -10)); + player.Dimension = (uint)(player.Handle.Value + 1); bool registered = false; diff --git a/ReallifeGamemode.Server/Events/Login.cs b/ReallifeGamemode.Server/Events/Login.cs index 0d46c49c..2966c9d0 100644 --- a/ReallifeGamemode.Server/Events/Login.cs +++ b/ReallifeGamemode.Server/Events/Login.cs @@ -144,6 +144,8 @@ namespace ReallifeGamemode.Server.Events { Jail.Check_PutBehindBars(user); } + + player.Dimension = 0; } player.TriggerEvent("draw", player.Name, player.Handle.Value); From 1943c703c2e5fdd731eb5398ed56db20d442ff5d Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 11 Apr 2021 22:39:40 +0200 Subject: [PATCH 3/4] [HOTFIX] Add stungun, remove some unreliable messages[HOTFIX] Add stungun to anticheat --- ReallifeGamemode.Client/admin/anticheat.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ReallifeGamemode.Client/admin/anticheat.ts b/ReallifeGamemode.Client/admin/anticheat.ts index 078a8b86..051cfced 100644 --- a/ReallifeGamemode.Client/admin/anticheat.ts +++ b/ReallifeGamemode.Client/admin/anticheat.ts @@ -23,7 +23,8 @@ -2084633992, -1075685676, -1786099057, - -1074790547 + -1074790547, + -1569615261 ] mp.events.add("playerJoin", () => { @@ -189,12 +190,12 @@ let Difference = Behaviour.subtractVector(Behaviour.pos, mp.players.local.position) if (Math.abs(Difference.x) > 30 || Math.abs(Difference.y) > 30) { if (Behaviour.isWalking()) { - mp.events.callRemote("CLIENT:CheatDetection", "Flyhack/Teleport") + //mp.events.callRemote("CLIENT:CheatDetection", "Flyhack/Teleport") } } if (mp.players.local.vehicle) { if (Behaviour.checkCarPos(25)) { - mp.events.callRemote("CLIENT:CheatDetection", "Vehicle Flyhack") + //mp.events.callRemote("CLIENT:CheatDetection", "Vehicle Flyhack") } if (Behaviour.VehicleFasterThan(250)) { mp.events.callRemote("CLIENT:CheatDetection", "Vehicle Speedhack") From b12619b2a2c35ac92b9fb20b4a252013735867d6 Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 11 Apr 2021 22:49:43 +0200 Subject: [PATCH 4/4] [HOTFIX] remove unallowed weapon debug message --- ReallifeGamemode.Client/admin/anticheat.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/ReallifeGamemode.Client/admin/anticheat.ts b/ReallifeGamemode.Client/admin/anticheat.ts index 051cfced..0eaf4fed 100644 --- a/ReallifeGamemode.Client/admin/anticheat.ts +++ b/ReallifeGamemode.Client/admin/anticheat.ts @@ -153,7 +153,6 @@ checkWeaponhash() { let h = this.weapon; if (allowedWeaponHashes.indexOf(h) === -1) { - mp.gui.chat.push("unallowed weapon: " + h); return true } return false