formatting and add Wipe Endpoint to V2

This commit is contained in:
CWX
2025-10-28 17:02:55 +00:00
parent 9ce50c697a
commit abb844c9ce
3 changed files with 79 additions and 18 deletions
@@ -1,5 +1,6 @@
using SPTarkov.DI.Annotations;
using SPTarkov.Server.Core.Controllers;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Launcher;
using SPTarkov.Server.Core.Models.Spt.Launcher;
using SPTarkov.Server.Core.Utils;
@@ -15,17 +16,26 @@ public class LauncherV2Callbacks(
{
public ValueTask<string> Ping()
{
return new ValueTask<string>(httpResponseUtil.NoBody(new LauncherV2PingResponse { Response = launcherV2Controller.Ping() }));
return new ValueTask<string>(httpResponseUtil.NoBody(new LauncherV2PingResponse
{
Response = launcherV2Controller.Ping()
}));
}
public ValueTask<string> Types()
{
return new ValueTask<string>(httpResponseUtil.NoBody(new LauncherV2TypesResponse { Response = launcherV2Controller.Types() }));
return new ValueTask<string>(httpResponseUtil.NoBody(new LauncherV2TypesResponse
{
Response = launcherV2Controller.Types()
}));
}
public ValueTask<string> Login(LoginRequestData info)
{
return new ValueTask<string>(httpResponseUtil.NoBody(new LauncherV2LoginResponse { Response = launcherV2Controller.Login(info) }));
return new ValueTask<string>(httpResponseUtil.NoBody(new LauncherV2LoginResponse
{
Response = launcherV2Controller.Login(info)
}));
}
public async ValueTask<string> Register(RegisterData info)
@@ -55,26 +65,49 @@ public class LauncherV2Callbacks(
public ValueTask<string> CompatibleVersion()
{
return new ValueTask<string>(
httpResponseUtil.NoBody(new LauncherV2VersionResponse { Response = launcherV2Controller.SptVersion() })
httpResponseUtil.NoBody(new LauncherV2VersionResponse
{
Response = launcherV2Controller.SptVersion()
})
);
}
public ValueTask<string> Mods()
{
return new ValueTask<string>(httpResponseUtil.NoBody(new LauncherV2ModsResponse { Response = launcherV2Controller.LoadedMods() }));
return new ValueTask<string>(httpResponseUtil.NoBody(new LauncherV2ModsResponse
{
Response = launcherV2Controller.LoadedMods()
}));
}
public ValueTask<string> Profiles()
{
return new ValueTask<string>(
httpResponseUtil.NoBody(new LauncherV2ProfilesResponse { Response = profileController.GetMiniProfiles() })
httpResponseUtil.NoBody(new LauncherV2ProfilesResponse
{
Response = profileController.GetMiniProfiles()
})
);
}
public ValueTask<string> Profile(LoginRequestData sessionId)
public ValueTask<string> Profile(LoginRequestData username)
{
return new ValueTask<string>(
httpResponseUtil.NoBody(new LauncherV2ProfileResponse { Response = launcherV2Controller.GetMiniProfileFromUsername(sessionId) })
httpResponseUtil.NoBody(new LauncherV2ProfileResponse
{
Response = launcherV2Controller.GetMiniProfileFromUsername(username)
})
);
}
public ValueTask<string> Wipe(RegisterData info)
{
return new ValueTask<string>(
httpResponseUtil.NoBody(new LauncherV2WipeResponse
{
Response = launcherV2Controller.Wipe(info),
Profiles = profileController.GetMiniProfiles(),
})
);
}
}
@@ -173,4 +173,26 @@ public class LauncherV2Controller(
{
return profileController.GetMiniProfile(GetSessionId(info));
}
public bool Wipe(RegisterData info)
{
if (!CoreConfig.AllowProfileWipe)
{
return false;
}
var sessionId = Login(info);
if (!sessionId)
{
var profileInfo = saveServer.GetProfiles().FirstOrDefault(x =>
x.Value.ProfileInfo?.Username == info.Username
).Value.ProfileInfo;
profileInfo!.Edition = info.Edition;
profileInfo.IsWiped = true;
}
return sessionId;
}
}
@@ -12,32 +12,38 @@ public class LauncherV2StaticRouter(LauncherV2Callbacks launcherV2Callbacks, Jso
: StaticRouter(
jsonUtil,
[
new RouteAction<EmptyRequestData>("/launcher/v2/ping", async (url, _, sessionID, _) => await launcherV2Callbacks.Ping()),
new RouteAction<EmptyRequestData>("/launcher/v2/types", async (url, _, sessionID, _) => await launcherV2Callbacks.Types()),
new RouteAction<EmptyRequestData>("/launcher/v2/ping", async (_, _, _, _) => await launcherV2Callbacks.Ping()),
new RouteAction<EmptyRequestData>("/launcher/v2/types", async (_, _, _, _) => await launcherV2Callbacks.Types()),
new RouteAction<LoginRequestData>(
"/launcher/v2/login",
async (url, info, sessionID, _) => await launcherV2Callbacks.Login(info)
async (_, info, _, _) => await launcherV2Callbacks.Login(info)
),
new RouteAction<RegisterData>(
"/launcher/v2/register",
async (url, info, sessionID, _) => await launcherV2Callbacks.Register(info)
async (_, info, _, _) => await launcherV2Callbacks.Register(info)
),
new RouteAction<LoginRequestData>(
"/launcher/v2/remove",
async (url, info, sessionID, _) => await launcherV2Callbacks.Remove(info)
async (_, info, _, _) => await launcherV2Callbacks.Remove(info)
),
new RouteAction<EmptyRequestData>(
"/launcher/v2/version",
async (url, _, sessionID, _) => await launcherV2Callbacks.CompatibleVersion()
async (_, _, _, _) => await launcherV2Callbacks.CompatibleVersion()
),
new RouteAction<EmptyRequestData>("/launcher/v2/mods", async (url, _, sessionID, _) => await launcherV2Callbacks.Mods()),
new RouteAction<EmptyRequestData>("/launcher/v2/mods", async (_, _, _, _) => await launcherV2Callbacks.Mods()),
new RouteAction<EmptyRequestData>(
"/launcher/v2/profiles",
async (url, _, sessionID, _) => await launcherV2Callbacks.Profiles()
async (_, _, _, _) => await launcherV2Callbacks.Profiles()
),
new RouteAction<LoginRequestData>(
"/launcher/v2/profile",
async (url, info, sessionID, _) => await launcherV2Callbacks.Profile(info)
async (_, info, _, _) => await launcherV2Callbacks.Profile(info)
),
new RouteAction<RegisterData>(
"/launcher/v2/wipe",
async (_, info, _, _) => await launcherV2Callbacks.Wipe(info)
)
]
) { }
)
{
}