Implemented Modded Trader Customization Services (#660)
Co-authored-by: GrooveypenguinX <jakechase2110@gmail.comX> Co-authored-by: Chomp <27521899+chompDev@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
using SPTarkov.DI.Annotations;
|
||||
using SPTarkov.Server.Core.Controllers;
|
||||
using SPTarkov.Server.Core.Models.Common;
|
||||
using SPTarkov.Server.Core.Models.Eft.Common;
|
||||
using SPTarkov.Server.Core.Utils;
|
||||
|
||||
namespace SPTarkov.Server.Core.Callbacks;
|
||||
|
||||
[Injectable]
|
||||
public class ModdedTraderCustomizationCallbacks(
|
||||
ModdedTraderCustomizationController moddedTraderCustomizationController,
|
||||
HttpResponseUtil httpResponseUtil
|
||||
)
|
||||
{
|
||||
/// <summary>
|
||||
/// Handle /singleplayer/moddedTraders
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public ValueTask<string> GetCustomizationTraders(string url, EmptyRequestData _, MongoId sessionID)
|
||||
{
|
||||
return new ValueTask<string>(httpResponseUtil.NoBody(moddedTraderCustomizationController.GetCustomizationSellerIds()));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using SPTarkov.DI.Annotations;
|
||||
using SPTarkov.Server.Core.Models.Enums;
|
||||
using SPTarkov.Server.Core.Models.Spt.Mod;
|
||||
using SPTarkov.Server.Core.Services;
|
||||
|
||||
namespace SPTarkov.Server.Core.Controllers;
|
||||
|
||||
[Injectable]
|
||||
public class ModdedTraderCustomizationController(DatabaseService databaseService)
|
||||
{
|
||||
public ModdedTraderListResponse GetCustomizationSellerIds()
|
||||
{
|
||||
var traders = databaseService.GetTraders();
|
||||
var customizationSellers = new ModdedTraderListResponse
|
||||
{
|
||||
ModdedTraders = []
|
||||
};
|
||||
|
||||
foreach (var trader in traders)
|
||||
{
|
||||
if (trader.Value.Base.CustomizationSeller!.Value && trader.Key != Traders.RAGMAN)
|
||||
{
|
||||
customizationSellers.ModdedTraders.Add(trader.Key);
|
||||
}
|
||||
}
|
||||
return customizationSellers;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace SPTarkov.Server.Core.Models.Spt.Mod;
|
||||
|
||||
public record ModdedTraderListResponse
|
||||
{
|
||||
public List<string>? ModdedTraders { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using SPTarkov.DI.Annotations;
|
||||
using SPTarkov.Server.Core.Callbacks;
|
||||
using SPTarkov.Server.Core.DI;
|
||||
using SPTarkov.Server.Core.Models.Eft.Common;
|
||||
using SPTarkov.Server.Core.Utils;
|
||||
|
||||
namespace SPTarkov.Server.Core.Routers.Static;
|
||||
|
||||
[Injectable]
|
||||
public class ModdedTraderCustomizationRouter(JsonUtil jsonUtil, ModdedTraderCustomizationCallbacks moddedTraderCustomizationCallbacks)
|
||||
: StaticRouter(
|
||||
jsonUtil,
|
||||
[
|
||||
new RouteAction<EmptyRequestData>(
|
||||
"/singleplayer/moddedTraders",
|
||||
async (url, info, sessionID, output) =>
|
||||
await moddedTraderCustomizationCallbacks.GetCustomizationTraders(url, info, sessionID)
|
||||
)
|
||||
]
|
||||
) { }
|
||||
Reference in New Issue
Block a user