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 DateTime lastSave = DateTime.UtcNow;
@@ -855,17 +855,23 @@ namespace ReallifeGamemode.Server.Managers
{
if (_serverVehicles.ContainsKey(serverVehicle.Id))
{
logger.LogCritical("Server Vehicle {Id} already has a spawned vehicle", serverVehicle.Id);
_serverVehicles[serverVehicle.Id].Entity<Vehicle>().Delete();
var spawnedHandle = _serverVehicles.Where(s => s.Key == serverVehicle.Id).First().Value;
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;
}
_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)
@@ -873,15 +879,18 @@ namespace ReallifeGamemode.Server.Managers
ServerVehicle sVeh;
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);
}
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)
@@ -917,9 +926,9 @@ namespace ReallifeGamemode.Server.Managers
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);
}