fix invite
This commit is contained in:
@@ -37,7 +37,7 @@ export default function (globalData: GlobalData) {
|
||||
if (group) {
|
||||
groupItem.SetRightLabel(group);
|
||||
menu.AddItem(groupItem);
|
||||
menu.BindMenuToItem(getGroupMenu(group), groupItem);
|
||||
menu.BindMenuToItem(getGroupMenu(group, menu), groupItem);
|
||||
}
|
||||
|
||||
var items: Array<string> = new Array<string>();
|
||||
@@ -118,17 +118,29 @@ export default function (globalData: GlobalData) {
|
||||
});
|
||||
} else if (index === 1) { // Uninviten
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
return factionMenu;
|
||||
}
|
||||
|
||||
function getGroupMenu(group: string): NativeUI.Menu {
|
||||
function getGroupMenu(group: string, parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||
var groupMenu = new NativeUI.Menu("Gruppe", group, new Point(50, 50), null, null);
|
||||
groupMenu.AddItem(new UIMenuItem("Spieler einladen"));
|
||||
groupMenu.AddItem(new UIMenuItem("Spieler rauswerfen"));
|
||||
groupMenu.Visible = false;
|
||||
|
||||
groupMenu.ItemSelect.on((item, index) => {
|
||||
if (index === 0) { // Inviten
|
||||
var input = new InputHelper("Welchen Spieler möchtest du inviten (Name / ID)?", globalData);
|
||||
input.show();
|
||||
input.getValue(name => {
|
||||
mp.events.callRemote("CLIENT:InteractionMenu_InviteGroup", name);
|
||||
parentMenu.Close();
|
||||
});
|
||||
} else if (index === 1) { // Uninviten
|
||||
}
|
||||
});
|
||||
|
||||
return groupMenu;
|
||||
}
|
||||
}
|
||||
@@ -45,7 +45,7 @@ export default function keys(globalData: GlobalData) {
|
||||
|
||||
//DOWN ARROW (Eigeninteraktion)
|
||||
mp.keys.bind(0x28, false, function () {
|
||||
if (!globalData.InChat && !showInv && !globalData.InMenu && !globalData.InInput) {
|
||||
if (!globalData.InChat && !showInv && !globalData.InMenu && !globalData.InInput && !globalData.InTuning) {
|
||||
mp.events.callRemote("keyPress:DOWN_ARROW");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -26,16 +26,19 @@ namespace ReallifeGamemode.Server.Managers
|
||||
[RemoteEvent("CLIENT:InteractionMenu_AcceptInvite")]
|
||||
public void InteractionMenuAcceptInvite(Client player, string type)
|
||||
{
|
||||
if (type != "Fraktion" || type != "Gruppe") return;
|
||||
|
||||
if (type != "Fraktion" && type != "Gruppe") return;
|
||||
|
||||
if (type == "Fraktion") // Fraktions Invite annehmen
|
||||
{
|
||||
NAPI.Chat.SendChatMessageToAll("faction invite 1");
|
||||
if (!player.HasData("accept_faction_invite"))
|
||||
{
|
||||
ChatService.Error(player, "Du hast keine Einladung in eine Fraktion erhalten");
|
||||
return;
|
||||
}
|
||||
|
||||
NAPI.Chat.SendChatMessageToAll("faction invite 2");
|
||||
Client leader = NAPI.Player.GetPlayerFromHandle((NetHandle)player.GetData("accept_faction_invite"));
|
||||
player.ResetData("accept_faction_invite");
|
||||
|
||||
@@ -45,6 +48,8 @@ namespace ReallifeGamemode.Server.Managers
|
||||
return;
|
||||
}
|
||||
|
||||
NAPI.Chat.SendChatMessageToAll("faction invite 3");
|
||||
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User u = leader.GetUser(dbContext);
|
||||
@@ -125,6 +130,35 @@ namespace ReallifeGamemode.Server.Managers
|
||||
target.SendChatMessage("!{02FCFF}Du hast von " + player.Name + " eine Einladung in die Fraktion \"" + player.GetUser().Faction.Name + "\" erhalten.");
|
||||
target.SendChatMessage("!{02FCFF}Benutze das Interaktionsmenü, um die Einladung anzunehmen");
|
||||
}
|
||||
|
||||
[RemoteEvent("CLIENT:InteractionMenu_InviteGroup")]
|
||||
public void InteractionMenuInviteGroup(Client player, string nameOrId)
|
||||
{
|
||||
if (player.GetUser()?.Group == null || player.GetUser().GroupRank < GroupRank.MANAGER)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
|
||||
Client target = ClientService.GetClientByNameOrId(nameOrId);
|
||||
if (target == null || !target.IsLoggedIn())
|
||||
{
|
||||
ChatService.PlayerNotFound(player);
|
||||
return;
|
||||
}
|
||||
|
||||
if (target.GetUser()?.Group != null)
|
||||
{
|
||||
ChatService.Error(player, "Dieser Spieler ist schon in einer Gruppe");
|
||||
return;
|
||||
}
|
||||
|
||||
target.SetData("accept_group_invite", player.Handle);
|
||||
|
||||
player.SendChatMessage("!{02FCFF}Du hast dem Spieler " + target.Name + " eine Einladung in deine Gruppe gesendet.");
|
||||
target.SendChatMessage("!{02FCFF}Du hast von " + player.Name + " eine Einladung in die Gruppe \"" + player.GetUser().Group.Name + "\" erhalten.");
|
||||
target.SendChatMessage("!{02FCFF}Benutze das Interaktionsmenü, um die Einladung anzunehmen");
|
||||
}
|
||||
#endregion
|
||||
#region Spielerinteraktionen PFEILTASTE-LINKS
|
||||
[RemoteEvent("openTradeInventory")]
|
||||
|
||||
Reference in New Issue
Block a user