From 5fc252ef4338caa2d9e71ad8a4f07830dc4fba20 Mon Sep 17 00:00:00 2001 From: VegaZ Date: Thu, 11 Mar 2021 22:53:54 +0100 Subject: [PATCH] Fixed Group Menu --- .../Interaction/interactionmenu.ts | 37 +++++++++++-------- ReallifeGamemode.Server/Events/Key.cs | 6 +-- .../Managers/InteractionManager.cs | 11 ++++-- 3 files changed, 31 insertions(+), 23 deletions(-) diff --git a/ReallifeGamemode.Client/Interaction/interactionmenu.ts b/ReallifeGamemode.Client/Interaction/interactionmenu.ts index f1db6eea..0fff24ac 100644 --- a/ReallifeGamemode.Client/Interaction/interactionmenu.ts +++ b/ReallifeGamemode.Client/Interaction/interactionmenu.ts @@ -39,6 +39,8 @@ export default function (globalData: IGlobalData) { var payName: string; + var groupRank = null; + mp.events.add("SERVER:InteractionMenu_OpenMenu", (accountDataJson: string, factionleader: string, faction: string, group: string, factionInvite: boolean, groupInvite: boolean, ticket_boolean: boolean, ticket_amount, house: boolean) => { @@ -57,7 +59,7 @@ export default function (globalData: IGlobalData) { menu.AddItem(licenseItem); menu.BindMenuToItem(getLicenseMenu(accountData, accountData.licenses, menu), licenseItem); - + groupRank = accountData.groupRank; var vehicles = accountData.vehicles; if (vehicles.length > 0) { @@ -202,21 +204,24 @@ export default function (globalData: IGlobalData) { menuItem.SetRightLabel(data.faction); accountMenu.AddItem(menuItem); - menuItem = new UIMenuItem("Fraktionsrang"); - menuItem.SetRightLabel(data.factionRank); - accountMenu.AddItem(menuItem); + if (data.faction != "Zivilist") { + menuItem = new UIMenuItem("Fraktionsrang"); + menuItem.SetRightLabel(data.factionRank); + accountMenu.AddItem(menuItem); + } menuItem = new UIMenuItem("Job"); menuItem.SetRightLabel(data.job); accountMenu.AddItem(menuItem); - menuItem = new UIMenuItem("Gruppe"); - menuItem.SetRightLabel(data.group); - accountMenu.AddItem(menuItem); - - menuItem = new UIMenuItem("Gruppenrang"); - menuItem.SetRightLabel(data.groupRank); - accountMenu.AddItem(menuItem); + if (data.group != null) { + menuItem = new UIMenuItem("Gruppe"); + menuItem.SetRightLabel(data.group); + accountMenu.AddItem(menuItem); + menuItem = new UIMenuItem("Gruppenrang"); + menuItem.SetRightLabel(data.groupRank); + accountMenu.AddItem(menuItem); + } menuItem = new UIMenuItem("Registrierungsdatum"); menuItem.SetRightLabel(data.regDate); @@ -356,12 +361,12 @@ export default function (globalData: IGlobalData) { function getGroupMenu(group: string, parentMenu: NativeUI.Menu): NativeUI.Menu { var groupMenu = new NativeUI.Menu("Gruppe", group, new Point(0, screenRes.y / 3), null, null); - groupMenu.AddItem(new UIMenuItem("Spieler einladen")); - groupMenu.AddItem(new UIMenuItem("Spieler rauswerfen")); - groupMenu.AddItem(new UIMenuItem("Mitglieder anzeigen")); - groupMenu.AddItem(new UIMenuItem("Leiter bestimmen")); + if (groupRank == "Manager" || groupRank == "Besitzer") groupMenu.AddItem(new UIMenuItem("Spieler einladen")); + if (groupRank == "Manager" || groupRank == "Besitzer") groupMenu.AddItem(new UIMenuItem("Spieler rauswerfen")); + //groupMenu.AddItem(new UIMenuItem("Mitglieder anzeigen")); + if (groupRank == "Besitzer") groupMenu.AddItem(new UIMenuItem("Leiter bestimmen")); groupMenu.AddItem(new UIMenuItem("Gruppe verlassen")); - groupMenu.AddItem(new UIMenuItem("~r~Gruppe löschen")); + if (groupRank == "Besitzer") groupMenu.AddItem(new UIMenuItem("~r~Gruppe löschen")); groupMenu.Visible = false; mp.gui.chat.show(false); groupMenu.ItemSelect.on((item, index) => { diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 8f567aa5..7d2308b8 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -58,7 +58,6 @@ namespace ReallifeGamemode.Server.Events GroundItem.PickUpGroundItem(player); } - /* [RemoteEvent("keyPress:LEFT_ARROW")] public void KeyPressLeftArrow(Player player) @@ -84,7 +83,6 @@ namespace ReallifeGamemode.Server.Events } } */ - [RemoteEvent("keyPress:RIGHT_ARROW")] public void KeyPressRightArrow(Player player) { @@ -156,9 +154,9 @@ namespace ReallifeGamemode.Server.Events nextPayday = u.PaydayTimer }; - string faction = u.Faction?.Name; + string faction = u.Faction?.Name ?? "Zivilist"; string factionleader = u.FactionLeader ? u.Faction.Name : null; - string group = u.Group != null && u.GroupRank >= GroupRank.MANAGER ? u.Group.Name : null; + string group = u.Group != null ? u.Group.Name : null; bool factionInvite = player.HasData("accept_faction_invite"); bool groupInvite = player.HasData("accept_group_invite"); bool ticket_boolean = player.HasData("ticket_boolean"); diff --git a/ReallifeGamemode.Server/Managers/InteractionManager.cs b/ReallifeGamemode.Server/Managers/InteractionManager.cs index 19de903e..aeefe1a6 100644 --- a/ReallifeGamemode.Server/Managers/InteractionManager.cs +++ b/ReallifeGamemode.Server/Managers/InteractionManager.cs @@ -307,7 +307,7 @@ namespace ReallifeGamemode.Server.Managers return; } - if (targetUser?.GroupRank >= GroupRank.MANAGER && playerUser?.GroupRank != GroupRank.OWNER) + if (targetUser?.GroupRank >= GroupRank.MANAGER) { ChatService.ErrorMessage(player, "Du kannst keinen Leader uninviten"); return; @@ -343,6 +343,11 @@ namespace ReallifeGamemode.Server.Managers { using (var dbContext = new DatabaseContext()) { + if (playerUser.GroupRank != GroupRank.OWNER) + { + ChatService.ErrorMessage(player, "Nur Besitzer können Manager hinzufügen"); + return; + } if (targetUser?.Group.Id != playerUser?.Group.Id) { ChatService.ErrorMessage(player, "Dieser Spieler ist nicht in deiner Gruppe"); @@ -351,7 +356,7 @@ namespace ReallifeGamemode.Server.Managers if (player.Name == name) { - ChatService.ErrorMessage(player, "Du bist schon Leader"); + ChatService.ErrorMessage(player, "Du bist schon Besitzer"); return; } @@ -394,7 +399,7 @@ namespace ReallifeGamemode.Server.Managers var newOwner = memberList.OrderByDescending(c => c.GroupRank).First(); newOwner.GroupRank = GroupRank.OWNER; - ChatService.BroadcastGroup("~y~" + newOwner.Name + "~s~ wurde zum neuen Owner ernannt", playerUser.Group); + ChatService.BroadcastGroup("~y~" + newOwner.Name + "~s~ wurde zum neuen Besitzer ernannt", playerUser.Group); } playerUser.GroupRank = GroupRank.NONE;