simplify invinte / add uninvite

This commit is contained in:
hydrant
2019-05-09 19:19:14 +02:00
parent e110f6e1f5
commit 3b7316567f
3 changed files with 138 additions and 82 deletions

View File

@@ -113,10 +113,16 @@ export default function (globalData: GlobalData) {
var input = new InputHelper("Welchen Spieler möchtest du inviten (Name / ID)?", globalData); var input = new InputHelper("Welchen Spieler möchtest du inviten (Name / ID)?", globalData);
input.show(); input.show();
input.getValue(name => { input.getValue(name => {
mp.events.callRemote("CLIENT:InteractionMenu_InviteFaction", name); mp.events.callRemote("CLIENT:InteractionMenu_Invite", "Fraktion", name);
parentMenu.Close(); parentMenu.Close();
}); });
} else if (index === 1) { // Uninviten } else if (index === 1) { // Uninviten
var input = new InputHelper("Welchen Spieler möchtest du uninviten (Name / ID)?", globalData);
input.show();
input.getValue(name => {
mp.events.callRemote("CLIENT:InteractionMenu_Uninvite", "Fraktion", name);
parentMenu.Close();
});
} }
}); });
@@ -134,10 +140,16 @@ export default function (globalData: GlobalData) {
var input = new InputHelper("Welchen Spieler möchtest du inviten (Name / ID)?", globalData); var input = new InputHelper("Welchen Spieler möchtest du inviten (Name / ID)?", globalData);
input.show(); input.show();
input.getValue(name => { input.getValue(name => {
mp.events.callRemote("CLIENT:InteractionMenu_InviteGroup", name); mp.events.callRemote("CLIENT:InteractionMenu_Invite", "Gruppe", name);
parentMenu.Close(); parentMenu.Close();
}); });
} else if (index === 1) { // Uninviten } else if (index === 1) { // Uninviten
var input = new InputHelper("Welchen Spieler möchtest du uninviten (Name / ID)?", globalData);
input.show();
input.getValue(name => {
mp.events.callRemote("CLIENT:InteractionMenu_Uninvite", "Gruppe", name);
parentMenu.Close();
});
} }
}); });

View File

