diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index 0c5aed20..03cef8da 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -801,11 +801,16 @@ namespace reallife_gamemode.Server.Commands return; } - /* TODO: Checken, ob das Fahrzeug in einem System genutzt wird (Fraktions-Autos / Spieler-Auto) - * Wenn Ja: Abbrechen und mitteilen, dass man den System-spezifischen Befehl zu nutzen hat - */ + Vehicle playerVeh = player.Vehicle; - player.Vehicle.Delete(); + ServerVehicle veh = VehicleManager.GetServerVehicleFromVehicle(playerVeh); + if(veh != null) + { + player.SendChatMessage("~r~[FEHLER]~s~ Dieses Fahrzeug wird von einem Server-System benutzt: ~m~" + veh.GetType().Name); + return; + } + + playerVeh.Delete(); } [Command("vcolor", "~m~Benutzung: ~s~/vcolor [Farb-ID1] [Farb-ID2]")] diff --git a/Server/Managers/VehicleManager.cs b/Server/Managers/VehicleManager.cs index 80dadeea..b5f26990 100644 --- a/Server/Managers/VehicleManager.cs +++ b/Server/Managers/VehicleManager.cs @@ -3,6 +3,7 @@ using reallife_gamemode.Server.Entities; using System; using System.Collections.Generic; using System.Text; +using reallife_gamemode.Model; namespace reallife_gamemode.Server.Managers { @@ -35,5 +36,21 @@ namespace reallife_gamemode.Server.Managers return NAPI.Pools.GetAllVehicles().Find(v => v.Handle == _serverVehicles[serverVehicle.Id]); } + + public static ServerVehicle GetServerVehicleFromVehicle(Vehicle veh) + { + using (var dbContext = new DatabaseContext()) + { + foreach(KeyValuePair pair in _serverVehicles) + { + if (pair.Value == veh.Handle) + { + return dbContext.ServerVehicles.Find(pair.Key); + } + } + } + + return null; + } } }