From 938e30fa966af96b9a8665030e671c5b121232fc Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 2 Dec 2018 15:00:41 +0100 Subject: [PATCH] Added /remove command for vehicles and goto points --- Server/Commands/Admin.cs | 67 +++++++++++++++++++++++++++++- Server/Entities/FactionVehicles.cs | 5 +++ Server/Entities/UserVehicle.cs | 22 ++++++++++ Server/Saves/SavedVehicle.cs | 7 +++- 4 files changed, 99 insertions(+), 2 deletions(-) diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index f344cf30..ac74321e 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -571,7 +571,7 @@ namespace reallife_gamemode.Server.Commands } using (var dbContext = new DatabaseContext()) { - Entities.GotoPoint p = dbContext.GotoPoints.FirstOrDefault(x => x.Description == location); + GotoPoint p = dbContext.GotoPoints.FirstOrDefault(x => x.Description == location); if(p == null) { @@ -1344,6 +1344,71 @@ namespace reallife_gamemode.Server.Commands } } + [Command("remove", "~m~Benutzung: ~s~/remove [Vehicle, Goto] [Option]")] + public void CmdAdminRemove(Client player, string type, string option = "") + { + if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + switch(type.ToLower()) + { + case "vehicle": + if(!player.IsInVehicle) + { + player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!"); + return; + } + + ServerVehicle veh = player.Vehicle.GetServerVehicle(); + if(veh == null) + { + player.SendChatMessage("~r~[FEHLER]~s~ Dieses Fahrzeug wird nicht von einem Server-System genutzt."); + return; + } + + if(option.ToLower() != "yes") + { + player.SendChatMessage("Bist du sicher, dass du folgendes Fahrzeug löschen willst: ~m~" + veh.ToString() + " ~s~?"); + player.SendChatMessage("Falls ~g~Ja~s~, nutze ~y~/remove vehicle yes"); + return; + } + + using (var dbContext = new DatabaseContext()) + { + VehicleManager.DeleteVehicle(player.Vehicle); + dbContext.ServerVehicles.Remove(veh); + + dbContext.SaveChanges(); + } + break; + + case "goto": + if(option == "") + { + player.SendChatMessage("~m~Benutzung: ~s~/remove [Goto] [Punkt]"); + return; + } + using (var dbContext = new DatabaseContext()) + { + GotoPoint p = dbContext.GotoPoints.FirstOrDefault(x => x.Description == option); + if(p == null) + { + player.SendChatMessage("~r~[FEHLER]~s~ Dieser Goto-Punkt existiert nicht."); + return; + } + + dbContext.GotoPoints.Remove(p); + dbContext.SaveChanges(); + + player.SendNotification("Der Goto-Punkt ~r~" + p.Description + "~s~ wurde erfolgreich gelöscht."); + } + break; + } + } + #region loadCommand [Command("load", "~m~Benutzung: ~s~/load [Typ = OnlineBunkers, ArcadiusBusinessCentre, MazeBankBuilding, LomBank, MazeBankWest, ClubWareHouse, SpecialLocations, GRHYacht, DHYacht, PYacht, AircraftCarrier, BridgeTC, BridgeTN, NorthYankton, ONeilsFarmB, ONeilsFarm, Morgue")] public void CmdAdminloadlocation(Client player, string typ) diff --git a/Server/Entities/FactionVehicles.cs b/Server/Entities/FactionVehicles.cs index 8cb88532..7f04dc57 100644 --- a/Server/Entities/FactionVehicles.cs +++ b/Server/Entities/FactionVehicles.cs @@ -30,5 +30,10 @@ namespace reallife_gamemode.Server.Entities return context.Factions.FirstOrDefault(f => f.Id == FactionId); } } + + public override string ToString() + { + return "Fraktions Fahrzeug | Fraktion: " + GetFaction().Name; + } } } diff --git a/Server/Entities/UserVehicle.cs b/Server/Entities/UserVehicle.cs index e6021bc9..a24f9703 100644 --- a/Server/Entities/UserVehicle.cs +++ b/Server/Entities/UserVehicle.cs @@ -1,9 +1,11 @@ using GTANetworkAPI; +using reallife_gamemode.Model; using reallife_gamemode.Server.Util; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; using System.Text; /** @@ -20,5 +22,25 @@ namespace reallife_gamemode.Server.Entities [ForeignKey("User")] public int UserId { get; set; } public User User { get; set; } + + public override string ToString() + { + return "Spieler Fahrzeug | Besitzer: " + GetOwner().Name; + } + + public User GetOwner(DatabaseContext dbContext = null) + { + if (dbContext == null) + { + using (dbContext = new DatabaseContext()) + { + return dbContext.Users.FirstOrDefault(u => u.BusinessId == Id); + } + } + else + { + return dbContext.Users.FirstOrDefault(u => u.BusinessId == Id); + } + } } } diff --git a/Server/Saves/SavedVehicle.cs b/Server/Saves/SavedVehicle.cs index 43f9c3d3..74c8a0c1 100644 --- a/Server/Saves/SavedVehicle.cs +++ b/Server/Saves/SavedVehicle.cs @@ -15,5 +15,10 @@ using reallife_gamemode.Server.Entities; namespace reallife_gamemode.Server.Saves { public class SavedVehicle : ServerVehicle - { } + { + public override string ToString() + { + return "Gespeichertes Fahrzeug"; + } + } }