improve /giverank command

This commit is contained in:
hydrant
2021-05-17 19:23:21 +02:00
parent c475a08d67
commit a03a974995

View File

@@ -237,7 +237,20 @@ namespace ReallifeGamemode.Server.Commands
[Command("giverank", "~m~Benutzung: ~s~/giverank [Name] [Rang]", GreedyArg = true)] [Command("giverank", "~m~Benutzung: ~s~/giverank [Name] [Rang]", GreedyArg = true)]
public void CmdFactionGiverank(Player player, string name, string rank) public void CmdFactionGiverank(Player player, string name, string rank)
{ {
if (player.GetUser()?.FactionId == null || player.GetUser().FactionLeader == false) if (!player.IsLoggedIn())
{
return;
}
using var dbContext = new DatabaseContext();
User user = player.GetUser(dbContext);
if (user == null)
{
return;
}
if (user.FactionId == null || !user.FactionLeader)
{ {
ChatService.NotAuthorized(player); ChatService.NotAuthorized(player);
return; return;
@@ -250,29 +263,33 @@ namespace ReallifeGamemode.Server.Commands
return; return;
} }
if (target.GetUser()?.FactionId != player.GetUser()?.FactionId) User targetUser = target.GetUser(dbContext);
if (targetUser == null)
{
ChatService.PlayerNotFound(player);
return;
}
if (targetUser.FactionId != user.FactionId)
{ {
ChatService.ErrorMessage(player, "Dieser Spieler ist nicht in deiner Fraktion"); ChatService.ErrorMessage(player, "Dieser Spieler ist nicht in deiner Fraktion");
return; return;
} }
using (var dbContext = new DatabaseContext()) FactionRank fr = dbContext.FactionRanks.FirstOrDefault(r => r.Order == int.Parse(rank) && r.FactionId == user.FactionId);
{
FactionRank fr = dbContext.FactionRanks.FirstOrDefault(r => r.Order == int.Parse(rank) && r.FactionId == player.GetUser(dbContext).FactionId);
if (fr == null) if (fr == null)
{ {
ChatService.ErrorMessage(player, "Dieser Rang existiert nicht"); ChatService.ErrorMessage(player, "Dieser Rang existiert nicht");
return; return;
} }
target.GetUser(dbContext).FactionRankId = fr.Id; targetUser.FactionRankId = fr.Id;
ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " den Rang '" + fr.RankName + "' (" + fr.Order + ") gegeben."); ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " den Rang '" + fr.RankName + "' (" + fr.Order + ") gegeben.");
ChatService.SendMessage(target, "!{02FCFF}Du hast von " + player.Name + " den Rang '" + fr.RankName + "' (" + fr.Order + ")' erhalten."); ChatService.SendMessage(target, "!{02FCFF}Du hast von " + player.Name + " den Rang '" + fr.RankName + "' (" + fr.Order + ")' erhalten.");
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
}
[Command("lc", "~m~Benutzung: ~s~/lc [Nachricht]", GreedyArg = true)] [Command("lc", "~m~Benutzung: ~s~/lc [Nachricht]", GreedyArg = true)]
public void CmdFactionLc(Player player, string message) public void CmdFactionLc(Player player, string message)