From b86254a5ed1a018a8a10384b368f22ea85cbda07 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Wed, 17 Feb 2021 18:45:40 +0100 Subject: [PATCH] Fix Online Medics --- .../Commands/AdminCommands.cs | 29 +++++++++++++++++-- ReallifeGamemode.Server/Events/Disconnect.cs | 5 ++++ ReallifeGamemode.Server/Util/FactionHelper.cs | 9 ++++-- 3 files changed, 37 insertions(+), 6 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 0ab2e5f4..9882803a 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -410,6 +410,12 @@ namespace ReallifeGamemode.Server.Commands return; } + if (target.GetData("duty") == true) + { + target.SetData("duty", false); + Medic.UpdateDutyMedics(-1); + } + string targetPlayername = NAPI.Player.GetPlayerName(target); string adminPlayername = NAPI.Player.GetPlayerName(player); @@ -417,6 +423,8 @@ namespace ReallifeGamemode.Server.Commands target.Kick(); ChatService.BroadcastAdmin("~y~SKICK: ~w~" + targetPlayername + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " gekickt: " + reason, AdminLevel.SUPPORTER); + + } [Command("clearchat", "~m~Benutzung: ~s~/clearchat")] @@ -718,13 +726,22 @@ namespace ReallifeGamemode.Server.Commands return; } + if (target.GetData("duty") == true) + { + target.SetData("duty", false); + Medic.UpdateDutyMedics(-1); + } + string targetPlayername = NAPI.Player.GetPlayerName(target); string adminPlayername = NAPI.Player.GetPlayerName(player); ChatService.SendMessage(target, "~r~KICKINFO: ~w~Du wurdest von " + adminPlayername + " vom Server gekickt: " + reason); + target.Kick(); ChatService.Broadcast("~y~INFO: ~w~" + targetPlayername + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " gekickt: " + reason); + + } [Command("warn", "~m~Benutzung: ~s~/warn [Player] [Grund]", GreedyArg = true)] @@ -798,6 +815,12 @@ namespace ReallifeGamemode.Server.Commands return; } + if (target.GetData("duty") == true) + { + target.SetData("duty", false); + Medic.UpdateDutyMedics(-1); + } + reason = Regex.Replace(reason, "(~[a-zA-Z]~)|(!{(.*)})", ""); target.GetUser().BanPlayer(admin, reason, mins); @@ -2304,10 +2327,10 @@ namespace ReallifeGamemode.Server.Commands { ChatService.PlayerNotFound(player); return; - } + } - using (var dbContext = new DatabaseContext()) - { + using (var dbContext = new DatabaseContext()) + { Faction f = dbContext.Factions.FirstOrDefault(x => x.Id == faction); if (f == null) { diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index d4f6e4a1..4f957625 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -139,6 +139,11 @@ namespace ReallifeGamemode.Server.Events player.TriggerEvent("CLIENT:DestroyPed", 4); Medic.delHealTask(player); Medic.delReviveTask(player); + if (player.GetData("duty") == true) + { + player.SetData("duty", false); + Medic.UpdateDutyMedics(-1); + } } } } diff --git a/ReallifeGamemode.Server/Util/FactionHelper.cs b/ReallifeGamemode.Server/Util/FactionHelper.cs index 497488c9..5424dfb6 100644 --- a/ReallifeGamemode.Server/Util/FactionHelper.cs +++ b/ReallifeGamemode.Server/Util/FactionHelper.cs @@ -36,16 +36,19 @@ namespace ReallifeGamemode.Server.Util public static void ResetPlayer(Player player, User user, DatabaseContext dbContext) { - user.SetData("duty", false); + if (player.GetData("duty") == true) + { + player.SetData("duty", false); + Medic.UpdateDutyMedics(-1); + } var userClothes = dbContext.CharacterClothes.Where(c => c.UserId == user.Id && c.Duty == true); dbContext.CharacterClothes.RemoveRange(userClothes); CharacterCreator.ApplyCharacter(player); Events.UpdateCharacterCloth.LoadCharacterDefaults(player); - + player.TriggerEvent("toggleDutyMode", false); - Medic.UpdateDutyMedics(1); } } }