@@ -71,12 +71,6 @@ namespace ReallifeGamemode.Server.Commands
} }
#endregion #endregion
#region Leader Commands #region Leader Commands
[Command("invite", "~m~Benutzung: ~s~/invite [Name]")]
public void CmdFactionInvite(Client player, string name)
{
}
[Command("giverank", "~m~Benutzung: ~s~/giverank [Name] [Rang]", GreedyArg = true)] [Command("giverank", "~m~Benutzung: ~s~/giverank [Name] [Rang]", GreedyArg = true)]
public void CmdFactionGiverank(Client player, string name, string rank) public void CmdFactionGiverank(Client player, string name, string rank)
{ {
@@ -120,48 +114,7 @@ namespace ReallifeGamemode.Server.Commands
[Command("uninvite", "~m~Benutzung: ~s~/uninvite [Name]")] [Command("uninvite", "~m~Benutzung: ~s~/uninvite [Name]")]
public void CmdFactionUninvite(Client player, string name) public void CmdFactionUninvite(Client player, string name)
{ {
if (player.GetUser()?.FactionId == null || player.GetUser().FactionLeader == false)
{
ChatService.NotAuthorized(player);
return;
}
Client target = ClientService.GetClientByNameOrId(name);
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
}
if (target.GetUser()?.FactionId != player.GetUser()?.FactionId)
{
ChatService.Error(player, "Dieser Spieler ist nicht in deiner Fraktion");
return;
}
if (player.Handle == target.Handle)
{
ChatService.Error(player, "Du kannst dich nicht selber uninviten");
return;
}
if (target.GetUser()?.FactionLeader ?? false)
{
ChatService.Error(player, "Du kannst keinen Leader uninviten");
return;
}
using (var dbContext = new DatabaseContext())
{
target.GetUser(dbContext).FactionRankId = null;
target.GetUser(dbContext).FactionId = null;
player.SendChatMessage("!{02FCFF}Du hast " + target.Name + " aus der Fraktion geworfen.");
target.SendChatMessage("!{02FCFF}Du wurdest von " + player.Name + " aus der Fraktion geworfen.");
dbContext.SaveChanges();
}
} }
[Command("lc", "~m~Benutzung: ~s~/lc [Nachricht]", GreedyArg = true)] [Command("lc", "~m~Benutzung: ~s~/lc [Nachricht]", GreedyArg = true)]

View File

@@ -26,7 +26,6 @@ namespace ReallifeGamemode.Server.Managers
[RemoteEvent("CLIENT:InteractionMenu_AcceptInvite")] [RemoteEvent("CLIENT:InteractionMenu_AcceptInvite")]
public void InteractionMenuAcceptInvite(Client player, string type) 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 if (type == "Fraktion") // Fraktions Invite annehmen
@@ -102,14 +101,10 @@ namespace ReallifeGamemode.Server.Managers
} }
} }
[RemoteEvent("CLIENT:InteractionMenu_InviteFaction")] [RemoteEvent("CLIENT:InteractionMenu_Invite")]
public void InteractionMenuInviteFaction(Client player, string nameOrId) public void InteractionMenuInviteFaction(Client player, string type, string nameOrId)
{ {
if (player.GetUser()?.FactionId == null || player.GetUser().FactionLeader == false) if (type != "Fraktion" && type != "Gruppe") return;
{
ChatService.NotAuthorized(player);
return;
}
Client target = ClientService.GetClientByNameOrId(nameOrId); Client target = ClientService.GetClientByNameOrId(nameOrId);
if (target == null || !target.IsLoggedIn()) if (target == null || !target.IsLoggedIn())
@@ -118,46 +113,142 @@ namespace ReallifeGamemode.Server.Managers
return; return;
} }
if (target.GetUser()?.FactionId != null) User targetUser = target.GetUser();
User playerUser = player.GetUser();
if (type == "Fraktion")
{ {
ChatService.Error(player, "Dieser Spieler ist schon in einer Fraktion"); if (playerUser?.FactionId == null || playerUser?.FactionLeader == false)
return; {
ChatService.NotAuthorized(player);
return;
}
if (targetUser?.FactionId != null)
{
ChatService.Error(player, "Dieser Spieler ist schon in einer Fraktion");
return;
}
target.SetData("accept_faction_invite", player.Handle);
player.SendChatMessage("!{02FCFF}Du hast dem Spieler " + target.Name + " eine Einladung in deine Fraktion gesendet.");
target.SendChatMessage("!{02FCFF}Du hast von " + player.Name + " eine Einladung in die Fraktion \"" + playerUser.Faction.Name + "\" erhalten.");
target.SendChatMessage("!{02FCFF}Benutze das Interaktionsmenü, um die Einladung anzunehmen");
} }
else if (type == "Gruppe")
{
if (playerUser?.Group == null || playerUser.GroupRank < GroupRank.MANAGER)
{
ChatService.NotAuthorized(player);
return;
}
target.SetData("accept_faction_invite", player.Handle); if (targetUser?.Group != null)
{
ChatService.Error(player, "Dieser Spieler ist schon in einer Gruppe");
return;
}
player.SendChatMessage("!{02FCFF}Du hast dem Spieler " + target.Name + " eine Einladung in deine Fraktion gesendet."); target.SetData("accept_group_invite", player.Handle);
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"); 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 \"" + playerUser.Group.Name + "\" erhalten.");
target.SendChatMessage("!{02FCFF}Benutze das Interaktionsmenü, um die Einladung anzunehmen");
}
} }
[RemoteEvent("CLIENT:InteractionMenu_InviteGroup")] [RemoteEvent("CLIENT:InteractionMenu_Uninvite")]
public void InteractionMenuInviteGroup(Client player, string nameOrId) public void InteractionMenuInviteGroup(Client player, string type, string name)
{ {
if (player.GetUser()?.Group == null || player.GetUser().GroupRank < GroupRank.MANAGER) if (type != "Fraktion" && type != "Gruppe") return;
{
ChatService.NotAuthorized(player);
return;
}
Client target = ClientService.GetClientByNameOrId(nameOrId); Client target = ClientService.GetClientByNameOrId(name);
if (target == null || !target.IsLoggedIn()) if (target == null || !target.IsLoggedIn())
{ {
ChatService.PlayerNotFound(player); ChatService.PlayerNotFound(player);
return; return;
} }
if (target.GetUser()?.Group != null) User targetUser = target.GetUser();
User playerUser = player.GetUser();
if (type == "Fraktion")
{ {
ChatService.Error(player, "Dieser Spieler ist schon in einer Gruppe"); if (playerUser?.FactionId == null || playerUser.FactionLeader == false)
return; {
ChatService.NotAuthorized(player);
return;
}
if (targetUser?.FactionId != playerUser?.FactionId)
{
ChatService.Error(player, "Dieser Spieler ist nicht in deiner Fraktion");
return;
}
if (player.Handle == target.Handle)
{
ChatService.Error(player, "Du kannst dich nicht selber uninviten");
return;
}
if (targetUser?.FactionLeader ?? false)
{
ChatService.Error(player, "Du kannst keinen Leader uninviten");
return;
}
using (var dbContext = new DatabaseContext())
{
target.GetUser(dbContext).FactionRankId = null;
target.GetUser(dbContext).FactionId = null;
player.SendChatMessage("!{02FCFF}Du hast " + target.Name + " aus der Fraktion geworfen.");
target.SendChatMessage("!{02FCFF}Du wurdest von " + player.Name + " aus der Fraktion geworfen.");
dbContext.SaveChanges();
}
} }
else if (type == "Gruppe")
{
if (playerUser?.Group == null || playerUser.GroupRank < GroupRank.MANAGER)
{
ChatService.NotAuthorized(player);
return;
}
target.SetData("accept_group_invite", player.Handle); if (targetUser?.Group.Id != playerUser?.Group.Id)
{
ChatService.Error(player, "Dieser Spieler ist nicht in deiner Fraktion");
return;
}
player.SendChatMessage("!{02FCFF}Du hast dem Spieler " + target.Name + " eine Einladung in deine Gruppe gesendet."); if (player.Handle == target.Handle)
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"); ChatService.Error(player, "Du kannst dich nicht selber uninviten");
return;
}
if (targetUser?.GroupRank >= GroupRank.MANAGER && playerUser?.GroupRank != GroupRank.OWNER)
{
ChatService.Error(player, "Du kannst keinen Leader uninviten");
return;
}
using (var dbContext = new DatabaseContext())
{
target.GetUser(dbContext).FactionRankId = null;
target.GetUser(dbContext).FactionId = null;
player.SendChatMessage("!{02FCFF}Du hast " + target.Name + " aus der Gruppe geworfen.");
target.SendChatMessage("!{02FCFF}Du wurdest von " + player.Name + " aus der Gruppe geworfen.");
dbContext.SaveChanges();
}
}
} }
#endregion #endregion
#region Spielerinteraktionen PFEILTASTE-LINKS #region Spielerinteraktionen PFEILTASTE-LINKS
@@ -185,7 +276,7 @@ namespace ReallifeGamemode.Server.Managers
Client tradeRequester = ClientService.GetClientByNameOrId(tradeRequesterName); Client tradeRequester = ClientService.GetClientByNameOrId(tradeRequesterName);
if (tradeSelection == "accept") if (tradeSelection == "accept")
{ {
if(player.GetUser().Handmoney < tradePrize) if (player.GetUser().Handmoney < tradePrize)
{ {
tradeRequester.TriggerEvent("unlockTradeItems"); tradeRequester.TriggerEvent("unlockTradeItems");
tradeRequester.SendNotification("~y~" + player.Name + " ~r~hat nicht genügend Bargeld! ~s~Handel abgebrochen."); tradeRequester.SendNotification("~y~" + player.Name + " ~r~hat nicht genügend Bargeld! ~s~Handel abgebrochen.");