Add Ban Command

This commit is contained in:
VegaZ
2018-09-25 20:24:30 +02:00
parent 044651f629
commit 3c5ecdd8e4
6 changed files with 47 additions and 3 deletions

View File

@@ -25,7 +25,7 @@ namespace reallife_gamemode
using (var context = new DatabaseContext()) using (var context = new DatabaseContext())
{ {
context.Users.FirstOrDefault(); context.Bans.FirstOrDefault();
context.SaveChanges(); context.SaveChanges();
} }
} }

View File

@@ -40,6 +40,7 @@ namespace reallife_gamemode.Model
public DbSet<Server.Entities.User> Users { get; set; } public DbSet<Server.Entities.User> Users { get; set; }
public DbSet<Server.Entities.UserVehicle> UserVehicles { get; set; } public DbSet<Server.Entities.UserVehicle> UserVehicles { get; set; }
public DbSet<Server.Entities.UserBankAccount> BankAccounts { get; set; } public DbSet<Server.Entities.UserBankAccount> BankAccounts { get; set; }
public DbSet<Server.Entities.Ban> Bans { get; set; }
//Logs //Logs
//public DbSet<Server.Logs.Ban> BanLogs { get; set; } //public DbSet<Server.Logs.Ban> BanLogs { get; set; }

View File

@@ -551,8 +551,26 @@ namespace reallife_gamemode.Server.Commands
break; break;
} }
} }
[Command("ban", "~m~Benutzung: ~s~/ban [User] [Zeit in Minuten(0 für Permanent)] [Grund] ", GreedyArg = true)]
public void CmdAdminBan(Client admin, string user, int mins, string reason)
{
if (ClientExtension.IsLoggedIn(admin) == false)
{
ChatService.PlayerNotLoggedIn(admin);
return;
}
if (!admin.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(admin);
return;
}
Client target = ClientService.GetClientByName(user);
ClientExtension.BanPlayer(admin, target, reason, mins);
}
//TEST COMMAND //TEST COMMAND
[Command("own")] [Command("own")]
public void CmdAdminOwn(Client player) public void CmdAdminOwn(Client player)

View File

@@ -25,6 +25,8 @@ namespace reallife_gamemode.Server.Entities
public string Reason { get; set; } public string Reason { get; set; }
public string BannedBy { get; set; } public string BannedBy { get; set; }
[Timestamp]
public byte[] Applied { get; set; }
public byte[] UntilDateTime { get; set; } public byte[] UntilDateTime { get; set; }
} }
} }

View File

@@ -28,6 +28,7 @@ namespace reallife_gamemode.Server.Entities
public int LogUserId { get; set; } public int LogUserId { get; set; }
[Timestamp] [Timestamp]
public byte[] RegistrationDate { get; set; } public byte[] RegistrationDate { get; set; }
[EmailAddress] [EmailAddress]
[StringLength(64)] [StringLength(64)]
public string Email { get; set; } public string Email { get; set; }

View File

@@ -28,5 +28,27 @@ namespace reallife_gamemode.Server.Extensions
{ {
return player.GetData("isLoggedIn"); return player.GetData("isLoggedIn");
} }
public static void BanPlayer(Client admin, Client target, string reason, int mins)
{
if(mins == 0)
{
NAPI.Chat.SendChatMessageToAll("!{#FF4040}[BAN] " + target.Name + " wurde von " + admin.Name + " permanent gebannt. [" + reason + "]");
//user.Kick();
mins--;
}
else
{
NAPI.Chat.SendChatMessageToAll("!{#FF4040}[BAN] " + target.Name + " wurde von " + admin.Name + " für " + mins + " Minuten gebannt. [" + reason + "]");
//user.Kick();
}
using (var banUser = new DatabaseContext())
{
var user = new Ban { UserId = GetUser(target).Id, Reason = reason, BannedBy = admin.Name, UntilDateTime = BitConverter.GetBytes(DateTime.Now.Ticks - mins)};
banUser.Bans.Add(user);
banUser.SaveChanges();
}
}
} }
} }