Fraktionsmitgliederliste eingebaut inkl. uninvite für Leader
This commit is contained in:
@@ -42,9 +42,10 @@ export default function (globalData: IGlobalData) {
|
||||
|
||||
var groupRank = null;
|
||||
|
||||
mp.events.add("SERVER:InteractionMenu_OpenMenu", (accountDataJson: string, factionleader: string, jobDataJson: string, faction: string, group: string, factionInvite: boolean, groupInvite: boolean, ticket_boolean: boolean, ticket_amount, house: boolean) => {
|
||||
mp.events.add("SERVER:InteractionMenu_OpenMenu", (accountDataJson: string, factionleader: string, members: string, jobDataJson: string, faction: string, group: string, factionInvite: boolean, groupInvite: boolean, ticket_boolean: boolean, ticket_amount, house: boolean) => {
|
||||
var accountData: AccountData = JSON.parse(accountDataJson);
|
||||
var jobData: JobData = JSON.parse(jobDataJson);
|
||||
var memberList: FactionMember[] = JSON.parse(members)
|
||||
//var ticket_amount = JSON.parse(ticket_amountJson);
|
||||
|
||||
var menu = getInteractionMenu();
|
||||
@@ -70,12 +71,12 @@ export default function (globalData: IGlobalData) {
|
||||
if (faction && !factionleader) {
|
||||
factionItem.SetRightLabel(faction);
|
||||
menu.AddItem(factionItem);
|
||||
menu.BindMenuToItem(getFactionMenu(faction, accountData.factionVehicles, accountData.stateFaction, menu), factionItem);
|
||||
menu.BindMenuToItem(getFactionMenu(faction, accountData.factionVehicles, memberList, accountData.stateFaction, menu), factionItem);
|
||||
}
|
||||
if (faction && factionleader) {
|
||||
factionleaderItem.SetRightLabel(factionleader);
|
||||
menu.AddItem(factionleaderItem);
|
||||
menu.BindMenuToItem(getFactionLeaderMenu(faction, accountData.factionVehicles, accountData.stateFaction, menu), factionleaderItem);
|
||||
menu.BindMenuToItem(getFactionLeaderMenu(faction, accountData.factionVehicles, memberList, accountData.stateFaction, menu), factionleaderItem);
|
||||
}
|
||||
menu.AddItem(jobItem);
|
||||
menu.BindMenuToItem(getJobMenu(jobData, menu), jobItem);
|
||||
@@ -304,7 +305,7 @@ export default function (globalData: IGlobalData) {
|
||||
return licenseMenu;
|
||||
}
|
||||
|
||||
function getFactionMenu(faction: string, vehData: VehicleData[], stateFaction: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||
function getFactionMenu(faction: string, vehData: VehicleData[], memberList: FactionMember[], stateFaction: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||
var factionMenu = new NativeUI.Menu("Fraktion", faction, new Point(0, screenRes.y / 3), null, null);
|
||||
|
||||
factionMenu.Visible = false;
|
||||
@@ -315,13 +316,63 @@ export default function (globalData: IGlobalData) {
|
||||
factionMenu.BindMenuToItem(getVehiclesMenuFaction(vehData, "CLIENT:InteractionMenu_FactionVehicleInteraction", !stateFaction, parentMenu), factionVehicleItem);
|
||||
}
|
||||
|
||||
var memberListItem = new UIMenuItem("Mitgliederliste", "Mitgliederliste");
|
||||
factionMenu.AddItem(memberListItem);
|
||||
factionMenu.BindMenuToItem(getMembersMenuFaction(faction, memberList, false, parentMenu),memberListItem);
|
||||
|
||||
return factionMenu;
|
||||
}
|
||||
function getFactionLeaderMenu(faction: string, vehData: VehicleData[], stateFaction: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||
|
||||
function getMembersMenuFaction(faction: string, memberList: FactionMember[], leader: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||
|
||||
var memberListMenu = new NativeUI.Menu(faction, "Mitglieder", new Point(0, screenRes.y / 3), null, null);
|
||||
memberListMenu.Visible = false;
|
||||
memberList.forEach(member => {
|
||||
var memberItem: NativeUI.UIMenuItem;
|
||||
if (member.isOnline) {
|
||||
memberItem = new UIMenuItem("~g~ " + member.username, "");
|
||||
} else {
|
||||
if(leader) memberItem = new UIMenuItem("~r~ " + member.username, "");
|
||||
}
|
||||
if (memberItem) {
|
||||
if (member.isLeader) memberItem.SetLeftBadge(BadgeStyle.Star);
|
||||
memberItem.SetRightLabel(member.factionRankName);
|
||||
memberListMenu.AddItem(memberItem);
|
||||
if (leader) memberListMenu.BindMenuToItem(manageFactionMember(member.username, member.factionRankName, parentMenu), memberItem);
|
||||
}
|
||||
});
|
||||
|
||||
return memberListMenu;
|
||||
}
|
||||
|
||||
function manageFactionMember(username: string, factionrank: string, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||
|
||||
var manageFactionMemberMenu = new NativeUI.Menu(username, factionrank + " " + username, new Point(0, screenRes.y / 3), null, null);
|
||||
|
||||
manageFactionMemberMenu.Visible = false;
|
||||
|
||||
var uninviteItem = new UIMenuItem("Spieler rauswerfen", "");
|
||||
manageFactionMemberMenu.AddItem(uninviteItem);
|
||||
|
||||
manageFactionMemberMenu.ItemSelect.on((item) => {
|
||||
switch (item) {
|
||||
case uninviteItem:
|
||||
manageFactionMemberMenu.Visible = false;
|
||||
mp.gui.chat.activate(true);
|
||||
globalData.InMenu = false;
|
||||
mp.events.callRemote("CLIENT:InteractionMenu_Uninvite", "Fraktion", username);
|
||||
manageFactionMemberMenu.Close(true);
|
||||
}
|
||||
});
|
||||
|
||||
return manageFactionMemberMenu;
|
||||
}
|
||||
|
||||
function getFactionLeaderMenu(faction: string, vehData: VehicleData[], memberList: FactionMember[], stateFaction: boolean, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||
var factionMenu = new NativeUI.Menu("Fraktion", faction, new Point(0, screenRes.y / 3), null, null);
|
||||
|
||||
factionMenu.AddItem(new UIMenuItem("Spieler einladen"));
|
||||
factionMenu.AddItem(new UIMenuItem("Spieler rauswerfen"));
|
||||
//factionMenu.AddItem(new UIMenuItem("Spieler rauswerfen"));
|
||||
factionMenu.Visible = false;
|
||||
mp.gui.chat.show(false);
|
||||
if (vehData.length > 0) {
|
||||
@@ -330,6 +381,10 @@ export default function (globalData: IGlobalData) {
|
||||
factionMenu.BindMenuToItem(getVehiclesMenu(vehData, "CLIENT:InteractionMenu_FactionVehicleInteraction", !stateFaction, parentMenu), factionVehicleItem);
|
||||
}
|
||||
|
||||
var memberListItem = new UIMenuItem("Mitgliederliste", "Mitgliederliste");
|
||||
factionMenu.AddItem(memberListItem);
|
||||
factionMenu.BindMenuToItem(getMembersMenuFaction(faction, memberList, true, parentMenu), memberListItem);
|
||||
|
||||
factionMenu.ItemSelect.on((item, index) => {
|
||||
if (index === 0) { // Inviten
|
||||
globalData.InMenu = true;
|
||||
@@ -340,7 +395,7 @@ export default function (globalData: IGlobalData) {
|
||||
factionMenu.Close();
|
||||
globalData.InMenu = false;
|
||||
});
|
||||
} else if (index === 1) { // Uninviten
|
||||
} /*else if (index === 1) { // Uninviten
|
||||
globalData.InMenu == true;
|
||||
var input = new InputHelper("Welchen Spieler möchtest du uninviten (Name / ID)?", globalData);
|
||||
input.show();
|
||||
@@ -349,7 +404,7 @@ export default function (globalData: IGlobalData) {
|
||||
factionMenu.Close();
|
||||
globalData.InMenu = false;
|
||||
});
|
||||
}
|
||||
}*/
|
||||
});
|
||||
|
||||
return factionMenu;
|
||||
|
||||
8
ReallifeGamemode.Client/global.d.ts
vendored
8
ReallifeGamemode.Client/global.d.ts
vendored
@@ -64,6 +64,14 @@ declare type FactionRanks = {
|
||||
ranks: FactionRank[]
|
||||
}
|
||||
|
||||
declare type FactionMember = {
|
||||
username: string;
|
||||
factionRank: number;
|
||||
factionRankName: string;
|
||||
isLeader: boolean;
|
||||
isOnline: boolean;
|
||||
}
|
||||
|
||||
declare type FactionRank = {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user