From ad0dc01be2dec3e1c88e6d8104096c0a72291a5a Mon Sep 17 00:00:00 2001 From: hydrant Date: Tue, 16 Oct 2018 00:16:07 +0200 Subject: [PATCH] Added /giverank Command --- Server/Commands/Faction.cs | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/Server/Commands/Faction.cs b/Server/Commands/Faction.cs index bb86d59a..095a3da1 100644 --- a/Server/Commands/Faction.cs +++ b/Server/Commands/Faction.cs @@ -95,5 +95,45 @@ namespace reallife_gamemode.Server.Commands return; } + + [Command("giverank", "~m~Benutzung: ~s~/giverank [Name] [Rang]", GreedyArg = true)] + public void CmdFactionGiverank(Client player, string name, string rank) + { + if (player.GetUser()?.FactionId == null || player.GetUser().FactionLeader == false) + { + ChatService.NotAuthorized(player); + return; + } + + Client target = ClientService.GetClientByName(name); + if (target == null || !target.IsLoggedIn()) + { + ChatService.PlayerNotFound(player); + return; + } + + if (target.GetUser()?.FactionId != player.GetUser()?.FactionId) + { + player.SendChatMessage("~r~[FEHLER]~s~ Dieser Spieler ist nicht in deiner Fraktion."); + return; + } + + using (var dbContext = new DatabaseContext()) + { + FactionRank fr = dbContext.FactionRanks.FirstOrDefault(r => r.RankName == rank && r.FactionId == player.GetUser(dbContext).FactionId); + if(fr == null) + { + player.SendChatMessage("~r~[FEHLER]~s~ Dieser Rang existiert nicht."); + return; + } + + target.GetUser(dbContext).FactionRankId = fr.Id; + + player.SendChatMessage("!{02FCFF}Du hast " + target.Name + " den Rang '" + fr.RankName + "' gegeben."); + target.SendChatMessage("!{02FCFF}Du hast von " + player.Name + " den Rang '" + fr.RankName + "' erhalten."); + + dbContext.SaveChanges(); + } + } } }