mehr logs bei vehicle manager
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user