move models to shared, make new admin project

This commit is contained in:
Lapis
2026-06-16 18:32:28 -04:00
parent ee98c4c369
commit c20d215ee0
106 changed files with 60428 additions and 5 deletions
@@ -0,0 +1,16 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class Account
{
[JsonPropertyName("accountId")] public int? AccountId { get; set; }
[JsonPropertyName("profileImage")] public string? ProfileImage { get; set; }
[JsonPropertyName("isJunior")] public bool IsJunior { get; set; }
[JsonPropertyName("platforms")] public int? Platforms { get; set; }
[JsonPropertyName("personalPronouns")] public int? PersonalPronouns { get; set; }
[JsonPropertyName("identityFlags")] public int? IdentityFlags { get; set; }
[JsonPropertyName("username")] public string? Username { get; set; }
[JsonPropertyName("displayName")] public string? DisplayName { get; set; }
[JsonPropertyName("createdAt")] public DateTime CreatedAt { get; set; }
}
@@ -0,0 +1,28 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class AvatarItem
{
public int Id { get; set; }
[JsonPropertyName("avatarItemType")]
public int AvatarItemType { get; set; }
[JsonPropertyName("avatarItemDesc")]
public string AvatarItemDesc { get; set; } = "";
[JsonPropertyName("platformMask")]
public int PlatformMask { get; set; } = -1;
[JsonPropertyName("friendlyName")]
public string FriendlyName { get; set; } = "";
[JsonPropertyName("tooltip")]
public string Tooltip { get; set; } = "";
[JsonPropertyName("rarity")]
public int Rarity { get; set; } = 0;
public int OwnerAccountId { get; set; }
}
@@ -0,0 +1,24 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class CachedLogin
{
[JsonIgnore]
public int Id { get; set; }
[JsonPropertyName("accountId")]
public int AccountId { get; set; }
[JsonPropertyName("platform")]
public PlatformType Platform { get; set; }
[JsonPropertyName("platformId")]
public string PlatformID { get; set; }
[JsonPropertyName("lastLoginTime")]
public DateTime LastLoginTime { get; set; }
[JsonPropertyName("requirePassword")]
public bool RequirePassword { get; set; } = false;
}
@@ -0,0 +1,8 @@
namespace CannedNet;
public enum JuniorState
{
BasedOnBirthday = 0,
ModerationOverride = 1,
PendingOverride = 2
}
@@ -0,0 +1,15 @@
namespace CannedNet;
public enum PlatformType
{
All = -1,
Steam = 0,
Oculus = 1,
PlayStation = 2,
Xbox = 3,
RecNet = 4,
IOS = 5,
GooglePlay = 6,
Standalone = 7,
Pico = 8
}
@@ -0,0 +1,21 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class PlayerAvatar
{
public int Id { get; set; }
public int OwnerAccountId { get; set; }
[JsonPropertyName("OutfitSelections")]
public string OutfitSelections { get; set; } = "";
[JsonPropertyName("FaceFeatures")]
public string FaceFeatures { get; set; } = "{}";
[JsonPropertyName("SkinColor")]
public string SkinColor { get; set; } = "";
[JsonPropertyName("HairColor")]
public string HairColor { get; set; } = "";
}
@@ -0,0 +1,11 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class PlayerBio
{
[JsonPropertyName("accountId")]
public int accountId;
[JsonPropertyName("bio")]
public string bio;
}
@@ -0,0 +1,24 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class PlayerProgression
{
public int Id { get; set; }
[JsonPropertyName("playerId")]
public int PlayerId { get; set; }
[JsonPropertyName("level")]
public int Level { get; set; }
[JsonPropertyName("xp")]
public int Xp { get; set; }
}
public class PlayerProgressionBulkResponse
{
[JsonPropertyName("playerId")]
public int PlayerId { get; set; }
[JsonPropertyName("level")]
public int Level { get; set; }
[JsonPropertyName("xp")]
public int Xp { get; set; }
}
@@ -0,0 +1,15 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class PlayerSetting
{
public int Id { get; set; }
[JsonPropertyName("playerId")]
public int PlayerId { get; set; }
[JsonPropertyName("key")]
public string Key { get; set; } = "";
[JsonPropertyName("value")]
public string Value { get; set; } = "";
}
@@ -0,0 +1,9 @@
namespace CannedNet;
public enum RelationshipType
{
None,
FriendRequestSent,
FriendRequestReceived,
Friend
}
@@ -0,0 +1,21 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class SavedOutfit
{
public int Id { get; set; }
public int OwnerAccountId { get; set; }
[JsonPropertyName("Slot")]
public int Slot { get; set; }
[JsonPropertyName("PreviewImageName")]
public string PreviewImageName { get; set; }
[JsonPropertyName("OutfitSelections")]
public string OutfitSelections { get; set; }
[JsonPropertyName("HairColor")]
public string HairColor { get; set; }
[JsonPropertyName("SkinColor")]
public string SkinColor { get; set; }
[JsonPropertyName("FaceFeatures")]
public string FaceFeatures { get; set; }
}
@@ -0,0 +1,16 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class SelfAccount : Account
{
[JsonPropertyName("email")] public string? Email { get; set; }
[JsonPropertyName("phone")] public string? Phone { get; set; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
[JsonPropertyName("juniorState")] public JuniorState? JuniorState { get; set; }
[JsonPropertyName("birthday")] public DateTime? Birthday { get; set; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
[JsonPropertyName("parentAccountId")] public string? ParentAccountId { get; set; }
[JsonPropertyName("availableUsernameChanges")] public int? AvailableUsernameChanges { get; set; }
}
@@ -0,0 +1,7 @@
namespace CannedNet;
public class SettingPayload
{
public string Key { get; set; }
public string Value { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class SubscriptionList
{
[JsonPropertyName("playerIds")]
public List<int>? PlayerIds { get; set; }
}
@@ -0,0 +1,16 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class TokenBalance
{
public int Id { get; set; }
[JsonPropertyName("Balance")]
public int Balance { get; set; }
[JsonPropertyName("CurrencyType")]
public int CurrencyType { get; set; }
[JsonPropertyName("BalanceType")]
public int BalanceType { get; set; }
[JsonPropertyName("Platform")]
public int Platform { get; set; }
}
+15
View File
@@ -0,0 +1,15 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class ChecklistItem
{
[JsonPropertyName("count")]
public int count;
[JsonPropertyName("objective")]
public ObjectiveType objective;
[JsonPropertyName("order")]
public int order;
}
@@ -0,0 +1,37 @@
using System.Text.Json.Serialization;
namespace CannedNet.Models;
public class BuyItemRequest
{
[JsonPropertyName("StorefrontType")]
public int StorefrontType { get; set; }
[JsonPropertyName("PurchasableItemId")]
public int PurchasableItemId { get; set; }
[JsonPropertyName("CurrencyType")]
public int CurrencyType { get; set; }
[JsonPropertyName("CouponConsumablePlayerMappingId")]
public int? CouponConsumablePlayerMappingId { get; set; }
[JsonPropertyName("Gift")]
public GiftRequest? Gift { get; set; }
}
public class GiftRequest
{
[JsonPropertyName("ToPlayerId")]
public int ToPlayerId { get; set; }
[JsonPropertyName("Message")]
public string Message { get; set; } = string.Empty;
[JsonPropertyName("Anonymous")]
public bool Anonymous { get; set; }
[JsonPropertyName("GiftContext")]
public int GiftContext { get; set; }
}
@@ -0,0 +1,88 @@
using System.Text.Json.Serialization;
namespace CannedNet.Models;
public class BuyItemResponse
{
[JsonPropertyName("BalanceUpdates")]
public List<BalanceUpdate> BalanceUpdates { get; set; } = new();
[JsonPropertyName("Balance")]
public int Balance { get; set; }
[JsonPropertyName("CurrencyType")]
public int CurrencyType { get; set; }
[JsonPropertyName("BalanceType")]
public int BalanceType { get; set; }
[JsonPropertyName("Platform")]
public int Platform { get; set; }
}
public class BalanceUpdate
{
[JsonPropertyName("UpdateResponse")]
public int UpdateResponse { get; set; }
[JsonPropertyName("Data")]
public List<GiftData> Data { get; set; } = new();
}
public class GiftData
{
[JsonPropertyName("Id")]
public int Id { get; set; }
[JsonPropertyName("FromPlayerId")]
public int? FromPlayerId { get; set; }
[JsonPropertyName("ConsumableItemDesc")]
public string ConsumableItemDesc { get; set; } = string.Empty;
[JsonPropertyName("AvatarItemDesc")]
public string AvatarItemDesc { get; set; } = string.Empty;
[JsonPropertyName("AvatarItemType")]
public int AvatarItemType { get; set; }
[JsonPropertyName("FriendlyName")]
public string FriendlyName { get; set; } = string.Empty;
[JsonPropertyName("EquipmentPrefabName")]
public string EquipmentPrefabName { get; set; } = string.Empty;
[JsonPropertyName("EquipmentModificationGuid")]
public string EquipmentModificationGuid { get; set; } = string.Empty;
[JsonPropertyName("CurrencyType")]
public int CurrencyType { get; set; }
[JsonPropertyName("Currency")]
public int Currency { get; set; }
[JsonPropertyName("Xp")]
public int Xp { get; set; }
[JsonPropertyName("Level")]
public int Level { get; set; }
[JsonPropertyName("Platform")]
public int Platform { get; set; }
[JsonPropertyName("PlatformsToSpawnOn")]
public int PlatformsToSpawnOn { get; set; }
[JsonPropertyName("BalanceType")]
public int BalanceType { get; set; }
[JsonPropertyName("GiftContext")]
public int GiftContext { get; set; }
[JsonPropertyName("GiftRarity")]
public int GiftRarity { get; set; }
[JsonPropertyName("Message")]
public string Message { get; set; } = string.Empty;
}
@@ -0,0 +1,35 @@
using System.Text.Json.Serialization;
namespace CannedNet.Models;
public class ConsumableItem
{
public int Id { get; set; }
public int OwnerAccountId { get; set; }
[JsonPropertyName("Ids")]
public List<int> Ids { get; set; } = new();
[JsonPropertyName("CreatedAts")]
public List<DateTime> CreatedAts { get; set; } = new();
[JsonPropertyName("ConsumableItemDesc")]
public string ConsumableItemDesc { get; set; } = string.Empty;
[JsonPropertyName("Count")]
public int Count { get; set; }
[JsonPropertyName("InitialCount")]
public int InitialCount { get; set; }
[JsonPropertyName("IsActive")]
public bool IsActive { get; set; }
[JsonPropertyName("ActiveDurationMinutes")]
public int ActiveDurationMinutes { get; set; }
[JsonPropertyName("IsTransferable")]
public bool IsTransferable { get; set; }
}
@@ -0,0 +1,13 @@
namespace CannedNet.Models;
public enum ConsumableType
{
Invalid = -1,
CameraFilter,
Potion_Head = 2,
Potion_Hand,
Food,
KO_Customization,
Potion_HairDye,
Coupon
}
@@ -0,0 +1,27 @@
using System.Text.Json.Serialization;
namespace CannedNet.Models;
public class EarnableReward
{
public int Id { get; set; }
[JsonPropertyName("friendlyName")]
public string FriendlyName { get; set; } = string.Empty;
[JsonPropertyName("rewardContext")]
public int RewardContext { get; set; }
[JsonPropertyName("consumableItemDesc")]
public string ConsumableItemDesc { get; set; } = string.Empty;
[JsonPropertyName("avatarItemDesc")]
public string AvatarItemDesc { get; set; } = string.Empty;
[JsonPropertyName("avatarItemType")]
public int AvatarItemType { get; set; }
[JsonPropertyName("giftRarity")]
public int GiftRarity { get; set; }
}
@@ -0,0 +1,12 @@
namespace CannedNet.Models;
public class Storefront
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public int StorefrontType { get; set; }
public DateTime NextUpdate { get; set; }
public virtual ICollection<StorefrontItem> Items { get; set; } = new List<StorefrontItem>();
}
@@ -0,0 +1,16 @@
namespace CannedNet.Models;
public class StorefrontItem
{
public int Id { get; set; }
public int StorefrontId { get; set; }
public int PurchasableItemId { get; set; }
public int Type { get; set; }
public bool IsFeatured { get; set; }
public DateTime? NewUntil { get; set; }
public virtual Storefront Storefront { get; set; } = null!;
public virtual ICollection<GiftDrop> GiftDrops { get; set; } = new List<GiftDrop>();
public virtual ICollection<StorefrontPrice> Prices { get; set; } = new List<StorefrontPrice>();
}
@@ -0,0 +1,12 @@
namespace CannedNet.Models;
public class StorefrontPrice
{
public int Id { get; set; }
public int StorefrontItemId { get; set; }
public int CurrencyType { get; set; }
public int Price { get; set; }
public virtual StorefrontItem StorefrontItem { get; set; } = null!;
}
@@ -0,0 +1,13 @@
using System.Text.Json.Serialization;
namespace CannedNet.Models;
public class ConsumeGiftRequest
{
[JsonPropertyName("GiftId")]
public int GiftId { get; set; }
[JsonPropertyName("Count")]
public int Count { get; set; }
}
@@ -0,0 +1,93 @@
namespace CannedNet.Models;
public enum GiftContext
{
None = -1,
Default,
First_Activity,
Game_Drop,
All_Daily_Challenges_Complete,
All_Weekly_Challenge_Complete,
Daily_Challenge_Complete,
Weekly_Challenge_Complete,
Unassigned_Equipment = 10,
Unassigned_Avatar,
Unassigned_Consumable,
Reacquisition = 20,
Membership,
NUX_TokensAndDressUp = 30,
NUX_Experiment1,
NUX_Experiment2,
NUX_Experiment3,
NUX_Experiment4,
NUX_Experiment5,
LevelUp = 100,
Purchased_Gift_A = 500,
Purchased_Gift_B,
Purchased_Gift_C,
Purchased_Gift_D,
Holiday = 1000,
Contest,
Promotion,
SubscribersOnly,
Deprecated = 1100,
RecRoyale = 1200,
Paintball_ClearCut = 2000,
Paintball_Homestead,
Paintball_Quarry,
Paintball_River,
Paintball_Dam,
Paintball_DriveIn,
Discgolf_Propulsion = 3000,
Discgolf_Lake,
Discgolf_Mode_CoopCatch = 3500,
Quest_Goblin_A = 4000,
Quest_Goblin_B,
Quest_Goblin_C,
Quest_Goblin_S,
Quest_Goblin_Consumable,
Quest_Cauldron_A = 4010,
Quest_Cauldron_B,
Quest_Cauldron_C,
Quest_Cauldron_S,
Quest_Cauldron_Consumable,
Quest_Pirate1_A = 4100,
Quest_Pirate1_B,
Quest_Pirate1_C,
Quest_Pirate1_S,
Quest_Pirate1_X,
Quest_Pirate1_Consumable,
Quest_Dracula1_A = 4200,
Quest_Dracula1_B,
Quest_Dracula1_C,
Quest_Dracula1_S,
Quest_Dracula1_X,
Quest_Dracula1_Consumable,
Quest_Dracula1_SS,
Quest_SciFi_A = 4500,
Quest_SciFi_B,
Quest_SciFi_C,
Quest_SciFi_S,
Quest_Scifi_Consumable,
Charades = 5000,
Soccer = 6000,
Paddleball = 7000,
Dodgeball = 8000,
Lasertag = 9000,
Bowling = 10000,
StuntRunner_TheMainEvent_A = 11000,
StuntRunner_TheMainEvent_B,
StuntRunner_TheMainEvent_C,
StuntRunner_TheMainEvent_D,
StuntRunner_TheMainEvent_S,
StuntRunner_TheMainEvent_X,
StuntRunner_TheMainEvent_Consumable,
StuntRunner_TheMainEvent_SS,
Store_LaserTag = 100000,
Store_RecCenter = 100010,
Consumable = 110000,
Token = 110100,
Punchcard_Challenge_Complete = 110200,
All_Punchcard_Challenges_Complete,
Commerce_Purchase = 200000
}
+28
View File
@@ -0,0 +1,28 @@
namespace CannedNet.Models;
public class GiftDrop
{
public int Id { get; set; }
public int StorefrontItemId { get; set; }
public int GiftDropId { get; set; }
public string FriendlyName { get; set; } = string.Empty;
public string? Tooltip { get; set; }
public string? ConsumableItemDesc { get; set; }
public string? AvatarItemDesc { get; set; }
public int AvatarItemType { get; set; }
public string? EquipmentPrefabName { get; set; }
public string? EquipmentModificationGuid { get; set; }
public bool IsQuery { get; set; }
public bool Unique { get; set; }
public bool SubscribersOnly { get; set; }
public int Level { get; set; }
public int Rarity { get; set; }
public int CurrencyType { get; set; }
public int Currency { get; set; }
public int Context { get; set; }
public int? ItemSetId { get; set; }
public string? ItemSetFriendlyName { get; set; }
public virtual StorefrontItem StorefrontItem { get; set; } = null!;
}
@@ -0,0 +1,74 @@
using System.Text.Json.Serialization;
namespace CannedNet.Models;
public class ReceivedGift
{
public int Id { get; set; }
[JsonPropertyName("receiverAccountId")]
public int ReceiverAccountId { get; set; }
[JsonPropertyName("fromPlayerId")]
public int? FromPlayerId { get; set; }
[JsonPropertyName("consumableItemDesc")]
public string ConsumableItemDesc { get; set; } = string.Empty;
[JsonPropertyName("avatarItemDesc")]
public string AvatarItemDesc { get; set; } = string.Empty;
[JsonPropertyName("avatarItemType")]
public int AvatarItemType { get; set; }
[JsonPropertyName("friendlyName")]
public string FriendlyName { get; set; } = string.Empty;
[JsonPropertyName("equipmentPrefabName")]
public string EquipmentPrefabName { get; set; } = string.Empty;
[JsonPropertyName("equipmentModificationGuid")]
public string EquipmentModificationGuid { get; set; } = string.Empty;
[JsonPropertyName("currencyType")]
public int CurrencyType { get; set; }
[JsonPropertyName("currency")]
public int Currency { get; set; }
[JsonPropertyName("xp")]
public int Xp { get; set; }
[JsonPropertyName("level")]
public int Level { get; set; }
[JsonPropertyName("platform")]
public int Platform { get; set; } = -1;
[JsonPropertyName("platformsToSpawnOn")]
public int PlatformsToSpawnOn { get; set; } = -1;
[JsonPropertyName("balanceType")]
public int BalanceType { get; set; }
[JsonPropertyName("giftContext")]
public int GiftContext { get; set; }
[JsonPropertyName("giftRarity")]
public int GiftRarity { get; set; }
[JsonPropertyName("message")]
public string Message { get; set; } = string.Empty;
[JsonPropertyName("receivedAt")]
public DateTime ReceivedAt { get; set; } = DateTime.UtcNow;
[JsonPropertyName("isConsumed")]
public bool IsConsumed { get; set; } = false;
[JsonPropertyName("consumedAt")]
public DateTime? ConsumedAt { get; set; }
}
@@ -0,0 +1,9 @@
namespace CannedNet;
public enum JoinMode
{
Default = 0,
CreateIfNotExists = 1,
JoinOrRejoin = 2,
RejoinOnly = 3
}
@@ -0,0 +1,11 @@
namespace CannedNet;
public enum ModerationState
{
Active = 0,
Junior_Pending = 1,
Moderation_Pending = 2,
Moderation_Closed = 3,
Moderation_Banned = 4,
MarkedForDelete = 5
}
@@ -0,0 +1,232 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class NotificationMessage
{
[JsonPropertyName("notificationId")]
public string? NotificationId { get; set; }
[JsonPropertyName("notificationType")]
[JsonConverter(typeof(JsonStringEnumConverter))]
public PushNotificationId? NotificationType { get; set; }
[JsonPropertyName("id")]
public int? Id { get; set; }
[JsonPropertyName("fromAccountId")]
public int? FromAccountId { get; set; }
[JsonPropertyName("toAccountId")]
public int? ToAccountId { get; set; }
[JsonPropertyName("createdAt")]
public DateTime? CreatedAt { get; set; }
[JsonPropertyName("data")]
public Dictionary<string, object>? Data { get; set; }
}
public class SubscriptionUpdateProfile
{
[JsonPropertyName("accountId")]
public int? AccountId { get; set; }
[JsonPropertyName("profileImage")]
public string? ProfileImage { get; set; }
[JsonPropertyName("displayName")]
public string? DisplayName { get; set; }
[JsonPropertyName("username")]
public string? Username { get; set; }
}
public class SubscriptionUpdatePresence
{
[JsonPropertyName("accountId")]
public int? AccountId { get; set; }
[JsonPropertyName("presence")]
public string? Presence { get; set; }
[JsonPropertyName("currentRoomId")]
public string? CurrentRoomId { get; set; }
[JsonPropertyName("currentWorldId")]
public string? CurrentWorldId { get; set; }
[JsonPropertyName("lastSeen")]
public DateTime? LastSeen { get; set; }
}
public class SubscriptionUpdateGameSession
{
[JsonPropertyName("gameSessionId")]
public string? GameSessionId { get; set; }
[JsonPropertyName("roomId")]
public string? RoomId { get; set; }
[JsonPropertyName("worldId")]
public string? WorldId { get; set; }
[JsonPropertyName("players")]
public List<int>? Players { get; set; }
}
public class SubscriptionUpdateRoom
{
[JsonPropertyName("roomId")]
public string? RoomId { get; set; }
[JsonPropertyName("worldId")]
public string? WorldId { get; set; }
[JsonPropertyName("roomName")]
public string? RoomName { get; set; }
[JsonPropertyName("version")]
public string? Version { get; set; }
}
public class RelationshipChangedNotification
{
[JsonPropertyName("accountId")]
public int? AccountId { get; set; }
[JsonPropertyName("relationshipType")]
public RelationshipType? RelationshipType { get; set; }
[JsonPropertyName("status")]
public string? Status { get; set; }
}
public class PresenceHeartbeatResponse
{
[JsonPropertyName("currentRoomId")]
public string? CurrentRoomId { get; set; }
[JsonPropertyName("currentWorldId")]
public string? CurrentWorldId { get; set; }
[JsonPropertyName("presence")]
public string? Presence { get; set; }
}
public class ModerationNotification
{
[JsonPropertyName("reason")]
public string? Reason { get; set; }
[JsonPropertyName("duration")]
public int? Duration { get; set; }
[JsonPropertyName("moderatedBy")]
public string? ModeratedBy { get; set; }
[JsonPropertyName("message")]
public string? Message { get; set; }
[JsonPropertyName("gameSessionId")]
public string? GameSessionId { get; set; }
}
public class GiftPackageNotification
{
[JsonPropertyName("giftPackageId")]
public string? GiftPackageId { get; set; }
[JsonPropertyName("fromAccountId")]
public int? FromAccountId { get; set; }
[JsonPropertyName("giftType")]
public string? GiftType { get; set; }
}
public class StorefrontBalanceNotification
{
[JsonPropertyName("balance")]
public decimal? Balance { get; set; }
[JsonPropertyName("currency")]
public string? Currency { get; set; }
[JsonPropertyName("purchaseId")]
public string? PurchaseId { get; set; }
}
public class ConsumableMappingNotification
{
[JsonPropertyName("mappingId")]
public string? MappingId { get; set; }
[JsonPropertyName("consumableId")]
public string? ConsumableId { get; set; }
[JsonPropertyName("quantity")]
public int? Quantity { get; set; }
}
public class PlayerEventNotification
{
[JsonPropertyName("eventId")]
public string? EventId { get; set; }
[JsonPropertyName("eventName")]
public string? EventName { get; set; }
[JsonPropertyName("eventType")]
public string? EventType { get; set; }
[JsonPropertyName("worldId")]
public string? WorldId { get; set; }
[JsonPropertyName("responseStatus")]
public string? ResponseStatus { get; set; }
[JsonPropertyName("state")]
public string? State { get; set; }
}
public class ChatMessageNotification
{
[JsonPropertyName("channelId")]
public string? ChannelId { get; set; }
[JsonPropertyName("fromAccountId")]
public int? FromAccountId { get; set; }
[JsonPropertyName("messageId")]
public string? MessageId { get; set; }
[JsonPropertyName("message")]
public string? Message { get; set; }
[JsonPropertyName("channelType")]
public string? ChannelType { get; set; }
}
public class CommunityBoardNotification
{
[JsonPropertyName("boardId")]
public string? BoardId { get; set; }
[JsonPropertyName("announcementId")]
public string? AnnouncementId { get; set; }
[JsonPropertyName("title")]
public string? Title { get; set; }
[JsonPropertyName("content")]
public string? Content { get; set; }
}
public class InventionModerationNotification
{
[JsonPropertyName("inventionId")]
public string? InventionId { get; set; }
[JsonPropertyName("moderationState")]
public ModerationState? ModerationState { get; set; }
}
@@ -0,0 +1,40 @@
namespace CannedNet;
public enum PushNotificationId
{
RelationshipChanged = 1,
MessageReceived = 2,
MessageDeleted = 3,
PresenceHeartbeatResponse = 4,
RefreshLogin = 5,
Logout = 6,
SubscriptionUpdateProfile = 11,
SubscriptionUpdatePresence = 12,
SubscriptionUpdateGameSession = 13,
SubscriptionUpdateRoom = 15,
ModerationQuitGame = 20,
ModerationUpdateRequired = 21,
ModerationKick = 22,
ModerationKickAttemptFailed = 23,
ModerationRoomBan = 24,
ServerMaintenance = 25,
GiftPackageReceived = 30,
GiftPackageReceivedImmediate = 31,
ProfileJuniorStatusUpdate = 40,
RelationshipsInvalid = 50,
StorefrontBalanceAdd = 60,
StorefrontBalanceUpdate = 61,
StorefrontBalancePurchase = 62,
ConsumableMappingAdded = 70,
ConsumableMappingRemoved = 71,
PlayerEventCreated = 80,
PlayerEventUpdated = 81,
PlayerEventDeleted = 82,
PlayerEventResponseChanged = 83,
PlayerEventResponseDeleted = 84,
PlayerEventStateChanged = 85,
ChatMessageReceived = 90,
CommunityBoardUpdate = 95,
CommunityBoardAnnouncementUpdate = 96,
InventionModerationStateChanged = 100
}
+143
View File
@@ -0,0 +1,143 @@
namespace CannedNet;
public enum ObjectiveType
{
Default = -1,
[Obsolete]
FirstSessionOfDay = 1,
AddAFriend,
PartyUp,
AllOtherChallenges,
[Obsolete]
LevelUp,
CheerAPlayer,
PointedAtPlayer,
CheerARoom,
SubscribeToPlayer,
DailyObjective1,
DailyObjective2,
DailyObjective3,
AllDailyObjectives,
CompleteAnyDaily,
CompleteAnyWeekly,
[Obsolete]
OOBE_GoToLockerRoom = 20,
[Obsolete]
OOBE_GoToActivity,
[Obsolete]
OOBE_FinishActivity,
NUX_PunchcardObjective = 25,
NUX_AllPunchcardObjectives,
GoToRecCenter = 30,
FinishActivity,
VisitACustomRoom,
CreateACustomRoom,
ScoreBasketInRecCenter = 35,
UploadPhotoToRecNet,
UpdatePlayerBio,
SaveOutfitSlot,
PurchaseClothingItem,
PurchaseNonClothingItem,
DrinkWater,
ColorOnWhiteboard,
SetBasketballSkin,
ThrowBasketball,
PlaceInventionInDorm,
ChangeDormRoomSkin,
ToggleOwnedClothes,
EquipHat,
LoadOutfit,
SaveNewOutfitSlot,
SpawnCamera,
TakeSelfie,
PrintSelfie,
TakePictureOfPlayer,
PrintPictureOfPlayer,
PublishSelfieWithPlayer,
SpawnFoodWithOtherPlayers,
EmoteInRecCenter,
SendRoomChatInRecCenter,
UseFrendotron,
GoToDormRoom,
VisitSpecificRoom,
VisitPublicRRO,
VisitPublicRoomBySource,
FavoriteARoom,
TakePhotoWithFilter,
OpenYourPlayerProfile,
OpenOnlineStatusModal,
ChangeProfilePicture,
ChangePlayerDisplayName,
ChangePlayerDescriptionText,
OpenPlayerPronounsModal,
OpenOtherPlayersProfile,
VisitPlayersPortfolio,
FavoriteAFriend,
CharadesGames = 100,
CharadesWinsPerformer,
CharadesWinsGuesser,
DiscGolfWins = 200,
DiscGolfGames,
DiscGolfHolesUnderPar,
DodgeballWins = 300,
DodgeballGames,
DodgeballHits,
PaddleballGames = 400,
PaddleballWins,
PaddleballScores,
PaintballAnyModeGames = 500,
PaintballAnyModeWins,
PaintballAnyModeHits,
PaintballCTFWins = 600,
PaintballCTFGames,
PaintballCTFHits,
PaintballFlagCaptures,
PaintballTeamBattleWins = 700,
PaintballTeamBattleGames,
PaintballTeamBattleHits,
PaintballFreeForAllWins = 710,
PaintballFreeForAllGames,
PaintballFreeForAllHits,
SoccerWins = 800,
SoccerGames,
SoccerGoals,
BowlingGames = 900,
BowlingWins,
BowlingStrike,
QuestGames = 1000,
QuestWins,
QuestPlayerRevives,
QuestEnemyKills,
QuestGames_Goblin1 = 1010,
QuestWins_Goblin1,
QuestPlayerRevives_Goblin1,
QuestEnemyKills_Goblin1,
QuestGames_Goblin2 = 1020,
QuestWins_Goblin2,
QuestPlayerRevives_Goblin2,
QuestEnemyKills_Goblin2,
QuestGames_Scifi1 = 1030,
QuestWins_Scifi1,
QuestPlayerRevives_Scifi1,
QuestEnemyKills_Scifi1,
QuestGames_Pirate1 = 1040,
QuestWins_Pirate1,
QuestPlayerRevives_Pirate1,
QuestEnemyKills_Pirate1,
QuestGames_Dracula1 = 1050,
QuestWins_Dracula1,
QuestPlayerRevives_Dracula1,
QuestEnemyKills_Dracula1,
ArenaGames = 2000,
ArenaWins,
ArenaPlayerRevives,
ArenaHeroTags,
ArenaBotTags,
RecRoyaleGames = 3000,
RecRoyaleWins,
RecRoyaleTags,
StuntRunnerGames = 4000,
StuntRunnerWins,
RecRallyGames = 5000,
RecRallyWins
}
+20
View File
@@ -0,0 +1,20 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class RecNetResultWithValue<T> : RecNetResult
{
[JsonPropertyName("value")] public required T? Value { get; set; }
}
public class RecNetResult
{
public static RecNetResult Ok() => new RecNetResult { Success = true };
public static RecNetResult Err(string error) => new RecNetResult { Success = false, Error = error };
public static RecNetResultWithValue<T> Ok<T>(T value) => new RecNetResultWithValue<T> { Success = true, Value = value };
public static RecNetResultWithValue<T> Err<T>(string error) => new RecNetResultWithValue<T> { Success = false, Error = error, Value = default };
[JsonPropertyName("success")] public bool Success { get; set; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
[JsonPropertyName("error")] public string? Error { get; set; }
}
+138
View File
@@ -0,0 +1,138 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class RoomTag
{
[JsonPropertyName("tag")]
public string Tag { get; set; } = "";
[JsonPropertyName("type")]
public int Type { get; set; }
}
public class Room
{
public int Id { get; set; }
[JsonPropertyName("roomId")]
public int RoomId { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; } = "";
[JsonPropertyName("description")]
public string Description { get; set; } = "";
[JsonPropertyName("creatorAccountId")]
public int CreatorAccountId { get; set; }
[JsonPropertyName("imageName")]
public string ImageName { get; set; } = "";
[JsonPropertyName("state")]
public int State { get; set; }
[JsonPropertyName("accessibility")]
public int Accessibility { get; set; }
[JsonPropertyName("supportsLevelVoting")]
public bool SupportsLevelVoting { get; set; }
[JsonPropertyName("isRRO")]
public bool IsRRO { get; set; }
[JsonPropertyName("isDorm")]
public bool IsDorm { get; set; }
[JsonPropertyName("cloningAllowed")]
public bool CloningAllowed { get; set; }
[JsonPropertyName("supportsVRLow")]
public bool SupportsVRLow { get; set; }
[JsonPropertyName("supportsQuest2")]
public bool SupportsQuest2 { get; set; }
[JsonPropertyName("supportsMobile")]
public bool SupportsMobile { get; set; }
[JsonPropertyName("supportsScreens")]
public bool SupportsScreens { get; set; }
[JsonPropertyName("supportsWalkVR")]
public bool SupportsWalkVR { get; set; }
[JsonPropertyName("supportsTeleportVR")]
public bool SupportsTeleportVR { get; set; }
[JsonPropertyName("supportsJuniors")]
public bool SupportsJuniors { get; set; }
[JsonPropertyName("minLevel")]
public int MinLevel { get; set; }
[JsonPropertyName("warningMask")]
public int WarningMask { get; set; }
[JsonPropertyName("customWarning")]
public string? CustomWarning { get; set; }
[JsonPropertyName("disableMicAutoMute")]
public bool DisableMicAutoMute { get; set; }
[JsonPropertyName("disableRoomComments")]
public bool DisableRoomComments { get; set; }
[JsonPropertyName("encryptVoiceChat")]
public bool EncryptVoiceChat { get; set; }
[JsonPropertyName("createdAt")]
public DateTime CreatedAt { get; set; }
[JsonPropertyName("tags")]
public string Tags { get; set; } = "[]";
}
public class SubRoom
{
public int Id { get; set; }
public int RoomId { get; set; }
[JsonPropertyName("subRoomId")]
public int SubRoomId { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; } = "";
[JsonPropertyName("dataBlob")]
public string DataBlob { get; set; } = "";
[JsonPropertyName("isSandbox")]
public bool IsSandbox { get; set; }
[JsonPropertyName("maxPlayers")]
public int MaxPlayers { get; set; }
[JsonPropertyName("accessibility")]
public int Accessibility { get; set; }
[JsonPropertyName("unitySceneId")]
public string UnitySceneId { get; set; } = "";
[JsonPropertyName("dataSavedAt")]
public DateTime? DataSavedAt { get; set; }
}
public class LoadScreen
{
public int Id { get; set; }
public int RoomId { get; set; }
[JsonPropertyName("imageUrl")]
public string ImageUrl { get; set; } = "";
[JsonPropertyName("tooltip")]
public string Tooltip { get; set; } = "";
[JsonPropertyName("isThumbnail")]
public bool IsThumbnail { get; set; }
}
public class PromoImage
{
public int Id { get; set; }
public int RoomId { get; set; }
[JsonPropertyName("imageUrl")]
public string ImageUrl { get; set; } = "";
[JsonPropertyName("tooltip")]
public string Tooltip { get; set; } = "";
[JsonPropertyName("sortOrder")]
public int SortOrder { get; set; }
}
public class PromoExternalContent
{
public int Id { get; set; }
public int RoomId { get; set; }
[JsonPropertyName("type")]
public int Type { get; set; }
[JsonPropertyName("url")]
public string Url { get; set; } = "";
[JsonPropertyName("tooltip")]
public string Tooltip { get; set; } = "";
}
public class RoomRole
{
public int Id { get; set; }
public int RoomId { get; set; }
[JsonPropertyName("accountId")]
public int AccountId { get; set; }
[JsonPropertyName("role")]
public int Role { get; set; }
[JsonPropertyName("invitedRole")]
public int InvitedRole { get; set; }
}
@@ -0,0 +1,43 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class RoomInstance
{
public int Id { get; set; }
public int OwnerAccountId { get; set; }
[JsonPropertyName("roomInstanceId")]
public int roomInstanceId { get; set; }
[JsonPropertyName("roomId")]
public int roomId { get; set; }
[JsonPropertyName("subRoomId")]
public int subRoomId { get; set; }
[JsonPropertyName("roomInstanceType")]
public int roomInstanceType { get; set; }
[JsonPropertyName("location")]
public string location { get; set; } = "";
[JsonPropertyName("dataBlob")]
public string dataBlob { get; set; } = "";
[JsonPropertyName("eventId")]
public int eventId { get; set; }
[JsonPropertyName("clubId")]
public int clubId { get; set; }
[JsonPropertyName("roomCode")]
public string roomCode { get; set; } = "";
[JsonPropertyName("photonRegionId")]
public string photonRegionId { get; set; } = "";
[JsonPropertyName("photonRoomId")]
public string photonRoomId { get; set; } = "";
[JsonPropertyName("name")]
public string name { get; set; } = "";
[JsonPropertyName("maxCapacity")]
public int maxCapacity { get; set; }
[JsonPropertyName("isFull")]
public bool isFull { get; set; }
[JsonPropertyName("isPrivate")]
public bool isPrivate { get; set; }
[JsonPropertyName("isInProgress")]
public bool isInProgress { get; set; }
[JsonPropertyName("EncryptVoiceChat")]
public bool EncryptVoiceChat { get; set; }
}
@@ -0,0 +1,15 @@
using System.Text.Json.Serialization;
namespace CannedNet;
public class RoomStats
{
[JsonPropertyName("CheerCount")]
public int CheerCount { get; set; }
[JsonPropertyName("FavoriteCount")]
public int FavoriteCount { get; set; }
[JsonPropertyName("VisitorCount")]
public int VisitorCount { get; set; }
[JsonPropertyName("VisitCount")]
public int VisitCount { get; set; }
}