diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index 1ef3514c..8857c2f8 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -109,8 +109,8 @@ namespace ReallifeGamemode.Server.Commands target.GetUser(dbContext).FactionRankId = fr.Id; - ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " den Rang '" + fr.Order + "(" + fr.RankName + ")' gegeben."); - ChatService.SendMessage(target, "!{02FCFF}Du hast von " + player.Name + " den Rang '" + fr.Order + "(" + fr.RankName + ")' erhalten."); + 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."); dbContext.SaveChanges(); } @@ -185,6 +185,13 @@ namespace ReallifeGamemode.Server.Commands ChatService.NotAuthorized(player); return; } + + if (!player.IsDuty()) + { + ChatService.ErrorMessage(player, "Du bist nicht im Dienst"); + return; + } + if (player.IsInVehicle) { ChatService.ErrorMessage(player, "Du kannst in einem Auto nicht wiederbeleben."); @@ -239,12 +246,19 @@ namespace ReallifeGamemode.Server.Commands ChatService.NotAuthorized(player); return; } + + if (!player.IsDuty()) + { + ChatService.ErrorMessage(player, "Du bist nicht im Dienst"); + return; + } + if (player.IsInVehicle) { ChatService.ErrorMessage(player, "Du kannst in einem Auto nicht heilen."); return; } - if(player == target) + if (player == target) { ChatService.ErrorMessage(player, "Du kannst dich nicht selbst heilen."); return; @@ -265,6 +279,12 @@ namespace ReallifeGamemode.Server.Commands return; } + if (!player.IsDuty()) + { + ChatService.ErrorMessage(player, "Du bist nicht im Dienst"); + return; + } + if (amount <= 0) { ChatService.ErrorMessage(player, "Es muss eine positive Wantedanzahl vergeben werden"); @@ -299,6 +319,12 @@ namespace ReallifeGamemode.Server.Commands return; } + if (!player.IsDuty()) + { + ChatService.ErrorMessage(player, "Du bist nicht im Dienst"); + return; + } + Player target = PlayerService.GetPlayerByNameOrId(nameOrId); if (target == null || !target.IsLoggedIn()) { diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index 095ac260..25dea62e 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -65,6 +65,10 @@ namespace ReallifeGamemode.Server.Extensions return player.HasData("isLoggedIn") ? player.GetData("isLoggedIn") : false; } + public static bool IsDuty(this Player player) + { + return player.HasData("duty") ? player.GetData("duty") : false; + } public static Vector3 GetPositionFromPlayer(Player player, float distance, int offset = 0) { var pos = player.Position;