fix invite

This commit is contained in:
hydrant
2019-05-09 17:19:59 +02:00
parent c18b6b6fad
commit 539d899ac9
3 changed files with 51 additions and 5 deletions

View File

@@ -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;
}
}

View File

@@ -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");
}
});

View File

@@ -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")]