From 0d0409f876721eb01380ea10e5b4601b63e9c5eb Mon Sep 17 00:00:00 2001 From: Cj <161484149+CJ-SPT@users.noreply.github.com> Date: Tue, 7 Jan 2025 06:04:21 -0500 Subject: [PATCH 1/6] More types --- .../Eft/Trade/ProcessBaseTradeRequestData.cs | 15 +++++ .../Eft/Trade/ProcessBuyTradeRequestData.cs | 37 +++++++++++ .../Trade/ProcessRagfairTradeRequestData.cs | 33 ++++++++++ .../Eft/Trade/ProcessSellTradeRequestData.cs | 33 ++++++++++ .../Trade/SellScavItemsToFenceRequestData.cs | 19 ++++++ Core/Models/Eft/Weather/WeatherData.cs | 66 +++++++++++++++++++ .../Eft/Wishlist/AddToWishlistRequest.cs | 12 ++++ .../ChangeWishlistItemCategoryRequest.cs | 15 +++++ .../Eft/Wishlist/RemoveFromWishlistRequest.cs | 12 ++++ Core/Models/Eft/Ws/WsAid.cs | 9 +++ Core/Models/Eft/Ws/WsAidNickname.cs | 12 ++++ Core/Models/Eft/Ws/WsChatMessageReceived.cs | 16 +++++ Core/Models/Eft/Ws/WsFriendListAccept.cs | 9 +++ Core/Models/Eft/Ws/WsGroupId.cs | 9 +++ .../Models/Eft/Ws/WsGroupMatchInviteAccept.cs | 5 ++ .../Eft/Ws/WsGroupMatchInviteDecline.cs | 12 ++++ Core/Models/Eft/Ws/WsGroupMatchInviteSend.cs | 15 +++++ .../Eft/Ws/WsGroupMatchLeaderChanged.cs | 9 +++ Core/Models/Eft/Ws/WsGroupMatchRaidReady.cs | 9 +++ .../Models/Eft/Ws/WsGroupMatchRaidSettings.cs | 9 +++ Core/Models/Eft/Ws/WsNotificationEvent.cs | 12 ++++ Core/Models/Eft/Ws/WsPing.cs | 6 ++ Core/Models/Eft/Ws/WsRagfairOfferSold.cs | 15 +++++ Core/Models/Eft/Ws/WsUserConfirmed.cs | 42 ++++++++++++ .../Weather/GetLocalWeatherResponseData.cs | 2 +- 25 files changed, 432 insertions(+), 1 deletion(-) create mode 100644 Core/Models/Eft/Trade/ProcessBaseTradeRequestData.cs create mode 100644 Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs create mode 100644 Core/Models/Eft/Trade/ProcessRagfairTradeRequestData.cs create mode 100644 Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs create mode 100644 Core/Models/Eft/Trade/SellScavItemsToFenceRequestData.cs create mode 100644 Core/Models/Eft/Weather/WeatherData.cs create mode 100644 Core/Models/Eft/Wishlist/AddToWishlistRequest.cs create mode 100644 Core/Models/Eft/Wishlist/ChangeWishlistItemCategoryRequest.cs create mode 100644 Core/Models/Eft/Wishlist/RemoveFromWishlistRequest.cs create mode 100644 Core/Models/Eft/Ws/WsAid.cs create mode 100644 Core/Models/Eft/Ws/WsAidNickname.cs create mode 100644 Core/Models/Eft/Ws/WsChatMessageReceived.cs create mode 100644 Core/Models/Eft/Ws/WsFriendListAccept.cs create mode 100644 Core/Models/Eft/Ws/WsGroupId.cs create mode 100644 Core/Models/Eft/Ws/WsGroupMatchInviteAccept.cs create mode 100644 Core/Models/Eft/Ws/WsGroupMatchInviteDecline.cs create mode 100644 Core/Models/Eft/Ws/WsGroupMatchInviteSend.cs create mode 100644 Core/Models/Eft/Ws/WsGroupMatchLeaderChanged.cs create mode 100644 Core/Models/Eft/Ws/WsGroupMatchRaidReady.cs create mode 100644 Core/Models/Eft/Ws/WsGroupMatchRaidSettings.cs create mode 100644 Core/Models/Eft/Ws/WsNotificationEvent.cs create mode 100644 Core/Models/Eft/Ws/WsPing.cs create mode 100644 Core/Models/Eft/Ws/WsRagfairOfferSold.cs create mode 100644 Core/Models/Eft/Ws/WsUserConfirmed.cs diff --git a/Core/Models/Eft/Trade/ProcessBaseTradeRequestData.cs b/Core/Models/Eft/Trade/ProcessBaseTradeRequestData.cs new file mode 100644 index 00000000..253583c5 --- /dev/null +++ b/Core/Models/Eft/Trade/ProcessBaseTradeRequestData.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Trade; + +public class ProcessBaseTradeRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } + + [JsonPropertyName("type")] + public string Type { get; set; } + + [JsonPropertyName("tid")] + public string TransactionId { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs b/Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs new file mode 100644 index 00000000..592e3d69 --- /dev/null +++ b/Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs @@ -0,0 +1,37 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Trade; + +public class ProcessBuyTradeRequestData : ProcessBaseTradeRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } // TODO: formerly - "buy_from_trader" | "TradingConfirm" | "RestoreHealth" | "SptInsure" | "SptRepair" | "" + + [JsonPropertyName("type")] + public string Type { get; set; } + + [JsonPropertyName("tid")] + public string TId { get; set; } + + [JsonPropertyName("item_id")] + public string ItemId { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } + + [JsonPropertyName("scheme_id")] + public int SchemeId { get; set; } + + [JsonPropertyName("scheme_items")] + public List SchemeItems { get; set; } +} + +public class SchemeItem +{ + /** Id of stack to take money from, is money tpl when Action is `SptInsure` */ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Trade/ProcessRagfairTradeRequestData.cs b/Core/Models/Eft/Trade/ProcessRagfairTradeRequestData.cs new file mode 100644 index 00000000..c797bb9f --- /dev/null +++ b/Core/Models/Eft/Trade/ProcessRagfairTradeRequestData.cs @@ -0,0 +1,33 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Trade; + +public class ProcessRagfairTradeRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } + + [JsonPropertyName("offers")] + public List Offers { get; set; } +} + +public class OfferRequest +{ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } + + [JsonPropertyName("items")] + public List Items { get; set; } +} + +public class ItemRequest +{ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs b/Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs new file mode 100644 index 00000000..7ef3a8cb --- /dev/null +++ b/Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs @@ -0,0 +1,33 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Trade; + +public class ProcessSellTradeRequestData : ProcessBaseTradeRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "sell_to_trader"; + + [JsonPropertyName("type")] + public string Type { get; set; } + + [JsonPropertyName("tid")] + public string Tid { get; set; } + + [JsonPropertyName("price")] + public double Price { get; set; } + + [JsonPropertyName("items")] + public List Items { get; set; } +} + +public class SoldItem +{ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } + + [JsonPropertyName("scheme_id")] + public int SchemeId { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Trade/SellScavItemsToFenceRequestData.cs b/Core/Models/Eft/Trade/SellScavItemsToFenceRequestData.cs new file mode 100644 index 00000000..7f6b294d --- /dev/null +++ b/Core/Models/Eft/Trade/SellScavItemsToFenceRequestData.cs @@ -0,0 +1,19 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common.Request; + +namespace Core.Models.Eft.Trade; + +public class SellScavItemsToFenceRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "SellAllFromSavage"; + + [JsonPropertyName("totalValue")] + public double TotalValue { get; set; } + + [JsonPropertyName("fromOwner")] + public OwnerInfo FromOwner { get; set; } + + [JsonPropertyName("toOwner")] + public OwnerInfo ToOwner { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Weather/WeatherData.cs b/Core/Models/Eft/Weather/WeatherData.cs new file mode 100644 index 00000000..aa049359 --- /dev/null +++ b/Core/Models/Eft/Weather/WeatherData.cs @@ -0,0 +1,66 @@ +using System.Text.Json.Serialization; +using Core.Models.Enums; + +namespace Core.Models.Eft.Weather; + +public class WeatherData +{ + [JsonPropertyName("acceleration")] + public double Acceleration { get; set; } + + [JsonPropertyName("time")] + public string Time { get; set; } + + [JsonPropertyName("date")] + public string Date { get; set; } + + [JsonPropertyName("weather")] + public Weather Weather { get; set; } + + [JsonPropertyName("season")] + public Season Season { get; set; } +} + +public class Weather +{ + [JsonPropertyName("pressure")] + public double Pressure { get; set; } + + [JsonPropertyName("temp")] + public double Temperature { get; set; } + + [JsonPropertyName("fog")] + public double Fog { get; set; } + + [JsonPropertyName("rain_intensity")] + public double RainIntensity { get; set; } + + /** 1 - 3 light rain, 3+ 'rain' */ + [JsonPropertyName("rain")] + public double Rain { get; set; } + + [JsonPropertyName("wind_gustiness")] + public double WindGustiness { get; set; } + + [JsonPropertyName("wind_direction")] + public WindDirection WindDirection { get; set; } + + [JsonPropertyName("wind_speed")] + public double WindSpeed { get; set; } + + /** < -0.4 = clear day */ + [JsonPropertyName("cloud")] + public double Cloud { get; set; } + + [JsonPropertyName("time")] + public string Time { get; set; } + + [JsonPropertyName("date")] + public string Date { get; set; } + + [JsonPropertyName("timestamp")] + public long Timestamp { get; set; } + + [JsonPropertyName("sptInRaidTimestamp")] + public long SptInRaidTimestamp { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Wishlist/AddToWishlistRequest.cs b/Core/Models/Eft/Wishlist/AddToWishlistRequest.cs new file mode 100644 index 00000000..b7af04af --- /dev/null +++ b/Core/Models/Eft/Wishlist/AddToWishlistRequest.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Wishlist; + +public class AddToWishlistRequest +{ + [JsonPropertyName("Action")] + public string Action { get; set; } + + [JsonPropertyName("items")] + public Dictionary Items { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Wishlist/ChangeWishlistItemCategoryRequest.cs b/Core/Models/Eft/Wishlist/ChangeWishlistItemCategoryRequest.cs new file mode 100644 index 00000000..0cf7ffa0 --- /dev/null +++ b/Core/Models/Eft/Wishlist/ChangeWishlistItemCategoryRequest.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Wishlist; + +public class ChangeWishlistItemCategoryRequest +{ + [JsonPropertyName("Action")] + public string Action { get; set; } + + [JsonPropertyName("item")] + public string Item { get; set; } + + [JsonPropertyName("category")] + public int Category { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Wishlist/RemoveFromWishlistRequest.cs b/Core/Models/Eft/Wishlist/RemoveFromWishlistRequest.cs new file mode 100644 index 00000000..7c55baba --- /dev/null +++ b/Core/Models/Eft/Wishlist/RemoveFromWishlistRequest.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Wishlist; + +public class RemoveFromWishlistRequest +{ + [JsonPropertyName("Action")] + public string Action { get; set; } + + [JsonPropertyName("items")] + public List Items { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsAid.cs b/Core/Models/Eft/Ws/WsAid.cs new file mode 100644 index 00000000..67fb5539 --- /dev/null +++ b/Core/Models/Eft/Ws/WsAid.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ws; + +public class WsAid : WsNotificationEvent +{ + [JsonPropertyName("aid")] + public int Aid { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsAidNickname.cs b/Core/Models/Eft/Ws/WsAidNickname.cs new file mode 100644 index 00000000..3c99a904 --- /dev/null +++ b/Core/Models/Eft/Ws/WsAidNickname.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ws; + +public class WsAidNickname : WsNotificationEvent +{ + [JsonPropertyName("aid")] + public int Aid { get; set; } + + [JsonPropertyName("Nickname")] + public string Nickname { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsChatMessageReceived.cs b/Core/Models/Eft/Ws/WsChatMessageReceived.cs new file mode 100644 index 00000000..7b00d922 --- /dev/null +++ b/Core/Models/Eft/Ws/WsChatMessageReceived.cs @@ -0,0 +1,16 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Profile; + +namespace Core.Models.Eft.Ws; + +public class WsChatMessageReceived : WsNotificationEvent +{ + [JsonPropertyName("dialogId")] + public string DialogId { get; set; } + + [JsonPropertyName("message")] + public Message Message { get; set; } + + [JsonPropertyName("profiles")] + public List? Profiles { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsFriendListAccept.cs b/Core/Models/Eft/Ws/WsFriendListAccept.cs new file mode 100644 index 00000000..4161fa15 --- /dev/null +++ b/Core/Models/Eft/Ws/WsFriendListAccept.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ws; + +public class WsFriendsListAccept : WsNotificationEvent +{ + [JsonPropertyName("profile")] + public SearchFriendResponse Profile { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsGroupId.cs b/Core/Models/Eft/Ws/WsGroupId.cs new file mode 100644 index 00000000..a58c92f6 --- /dev/null +++ b/Core/Models/Eft/Ws/WsGroupId.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ws; + +public class WsGroupId : WsNotificationEvent +{ + [JsonPropertyName("groupId")] + public string GroupId { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsGroupMatchInviteAccept.cs b/Core/Models/Eft/Ws/WsGroupMatchInviteAccept.cs new file mode 100644 index 00000000..dd213c6b --- /dev/null +++ b/Core/Models/Eft/Ws/WsGroupMatchInviteAccept.cs @@ -0,0 +1,5 @@ +namespace Core.Models.Eft.Ws; + +public class WsGroupMatchInviteAccept : WsNotificationEvent, IGroupCharacter +{ +} \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsGroupMatchInviteDecline.cs b/Core/Models/Eft/Ws/WsGroupMatchInviteDecline.cs new file mode 100644 index 00000000..de6fad9f --- /dev/null +++ b/Core/Models/Eft/Ws/WsGroupMatchInviteDecline.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ws; + +public class WsGroupMatchInviteDecline : WsNotificationEvent +{ + [JsonPropertyName("aid")] + public int Aid { get; set; } + + [JsonPropertyName("Nickname")] + public string Nickname { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsGroupMatchInviteSend.cs b/Core/Models/Eft/Ws/WsGroupMatchInviteSend.cs new file mode 100644 index 00000000..2364870d --- /dev/null +++ b/Core/Models/Eft/Ws/WsGroupMatchInviteSend.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ws; + +public class WsGroupMatchInviteSend : WsNotificationEvent +{ + [JsonPropertyName("requestId")] + public string RequestId { get; set; } + + [JsonPropertyName("from")] + public int From { get; set; } + + [JsonPropertyName("members")] + public List Members { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsGroupMatchLeaderChanged.cs b/Core/Models/Eft/Ws/WsGroupMatchLeaderChanged.cs new file mode 100644 index 00000000..bd4106d1 --- /dev/null +++ b/Core/Models/Eft/Ws/WsGroupMatchLeaderChanged.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ws; + +public class WsGroupMatchLeaderChanged : WsNotificationEvent +{ + [JsonPropertyName("owner")] + public int Owner { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsGroupMatchRaidReady.cs b/Core/Models/Eft/Ws/WsGroupMatchRaidReady.cs new file mode 100644 index 00000000..4fddf596 --- /dev/null +++ b/Core/Models/Eft/Ws/WsGroupMatchRaidReady.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ws; + +public class WsGroupMatchRaidReady : WsNotificationEvent +{ + [JsonPropertyName("extendedProfile")] + public GroupCharacter ExtendedProfile { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsGroupMatchRaidSettings.cs b/Core/Models/Eft/Ws/WsGroupMatchRaidSettings.cs new file mode 100644 index 00000000..fb2dabf6 --- /dev/null +++ b/Core/Models/Eft/Ws/WsGroupMatchRaidSettings.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ws; + +public class WsGroupMatchRaidSettings : WsNotificationEvent +{ + [JsonPropertyName("raidSettings")] + public RaidSettings RaidSettings { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsNotificationEvent.cs b/Core/Models/Eft/Ws/WsNotificationEvent.cs new file mode 100644 index 00000000..8274fc12 --- /dev/null +++ b/Core/Models/Eft/Ws/WsNotificationEvent.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ws; + +public class WsNotificationEvent +{ + [JsonPropertyName("type")] + public string EventType { get; set; } + + [JsonPropertyName("eventId")] + public string? EventIdentifier { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsPing.cs b/Core/Models/Eft/Ws/WsPing.cs new file mode 100644 index 00000000..681d8ee6 --- /dev/null +++ b/Core/Models/Eft/Ws/WsPing.cs @@ -0,0 +1,6 @@ +namespace Core.Models.Eft.Ws; + +public class WsPing : WsNotificationEvent +{ + +} \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsRagfairOfferSold.cs b/Core/Models/Eft/Ws/WsRagfairOfferSold.cs new file mode 100644 index 00000000..3d676e0c --- /dev/null +++ b/Core/Models/Eft/Ws/WsRagfairOfferSold.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ws; + +public class WsRagfairOfferSold : WsNotificationEvent +{ + [JsonPropertyName("offerId")] + public string OfferId { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } + + [JsonPropertyName("handbookId")] + public string HandbookId { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsUserConfirmed.cs b/Core/Models/Eft/Ws/WsUserConfirmed.cs new file mode 100644 index 00000000..9ed46840 --- /dev/null +++ b/Core/Models/Eft/Ws/WsUserConfirmed.cs @@ -0,0 +1,42 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ws; + +public class WsUserConfirmed : WsNotificationEvent +{ + [JsonPropertyName("profileid")] + public string ProfileId { get; set; } + + [JsonPropertyName("profileToken")] + public string ProfileToken { get; set; } + + [JsonPropertyName("status")] + public ProfileStatus Status { get; set; } + + [JsonPropertyName("ip")] + public string Ip { get; set; } + + [JsonPropertyName("port")] + public int Port { get; set; } + + [JsonPropertyName("sid")] + public string Sid { get; set; } + + [JsonPropertyName("version")] + public string Version { get; set; } + + [JsonPropertyName("location")] + public string Location { get; set; } + + [JsonPropertyName("raidMode")] + public RaidMode RaidMode { get; set; } + + [JsonPropertyName("mode")] + public string Mode { get; set; } + + [JsonPropertyName("shortId")] + public string ShortId { get; set; } + + [JsonPropertyName("additional_info")] + public List AdditionalInfo { get; set; } // TODO: Was `any` in the node server. +} \ No newline at end of file diff --git a/Core/Models/Spt/Weather/GetLocalWeatherResponseData.cs b/Core/Models/Spt/Weather/GetLocalWeatherResponseData.cs index e9aca3e8..dbc318b9 100644 --- a/Core/Models/Spt/Weather/GetLocalWeatherResponseData.cs +++ b/Core/Models/Spt/Weather/GetLocalWeatherResponseData.cs @@ -8,5 +8,5 @@ public class GetLocalWeatherResponseData public int Season { get; set; } [JsonPropertyName("weather")] - public List Weather { get; set; } + public List Weather { get; set; } } \ No newline at end of file From b7ec4eb7150a5fc93b6f0b8993e1b25a7762f662 Mon Sep 17 00:00:00 2001 From: Cj <161484149+CJ-SPT@users.noreply.github.com> Date: Tue, 7 Jan 2025 06:22:07 -0500 Subject: [PATCH 2/6] Types go brrr --- Core/Controllers/BotController.cs | 3 + Core/Controllers/InRaidController.cs | 2 + Core/Controllers/RepairController.cs | 1 + Core/Controllers/TradeController.cs | 1 + Core/Controllers/WeatherController.cs | 3 + Core/Controllers/WishlistController.cs | 3 +- .../Models/Eft/Ragfair/AddOfferRequestData.cs | 36 ++++++++ .../Eft/Ragfair/ExtendOfferRequestData.cs | 12 +++ Core/Models/Eft/Ragfair/GetItemPriceResult.cs | 10 +++ .../Eft/Ragfair/GetMarketPriceRequestData.cs | 9 ++ Core/Models/Eft/Ragfair/GetOffersResult.cs | 18 ++++ .../Eft/Ragfair/GetRagfairOfferByIdRequest.cs | 9 ++ .../Eft/Ragfair/RemoveOfferRequestData.cs | 12 +++ Core/Models/Eft/Ragfair/SearchRequestData.cs | 87 +++++++++++++++++++ .../Ragfair/SendRagfairReportRequestData.cs | 9 ++ .../StorePlayerOfferTaxAmountRequestData.cs | 18 ++++ .../Eft/Repair/BaseRepairActionDataRequest.cs | 9 ++ .../Eft/Repair/RepairActionDataRequest.cs | 24 +++++ .../Repair/TraderRepairActionDataRequest.cs | 24 +++++ 19 files changed, 289 insertions(+), 1 deletion(-) create mode 100644 Core/Models/Eft/Ragfair/AddOfferRequestData.cs create mode 100644 Core/Models/Eft/Ragfair/ExtendOfferRequestData.cs create mode 100644 Core/Models/Eft/Ragfair/GetItemPriceResult.cs create mode 100644 Core/Models/Eft/Ragfair/GetMarketPriceRequestData.cs create mode 100644 Core/Models/Eft/Ragfair/GetOffersResult.cs create mode 100644 Core/Models/Eft/Ragfair/GetRagfairOfferByIdRequest.cs create mode 100644 Core/Models/Eft/Ragfair/RemoveOfferRequestData.cs create mode 100644 Core/Models/Eft/Ragfair/SearchRequestData.cs create mode 100644 Core/Models/Eft/Ragfair/SendRagfairReportRequestData.cs create mode 100644 Core/Models/Eft/Ragfair/StorePlayerOfferTaxAmountRequestData.cs create mode 100644 Core/Models/Eft/Repair/BaseRepairActionDataRequest.cs create mode 100644 Core/Models/Eft/Repair/RepairActionDataRequest.cs create mode 100644 Core/Models/Eft/Repair/TraderRepairActionDataRequest.cs diff --git a/Core/Controllers/BotController.cs b/Core/Controllers/BotController.cs index 1b3a809a..36cfed34 100644 --- a/Core/Controllers/BotController.cs +++ b/Core/Controllers/BotController.cs @@ -1,7 +1,10 @@ using Core.Models.Common; +using Core.Models.Eft.Bot; using Core.Models.Eft.Common; using Core.Models.Eft.Common.Tables; +using Core.Models.Spt.Bots; using Core.Models.Spt.Config; +using Condition = Core.Models.Spt.Config.Condition; namespace Core.Controllers; diff --git a/Core/Controllers/InRaidController.cs b/Core/Controllers/InRaidController.cs index 1644f02f..4d6c6331 100644 --- a/Core/Controllers/InRaidController.cs +++ b/Core/Controllers/InRaidController.cs @@ -1,3 +1,5 @@ +using Core.Models.Eft.InRaid; + namespace Core.Controllers; public class InRaidController diff --git a/Core/Controllers/RepairController.cs b/Core/Controllers/RepairController.cs index 8e7bd9bf..2d20c78c 100644 --- a/Core/Controllers/RepairController.cs +++ b/Core/Controllers/RepairController.cs @@ -1,5 +1,6 @@ using Core.Models.Eft.Common; using Core.Models.Eft.ItemEvent; +using Core.Models.Eft.Repair; namespace Core.Controllers; diff --git a/Core/Controllers/TradeController.cs b/Core/Controllers/TradeController.cs index 4e77b46e..fbccc2af 100644 --- a/Core/Controllers/TradeController.cs +++ b/Core/Controllers/TradeController.cs @@ -2,6 +2,7 @@ using Core.Models.Eft.Common; using Core.Models.Eft.Common.Tables; using Core.Models.Eft.ItemEvent; using Core.Models.Eft.Ragfair; +using Core.Models.Eft.Trade; using Core.Models.Enums; namespace Core.Controllers; diff --git a/Core/Controllers/WeatherController.cs b/Core/Controllers/WeatherController.cs index a5ab2d39..4ea99924 100644 --- a/Core/Controllers/WeatherController.cs +++ b/Core/Controllers/WeatherController.cs @@ -1,3 +1,6 @@ +using Core.Models.Eft.Weather; +using Core.Models.Spt.Weather; + namespace Core.Controllers; public class WeatherController diff --git a/Core/Controllers/WishlistController.cs b/Core/Controllers/WishlistController.cs index 6178c8b6..d9545b66 100644 --- a/Core/Controllers/WishlistController.cs +++ b/Core/Controllers/WishlistController.cs @@ -1,5 +1,6 @@ using Core.Models.Eft.Common; using Core.Models.Eft.ItemEvent; +using Core.Models.Eft.Wishlist; namespace Core.Controllers; @@ -14,7 +15,7 @@ public class WishlistController /// public ItemEventRouterResponse AddToWishList( PmcData pmcData, - AddItemToWishlistRequest request, + AddToWishlistRequest request, string sessionId) { throw new NotImplementedException(); diff --git a/Core/Models/Eft/Ragfair/AddOfferRequestData.cs b/Core/Models/Eft/Ragfair/AddOfferRequestData.cs new file mode 100644 index 00000000..2de8c102 --- /dev/null +++ b/Core/Models/Eft/Ragfair/AddOfferRequestData.cs @@ -0,0 +1,36 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ragfair; + +public class AddOfferRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } + + [JsonPropertyName("sellInOnePiece")] + public bool SellInOnePiece { get; set; } + + [JsonPropertyName("items")] + public List Items { get; set; } + + [JsonPropertyName("requirements")] + public List Requirements { get; set; } +} + +public class Requirement +{ + [JsonPropertyName("_tpl")] + public string Template { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } + + [JsonPropertyName("level")] + public int Level { get; set; } + + [JsonPropertyName("side")] + public int Side { get; set; } + + [JsonPropertyName("onlyFunctional")] + public bool OnlyFunctional { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ragfair/ExtendOfferRequestData.cs b/Core/Models/Eft/Ragfair/ExtendOfferRequestData.cs new file mode 100644 index 00000000..ffb29d65 --- /dev/null +++ b/Core/Models/Eft/Ragfair/ExtendOfferRequestData.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ragfair; + +public class ExtendOfferRequestData +{ + [JsonPropertyName("offerId")] + public string OfferId { get; set; } + + [JsonPropertyName("renewalTime")] + public int RenewalTime { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ragfair/GetItemPriceResult.cs b/Core/Models/Eft/Ragfair/GetItemPriceResult.cs new file mode 100644 index 00000000..43d8ea66 --- /dev/null +++ b/Core/Models/Eft/Ragfair/GetItemPriceResult.cs @@ -0,0 +1,10 @@ +using System.Text.Json.Serialization; +using Core.Models.Common; + +namespace Core.Models.Eft.Ragfair; + +public class GetItemPriceResult : MinMax +{ + [JsonPropertyName("avg")] + public int Avg { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ragfair/GetMarketPriceRequestData.cs b/Core/Models/Eft/Ragfair/GetMarketPriceRequestData.cs new file mode 100644 index 00000000..df4c7b03 --- /dev/null +++ b/Core/Models/Eft/Ragfair/GetMarketPriceRequestData.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ragfair; + +public class GetMarketPriceRequestData +{ + [JsonPropertyName("templateId")] + public string TemplateId { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ragfair/GetOffersResult.cs b/Core/Models/Eft/Ragfair/GetOffersResult.cs new file mode 100644 index 00000000..b464da73 --- /dev/null +++ b/Core/Models/Eft/Ragfair/GetOffersResult.cs @@ -0,0 +1,18 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ragfair; + +public class GetOffersResult +{ + [JsonPropertyName("categories")] + public Dictionary? Categories { get; set; } + + [JsonPropertyName("offers")] + public List Offers { get; set; } + + [JsonPropertyName("offersCount")] + public int OffersCount { get; set; } + + [JsonPropertyName("selectedCategory")] + public string SelectedCategory { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ragfair/GetRagfairOfferByIdRequest.cs b/Core/Models/Eft/Ragfair/GetRagfairOfferByIdRequest.cs new file mode 100644 index 00000000..74bef8b2 --- /dev/null +++ b/Core/Models/Eft/Ragfair/GetRagfairOfferByIdRequest.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ragfair; + +public class GetRagfairOfferByIdRequest +{ + [JsonPropertyName("id")] + public int Id { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ragfair/RemoveOfferRequestData.cs b/Core/Models/Eft/Ragfair/RemoveOfferRequestData.cs new file mode 100644 index 00000000..f54a1b3b --- /dev/null +++ b/Core/Models/Eft/Ragfair/RemoveOfferRequestData.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ragfair; + +public class RemoveOfferRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } + + [JsonPropertyName("offerId")] + public string OfferId { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ragfair/SearchRequestData.cs b/Core/Models/Eft/Ragfair/SearchRequestData.cs new file mode 100644 index 00000000..35928abf --- /dev/null +++ b/Core/Models/Eft/Ragfair/SearchRequestData.cs @@ -0,0 +1,87 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ragfair; + +public class SearchRequestData +{ + [JsonPropertyName("page")] + public int Page { get; set; } + + [JsonPropertyName("limit")] + public int Limit { get; set; } + + [JsonPropertyName("sortType")] + public RagfairSort SortType { get; set; } + + [JsonPropertyName("sortDirection")] + public int SortDirection { get; set; } + + [JsonPropertyName("currency")] + public int Currency { get; set; } + + [JsonPropertyName("priceFrom")] + public int PriceFrom { get; set; } + + [JsonPropertyName("priceTo")] + public int PriceTo { get; set; } + + [JsonPropertyName("quantityFrom")] + public int QuantityFrom { get; set; } + + [JsonPropertyName("quantityTo")] + public int QuantityTo { get; set; } + + [JsonPropertyName("conditionFrom")] + public int ConditionFrom { get; set; } + + [JsonPropertyName("conditionTo")] + public int ConditionTo { get; set; } + + [JsonPropertyName("oneHourExpiration")] + public bool OneHourExpiration { get; set; } + + [JsonPropertyName("removeBartering")] + public bool RemoveBartering { get; set; } + + [JsonPropertyName("offerOwnerType")] + public OfferOwnerType OfferOwnerType { get; set; } + + [JsonPropertyName("onlyFunctional")] + public bool OnlyFunctional { get; set; } + + [JsonPropertyName("updateOfferCount")] + public bool UpdateOfferCount { get; set; } + + [JsonPropertyName("handbookId")] + public string HandbookId { get; set; } + + [JsonPropertyName("linkedSearchId")] + public string LinkedSearchId { get; set; } + + [JsonPropertyName("neededSearchId")] + public string NeededSearchId { get; set; } + + [JsonPropertyName("buildItems")] + public BuildItems BuildItems { get; set; } + + [JsonPropertyName("buildCount")] + public int BuildCount { get; set; } + + [JsonPropertyName("tm")] + public int Tm { get; set; } + + [JsonPropertyName("reload")] + public int Reload { get; set; } +} + +public enum OfferOwnerType +{ + ANYOWNERTYPE = 0, + TRADEROWNERTYPE = 1, + PLAYEROWNERTYPE = 2, +} + +public class BuildItems +{ + // Define properties for BuildItems here if needed +} \ No newline at end of file diff --git a/Core/Models/Eft/Ragfair/SendRagfairReportRequestData.cs b/Core/Models/Eft/Ragfair/SendRagfairReportRequestData.cs new file mode 100644 index 00000000..27e05b6b --- /dev/null +++ b/Core/Models/Eft/Ragfair/SendRagfairReportRequestData.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ragfair; + +public class SendRagfairReportRequestData +{ + [JsonPropertyName("offerId")] + public int OfferId { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Ragfair/StorePlayerOfferTaxAmountRequestData.cs b/Core/Models/Eft/Ragfair/StorePlayerOfferTaxAmountRequestData.cs new file mode 100644 index 00000000..fba10c63 --- /dev/null +++ b/Core/Models/Eft/Ragfair/StorePlayerOfferTaxAmountRequestData.cs @@ -0,0 +1,18 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Ragfair; + +public class StorePlayerOfferTaxAmountRequestData +{ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("tpl")] + public string Tpl { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } + + [JsonPropertyName("fee")] + public double Fee { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Repair/BaseRepairActionDataRequest.cs b/Core/Models/Eft/Repair/BaseRepairActionDataRequest.cs new file mode 100644 index 00000000..1ee03dd0 --- /dev/null +++ b/Core/Models/Eft/Repair/BaseRepairActionDataRequest.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Repair; + +public class BaseRepairActionDataRequest +{ + [JsonPropertyName("Action")] + public string Action { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Repair/RepairActionDataRequest.cs b/Core/Models/Eft/Repair/RepairActionDataRequest.cs new file mode 100644 index 00000000..4021c881 --- /dev/null +++ b/Core/Models/Eft/Repair/RepairActionDataRequest.cs @@ -0,0 +1,24 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Repair; + +public class RepairActionDataRequest : BaseRepairActionDataRequest +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "Repair"; + + [JsonPropertyName("repairKitsInfo")] + public List RepairKitsInfo { get; set; } + + [JsonPropertyName("target")] + public string Target { get; set; } // item to repair +} + +public class RepairKitsInfo +{ + [JsonPropertyName("_id")] + public string Id { get; set; } // id of repair kit to use + + [JsonPropertyName("count")] + public int Count { get; set; } // amount of units to reduce kit by +} \ No newline at end of file diff --git a/Core/Models/Eft/Repair/TraderRepairActionDataRequest.cs b/Core/Models/Eft/Repair/TraderRepairActionDataRequest.cs new file mode 100644 index 00000000..cdddeecc --- /dev/null +++ b/Core/Models/Eft/Repair/TraderRepairActionDataRequest.cs @@ -0,0 +1,24 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Repair; + +public class TraderRepairActionDataRequest : BaseRepairActionDataRequest +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "TraderRepair"; + + [JsonPropertyName("tid")] + public string TId { get; set; } + + [JsonPropertyName("repairItems")] + public List RepairItems { get; set; } +} + +public class RepairItem +{ + [JsonPropertyName("_id")] + public string Id { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } +} \ No newline at end of file From 7c415f088e8a65e7480179ac1bce0eb4e67df4ad Mon Sep 17 00:00:00 2001 From: Cj <161484149+CJ-SPT@users.noreply.github.com> Date: Tue, 7 Jan 2025 06:28:25 -0500 Subject: [PATCH 3/6] add quest stuff --- .../Eft/Quests/AcceptQuestRequestData.cs | 15 +++++++++++ .../Eft/Quests/CompleteQuestRequestData.cs | 16 +++++++++++ .../Eft/Quests/HandoverQuestRequestData.cs | 27 +++++++++++++++++++ .../Eft/Quests/ListQuestsRequestData.cs | 9 +++++++ .../Eft/Quests/RepeatableQuestChangeEvent.cs | 12 +++++++++ 5 files changed, 79 insertions(+) create mode 100644 Core/Models/Eft/Quests/AcceptQuestRequestData.cs create mode 100644 Core/Models/Eft/Quests/CompleteQuestRequestData.cs create mode 100644 Core/Models/Eft/Quests/HandoverQuestRequestData.cs create mode 100644 Core/Models/Eft/Quests/ListQuestsRequestData.cs create mode 100644 Core/Models/Eft/Quests/RepeatableQuestChangeEvent.cs diff --git a/Core/Models/Eft/Quests/AcceptQuestRequestData.cs b/Core/Models/Eft/Quests/AcceptQuestRequestData.cs new file mode 100644 index 00000000..70077eff --- /dev/null +++ b/Core/Models/Eft/Quests/AcceptQuestRequestData.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Quests; + +public class AcceptQuestRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "QuestAccept"; + + [JsonPropertyName("qid")] + public string QuestId { get; set; } + + [JsonPropertyName("type")] + public string Type { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Quests/CompleteQuestRequestData.cs b/Core/Models/Eft/Quests/CompleteQuestRequestData.cs new file mode 100644 index 00000000..6e105d3b --- /dev/null +++ b/Core/Models/Eft/Quests/CompleteQuestRequestData.cs @@ -0,0 +1,16 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Quests; + +public class CompleteQuestRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } + + /** Quest Id */ + [JsonPropertyName("qid")] + public string QuestId { get; set; } + + [JsonPropertyName("removeExcessItems")] + public bool RemoveExcessItems { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Quests/HandoverQuestRequestData.cs b/Core/Models/Eft/Quests/HandoverQuestRequestData.cs new file mode 100644 index 00000000..58a413bd --- /dev/null +++ b/Core/Models/Eft/Quests/HandoverQuestRequestData.cs @@ -0,0 +1,27 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Quests; + +public class HandoverQuestRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "QuestHandover"; + + [JsonPropertyName("qid")] + public string QuestId { get; set; } + + [JsonPropertyName("conditionId")] + public string ConditionId { get; set; } + + [JsonPropertyName("items")] + public List Items { get; set; } +} + +public class HandoverItem +{ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Quests/ListQuestsRequestData.cs b/Core/Models/Eft/Quests/ListQuestsRequestData.cs new file mode 100644 index 00000000..5c02fb27 --- /dev/null +++ b/Core/Models/Eft/Quests/ListQuestsRequestData.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Quests; + +public class ListQuestsRequestData +{ + [JsonPropertyName("completed")] + public bool Completed { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Quests/RepeatableQuestChangeEvent.cs b/Core/Models/Eft/Quests/RepeatableQuestChangeEvent.cs new file mode 100644 index 00000000..fdc5b65a --- /dev/null +++ b/Core/Models/Eft/Quests/RepeatableQuestChangeEvent.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Quests; + +public class RepeatableQuestChangeRequest +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "RepeatableQuestChange"; + + [JsonPropertyName("qid")] + public string QuestId { get; set; } +} \ No newline at end of file From 4325d472dc2e00b7b11244b063b112aa942e3498 Mon Sep 17 00:00:00 2001 From: Cj <161484149+CJ-SPT@users.noreply.github.com> Date: Tue, 7 Jan 2025 06:44:41 -0500 Subject: [PATCH 4/6] Profile stuff --- Core/Models/Eft/Profile/ConnectResponse.cs | 18 +++ .../Eft/Profile/CreateProfileResponse.cs | 9 ++ .../Eft/Profile/GetOtherProfileRequest.cs | 9 ++ .../Eft/Profile/GetOtherProfileResponse.cs | 103 ++++++++++++++++++ .../Eft/Profile/GetProfileSettingsRequest.cs | 15 +++ .../Profile/GetProfileStatusResponseData.cs | 51 +++++++++ .../ProfileChangeNicknameRequestData.cs | 9 ++ .../Profile/ProfileChangeVoiceRequestData.cs | 9 ++ .../Eft/Profile/ProfileCreateRequestData.cs | 18 +++ .../Eft/Profile/SearchFriendRequestData.cs | 9 ++ .../Eft/Profile/SearchFriendResponse.cs | 34 ++++++ .../Profile/ValidateNicknameRequestData.cs | 9 ++ 12 files changed, 293 insertions(+) create mode 100644 Core/Models/Eft/Profile/ConnectResponse.cs create mode 100644 Core/Models/Eft/Profile/CreateProfileResponse.cs create mode 100644 Core/Models/Eft/Profile/GetOtherProfileRequest.cs create mode 100644 Core/Models/Eft/Profile/GetOtherProfileResponse.cs create mode 100644 Core/Models/Eft/Profile/GetProfileSettingsRequest.cs create mode 100644 Core/Models/Eft/Profile/GetProfileStatusResponseData.cs create mode 100644 Core/Models/Eft/Profile/ProfileChangeNicknameRequestData.cs create mode 100644 Core/Models/Eft/Profile/ProfileChangeVoiceRequestData.cs create mode 100644 Core/Models/Eft/Profile/ProfileCreateRequestData.cs create mode 100644 Core/Models/Eft/Profile/SearchFriendRequestData.cs create mode 100644 Core/Models/Eft/Profile/SearchFriendResponse.cs create mode 100644 Core/Models/Eft/Profile/ValidateNicknameRequestData.cs diff --git a/Core/Models/Eft/Profile/ConnectResponse.cs b/Core/Models/Eft/Profile/ConnectResponse.cs new file mode 100644 index 00000000..d1ec9e2d --- /dev/null +++ b/Core/Models/Eft/Profile/ConnectResponse.cs @@ -0,0 +1,18 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Profile; + +public class ConnectResponse +{ + [JsonPropertyName("backendUrl")] + public string BackendUrl { get; set; } + + [JsonPropertyName("name")] + public string Name { get; set; } + + [JsonPropertyName("editions")] + public List Editions { get; set; } + + [JsonPropertyName("profileDescriptions")] + public Dictionary ProfileDescriptions { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Profile/CreateProfileResponse.cs b/Core/Models/Eft/Profile/CreateProfileResponse.cs new file mode 100644 index 00000000..464bbb2b --- /dev/null +++ b/Core/Models/Eft/Profile/CreateProfileResponse.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Profile; + +public class CreateProfileResponse +{ + [JsonPropertyName("uid")] + public string UserId { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Profile/GetOtherProfileRequest.cs b/Core/Models/Eft/Profile/GetOtherProfileRequest.cs new file mode 100644 index 00000000..abb60be3 --- /dev/null +++ b/Core/Models/Eft/Profile/GetOtherProfileRequest.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Profile; + +public class GetOtherProfileRequest +{ + [JsonPropertyName("accountId")] + public string AccountId { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Profile/GetOtherProfileResponse.cs b/Core/Models/Eft/Profile/GetOtherProfileResponse.cs new file mode 100644 index 00000000..41992ab5 --- /dev/null +++ b/Core/Models/Eft/Profile/GetOtherProfileResponse.cs @@ -0,0 +1,103 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common.Tables; + +namespace Core.Models.Eft.Profile; + +public class GetOtherProfileResponse +{ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("aid")] + public int Aid { get; set; } + + [JsonPropertyName("info")] + public OtherProfileInfo Info { get; set; } + + [JsonPropertyName("customization")] + public OtherProfileCustomization Customization { get; set; } + + [JsonPropertyName("skills")] + public Skills Skills { get; set; } + + [JsonPropertyName("equipment")] + public OtherProfileEquipment Equipment { get; set; } + + [JsonPropertyName("achievements")] + public Dictionary Achievements { get; set; } + + [JsonPropertyName("favoriteItems")] + public List FavoriteItems { get; set; } + + [JsonPropertyName("pmcStats")] + public OtherProfileStats PmcStats { get; set; } + + [JsonPropertyName("scavStats")] + public OtherProfileStats ScavStats { get; set; } +} + +public class OtherProfileInfo +{ + [JsonPropertyName("nickname")] + public string Nickname { get; set; } + + [JsonPropertyName("side")] + public string Side { get; set; } + + [JsonPropertyName("experience")] + public int Experience { get; set; } + + [JsonPropertyName("memberCategory")] + public int MemberCategory { get; set; } + + [JsonPropertyName("bannedState")] + public bool BannedState { get; set; } + + [JsonPropertyName("bannedUntil")] + public long BannedUntil { get; set; } + + [JsonPropertyName("registrationDate")] + public long RegistrationDate { get; set; } +} + +public class OtherProfileCustomization +{ + [JsonPropertyName("head")] + public string Head { get; set; } + + [JsonPropertyName("body")] + public string Body { get; set; } + + [JsonPropertyName("feet")] + public string Feet { get; set; } + + [JsonPropertyName("hands")] + public string Hands { get; set; } + + [JsonPropertyName("dogtag")] + public string Dogtag { get; set; } +} + +public class OtherProfileEquipment +{ + [JsonPropertyName("Id")] + public string Id { get; set; } + + [JsonPropertyName("Items")] + public List Items { get; set; } +} + +public class OtherProfileStats +{ + [JsonPropertyName("eft")] + public OtherProfileSubStats Eft { get; set; } +} + +public class OtherProfileSubStats +{ + [JsonPropertyName("totalInGameTime")] + public int TotalInGameTime { get; set; } + + [JsonPropertyName("overAllCounters")] + public OverallCounters OverAllCounters { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Profile/GetProfileSettingsRequest.cs b/Core/Models/Eft/Profile/GetProfileSettingsRequest.cs new file mode 100644 index 00000000..1af5db10 --- /dev/null +++ b/Core/Models/Eft/Profile/GetProfileSettingsRequest.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Profile; + +public class GetProfileSettingsRequest +{ + /// + /// Chosen value for profile.Info.SelectedMemberCategory + /// + [JsonPropertyName("memberCategory")] + public int MemberCategory { get; set; } + + [JsonPropertyName("squadInviteRestriction")] + public bool SquadInviteRestriction { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Profile/GetProfileStatusResponseData.cs b/Core/Models/Eft/Profile/GetProfileStatusResponseData.cs new file mode 100644 index 00000000..647d3b76 --- /dev/null +++ b/Core/Models/Eft/Profile/GetProfileStatusResponseData.cs @@ -0,0 +1,51 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Profile; + +public class GetProfileStatusResponseData +{ + [JsonPropertyName("maxPveCountExceeded")] + public bool MaxPveCountExceeded { get; set; } = false; + + [JsonPropertyName("profiles")] + public List Profiles { get; set; } +} + +public class ProfileStatusData +{ + [JsonPropertyName("profileid")] + public string ProfileId { get; set; } + + [JsonPropertyName("profileToken")] + public string ProfileToken { get; set; } + + [JsonPropertyName("status")] + public string Status { get; set; } + + [JsonPropertyName("ip")] + public string Ip { get; set; } + + [JsonPropertyName("port")] + public int Port { get; set; } + + [JsonPropertyName("sid")] + public string Sid { get; set; } + + [JsonPropertyName("version")] + public string? Version { get; set; } + + [JsonPropertyName("location")] + public string? Location { get; set; } + + [JsonPropertyName("raidMode")] + public string? RaidMode { get; set; } + + [JsonPropertyName("mode")] + public string? Mode { get; set; } + + [JsonPropertyName("shortId")] + public string? ShortId { get; set; } + + [JsonPropertyName("additional_info")] + public List? AdditionalInfo { get; set; } // TODO: Was `any` in the node server +} \ No newline at end of file diff --git a/Core/Models/Eft/Profile/ProfileChangeNicknameRequestData.cs b/Core/Models/Eft/Profile/ProfileChangeNicknameRequestData.cs new file mode 100644 index 00000000..c2381846 --- /dev/null +++ b/Core/Models/Eft/Profile/ProfileChangeNicknameRequestData.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Profile; + +public class ProfileChangeNicknameRequestData +{ + [JsonPropertyName("nickname")] + public string Nickname { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Profile/ProfileChangeVoiceRequestData.cs b/Core/Models/Eft/Profile/ProfileChangeVoiceRequestData.cs new file mode 100644 index 00000000..b8b7ba20 --- /dev/null +++ b/Core/Models/Eft/Profile/ProfileChangeVoiceRequestData.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Profile; + +public class ProfileChangeVoiceRequestData +{ + [JsonPropertyName("voice")] + public string Voice { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Profile/ProfileCreateRequestData.cs b/Core/Models/Eft/Profile/ProfileCreateRequestData.cs new file mode 100644 index 00000000..79fd8d7a --- /dev/null +++ b/Core/Models/Eft/Profile/ProfileCreateRequestData.cs @@ -0,0 +1,18 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Profile; + +public class ProfileCreateRequestData +{ + [JsonPropertyName("side")] + public string Side { get; set; } + + [JsonPropertyName("nickname")] + public string Nickname { get; set; } + + [JsonPropertyName("headId")] + public string HeadId { get; set; } + + [JsonPropertyName("voiceId")] + public string VoiceId { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Profile/SearchFriendRequestData.cs b/Core/Models/Eft/Profile/SearchFriendRequestData.cs new file mode 100644 index 00000000..0cae43b9 --- /dev/null +++ b/Core/Models/Eft/Profile/SearchFriendRequestData.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Profile; + +public class SearchFriendRequestData +{ + [JsonPropertyName("nickname")] + public string Nickname { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Profile/SearchFriendResponse.cs b/Core/Models/Eft/Profile/SearchFriendResponse.cs new file mode 100644 index 00000000..cc54fd5a --- /dev/null +++ b/Core/Models/Eft/Profile/SearchFriendResponse.cs @@ -0,0 +1,34 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Profile; + +public class SearchFriendResponse +{ + [JsonPropertyName("_id")] + public string Id { get; set; } + + [JsonPropertyName("aid")] + public int Aid { get; set; } + + [JsonPropertyName("Info")] + public FriendInfo Info { get; set; } +} + +// NOTE: Renamed from `Info` because of a name collision. +public class FriendInfo +{ + [JsonPropertyName("Nickname")] + public string Nickname { get; set; } + + [JsonPropertyName("Side")] + public string Side { get; set; } + + [JsonPropertyName("Level")] + public int Level { get; set; } + + [JsonPropertyName("MemberCategory")] + public int MemberCategory { get; set; } + + [JsonPropertyName("SelectedMemberCategory")] + public int SelectedMemberCategory { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Profile/ValidateNicknameRequestData.cs b/Core/Models/Eft/Profile/ValidateNicknameRequestData.cs new file mode 100644 index 00000000..8f0d6e70 --- /dev/null +++ b/Core/Models/Eft/Profile/ValidateNicknameRequestData.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Profile; + +public class ValidateNicknameRequestData +{ + [JsonPropertyName("nickname")] + public string Nickname { get; set; } +} \ No newline at end of file From 3f4e529c238d7ef40d316fe0d918ca0d56b03750 Mon Sep 17 00:00:00 2001 From: Cj <161484149+CJ-SPT@users.noreply.github.com> Date: Tue, 7 Jan 2025 06:52:03 -0500 Subject: [PATCH 5/6] More types --- Core/Models/Eft/Notes/NoteActionData.cs | 25 +++++++++ Core/Models/Eft/Notifier/Notifier.cs | 21 +++++++ .../Eft/Notifier/SelectProfileResponse.cs | 9 +++ .../PlayerIncrementSkillLevelRequestData.cs | 55 +++++++++++++++++++ .../Eft/Prestige/GetPrestigeResponse.cs | 9 +++ 5 files changed, 119 insertions(+) create mode 100644 Core/Models/Eft/Notes/NoteActionData.cs create mode 100644 Core/Models/Eft/Notifier/Notifier.cs create mode 100644 Core/Models/Eft/Notifier/SelectProfileResponse.cs create mode 100644 Core/Models/Eft/Player/PlayerIncrementSkillLevelRequestData.cs create mode 100644 Core/Models/Eft/Prestige/GetPrestigeResponse.cs diff --git a/Core/Models/Eft/Notes/NoteActionData.cs b/Core/Models/Eft/Notes/NoteActionData.cs new file mode 100644 index 00000000..f20a6f2f --- /dev/null +++ b/Core/Models/Eft/Notes/NoteActionData.cs @@ -0,0 +1,25 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common.Request; + +namespace Core.Models.Eft.Notes; + +public class NoteActionData : BaseInteractionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } + + [JsonPropertyName("index")] + public int Index { get; set; } + + [JsonPropertyName("note")] + public Note Note { get; set; } +} + +public class Note +{ + [JsonPropertyName("Time")] + public int Time { get; set; } + + [JsonPropertyName("Text")] + public string Text { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Notifier/Notifier.cs b/Core/Models/Eft/Notifier/Notifier.cs new file mode 100644 index 00000000..8955aa42 --- /dev/null +++ b/Core/Models/Eft/Notifier/Notifier.cs @@ -0,0 +1,21 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Notifier; + +public class NotifierChannel +{ + [JsonPropertyName("server")] + public string Server { get; set; } + + [JsonPropertyName("channel_id")] + public string ChannelId { get; set; } + + [JsonPropertyName("url")] + public string Url { get; set; } + + [JsonPropertyName("notifierServer")] + public string NotifierServer { get; set; } + + [JsonPropertyName("ws")] + public string WebSocket { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Notifier/SelectProfileResponse.cs b/Core/Models/Eft/Notifier/SelectProfileResponse.cs new file mode 100644 index 00000000..d256aa5b --- /dev/null +++ b/Core/Models/Eft/Notifier/SelectProfileResponse.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Notifier; + +public class SelectProfileResponse +{ + [JsonPropertyName("status")] + public string Status { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Player/PlayerIncrementSkillLevelRequestData.cs b/Core/Models/Eft/Player/PlayerIncrementSkillLevelRequestData.cs new file mode 100644 index 00000000..f7dccb27 --- /dev/null +++ b/Core/Models/Eft/Player/PlayerIncrementSkillLevelRequestData.cs @@ -0,0 +1,55 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common.Tables; + +namespace Core.Models.Eft.Player; + +public class PlayerIncrementSkillLevelRequestData +{ + [JsonPropertyName("_id")] + public string Id { get; set; } + + [JsonPropertyName("experience")] + public int Experience { get; set; } + + [JsonPropertyName("quests")] + public List Quests { get; set; } + + [JsonPropertyName("ragFairOffers")] + public List RagFairOffers { get; set; } + + [JsonPropertyName("builds")] + public List Builds { get; set; } + + [JsonPropertyName("items")] + public Items Items { get; set; } + + [JsonPropertyName("production")] + public Production Production { get; set; } + + [JsonPropertyName("skills")] + public Skills Skills { get; set; } + + [JsonPropertyName("traderRelations")] + public TraderRelations TraderRelations { get; set; } +} + +// TODO: These are all lists of objects. +public class Items +{ + [JsonPropertyName("new")] + public List NewItems { get; set; } + + [JsonPropertyName("change")] + public List ChangedItems { get; set; } + + [JsonPropertyName("del")] + public List DeletedItems { get; set; } +} + +public class Production +{ +} + +public class TraderRelations +{ +} \ No newline at end of file diff --git a/Core/Models/Eft/Prestige/GetPrestigeResponse.cs b/Core/Models/Eft/Prestige/GetPrestigeResponse.cs new file mode 100644 index 00000000..ddff03bb --- /dev/null +++ b/Core/Models/Eft/Prestige/GetPrestigeResponse.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Prestige; + +public class GetPrestigeResponse +{ + [JsonPropertyName("elements")] + public List Elements { get; set; } +} \ No newline at end of file From ac61f5762f707bb82ef1073349c5de644c460a77 Mon Sep 17 00:00:00 2001 From: Cj <161484149+CJ-SPT@users.noreply.github.com> Date: Tue, 7 Jan 2025 06:53:24 -0500 Subject: [PATCH 6/6] fix error --- Core/Controllers/NotifierController.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Core/Controllers/NotifierController.cs b/Core/Controllers/NotifierController.cs index 4f0bc33f..8b2f1d95 100644 --- a/Core/Controllers/NotifierController.cs +++ b/Core/Controllers/NotifierController.cs @@ -1,3 +1,5 @@ +using Core.Models.Eft.Notifier; + namespace Core.Controllers; public class NotifierController