Add warn / removewarn system

This commit is contained in:
CroniX
2021-01-28 23:23:40 +01:00
parent 0f062530c9
commit 42b294d805
2 changed files with 73 additions and 0 deletions

View File

@@ -126,6 +126,8 @@ namespace ReallifeGamemode.Database.Entities
public int otheramount { get; set; } = 0;
public int failpoints { get; set; } = 0;
public int warn { get; set; } = 0;
[NotMapped]
public Player Player
{

View File

@@ -728,6 +728,42 @@ namespace ReallifeGamemode.Server.Commands
ChatService.Broadcast("~y~INFO: ~w~" + targetPlayername + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " gekickt: " + reason);
}
[Command("warn", "~m~Benutzung: ~s~/warn [Player] [Grund]", GreedyArg = true)]
public void CmdAdminWarn(Player player, string targetname, string reason)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
Player target = PlayerService.GetPlayerByNameOrId(targetname);
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
}
string targetPlayername = NAPI.Player.GetPlayerName(target);
string adminPlayername = NAPI.Player.GetPlayerName(player);
using (var dbContext = new DatabaseContext())
{
User userwarn = player.GetUser(dbContext);
userwarn.warn ++;
dbContext.SaveChanges();
if (userwarn.warn >= 3)
{
ChatService.Broadcast("~y~INFO: Das war der 3. Warn - bitte bannen!");
}
}
ChatService.SendMessage(target, "~r~WARNINFO: ~w~Du wurdest von " + adminPlayername + " verwarnt: " + reason);
ChatService.Broadcast("~y~INFO: ~w~" + targetPlayername + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " verwarnt: " + reason);
}
[Command("ip", "~m~Benutzung: ~s~/ip [Spieler]")]
public void CmdAdminIp(Player player, string targetname)
{
@@ -1604,6 +1640,41 @@ namespace ReallifeGamemode.Server.Commands
#region ALevel1337
[Command("removewarn", "~m~Benutzung: ~s~/removewarn [Player] [Grund]", GreedyArg = true)]
public void CmdAdminRemovewarn(Player player, string targetname, string reason)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
Player target = PlayerService.GetPlayerByNameOrId(targetname);
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
}
string targetPlayername = NAPI.Player.GetPlayerName(target);
string adminPlayername = NAPI.Player.GetPlayerName(player);
using (var dbContext = new DatabaseContext())
{
User userwarn = player.GetUser(dbContext);
if (userwarn.warn == 0)
{
player.SendChatMessage("~r~WARNINFO: ~w~Der User hat bereits 0 Warns");
return;
}
userwarn.warn--;
dbContext.SaveChanges();
}
ChatService.SendMessage(target, "~r~WARNINFO: ~w~Dir wurde von " + adminPlayername + " ein Warn entfernt: " + reason);
ChatService.Broadcast("~y~INFO: ~w~" + targetPlayername + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " ein Warn entfernt: " + reason);
}
[Command("setskill", "~m~Benutzung: ~s~/setskill [Playerid] [Bus/Pilot] [Menge]")]
public void CmdAdminSetSkill(Player player, string name, string Skill, int SkillLevel)
{