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] 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