From a49712d963f7d97c7ae80764fadee7ce89018fc4 Mon Sep 17 00:00:00 2001 From: hydrant Date: Mon, 31 May 2021 09:45:54 +0200 Subject: [PATCH] item nicht in abgeschlossenes car packen --- .../Managers/InventoryManager.cs | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/ReallifeGamemode.Server/Managers/InventoryManager.cs b/ReallifeGamemode.Server/Managers/InventoryManager.cs index 6bebc678..ca5a32f4 100644 --- a/ReallifeGamemode.Server/Managers/InventoryManager.cs +++ b/ReallifeGamemode.Server/Managers/InventoryManager.cs @@ -387,9 +387,9 @@ namespace ReallifeGamemode.Server.Managers using (var context = new DatabaseContext()) { - UserItem item = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == itemID && u.Amount >= itemAmount).FirstOrDefault(); + UserItem userItem = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == itemID && u.Amount >= itemAmount).FirstOrDefault(); - if (item == null) + if (userItem == null) { player.TriggerEvent("Error", "Transfer nicht möglich."); return; @@ -415,11 +415,23 @@ namespace ReallifeGamemode.Server.Managers return; } - RemoveUserItem(user, item, itemAmount); + ServerVehicle serverVehicle = VehicleManager.GetServerVehicleFromVehicle(veh, context); + + if (VehicleStreaming.GetLockState(veh) || serverVehicle.Locked) + { + player.TriggerEvent("Error", "Der Kofferraum ist abgeschlossen"); + return; + } + + IItem item = GetItemById(userItem.ItemId); + + logger.LogInformation("Player {0} transferred the item {1} ({2}, amount: {3}) from his inventory to vehicle {4}", player.Name, item.Name, userItem.Id, itemAmount, serverVehicle.Id); + + RemoveUserItem(user, userItem, itemAmount); AddItemToVehicleInventory(veh, itemID, itemAmount); SetBackpackItems(player); - VehicleItem vehicleItem = context.VehicleItems.Where(f => f.ItemId == itemID && f.Vehicle == VehicleManager.GetServerVehicleFromVehicle(veh, context)).FirstOrDefault(); + VehicleItem vehicleItem = context.VehicleItems.Where(f => f.ItemId == itemID && f.Vehicle == serverVehicle).FirstOrDefault(); context.SaveChanges(); IItem iItem = GetItemById(itemID); player.TriggerEvent("aproveTransfer", vehicleItem.Amount, iItem.Name, "Kofferraum");