diff --git a/Core/Helpers/ProfileHelper.cs b/Core/Helpers/ProfileHelper.cs
index 34dc26a6..da486721 100644
--- a/Core/Helpers/ProfileHelper.cs
+++ b/Core/Helpers/ProfileHelper.cs
@@ -352,7 +352,7 @@ public class ProfileHelper
public PmcData RemoveSecureContainer(PmcData profile)
{
var items = profile.Inventory.Items;
- var secureContainer = items.First(i => i.SlotId == "SecuredContainer");
+ var secureContainer = items.FirstOrDefault(i => i.SlotId == "SecuredContainer");
if (secureContainer is not null)
{
// Find and remove container + children
diff --git a/Core/Services/FenceService.cs b/Core/Services/FenceService.cs
index d11c465c..13c1d3bd 100644
--- a/Core/Services/FenceService.cs
+++ b/Core/Services/FenceService.cs
@@ -1,4 +1,4 @@
-using Core.Annotations;
+using Core.Annotations;
using Core.Models.Eft.Common;
using Core.Models.Eft.Common.Tables;
using Core.Models.Spt.Config;
@@ -9,6 +9,14 @@ namespace Core.Services;
[Injectable(InjectionType.Singleton)]
public class FenceService
{
+ private readonly DatabaseService _databaseService;
+
+ public FenceService(
+ DatabaseService databaseService)
+ {
+ _databaseService = databaseService;
+ }
+
///
/// Replace main fence assort with new assort
///
@@ -495,7 +503,30 @@ public class FenceService
/// FenceLevel object
public FenceLevel GetFenceInfo(PmcData pmcData)
{
- throw new NotImplementedException();
+ var fenceSettings = _databaseService.GetGlobals().Configuration.FenceSettings;
+ pmcData.TradersInfo.TryGetValue(fenceSettings.FenceIdentifier, out var pmcFenceInfo);
+
+ if (pmcFenceInfo is null)
+ {
+ return fenceSettings.Levels["0"];
+ }
+
+ var fenceLevels = fenceSettings.Levels.Select(x => x.Key);
+ var minLevel = fenceLevels.Min();
+ var maxLevel = fenceLevels.Max();
+ var pmcFenceLevel = Math.Floor(pmcFenceInfo.Standing.Value);
+
+ if (pmcFenceLevel < int.Parse(minLevel))
+ {
+ return fenceSettings.Levels[minLevel];
+ }
+
+ if (pmcFenceLevel > int.Parse(maxLevel))
+ {
+ return fenceSettings.Levels[maxLevel];
+ }
+
+ return fenceSettings.Levels[pmcFenceLevel.ToString()];
}
///