From 02e4e5773f1b78e195e8696612d6662a2d6fae6f Mon Sep 17 00:00:00 2001 From: hydrant Date: Sat, 29 May 2021 02:52:07 +0200 Subject: [PATCH] mehr inventar logs --- .../Managers/InventoryManager.cs | 16 +++++++++++++--- .../Managers/VehicleManager.cs | 9 ++++++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/ReallifeGamemode.Server/Managers/InventoryManager.cs b/ReallifeGamemode.Server/Managers/InventoryManager.cs index a2ff976f..6bebc678 100644 --- a/ReallifeGamemode.Server/Managers/InventoryManager.cs +++ b/ReallifeGamemode.Server/Managers/InventoryManager.cs @@ -341,15 +341,24 @@ namespace ReallifeGamemode.Server.Managers veh = new NetHandle(vehicleItems[player].FirstOrDefault().vehicle, EntityType.Vehicle).Entity(); ServerVehicle serverVehicle = VehicleManager.GetServerVehicleFromVehicle(veh, context); - VehicleItem vehItem = context.VehicleItems.Where(v => v.VehicleId == serverVehicle.Id && v.ItemId == itemID).FirstOrDefault(); + + if (serverVehicle.Locked || VehicleStreaming.GetLockState(veh)) + { + player.TriggerEvent("Error", "Transfer nicht möglich."); + return; + } + + VehicleItem vehItem = context.VehicleItems.Where(v => v.VehicleId == serverVehicle.Id && v.ItemId == itemID && v.Amount >= itemAmount).FirstOrDefault(); if (vehItem == null) { player.TriggerEvent("Error", "Transfer nicht möglich."); return; } + + IItem item = GetItemById(itemID); + if (serverVehicle is FactionVehicle factionVehicle) { - IItem item = GetItemById(itemID); if (factionVehicle.Model == VehicleHash.Riot && user.Faction?.StateOwned == true) { player.TriggerEvent("Error", "Transfer nicht möglich."); @@ -357,6 +366,8 @@ namespace ReallifeGamemode.Server.Managers } } + logger.LogInformation("Player {0} transferred the item {1} ({2}, amount: {3}) from vehicle {4} to his inventory", player.Name, item.Name, item.Id, itemAmount, serverVehicle.Id); + RemoveVehicleItem(serverVehicle, vehItem, itemAmount, player); SetVehicleItems(player); @@ -364,7 +375,6 @@ namespace ReallifeGamemode.Server.Managers SetBackpackItems(player); context.SaveChanges(); - IItem iItem = GetItemById(vehItem.ItemId); } } diff --git a/ReallifeGamemode.Server/Managers/VehicleManager.cs b/ReallifeGamemode.Server/Managers/VehicleManager.cs index b7ae3bb5..4ed7b84e 100644 --- a/ReallifeGamemode.Server/Managers/VehicleManager.cs +++ b/ReallifeGamemode.Server/Managers/VehicleManager.cs @@ -1154,7 +1154,14 @@ namespace ReallifeGamemode.Server.Managers Vehicle newVeh = sV.Spawn(vehicle); newVeh.Repair(); } - InventoryManager.RemoveAllItemsfromVehicleInventory(vehicle); + + var items = InventoryManager.GetVehicleItems(vehicle); + if (items.Any()) + { + string itemsStr = string.Join(", ", items.Select(i => $"{i.ItemId} (amount: {i.Amount})")); + logger.LogInformation("Vehicle {0} died and lost the items: {1}", sV.Id, itemsStr); + InventoryManager.RemoveAllItemsfromVehicleInventory(vehicle); + } } }