diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 21ab38af..93ca01e5 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -276,7 +276,8 @@ namespace ReallifeGamemode.Server.Commands [Command("tsupport", "~m~Benutzung: ~s~/tsupport", Alias = "ts")] public void CmdAdminTSupport(Player player) { - if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) + User user = player.GetUser(); + if (user.IsAdmin(AdminLevel.SUPPORTER)) { ChatService.NotAuthorized(player); return; @@ -289,51 +290,14 @@ namespace ReallifeGamemode.Server.Commands if (player.GetData("SAdminduty") == false) { player.SetData("SAdminduty", true); - player.SetSharedData("blipColor", 30); - player.SetSharedData("nameTagColor", -2); ChatService.SendMessage(player, "~g~ ** " + "Du befindest dich im T-Support"); } else { player.SetData("SAdminduty", false); ChatService.SendMessage(player, "!{#ee4d2e}** " + "Du befindest dich nicht mehr im T-Support"); - - using (var dbContext = new DatabaseContext()) - { - User targetUser = player.GetUser(dbContext); - switch (targetUser.FactionId) - { - case null: - player.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); - break; - case 0: - player.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); - break; - case 8: - player.SetSharedData("blipColor", 83); - player.SetSharedData("nameTagColor", 8); - break; - - case 7: - player.SetSharedData("blipColor", 52); - player.SetSharedData("nameTagColor", 7); - break; - - case 4: - player.SetSharedData("blipColor", 5); - player.SetSharedData("nameTagColor", 4); - break; - case 9: - player.SetSharedData("blipColor", 25); - player.SetSharedData("nameTagColor", 9); - break; - } - player.SetSharedData("nameTagColor", targetUser.FactionId); - } - } + user.SetBlipAndNametagColor(); } [Command("aduty", "~m~Benutzung: ~s~/aduty")] public void CmdAdminAduty(Player player) @@ -1498,37 +1462,12 @@ namespace ReallifeGamemode.Server.Commands } ChatService.SendMessage(target, "!{#8181E9}Deine Akte wurde vom Admin " + player.Name + " gelöscht. Grund: " + reason); ChatService.BroadcastFaction("!{#8181E9}HQ: Die Akte von " + target.Name + " wurde vom Admin " + player.Name + " gelöscht. Grund: " + reason + ".", new List() { 1, 3 }); - switch (targetUser.FactionId) - { - case null: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - case 0: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - case 8: - target.SetSharedData("blipColor", 83); - target.SetSharedData("nameTagColor", 8); - break; - - case 7: - target.SetSharedData("blipColor", 52); - target.SetSharedData("nameTagColor", 7); - break; - - case 4: - target.SetSharedData("blipColor", 5); - target.SetSharedData("nameTagColor", 4); - break; - case 9: - target.SetSharedData("blipColor", 25); - target.SetSharedData("nameTagColor", 9); - break; - } + target.TriggerEvent("jailTime", 0); targetUser.Wanteds = 0; + + targetUser.SetBlipAndNametagColor(); + dbContext.SaveChanges(); } } @@ -2494,37 +2433,7 @@ namespace ReallifeGamemode.Server.Commands } u.FactionLeader = false; - switch (u.FactionId) - { - case null: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - - case 0: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - - case 8: - target.SetSharedData("blipColor", 83); - target.SetSharedData("nameTagColor", 8); - break; - - case 7: - target.SetSharedData("blipColor", 52); - target.SetSharedData("nameTagColor", 7); - break; - - case 4: - target.SetSharedData("blipColor", 5); - target.SetSharedData("nameTagColor", 4); - break; - case 9: - target.SetSharedData("blipColor", 25); - target.SetSharedData("nameTagColor", 9); - break; - } + u.SetBlipAndNametagColor(); dbContext.SaveChanges(); } } @@ -2567,36 +2476,7 @@ namespace ReallifeGamemode.Server.Commands ChatService.SendMessage(player, "~b~[ADMIN]~s~ Du hast hast den Spieler ~y~" + target.Name + "~s~ zum Leader der Fraktion ~o~" + f.Name + "~s~ ernannt."); ChatService.SendMessage(target, "~b~[ADMIN]~s~ Du wurdest von ~y~" + player.Name + "~s~ zum Leader der Fraktion ~o~" + f.Name + "~s~ ernannt."); - switch (u.FactionId) - { - case null: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - case 0: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - - case 8: - target.SetSharedData("blipColor", 83); - target.SetSharedData("nameTagColor", 8); - break; - - case 7: - target.SetSharedData("blipColor", 52); - target.SetSharedData("nameTagColor", 7); - break; - - case 4: - target.SetSharedData("blipColor", 5); - target.SetSharedData("nameTagColor", 4); - break; - case 9: - target.SetSharedData("blipColor", 25); - target.SetSharedData("nameTagColor", 9); - break; - } + u.SetBlipAndNametagColor(); dbContext.SaveChanges(); } } diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index 236320a4..7c62423a 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -491,40 +491,12 @@ namespace ReallifeGamemode.Server.Commands } ChatService.SendMessage(target, "!{#8181E9}Deine Akte wurde von " + player.Name + " gelöscht. Grund: " + reason); ChatService.BroadcastFaction("!{#8181E9}HQ: Die Akte von " + target.Name + " wurde von " + player.Name + " gelöscht. Grund: " + reason + ".", new List() { 1, 3 }); - target.SetSharedData("blipColor", 0); - switch (targetUser.FactionId) - { - case null: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - - case 0: - target.SetSharedData("blipColor", 0); - target.SetSharedData("nameTagColor", 0); - break; - - case 8: - target.SetSharedData("blipColor", 83); - target.SetSharedData("nameTagColor", 8); - break; - - case 7: - target.SetSharedData("blipColor", 52); - target.SetSharedData("nameTagColor", 7); - break; - - case 4: - target.SetSharedData("blipColor", 5); - target.SetSharedData("nameTagColor", 4); - break; - case 9: - target.SetSharedData("blipColor", 25); - target.SetSharedData("nameTagColor", 9); - break; - } + target.TriggerEvent("jailTime", 0); targetUser.Wanteds = 0; + + targetUser.SetBlipAndNametagColor(); + dbContext.SaveChanges(); } } diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index e5aef019..92e2be94 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -293,27 +293,8 @@ namespace ReallifeGamemode.Server.Events } switch (factionId) { - //LSPD - case 1: - //nameTagColor = new Color(28, 134, 238); - //player.TriggerEvent("setNameTag", JsonConvert.SerializeObject(new int[] { 28, 134, 238 })); - player.SetSharedData("nameTagColor", factionId); - player.SetSharedData("blipColor", 38); - break; - - //Medic - case 2: - //nameTagColor = new Color(255, 0, 0); - //player.TriggerEvent("setNameTag", JsonConvert.SerializeObject(new int[] { 255, 0, 0 })); - player.SetSharedData("nameTagColor", factionId); - player.SetSharedData("blipColor", 6); - break; - //FBI case 3: - //nameTagColor = new Color(173, 0, 118); - player.SetSharedData("nameTagColor", factionId); - player.SetSharedData("blipColor", 63); player.SetAccessories(2, 2, 0); break; } @@ -347,10 +328,9 @@ namespace ReallifeGamemode.Server.Events player.SendNotification("Du bist nun ~r~außer Dienst."); player.TriggerEvent("toggleDutyMode", false); Medic.UpdateDutyMedics(-1); - player.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); UpdateCharacterCloth.LoadCharacterDefaults(player); } + user.SetBlipAndNametagColor(); } if (nearestWeapon != null) // Weapon Point diff --git a/ReallifeGamemode.Server/Events/Login.cs b/ReallifeGamemode.Server/Events/Login.cs index b89e2269..ccdd6628 100644 --- a/ReallifeGamemode.Server/Events/Login.cs +++ b/ReallifeGamemode.Server/Events/Login.cs @@ -100,42 +100,7 @@ namespace ReallifeGamemode.Server.Events var userItems = dbContext.UserItems.Where(u => u.UserId == user.Id).ToList(); player.SetData("items", userItems); - switch (user.FactionId) - { - case null: - player.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); - break; - - case 0: - player.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); - break; - - case 8: - player.SetSharedData("blipColor", 83); - player.SetSharedData("nameTagColor", 8); - break; - - case 7: - player.SetSharedData("blipColor", 52); - player.SetSharedData("nameTagColor", 7); - break; - - case 4: - player.SetSharedData("blipColor", 5); - player.SetSharedData("nameTagColor", 4); - break; - case 9: - player.SetSharedData("blipColor", 25); - player.SetSharedData("nameTagColor", 9); - break; - default: - player.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); - break; - } - + user.SetBlipAndNametagColor(); if (user.CharacterId == null) { diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index 765d3f05..c77d1f35 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -131,8 +131,7 @@ namespace ReallifeGamemode.Server.Extensions dbUser.Wanteds = newWanteds; dbContext.SaveChanges(); } - user.Player.SetSharedData("nameTagColor", -1); - user.Player.SetSharedData("blipColor", 64); + user.SetBlipAndNametagColor(); ChatService.SendMessage(user.Player, "!{#FF614A}Du hast ein Verbrechen begangen: " + reason + "" + (cop != null ? " | Gemeldet von: " + cop.Name + "." : "")); ChatService.SendMessage(user.Player, " !{#FFFF00}Fahnundgslevel:~s~ " + newWanteds); @@ -237,11 +236,81 @@ namespace ReallifeGamemode.Server.Extensions public static bool IsAdmin(this User user, AdminLevel adminLevel) { - if(user == null) + if (user == null) { return false; } return user.AdminLevel >= adminLevel; } + + public static void SetBlipAndNametagColor(this User user) + { + if (user == null) + { + return; + } + + int blipColor = 0; + int nameTagColor = 0; + + Player player = user.Player; + bool duty = user.GetData("duty"); + + if (player.GetData("SAdminduty")) + { + blipColor = 30; + nameTagColor = -2; + } + else if (user.Wanteds > 0) + { + nameTagColor = -1; + blipColor = 64; + } + else if (user.Faction != null) + { + nameTagColor = user.FactionId.Value; + switch (user.FactionId) + { + case 1 when duty: + blipColor = 38; + break; + + case 2 when duty: + blipColor = 6; + break; + + case 3 when duty: + blipColor = 63; + break; + + case 4: + blipColor = 5; + break; + + case 5: + break; + + case 6: + break; + + case 7: + blipColor = 52; + break; + + case 8: + blipColor = 83; + break; + + case 9: + blipColor = 25; + break; + } + } + + NAPI.Util.ConsoleOutput($"{player.Name} - Setting blip and nametag color: nametag = {nameTagColor}, blip = {blipColor}"); + + user.Player.SetSharedData("nameTagColor", nameTagColor); + user.Player.SetSharedData("blipColor", blipColor); + } } } diff --git a/ReallifeGamemode.Server/Managers/InteractionManager.cs b/ReallifeGamemode.Server/Managers/InteractionManager.cs index cc556b6f..e25fced2 100644 --- a/ReallifeGamemode.Server/Managers/InteractionManager.cs +++ b/ReallifeGamemode.Server/Managers/InteractionManager.cs @@ -69,32 +69,7 @@ namespace ReallifeGamemode.Server.Managers ChatService.SendMessage(leader, "!{02FCFF}" + player.Name + " hat die Einladung angenommen."); ChatService.SendMessage(player, "!{02FCFF}Du hast die Einladung angenommen."); - switch (own.FactionId) - { - default: - player.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); - break; - - case 8: - player.SetSharedData("blipColor", 83); - player.SetSharedData("nameTagColor", 8); - break; - - case 7: - player.SetSharedData("blipColor", 52); - player.SetSharedData("nameTagColor", 7); - break; - - case 4: - player.SetSharedData("blipColor", 5); - player.SetSharedData("nameTagColor", 4); - break; - case 9: - player.SetSharedData("blipColor", 25); - player.SetSharedData("nameTagColor", 9); - break; - } + own.SetBlipAndNametagColor(); dbContext.SaveChanges(); } } @@ -247,8 +222,10 @@ namespace ReallifeGamemode.Server.Managers return; } - User targetUser = target.GetUser(); - User playerUser = player.GetUser(); + using var dbContext = new DatabaseContext(); + + User targetUser = target.GetUser(dbContext); + User playerUser = player.GetUser(dbContext); if (type == "Fraktion") { @@ -276,21 +253,16 @@ namespace ReallifeGamemode.Server.Managers return; } - using (var dbContext = new DatabaseContext()) - { - target.SetData("duty", false); - target.TriggerEvent("toggleDutyMode", false); - Medic.UpdateDutyMedics(-1); - target.SetSharedData("blipColor", 0); - UpdateCharacterCloth.LoadCharacterDefaults(target); - target.GetUser(dbContext).FactionRankId = null; - target.GetUser(dbContext).FactionId = null; - ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " aus der Fraktion geworfen."); - ChatService.SendMessage(target, "!{02FCFF}Du wurdest von " + player.Name + " aus der Fraktion geworfen."); - target.SetSharedData("blipColor", 0); - player.SetSharedData("nameTagColor", 0); - dbContext.SaveChanges(); - } + target.SetData("duty", false); + target.TriggerEvent("toggleDutyMode", false); + Medic.UpdateDutyMedics(-1); + UpdateCharacterCloth.LoadCharacterDefaults(target); + target.GetUser(dbContext).FactionRankId = null; + target.GetUser(dbContext).FactionId = null; + ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " aus der Fraktion geworfen."); + ChatService.SendMessage(target, "!{02FCFF}Du wurdest von " + player.Name + " aus der Fraktion geworfen."); + targetUser.SetBlipAndNametagColor(); + dbContext.SaveChanges(); } else if (type == "Gruppe") { @@ -377,7 +349,7 @@ namespace ReallifeGamemode.Server.Managers [RemoteEvent("CLIENT:InteractionMenu_LeaveGroup")] public void InteractionMenuGroupLeageGroup(Player player, string type) { - + if (type == "Gruppe") { using (var dbContext = new DatabaseContext()) @@ -390,15 +362,15 @@ namespace ReallifeGamemode.Server.Managers return; } - if(dbContext.Users.Count(c => c.Group == playerUser.Group) == 1) + if (dbContext.Users.Count(c => c.Group == playerUser.Group) == 1) { - InteractionMenuGroupDeleteGroup(player,"Gruppe"); + InteractionMenuGroupDeleteGroup(player, "Gruppe"); return; } var group = player.GetUser().Group; - if(playerUser.GroupRank == GroupRank.OWNER) + if (playerUser.GroupRank == GroupRank.OWNER) { var memberList = dbContext.Users.Where(u => u.Group == playerUser.Group && u.GroupRank < GroupRank.OWNER).ToList(); var newOwner = memberList.OrderByDescending(c => c.GroupRank).First(); @@ -406,7 +378,7 @@ namespace ReallifeGamemode.Server.Managers newOwner.GroupRank = GroupRank.OWNER; ChatService.BroadcastGroup("~y~" + newOwner.Name + "~s~ wurde zum neuen Besitzer ernannt", playerUser.Group); } - + playerUser.GroupRank = GroupRank.NONE; playerUser.Group = null; ChatService.BroadcastGroup("~y~" + player.Name + "~s~ hat die Gruppe verlassen", group); @@ -422,13 +394,13 @@ namespace ReallifeGamemode.Server.Managers if (type == "Gruppe") { using (var dbContext = new DatabaseContext()) - { + { if (playerUser?.Group == null || playerUser.GroupRank < GroupRank.OWNER) { ChatService.NotAuthorized(player); return; } - + var deletedGroup = dbContext.Groups.FirstOrDefault(g => g.Id == playerUser.Group.Id); foreach (var user in dbContext.Users.Where(u => u.Group == playerUser.Group).ToList()) @@ -443,12 +415,12 @@ namespace ReallifeGamemode.Server.Managers } } - [RemoteEvent("CLIENT:InteractionMenu_CallService_Taxi")] + [RemoteEvent("CLIENT:InteractionMenu_CallService_Taxi")] public void CallServiceTaxi(Player player, string street, string zone) { var taxiJob = JobManager.GetJob(); - if(taxiJob == null) + if (taxiJob == null) { player.SendChatMessage("Aktuell kann kein Taxi gerufen werden."); return; @@ -802,20 +774,20 @@ namespace ReallifeGamemode.Server.Managers { if (!player.IsLoggedIn()) return; List players = NAPI.Pools.GetAllPlayers(); - - var listPlayers = players.Where(p => p.GetUser().Wanteds > 0) - .Select(p => new - { - Id = p.Handle.Value, - p.Name, - wanted = p.GetUser().Wanteds, - }); - if (listPlayers.Count() > 0) - player.TriggerEvent("showWantedlist", JsonConvert.SerializeObject(listPlayers)); - else - player.SendNotification("~r~[Fehler] ~w~Es gibt derzeitig keine Verbrecher!"); - + var listPlayers = players.Where(p => p.GetUser().Wanteds > 0) + .Select(p => new + { + Id = p.Handle.Value, + p.Name, + wanted = p.GetUser().Wanteds, + }); + + if (listPlayers.Count() > 0) + player.TriggerEvent("showWantedlist", JsonConvert.SerializeObject(listPlayers)); + else + player.SendNotification("~r~[Fehler] ~w~Es gibt derzeitig keine Verbrecher!"); + } @@ -854,11 +826,12 @@ namespace ReallifeGamemode.Server.Managers if (player.GetData("healauftrag") == true) { player.SendNotification("~r~[Fehler] ~w~Du hast bereits ein Sanitäter gerufen."); - }else - { - Medic.AddTaskToList(healTask); + } + else + { + Medic.AddTaskToList(healTask); player.SetData("healauftrag", true); - ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat soeben einen Serviceauftrag beantragt.", new List() { 2 }); + ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat soeben einen Serviceauftrag beantragt.", new List() { 2 }); } } diff --git a/ReallifeGamemode.Server/Wanted/Jail.cs b/ReallifeGamemode.Server/Wanted/Jail.cs index 806337b1..c9cfe660 100644 --- a/ReallifeGamemode.Server/Wanted/Jail.cs +++ b/ReallifeGamemode.Server/Wanted/Jail.cs @@ -66,10 +66,12 @@ namespace ReallifeGamemode.Server.Wanted jailTime /= 2; } - client.GetUser(dbContext).JailTime = jailTime; + User clientUser = client.GetUser(dbContext); + + clientUser.JailTime = jailTime; Jailtime[user.Id] = jailTime; // 54 sec for each wanted star -> in total 45min for 50 Wanteds - client.GetUser(dbContext).Wanteds = 0; + clientUser.Wanteds = 0; client.SetData("isDead", false); client.RemoveAllWeapons(); client.SetSharedData("blipColor", 0); @@ -100,29 +102,7 @@ namespace ReallifeGamemode.Server.Wanted client.TriggerEvent("jailTime", JsonConvert.SerializeObject(timeMinutes)); - switch (user.FactionId) - { - case null: - client.SetSharedData("blipColor", 0); - client.SetSharedData("nameTagColor", 0); - break; - case 8: - client.SetSharedData("blipColor", 83); - client.SetSharedData("nameTagColor", 8); - break; - case 7: - client.SetSharedData("blipColor", 52); - client.SetSharedData("nameTagColor", 7); - break; - case 4: - client.SetSharedData("blipColor", 5); - client.SetSharedData("nameTagColor", 4); - break; - case 9: - client.SetSharedData("blipColor", 25); - client.SetSharedData("nameTagColor", 9); - break; - } + clientUser.SetBlipAndNametagColor(); if (announceHq) {