mehr logs bei vehicle manager

This commit is contained in:
hydrant
2021-04-26 22:56:45 +02:00
parent 4d081d2114
commit 3586f0b382

View File

@@ -774,7 +774,7 @@ namespace ReallifeGamemode.Server.Managers
}; };
private static readonly Dictionary<int, NetHandle> _serverVehicles = new Dictionary<int, NetHandle>(); private static readonly Dictionary<int, ushort> _serverVehicles = new Dictionary<int, ushort>();
private static readonly Dictionary<NetHandle, Vector3> lastPositions = new Dictionary<NetHandle, Vector3>(); private static readonly Dictionary<NetHandle, Vector3> lastPositions = new Dictionary<NetHandle, Vector3>();
private static DateTime lastSave = DateTime.UtcNow; private static DateTime lastSave = DateTime.UtcNow;
@@ -855,17 +855,23 @@ namespace ReallifeGamemode.Server.Managers
{ {
if (_serverVehicles.ContainsKey(serverVehicle.Id)) if (_serverVehicles.ContainsKey(serverVehicle.Id))
{ {
logger.LogCritical("Server Vehicle {Id} already has a spawned vehicle", serverVehicle.Id); var spawnedHandle = _serverVehicles.Where(s => s.Key == serverVehicle.Id).First().Value;
_serverVehicles[serverVehicle.Id].Entity<Vehicle>().Delete(); logger.LogCritical("Server Vehicle {Id} already has a spawned vehicle with handle {spawnedHandle}", serverVehicle.Id, spawnedHandle);
new NetHandle(_serverVehicles[serverVehicle.Id], EntityType.Vehicle).Entity<Vehicle>().Delete();
} }
if (_serverVehicles.ContainsValue(vehicle.Handle)) if (_serverVehicles.ContainsValue(vehicle.Handle.Value))
{ {
logger.LogCritical("Vehicle handle {Handle} already belongs"); var dbId = _serverVehicles.Where(v => v.Value == vehicle.Handle.Value).First().Key;
var dbIdHandle = vehicle.Handle.Value;
logger.LogCritical("Vehicle handle {handle} already belongs to server vehicle {dbIdHandle}", dbIdHandle, dbId);
return; return;
} }
_serverVehicles[serverVehicle.Id] = vehicle.Handle; var id = serverVehicle.Id;
var handle = vehicle.Handle.Value;
logger.LogInformation("Mapping server vehicle id {id} to vehicle {handle}", id, handle);
_serverVehicles[serverVehicle.Id] = vehicle.Handle.Value;
} }
internal static void DeleteVehicle(Vehicle veh) internal static void DeleteVehicle(Vehicle veh)
@@ -873,15 +879,18 @@ namespace ReallifeGamemode.Server.Managers
ServerVehicle sVeh; ServerVehicle sVeh;
if ((sVeh = GetServerVehicleFromVehicle(veh)) != null) if ((sVeh = GetServerVehicleFromVehicle(veh)) != null)
{ {
var id = sVeh.Id;
var handle = veh.Handle.Value;
logger.LogInformation("Deleting server vehicle {id} mapping to spawned veh {handle}", id, handle);
_serverVehicles.Remove(sVeh.Id); _serverVehicles.Remove(sVeh.Id);
} }
veh?.Delete(); veh?.Delete();
} }
public static Vehicle GetVehicleFromHandle(NetHandle handle) public static Vehicle GetVehicleFromHandle(ushort handle)
{ {
return NAPI.Pools.GetAllVehicles().Find(v => v.Handle == handle); return NAPI.Pools.GetAllVehicles().Find(v => v.Handle.Value == handle);
} }
public static Vehicle GetVehicleFromId(int id) public static Vehicle GetVehicleFromId(int id)
@@ -917,9 +926,9 @@ namespace ReallifeGamemode.Server.Managers
dbContext = dbContext ?? new DatabaseContext(); dbContext = dbContext ?? new DatabaseContext();
foreach (KeyValuePair<int, NetHandle> pair in _serverVehicles) foreach (KeyValuePair<int, ushort> pair in _serverVehicles)
{ {
if (pair.Value == veh.Handle) if (pair.Value == veh.Handle.Value)
{ {
return dbContext.ServerVehicles.Find(pair.Key); return dbContext.ServerVehicles.Find(pair.Key);
} }