yikes,
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
using System;
|
||||
using LiteDB;
|
||||
using static Vanadium.Classes.DBs.DBClasses.PlayerDBClasses;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class AnnoucementDBClasses
|
||||
{
|
||||
// from game dump :3
|
||||
public class Announcement
|
||||
{
|
||||
[BsonId]
|
||||
public long AnnouncementId { get; set; }
|
||||
public AnnouncementType AnnouncementType { get; set; }
|
||||
public string? Title { get; set; }
|
||||
public string? Body { get; set; }
|
||||
public string? ImageName { get; set; }
|
||||
public LinkType LinkType { get; set; }
|
||||
public string? LinkName { get; set; }
|
||||
public string? LinkButtonLabel { get; set; }
|
||||
public string? LinkUri { get; set; }
|
||||
public Platforms Platform { get; set; } = Platforms.All;
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public class DirectorAnnouncementRequest : Announcement { public bool Clear { get; set; } = false; }
|
||||
|
||||
public enum AnnouncementType
|
||||
{
|
||||
Update,
|
||||
Contest,
|
||||
Store,
|
||||
Event,
|
||||
Warning,
|
||||
Item
|
||||
}
|
||||
|
||||
public enum LinkType
|
||||
{
|
||||
Url,
|
||||
AccountId,
|
||||
EventId,
|
||||
RoomName,
|
||||
Storefront,
|
||||
[Obsolete] // game said not to use ts?
|
||||
ActionCode,
|
||||
Item,
|
||||
CustomAvatarItem,
|
||||
AuthorizedRecNetUrl
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using LiteDB;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public static class AntiCheatDBClasses
|
||||
{
|
||||
public class Detection
|
||||
{
|
||||
[BsonId]
|
||||
public ObjectId Id { get; set; }
|
||||
public long PlayerId { get; set; }
|
||||
public string Username { get; set; }
|
||||
public ulong SteamId { get; set; }
|
||||
public string Type { get; set; } // "cheat" | "injection"
|
||||
public string Reason { get; set; }
|
||||
public string ModVersion { get; set; }
|
||||
public long? RoomId { get; set; }
|
||||
public DateTime DetectedAt { get; set; }
|
||||
public DateTime LastSeen { get; set; }
|
||||
public int Count { get; set; } = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
using LiteDB;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class ChatDBClasses
|
||||
{
|
||||
public class ChatThread
|
||||
{
|
||||
public List<ChatMessage> Messages { get; set; }
|
||||
public long ChatThreadId { get; set; }
|
||||
public List<long> PlayerIds { get; set; }
|
||||
public long LastReadMessageId { get; set; }
|
||||
[JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public Dictionary<long, long> PlayerReadStates { get; set; } = new();
|
||||
public string ChatThreadName { get; set; }
|
||||
public DateTime? SnoozedUntil { get; set; }
|
||||
public bool IsFavorited { get; set; }
|
||||
}
|
||||
|
||||
public class ChatMessage
|
||||
{
|
||||
public long ChatMessageId { get; set; }
|
||||
public long ChatThreadId { get; set; }
|
||||
public int SenderPlayerId { get; set; }
|
||||
public DateTime TimeSent { get; set; }
|
||||
public string Contents { get; set; }
|
||||
public int ModerationState { get; set; }
|
||||
}
|
||||
|
||||
public class MessageJson
|
||||
{
|
||||
public MessageContentType Type { get; set; }
|
||||
public int Version { get; set; }
|
||||
public string Data { get; set; }
|
||||
}
|
||||
|
||||
public struct SendMessageResponse
|
||||
{
|
||||
public ChatResults ChatResult { get; set; }
|
||||
public ChatThread ChatThread { get; set; }
|
||||
}
|
||||
|
||||
public enum ChatResults
|
||||
{
|
||||
Success,
|
||||
InvalidArguments,
|
||||
ThreadNotFound,
|
||||
MembershipNotFound,
|
||||
PlayerAlreadyOnThread,
|
||||
CannotMessagePlayer,
|
||||
InvalidCharacters,
|
||||
RecentlyLeftThread,
|
||||
ThreadTooLarge
|
||||
}
|
||||
|
||||
public enum ModerationState : byte
|
||||
{
|
||||
Active,
|
||||
Junior_Pending = 11,
|
||||
Moderation_Pending = 100,
|
||||
Moderation_Closed,
|
||||
Moderation_Banned,
|
||||
MarkedForDelete = 255
|
||||
}
|
||||
|
||||
public enum QueryMode
|
||||
{
|
||||
Latest,
|
||||
NewerThan,
|
||||
OlderThan
|
||||
}
|
||||
|
||||
public enum MessageContentType
|
||||
{
|
||||
Text,
|
||||
PartyInvite,
|
||||
Photo
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,209 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using LiteDB;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class ClubsDBClasses
|
||||
{
|
||||
public class Club
|
||||
{
|
||||
[BsonId]
|
||||
public long ClubId { get; set; }
|
||||
|
||||
public string Name { get; set; } = "";
|
||||
public string? Description { get; set; }
|
||||
public string Category { get; set; } = "Social";
|
||||
|
||||
public int Joinability { get; set; } = 0;
|
||||
|
||||
public int Visibility { get; set; } = 1;
|
||||
|
||||
public bool AllowJuniors { get; set; } = true;
|
||||
public int MinLevel { get; set; } = 0;
|
||||
public ClubType ClubType { get; set; } = ClubType.Generic;
|
||||
public bool IsRRO { get; set; } = false;
|
||||
|
||||
public int State { get; set; } = 0;
|
||||
|
||||
public long CreatorAccountId { get; set; }
|
||||
public long? ClubhouseRoomId { get; set; }
|
||||
|
||||
public string MainImageName { get; set; } = "DefaultRoomImage.png";
|
||||
|
||||
public int MemberCount { get; set; } = 1;
|
||||
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
|
||||
public List<ClubMember> Members { get; set; } = new();
|
||||
|
||||
public List<ClubAdditionalImage> AdditionalImages { get; set; } = new();
|
||||
|
||||
public List<string> CustomTags { get; set; } = new();
|
||||
|
||||
public List<ClubPermissions> Permissions { get; set; } = new();
|
||||
|
||||
public List<long> BannedMemberIds { get; set; } = new();
|
||||
|
||||
public bool IsDeleted { get; set; } = false;
|
||||
}
|
||||
|
||||
public class ClubMember
|
||||
{
|
||||
public long MemberId { get; set; }
|
||||
public long AccountId { get; set; }
|
||||
public int MemberType { get; set; } = 10;
|
||||
public DateTime JoinedAt { get; set; } = DateTime.UtcNow;
|
||||
public bool IsPendingApproval { get; set; } = false;
|
||||
}
|
||||
|
||||
|
||||
public class ClubAdditionalImage
|
||||
{
|
||||
public int Index { get; set; }
|
||||
public string ImageName { get; set; } = "";
|
||||
}
|
||||
|
||||
public class ClubPermissions
|
||||
{
|
||||
[BsonId]
|
||||
public long ClubPermissionsId { get; set; }
|
||||
|
||||
public long ClubId { get; set; }
|
||||
|
||||
public int Type { get; set; }
|
||||
|
||||
public bool ApproveMember { get; set; }
|
||||
public bool BanUnban { get; set; }
|
||||
public bool CreateEvent { get; set; }
|
||||
public bool EditDetails { get; set; }
|
||||
public bool EditPermissionSettings { get; set; }
|
||||
public bool PostAnnouncement { get; set; }
|
||||
}
|
||||
|
||||
public class ClubDbCounters
|
||||
{
|
||||
[BsonId]
|
||||
public string Key { get; set; } = "";
|
||||
public long Value { get; set; }
|
||||
}
|
||||
|
||||
public class ClubAnnouncement
|
||||
{
|
||||
[BsonId]
|
||||
public long AnnouncementId { get; set; }
|
||||
|
||||
public long ClubId { get; set; }
|
||||
|
||||
public long CreatorAccountId { get; set; }
|
||||
|
||||
public string Title { get; set; } = "";
|
||||
|
||||
public string Body { get; set; } = "";
|
||||
|
||||
public string? ImageName { get; set; }
|
||||
|
||||
public string? Meta { get; set; }
|
||||
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
|
||||
public Dictionary<long, long> LastReadAnnouncementIdByAccount { get; set; } = new();
|
||||
}
|
||||
|
||||
public class ClubAnnouncementDTO
|
||||
{
|
||||
public long AnnouncementId { get; set; }
|
||||
public long ClubId { get; set; }
|
||||
public long CreatorAccountId { get; set; }
|
||||
public string Title { get; set; } = "";
|
||||
public string Body { get; set; } = "";
|
||||
public string? ImageName { get; set; }
|
||||
public string? Meta { get; set; }
|
||||
public DateTime CreatedAt { get; set; }
|
||||
}
|
||||
|
||||
public class ClubAnnouncementListDTO
|
||||
{
|
||||
public long ClubId { get; set; }
|
||||
public List<ClubAnnouncementDTO> Announcements { get; set; } = new();
|
||||
public long? LastAnnouncementId { get; set; }
|
||||
public long LastReadAnnouncementId { get; set; }
|
||||
}
|
||||
|
||||
public class ClubSummaryDTO
|
||||
{
|
||||
public long ClubId { get; set; }
|
||||
public string Name { get; set; } = "";
|
||||
public string? Description { get; set; }
|
||||
public string Category { get; set; } = "Social";
|
||||
public int Joinability { get; set; }
|
||||
public int Visibility { get; set; }
|
||||
public bool AllowJuniors { get; set; }
|
||||
public int MinLevel { get; set; }
|
||||
public ClubType ClubType { get; set; }
|
||||
public bool IsRRO { get; set; }
|
||||
public int State { get; set; }
|
||||
public long CreatorAccountId { get; set; }
|
||||
public long? ClubhouseRoomId { get; set; }
|
||||
public string MainImageName { get; set; } = "";
|
||||
public int MemberCount { get; set; }
|
||||
}
|
||||
|
||||
public class ClubDetailsDTO
|
||||
{
|
||||
public long ClubId { get; set; }
|
||||
public ClubSummaryDTO Club { get; set; } = new();
|
||||
public List<ClubAdditionalImage> AdditionalImages { get; set; } = new();
|
||||
public List<string> CustomTags { get; set; } = new();
|
||||
public ClubPermissions? CoownerPermissions { get; set; }
|
||||
public ClubPermissions? ModeratorPermissions { get; set; }
|
||||
public ClubPermissions? MemberPermissions { get; set; }
|
||||
|
||||
public int MyMembershipType { get; set; }
|
||||
}
|
||||
|
||||
public class ClubSearchResult
|
||||
{
|
||||
public List<ClubSummaryDTO> Clubs { get; set; } = new();
|
||||
public string? ContinuationToken { get; set; }
|
||||
public int TotalClubs { get; set; }
|
||||
}
|
||||
|
||||
public class ClubMemberDTO
|
||||
{
|
||||
public long MemberId { get; set; }
|
||||
public long AccountId { get; set; }
|
||||
public long ClubId { get; set; }
|
||||
public int MembershipType { get; set; }
|
||||
public DateTime CreatedAt { get; set; }
|
||||
}
|
||||
|
||||
public enum ClubVisibility
|
||||
{
|
||||
Private = 0,
|
||||
Public = 1,
|
||||
Unlisted = 2
|
||||
}
|
||||
|
||||
public enum ClubJoinability
|
||||
{
|
||||
Open = 0,
|
||||
ApprovalRequired = 1,
|
||||
Closed = 2
|
||||
}
|
||||
|
||||
public enum ClubMemberType
|
||||
{
|
||||
Member = 10,
|
||||
Moderator = 20,
|
||||
CoOwner = 30,
|
||||
Owner = 100
|
||||
}
|
||||
|
||||
public enum ClubType
|
||||
{
|
||||
Generic,
|
||||
Creator
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
using LiteDB;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class CustomClothingDBClasses
|
||||
{
|
||||
public class CustomClothingItem
|
||||
{
|
||||
[BsonId]
|
||||
public Guid Id { get; set; } = Guid.NewGuid();
|
||||
public long CreatorAccountId { get; set; }
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string Description { get; set; } = string.Empty;
|
||||
public int Price { get; set; }
|
||||
public bool IsFeatured { get; set; } = false;
|
||||
public int? BaseAvatarItemId { get; set; }
|
||||
public string BaseAvatarItemColor { get; set; } = "#FFFFFF";
|
||||
public string DesignFilename { get; set; } = string.Empty;
|
||||
public string ThumbnailImageFilename { get; set; } = string.Empty;
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
public DateTime ModifiedAt { get; set; } = DateTime.UtcNow;
|
||||
public ClothingAccessibility Accessibility { get; set; } = ClothingAccessibility.Public;
|
||||
public ClothingPreviewOrientation PreviewOrientation { get; set; } = ClothingPreviewOrientation.Front;
|
||||
|
||||
[BsonIgnore]
|
||||
public Dictionary<string, object> ToDictionary()
|
||||
{
|
||||
var data = new Dictionary<string, object>
|
||||
{
|
||||
["CustomAvatarItemId"] = Id.ToString(),
|
||||
["CreatorAccountId"] = CreatorAccountId,
|
||||
["Name"] = Name,
|
||||
["Description"] = Description,
|
||||
["Price"] = Price,
|
||||
["Accessibility"] = (int)Accessibility,
|
||||
["IsFeatured"] = IsFeatured,
|
||||
["BaseAvatarItemColor"] = BaseAvatarItemColor,
|
||||
["DesignFilename"] = DesignFilename,
|
||||
["ThumbnailImageFilename"] = ThumbnailImageFilename,
|
||||
["CreatedAt"] = CreatedAt.ToString("O"),
|
||||
["ModifiedAt"] = ModifiedAt.ToString("O"),
|
||||
["PreviewOrientation"] = (int)PreviewOrientation,
|
||||
};
|
||||
if (BaseAvatarItemId.HasValue)
|
||||
data["BaseAvatarItemId"] = BaseAvatarItemId.Value;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
public class CustomClothingMetaRequest
|
||||
{
|
||||
public required string Name { get; set; }
|
||||
public required string Description { get; set; }
|
||||
public required int Price { get; set; }
|
||||
public int? BaseAvatarItemId { get; set; }
|
||||
public required string BaseAvatarItemColor { get; set; }
|
||||
public required ClothingAccessibility Accessibility { get; set; }
|
||||
//public required ClothingPreviewOrientation PreviewOrientation { get; set; }
|
||||
}
|
||||
|
||||
public class RecNetCustomClothingDto
|
||||
{
|
||||
public Guid CustomAvatarItemId { get; set; }
|
||||
public long CreatorAccountId { get; set; }
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string Description { get; set; } = string.Empty;
|
||||
public int Price { get; set; }
|
||||
public ClothingAccessibility Accessibility { get; set; }
|
||||
public bool IsFeatured { get; set; }
|
||||
public string BaseAvatarItemColor { get; set; } = string.Empty;
|
||||
public string DesignFilename { get; set; } = string.Empty;
|
||||
public string ThumbnailImageFilename { get; set; } = string.Empty;
|
||||
public DateTime CreatedAt { get; set; }
|
||||
public DateTime ModifiedAt { get; set; }
|
||||
public int? BaseAvatarItemId { get; set; }
|
||||
public ClothingPreviewOrientation PreviewOrientation { get; set; } = ClothingPreviewOrientation.Front;
|
||||
}
|
||||
|
||||
public enum ClothingAccessibility
|
||||
{
|
||||
Public = 0,
|
||||
Private = 1,
|
||||
JuniorFriendly = 2
|
||||
}
|
||||
|
||||
public enum ClothingPreviewOrientation
|
||||
{
|
||||
Front = 0,
|
||||
Back = 1,
|
||||
Side = 2
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,150 @@
|
||||
using System;
|
||||
using LiteDB;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class EventDBClasses
|
||||
{
|
||||
public enum PlayerEventAccessibility
|
||||
{
|
||||
Private = 0,
|
||||
Public = 1,
|
||||
Unlisted = 2
|
||||
}
|
||||
|
||||
public enum PlayerEventResponseType
|
||||
{
|
||||
None = -1,
|
||||
Yes = 0,
|
||||
Interested = 1,
|
||||
No = 2,
|
||||
Pending = 3
|
||||
}
|
||||
|
||||
public class PlayerEventTag
|
||||
{
|
||||
[BsonId]
|
||||
public long Id { get; set; }
|
||||
public long PlayerEventId { get; set; }
|
||||
public string Tag { get; set; } = string.Empty;
|
||||
public int Type { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class PlayerEventRsvp
|
||||
{
|
||||
[BsonId]
|
||||
public long PlayerEventResponseId { get; set; }
|
||||
public long PlayerEventId { get; set; }
|
||||
public long PlayerId { get; set; }
|
||||
public int Type { get; set; }
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public class PlayerEvent
|
||||
{
|
||||
[BsonId]
|
||||
public long PlayerEventId { get; set; }
|
||||
public long CreatorPlayerId { get; set; }
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string Description { get; set; } = string.Empty;
|
||||
public int Accessibility { get; set; } = (int)PlayerEventAccessibility.Public;
|
||||
public long? ClubId { get; set; }
|
||||
public long RoomId { get; set; }
|
||||
public long? SubRoomId { get; set; }
|
||||
public DateTime StartTime { get; set; }
|
||||
public DateTime EndTime { get; set; }
|
||||
public string ImageName { get; set; } = string.Empty;
|
||||
public int State { get; set; } = 0;
|
||||
public int AttendeeCount { get; set; } = 0;
|
||||
public List<PlayerEventTag> Tags { get; set; } = new();
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
public int CanRequestBroadcastPermissions { get; set; } = 0;
|
||||
public int DefaultBroadcastPermissions { get; set; } = 0;
|
||||
public bool IsMultiInstance { get; set; } = false;
|
||||
public bool SupportMultiInstanceRoomChat { get; set; } = false;
|
||||
}
|
||||
|
||||
public class LivePlayerEvent
|
||||
{
|
||||
public long PlayerEventId { get; set; }
|
||||
public long CreatorPlayerId { get; set; }
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string Description { get; set; } = string.Empty;
|
||||
public int Accessibility { get; set; }
|
||||
public long? ClubId { get; set; }
|
||||
public long RoomId { get; set; }
|
||||
public long? SubRoomId { get; set; }
|
||||
public DateTime StartTime { get; set; }
|
||||
public DateTime EndTime { get; set; }
|
||||
public string? ImageName { get; set; }
|
||||
public int State { get; set; }
|
||||
public int AttendeeCount { get; set; }
|
||||
public List<PlayerEventTag> Tags { get; set; } = new();
|
||||
public bool IsFull { get; set; }
|
||||
public int PlayerCount { get; set; }
|
||||
public int CanRequestBroadcastPermissions { get; set; } = 0;
|
||||
public int DefaultBroadcastPermissions { get; set; } = 0;
|
||||
public bool IsMultiInstance { get; set; } = false;
|
||||
public bool SupportMultiInstanceRoomChat { get; set; } = false;
|
||||
}
|
||||
|
||||
public class RespondRequest
|
||||
{
|
||||
public long PlayerEventId { get; set; }
|
||||
public string Type { get; set; } = "Yes";
|
||||
}
|
||||
|
||||
public class PlayerEventRequest
|
||||
{
|
||||
public int Accessibility { get; set; } = (int)PlayerEventAccessibility.Public;
|
||||
public long? ClubId { get; set; }
|
||||
public string Description { get; set; } = string.Empty;
|
||||
public string EndTime { get; set; } = string.Empty;
|
||||
public string ImageName { get; set; } = string.Empty;
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public long RoomId { get; set; }
|
||||
public string StartTime { get; set; } = string.Empty;
|
||||
public long? SubRoomId { get; set; }
|
||||
public List<string> Tags { get; set; } = new();
|
||||
public int CanRequestBroadcastPermissions { get; set; } = 0;
|
||||
public int DefaultBroadcastPermissions { get; set; } = 0;
|
||||
public bool IsMultiInstance { get; set; } = false;
|
||||
public bool SupportMultiInstanceRoomChat { get; set; } = false;
|
||||
}
|
||||
|
||||
public class PlayerEventResponse
|
||||
{
|
||||
public PlayerEvent? PlayerEvent { get; set; }
|
||||
public int Result { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class PlayerEventRespondRequest
|
||||
{
|
||||
public long PlayerEventId { get; set; }
|
||||
public int Type { get; set; }
|
||||
}
|
||||
|
||||
public class PlayerEventRoomRequest
|
||||
{
|
||||
public long RoomId { get; set; }
|
||||
public long? SubRoomId { get; set; }
|
||||
}
|
||||
|
||||
public class PlayerEventTimeRequest
|
||||
{
|
||||
public string? StartTime { get; set; }
|
||||
public string? EndTime { get; set; }
|
||||
}
|
||||
|
||||
public class PlayerEventClubRequest
|
||||
{
|
||||
public long? ClubId { get; set; }
|
||||
}
|
||||
|
||||
public class PlayerEventMultiInstanceRequest
|
||||
{
|
||||
public bool IsMultiInstance { get; set; }
|
||||
public bool SupportMultiInstanceRoomChat { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
using LiteDB;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class FriendsDBClasses
|
||||
{
|
||||
public class FriendEntry
|
||||
{
|
||||
[BsonId]
|
||||
public ObjectId? Id { get; set; }
|
||||
public long PlayerID { get; set; }
|
||||
public RelationshipDetail Relationship { get; set; } = new RelationshipDetail();
|
||||
}
|
||||
|
||||
public class RelationshipDetail
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public long PlayerID { get; set; }
|
||||
public long OtherPlayerID { get; set; }
|
||||
public RelationshipType RelationshipType { get; set; }
|
||||
public ReciprocalStatus Muted { get; set; }
|
||||
public ReciprocalStatus Ignored { get; set; }
|
||||
public ReciprocalStatus Favorited { get; set; }
|
||||
public int VoiceVolume { get; set; } = 100;
|
||||
}
|
||||
|
||||
public enum RelationshipType
|
||||
{
|
||||
None,
|
||||
Sent,
|
||||
Received,
|
||||
Friend,
|
||||
}
|
||||
|
||||
[Flags]
|
||||
public enum FriendInfo
|
||||
{
|
||||
None = 0,
|
||||
Favorited = 1,
|
||||
Muted = 2,
|
||||
Ignored = 4,
|
||||
Blocked = 5
|
||||
}
|
||||
|
||||
public enum ReciprocalStatus
|
||||
{
|
||||
None,
|
||||
Local,
|
||||
Remote,
|
||||
Mutual
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
using LiteDB;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class GiftsDBClasses
|
||||
{
|
||||
public class Gift
|
||||
{
|
||||
[BsonId]
|
||||
public long Id { get; set; }
|
||||
public long ToPlayerId { get; set; }
|
||||
public long FromPlayerId { get; set; } = 1;
|
||||
public string AvatarItemDesc { get; set; } = "";
|
||||
public int AvatarItemType { get; set; } = 0;
|
||||
public int BalanceType { get; set; } = -2;
|
||||
public string ConsumableItemDesc { get; set; } = "";
|
||||
public int Currency { get; set; } = 0;
|
||||
public int CurrencyType { get; set; } = 0;
|
||||
public string EquipmentModificationGuid { get; set; } = "";
|
||||
public string EquipmentPrefabName { get; set; } = "";
|
||||
public int GiftContext { get; set; } = 0;
|
||||
public int GiftRarity { get; set; } = -1;
|
||||
public int Level { get; set; } = 0;
|
||||
public string Message { get; set; } = "A gift for you <3";
|
||||
public int Platform { get; set; } = -1;
|
||||
public int PlatformsToSpawnOn { get; set; } = -1;
|
||||
public int Xp { get; set; } = 0;
|
||||
public bool Consumed { get; set; } = false;
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public class GiftDTO
|
||||
{
|
||||
public string AvatarItemDesc { get; set; } = "";
|
||||
public int AvatarItemType { get; set; } = 0;
|
||||
public int BalanceType { get; set; } = -2;
|
||||
public string ConsumableItemDesc { get; set; } = "";
|
||||
public int Currency { get; set; } = 0;
|
||||
public int CurrencyType { get; set; } = 0;
|
||||
public string EquipmentModificationGuid { get; set; } = "";
|
||||
public string EquipmentPrefabName { get; set; } = "";
|
||||
public long FromPlayerId { get; set; } = 1;
|
||||
public int GiftContext { get; set; } = 0;
|
||||
public int GiftRarity { get; set; } = -1;
|
||||
public long Id { get; set; }
|
||||
public int Level { get; set; } = 0;
|
||||
public string Message { get; set; } = "A gift for you <3";
|
||||
public int Platform { get; set; } = -1;
|
||||
public int PlatformsToSpawnOn { get; set; } = -1;
|
||||
public int Xp { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class ConsumeGiftRequest
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public int UnlockedLevel { get; set; } = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using LiteDB;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public static class HwidDBClasses
|
||||
{
|
||||
/// <summary>
|
||||
/// One machine, and every account that has ever reported from it.
|
||||
/// <para>
|
||||
/// The ban fields live on the record rather than in a second collection so that a
|
||||
/// lookup by hwid answers both questions - who is this machine, and is it banned -
|
||||
/// in a single read, on the path that runs for every client that checks in.
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public class HwidRecord
|
||||
{
|
||||
[BsonId]
|
||||
public string Hwid { get; set; }
|
||||
public List<long> PlayerIds { get; set; } = new();
|
||||
public DateTime FirstSeen { get; set; }
|
||||
public DateTime LastSeen { get; set; }
|
||||
|
||||
/// <summary>True while the machine itself is banned, separately from any account.</summary>
|
||||
public bool IsBanned { get; set; }
|
||||
|
||||
/// <summary>Why. Required when banning; a blank reason makes a ban unreviewable.</summary>
|
||||
public string BanReason { get; set; }
|
||||
|
||||
/// <summary>Player id of the moderator who issued it, or a system name.</summary>
|
||||
public string BannedBy { get; set; }
|
||||
|
||||
public DateTime? BannedAt { get; set; }
|
||||
|
||||
/// <summary>Null bans permanently.</summary>
|
||||
public DateTime? BanExpiresAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Accounts linked to the machine at the moment of the ban. A snapshot: it shows
|
||||
/// what the moderator was looking at, which is not always what the link table
|
||||
/// says later.
|
||||
/// </summary>
|
||||
public List<long> LinkedAtBan { get; set; } = new();
|
||||
|
||||
public bool BanIsActive(DateTime utcNow) =>
|
||||
IsBanned && (BanExpiresAt == null || BanExpiresAt > utcNow);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
using LiteDB;
|
||||
|
||||
public static partial class ImageMetadataDB
|
||||
{
|
||||
public class FullSavedImage
|
||||
{
|
||||
[BsonId]
|
||||
public int Id { get; set; }
|
||||
public ImageAccessibility Accessibility { get; set; }
|
||||
public bool AccessibilityLocked { get; set; } = false;
|
||||
public int CheerCount { get; set; } = 0;
|
||||
public int CommentCount { get; set; } = 0;
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
public string? Description { get; set; }
|
||||
public string ImageName { get; set; }
|
||||
public ulong PlayerEventId { get; set; }
|
||||
public ulong PlayerId { get; set; }
|
||||
public long RoomId { get; set; }
|
||||
public SavedImageTypeEnum Type { get; set; }
|
||||
public List<ulong> TaggedPlayerIds { get; set; } = new();
|
||||
public bool DevLocked { get; set; } = false;
|
||||
}
|
||||
|
||||
public class ImageV6
|
||||
{
|
||||
public ImageAccessibility Accessibility { get; set; }
|
||||
public bool AccessibilityLocked { get; set; } = false;
|
||||
public int CheerCount { get; set; } = 0;
|
||||
public int CommentCount { get; set; } = 0;
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
public string? Description { get; set; }
|
||||
public int Id { get; set; }
|
||||
public string ImageName { get; set; }
|
||||
public ulong PlayerEventId { get; set; }
|
||||
public ulong PlayerId { get; set; }
|
||||
public long RoomId { get; set; }
|
||||
public List<ulong> TaggedPlayerIds { get; set; } = new();
|
||||
public SavedImageTypeEnum Type { get; set; }
|
||||
}
|
||||
|
||||
public class ImagesPlayer
|
||||
{
|
||||
public ImageAccessibility Accessibility { get; set; }
|
||||
public bool AccessibilityLocked { get; set; } = false;
|
||||
public int CheerCount { get; set; } = 0;
|
||||
public long ClubId { get; set; } = 0;
|
||||
public int CommentCount { get; set; } = 0;
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
public string? Description { get; set; }
|
||||
public string ImageName { get; set; }
|
||||
public ulong PlayerEventId { get; set; }
|
||||
public ulong PlayerId { get; set; }
|
||||
public long RoomId { get; set; }
|
||||
public int SavedImageId { get; set; }
|
||||
public SavedImageTypeEnum SavedImageType { get; set; }
|
||||
}
|
||||
|
||||
public class ImageMetadata
|
||||
{
|
||||
public List<ulong> playerIds { get; set; } = new();
|
||||
public SavedImageTypeEnum savedImageType { get; set; }
|
||||
public long roomId { get; set; }
|
||||
public ImageAccessibility accessibility { get; set; }
|
||||
public string? description { get; set; }
|
||||
}
|
||||
|
||||
public class ModifyDescriptionRequest
|
||||
{
|
||||
public string ImageName { get; set; } = string.Empty;
|
||||
public string Description { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
public class Cheer
|
||||
{
|
||||
[BsonId]
|
||||
public int Id { get; set; }
|
||||
public int SavedImageId { get; set; }
|
||||
public ulong PlayerId { get; set; }
|
||||
}
|
||||
|
||||
public class CheerRequest
|
||||
{
|
||||
public int SavedImageId { get; set; }
|
||||
public bool Cheer { get; set; }
|
||||
}
|
||||
|
||||
public enum SavedImageTypeEnum
|
||||
{
|
||||
None,
|
||||
ShareCamera,
|
||||
OutfitThumbnail,
|
||||
RoomThumbnail,
|
||||
ProfileThumbnail,
|
||||
InventionThumbnail,
|
||||
PlayerEventThumbnail,
|
||||
RoomLoadScreen
|
||||
}
|
||||
|
||||
public enum ImageAccessibility
|
||||
{
|
||||
Private = 0,
|
||||
Public = 1,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using LiteDB;
|
||||
using static Vanadium.Classes.DBs.DBClasses.PlayerDBClasses;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class InstanceDBClasses
|
||||
{
|
||||
public class InstanceEntry
|
||||
{
|
||||
[BsonId]
|
||||
public long RoomInstanceId { get; set; }
|
||||
public long RoomId { get; set; }
|
||||
public long SubRoomId { get; set; }
|
||||
public bool IsPrivate { get; set; }
|
||||
public bool IsFull { get; set; }
|
||||
public bool IsDeleted { get; set; } = false;
|
||||
public int MaxCapacity { get; set; }
|
||||
public string Name { get; set; } = "";
|
||||
public string Location { get; set; } = "";
|
||||
public string PhotonRoomId { get; set; } = "";
|
||||
public string PhotonRegion { get; set; } = "us";
|
||||
public string PhotonRegionId { get; set; } = "us";
|
||||
public string DataBlob { get; set; } = "";
|
||||
public string PhotonRealtimeAppId { get; set; } = "";
|
||||
public string PhotonVoiceAppId { get; set; } = "";
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
|
||||
public RoomInstance ToRoomInstance() => new RoomInstance
|
||||
{
|
||||
roomInstanceId = RoomInstanceId,
|
||||
roomId = RoomId,
|
||||
subRoomId = SubRoomId,
|
||||
isPrivate = IsPrivate,
|
||||
isFull = IsFull,
|
||||
maxCapacity = MaxCapacity,
|
||||
Name = Name,
|
||||
location = Location,
|
||||
photonRoomId = PhotonRoomId,
|
||||
photonRegion = PhotonRegion,
|
||||
photonRegionId = PhotonRegionId,
|
||||
dataBlob = DataBlob
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,234 @@
|
||||
using LiteDB;
|
||||
using static Vanadium.Classes.DBs.DBClasses.RoomDBClasses;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class InventionDBClasses
|
||||
{
|
||||
public class Invention
|
||||
{
|
||||
[BsonId]
|
||||
public long InventionId { get; set; }
|
||||
public string ReplicationId { get; set; } = Guid.NewGuid().ToString();
|
||||
public long CreatorPlayerId { get; set; }
|
||||
public long CreationRoomId { get; set; } = 1;
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string Description { get; set; } = string.Empty;
|
||||
public string LongDescription { get; set; } = string.Empty;
|
||||
public string ImageName { get; set; } = string.Empty;
|
||||
public int UgcVersion { get; set; } = 1;
|
||||
public bool ForceCannotPublish { get; set; } = false;
|
||||
public int CurrentVersionNumber { get; set; } = 1;
|
||||
public int LatestVersionNumber { get; set; } = 1;
|
||||
public List<InventionVersion> Versions { get; set; } = new();
|
||||
public InventionVersion? CurrentVersion { get; set; }
|
||||
public RoomAccessibility Accessibility { get; set; } = RoomAccessibility.Private;
|
||||
public bool IsPublished { get; set; } = false;
|
||||
public bool IsFeatured { get; set; } = false;
|
||||
public DateTime ModifiedAt { get; set; } = DateTime.UtcNow;
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
public DateTime? FirstPublishedAt { get; set; } = DateTime.MinValue;
|
||||
public int NumPlayersHaveUsedInRoom { get; set; } = 0;
|
||||
public int NumDownloads { get; set; } = 0;
|
||||
public int CheerCount { get; set; } = 0;
|
||||
public int CreatorPermission { get; set; } = 100;
|
||||
public int GeneralPermission { get; set; } = 100;
|
||||
public bool IsAGInvention { get; set; } = false;
|
||||
public bool IsCertifiedInvention { get; set; } = false;
|
||||
public bool IsRecRoomApproved { get; set; } = false;
|
||||
public int Price { get; set; } = 0;
|
||||
public bool AllowTrial { get; set; } = false;
|
||||
public bool HideFromPlayer { get; set; } = false;
|
||||
public string DisplayMetadataJson { get; set; } = string.Empty;
|
||||
public int inkCost { get; set; } = 1;
|
||||
public List<InventionTag> Tags { get; set; } = new();
|
||||
public List<long> CheeredIds { get; set; } = new();
|
||||
public List<long> DownloadIds { get; set; } = new();
|
||||
public List<long> ReferencedInventions { get; set; } = new();
|
||||
}
|
||||
|
||||
public class InventionVersion
|
||||
{
|
||||
public long InventionId { get; set; }
|
||||
public string ReplicationId { get; set; } = Guid.NewGuid().ToString();
|
||||
public int VersionNumber { get; set; } = 1;
|
||||
public string BlobName { get; set; } = string.Empty;
|
||||
public string BlobHash { get; set; } = string.Empty;
|
||||
public int InstantiationCost { get; set; }
|
||||
public int LightsCost { get; set; }
|
||||
public int ChipsCost { get; set; }
|
||||
public int CloudVariablesCost { get; set; }
|
||||
public int AICost { get; set; }
|
||||
public int inkCost { get; set; }
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public class InventionData
|
||||
{
|
||||
public bool AllowTrial { get; set; }
|
||||
public int CheerCount { get; set; }
|
||||
public string CreatedAt { get; set; } = string.Empty;
|
||||
public int CreatorPermission { get; set; }
|
||||
public long CreatorPlayerId { get; set; }
|
||||
public int CurrentVersionNumber { get; set; }
|
||||
public string Description { get; set; } = string.Empty;
|
||||
public string LongDescription { get; set; } = string.Empty;
|
||||
public int GeneralPermission { get; set; }
|
||||
public bool HideFromPlayer { get; set; }
|
||||
public string ImageName { get; set; } = string.Empty;
|
||||
public long InventionId { get; set; }
|
||||
public bool IsAGInvention { get; set; }
|
||||
public bool IsCertifiedInvention { get; set; }
|
||||
public bool IsPublished { get; set; }
|
||||
public bool IsFeatured { get; set; }
|
||||
public bool IsRecRoomApproved { get; set; }
|
||||
public string ModifiedAt { get; set; } = string.Empty;
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public int NumDownloads { get; set; }
|
||||
public int NumPlayersHaveUsedInRoom { get; set; }
|
||||
public int Price { get; set; }
|
||||
public string ReplicationId { get; set; } = string.Empty;
|
||||
public int UgcVersion { get; set; }
|
||||
public bool ForceCannotPublish { get; set; }
|
||||
public int LatestVersionNumber { get; set; }
|
||||
public List<InventionVersion> Versions { get; set; } = new();
|
||||
public InventionVersion? CurrentVersion { get; set; }
|
||||
public int Accessibility { get; set; }
|
||||
public DateTime? FirstPublishedAt { get; set; } = DateTime.MinValue;
|
||||
public long CreationRoomId { get; set; }
|
||||
public string DisplayMetadataJson { get; set; } = string.Empty;
|
||||
public List<long> ReferencedInventions { get; set; } = new();
|
||||
public List<InventionTag> Tags { get; set; } = new();
|
||||
}
|
||||
|
||||
public class InventionTag
|
||||
{
|
||||
public string Tag { get; set; } = string.Empty;
|
||||
public int Type { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class SaveInventionRequest
|
||||
{
|
||||
[System.Text.Json.Serialization.JsonPropertyName("name")]
|
||||
public string name { get; set; } = string.Empty;
|
||||
[System.Text.Json.Serialization.JsonPropertyName("description")]
|
||||
public string description { get; set; } = string.Empty;
|
||||
[System.Text.Json.Serialization.JsonPropertyName("imageName")]
|
||||
public string imageName { get; set; } = string.Empty;
|
||||
[System.Text.Json.Serialization.JsonPropertyName("instantiationCost")]
|
||||
public int instantiationCost { get; set; }
|
||||
[System.Text.Json.Serialization.JsonPropertyName("lightsCost")]
|
||||
public int lightsCost { get; set; }
|
||||
[System.Text.Json.Serialization.JsonPropertyName("chipsCost")]
|
||||
public int chipsCost { get; set; }
|
||||
[System.Text.Json.Serialization.JsonPropertyName("cloudVariablesCost")]
|
||||
public int cloudVariablesCost { get; set; }
|
||||
[System.Text.Json.Serialization.JsonPropertyName("aiCost")]
|
||||
public int aiCost { get; set; }
|
||||
[System.Text.Json.Serialization.JsonPropertyName("inkCost")]
|
||||
public int inkCost { get; set; }
|
||||
[System.Text.Json.Serialization.JsonPropertyName("creationRoomId")]
|
||||
public long creationRoomId { get; set; }
|
||||
[System.Text.Json.Serialization.JsonPropertyName("inventionDataFilename")]
|
||||
public string inventionDataFilename { get; set; } = string.Empty;
|
||||
[System.Text.Json.Serialization.JsonPropertyName("referencedInventions")]
|
||||
public List<long> referencedInventions { get; set; } = new();
|
||||
[System.Text.Json.Serialization.JsonPropertyName("creatorAccountRole")]
|
||||
public int creatorAccountRole { get; set; }
|
||||
}
|
||||
|
||||
public class AddVersionRequest
|
||||
{
|
||||
public long inventionId { get; set; }
|
||||
public int instantiationCost { get; set; }
|
||||
public int lightsCost { get; set; }
|
||||
public int chipsCost { get; set; }
|
||||
public int cloudVariablesCost { get; set; }
|
||||
public int aiCost { get; set; }
|
||||
public int inkCost { get; set; }
|
||||
public long creationRoomId { get; set; } = -1;
|
||||
public string? inventionDataFilename { get; set; }
|
||||
public List<long>? referencedInventions { get; set; }
|
||||
}
|
||||
|
||||
public class InventionBatchRequest
|
||||
{
|
||||
public List<long> InventionIds { get; set; } = new();
|
||||
}
|
||||
|
||||
public class SetTagsRequest
|
||||
{
|
||||
public long InventionId { get; set; }
|
||||
public List<string> AutoTags { get; set; } = new();
|
||||
public List<string> CustomTags { get; set; } = new();
|
||||
}
|
||||
|
||||
public class SetTagsResponse
|
||||
{
|
||||
public int Result { get; set; }
|
||||
public List<string> Tags { get; set; } = new();
|
||||
}
|
||||
|
||||
public class DetailsResponse
|
||||
{
|
||||
public List<TagData> Tags { get; set; } = new();
|
||||
}
|
||||
|
||||
public class TagData
|
||||
{
|
||||
public string Tag { get; set; } = string.Empty;
|
||||
public int Type { get; set; }
|
||||
}
|
||||
|
||||
public class PersonalDetailsResponse
|
||||
{
|
||||
public bool IsCheering { get; set; } = false;
|
||||
}
|
||||
|
||||
public enum InventionPermissions // moved to its own enum class
|
||||
{
|
||||
Unassigned = 0,
|
||||
LimitedOneUseOnly = 10,
|
||||
DisallowKeyLock = 15,
|
||||
UseOnly = 20,
|
||||
EditAndSave = 40,
|
||||
Publish = 60,
|
||||
Charge = 80,
|
||||
Unlimited = 100
|
||||
}
|
||||
|
||||
public enum InventionReportCategory
|
||||
{
|
||||
RacismOrDiscriminatoryContent = 0,
|
||||
SexualContent = 1,
|
||||
MisleadingNamePictureOrDescription = 3,
|
||||
Other = 4
|
||||
}
|
||||
|
||||
public class InventionResponse
|
||||
{
|
||||
public int StatusCode { get; set; }
|
||||
public Invention Invention { get; set; }
|
||||
public InventionVersion InventionVersion { get; set; }
|
||||
}
|
||||
|
||||
public class BuyInventionResponse
|
||||
{
|
||||
public InventionResponse InventionResponse { get; set; }
|
||||
public StorefrontsDBClasses.BuyForFreeGiftButtonResponse BalanceUpdateResponse { get; set; }
|
||||
}
|
||||
|
||||
public class ReportInvention
|
||||
{
|
||||
public long InventionId { get; set; }
|
||||
public InventionReportCategory ReportCategory { get; set; }
|
||||
public string? Details { get; set; }
|
||||
}
|
||||
|
||||
public class CheerInventionRequest
|
||||
{
|
||||
public bool Cheer { get; set; }
|
||||
public long InventionId { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
using LiteDB;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class LeaderboardDBClasses
|
||||
{
|
||||
public class LeaderboardEntry
|
||||
{
|
||||
[BsonId]
|
||||
public long EntryId { get; set; }
|
||||
public long PlayerId { get; set; }
|
||||
public long RoomId { get; set; }
|
||||
public int StatChannel { get; set; }
|
||||
public int Score { get; set; }
|
||||
public int FilterType { get; set; }
|
||||
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public class LeaderboardRow
|
||||
{
|
||||
public long playerId { get; set; }
|
||||
public int rank { get; set; }
|
||||
public int score { get; set; }
|
||||
}
|
||||
|
||||
public class GetRanksRequest
|
||||
{
|
||||
public int FilterType { get; set; }
|
||||
public long PlayerId { get; set; }
|
||||
public int RankEnd { get; set; }
|
||||
public int RankStart { get; set; }
|
||||
public long RoomId { get; set; }
|
||||
public bool SortAscending { get; set; }
|
||||
public int StatChannel { get; set; }
|
||||
public int Timeframe { get; set; }
|
||||
}
|
||||
|
||||
public class GetRanksResponse
|
||||
{
|
||||
public List<LeaderboardRow> rows { get; set; } = new();
|
||||
}
|
||||
|
||||
public class GetNearbyScoresRequest : GetRanksRequest
|
||||
{
|
||||
public int WindowSize { get; set; }
|
||||
}
|
||||
|
||||
public class GetNearbyScoresResponse
|
||||
{
|
||||
public List<LeaderboardRow> rows { get; set; } = new();
|
||||
}
|
||||
|
||||
public class CheckAndSetStatRequest
|
||||
{
|
||||
public int CurrentStatValue { get; set; }
|
||||
public long RoomId { get; set; }
|
||||
public int StatChannel { get; set; }
|
||||
public int StatValue { get; set; }
|
||||
}
|
||||
|
||||
public class CheckAndSetStatResponse
|
||||
{
|
||||
public string? error { get; set; }
|
||||
public bool success { get; set; }
|
||||
public LeaderboardRow? value { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using LiteDB;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class MatchDBClasses
|
||||
{
|
||||
public class InviteDTO
|
||||
{
|
||||
public long InviteId { get; set; }
|
||||
public string Name { get; set; }
|
||||
public int InviteMode { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class PlayerOnlineDTO
|
||||
{
|
||||
public bool SenderIsMyFavoriteFriend { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using LiteDB;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class PhotonAccessTokenDBClasses
|
||||
{
|
||||
public class SubroomPermissionSet
|
||||
{
|
||||
[BsonId]
|
||||
public long Id { get; set; }
|
||||
public long RoomId { get; set; }
|
||||
public long SubRoomId { get; set; }
|
||||
public List<StoredPermissionEntry> Permissions { get; set; } = new();
|
||||
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public class StoredPermissionEntry
|
||||
{
|
||||
public string Permission { get; set; } = "";
|
||||
public int Role { get; set; }
|
||||
public int Type { get; set; }
|
||||
public bool Override { get; set; }
|
||||
public string Value { get; set; } = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,673 @@
|
||||
using System;
|
||||
using System.Text.Json.Serialization;
|
||||
using LiteDB;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class PlayerDBClasses
|
||||
{
|
||||
public class FullPlayer
|
||||
{
|
||||
[BsonId]
|
||||
public long PlayerId { get; set; }
|
||||
public List<mPlatformID> PlatformIds { get; set; } = new();
|
||||
public List<string>? DeviceIds { get; set; } = new();
|
||||
public string? AuthToken { get; set; }
|
||||
public string? Password { get; set; }
|
||||
public List<PlayerRoles> PlayerRoles { get; set; } = new();
|
||||
public Player? Player { get; set; }
|
||||
public string RefreshToken { get; set; } = "";
|
||||
public DateTime RefreshTokenExpires { get; set; } = new DateTime(9000, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
}
|
||||
|
||||
public class Player
|
||||
{
|
||||
public string? Username { get; set; }
|
||||
public string? DisplayName { get; set; }
|
||||
public string? DisplayEmoji { get; set; }
|
||||
public string? Bio { get; set; }
|
||||
public int AvailableUsernameChanges { get; set; } = 3;
|
||||
public DateTime? LastUsernameChangeAt { get; set; }
|
||||
public bool NameLocked { get; set; } = false;
|
||||
public bool? IsJunior { get; set; }
|
||||
public bool AvoidJuniors { get; set; } = true;
|
||||
public int Level { get; set; } = 1;
|
||||
public int XP { get; set; } = 0;
|
||||
public int XPToday { get; set; } = 0;
|
||||
public DateTime XPTodayDate { get; set; } = DateTime.MinValue;
|
||||
public DateTime LastXPAwardedAt { get; set; } = DateTime.MinValue;
|
||||
public long CurrentXPRoomId { get; set; } = 0;
|
||||
public Dictionary<long, int> RoomXPEarnedToday { get; set; } = new();
|
||||
public string? ProfileImage { get; set; }
|
||||
public string? BannerImage { get; set; }
|
||||
public string? Email { get; set; }
|
||||
public int PronounFlags { get; set; }
|
||||
public int IdentityFlags { get; set; }
|
||||
public DateTime CreatedAt { get; set; }
|
||||
public DateTime LastLoginAt { get; set; }
|
||||
public DateTime? Birthday { get; set; }
|
||||
public CurrentAuthSession? CurrentAuthSession { get; set; } = new CurrentAuthSession();
|
||||
public Reputation Reputation { get; set; } = new Reputation();
|
||||
public List<long> VisitedRooms { get; set; } = new();
|
||||
public List<RoomVisit> RoomVisits { get; set; } = new();
|
||||
public List<long> CheeredRooms { get; set; } = new List<long>();
|
||||
public List<long> FavoritedRooms { get; set; } = new List<long>();
|
||||
public PlayerExtra PlayerExtra { get; set; } = new PlayerExtra();
|
||||
public List<PlayerRelationship> Relationships { get; set; } = new List<PlayerRelationship>();
|
||||
public string? DiscordUserId { get; set; }
|
||||
public string? DiscordUsername { get; set; }
|
||||
public bool DiscordLinked { get; set; } = false;
|
||||
public DateTime? DiscordLinkedAt { get; set; }
|
||||
}
|
||||
|
||||
public class RoomVisit
|
||||
{
|
||||
public long RoomId { get; set; }
|
||||
public DateTime LastVisitedAt { get; set; }
|
||||
}
|
||||
|
||||
public class RoomPlayerData
|
||||
{
|
||||
public long RoomId { get; set; }
|
||||
public string Data { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
public class PlayerDTOBase
|
||||
{
|
||||
public long accountId { get; set; }
|
||||
public DateTime createdAt { get; set; }
|
||||
public string? displayName { get; set; }
|
||||
public string? displayEmoji { get; set; }
|
||||
public bool? isJunior { get; set; }
|
||||
public int platforms { get; set; }
|
||||
public string? profileImage { get; set; }
|
||||
public string? bannerImage { get; set; }
|
||||
public string? username { get; set; }
|
||||
public int personalPronouns { get; set; }
|
||||
public int identityFlags { get; set; }
|
||||
}
|
||||
|
||||
public class PlayerDTO : PlayerDTOBase { }
|
||||
|
||||
public class PlayerMeDTO : PlayerDTOBase
|
||||
{
|
||||
public int availableUsernameChanges { get; set; } = 3;
|
||||
public DateTime? birthday { get; set; }
|
||||
public string? email { get; set; }
|
||||
public string? phone { get; set; }
|
||||
public Reputation? reputation { get; set; }
|
||||
}
|
||||
|
||||
public class CurrentAuthSession
|
||||
{
|
||||
public string? AuthSigningKey { get; set; }
|
||||
}
|
||||
|
||||
public class PlayerRelationship
|
||||
{
|
||||
public long PlayerId { get; set; }
|
||||
public int Favorited { get; set; } = 0;
|
||||
public int Ignored { get; set; } = 0;
|
||||
public int Muted { get; set; } = 0;
|
||||
public int RelationshipType { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class OwnedEquipmentItem
|
||||
{
|
||||
public string PrefabName { get; set; } = "";
|
||||
public string ModificationGuid { get; set; } = "";
|
||||
public bool Favorited { get; set; } = false;
|
||||
public int PlatformMask { get; set; } = -1;
|
||||
public string FriendlyName { get; set; } = "";
|
||||
public string Tooltip { get; set; } = "";
|
||||
public int Rarity { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class UpdateEquipmentRequest
|
||||
{
|
||||
public bool Favorited { get; set; }
|
||||
public string FriendlyName { get; set; } = "";
|
||||
public string ModificationGuid { get; set; } = "";
|
||||
public string PrefabName { get; set; } = "";
|
||||
public int Rarity { get; set; }
|
||||
public string? Tooltip { get; set; }
|
||||
}
|
||||
|
||||
public class PlayerExtra
|
||||
{
|
||||
public Avatar Avatar { get; set; } = new Avatar();
|
||||
public List<string> AvatarItems { get; set; } = new();
|
||||
public List<SavedOutfit> SavedAvatars { get; set; } = new();
|
||||
public ModerationBlockDetails? ModerationBlockDetails { get; set; } = new ModerationBlockDetails();
|
||||
public List<Setting> Settings { get; set; } = new();
|
||||
public Heartbeat Heartbeat { get; set; } = new Heartbeat();
|
||||
public List<PlayerCurrency> Currencies { get; set; } = new();
|
||||
public List<RoomPlayerData> RoomPlayerData { get; set; } = new();
|
||||
public long DormRoomId { get; set; } = 0;
|
||||
public long PlayerClubId { get; set; } = 0;
|
||||
public int PhotoTaggingSetting { get; set; } = 0;
|
||||
public List<MessageData> Messages { get; set; } = new();
|
||||
public Influencer Influencer { get; set; } = new Influencer();
|
||||
|
||||
// anything below is not in original code sonsaN
|
||||
|
||||
public List<OwnedEquipmentItem> OwnedEquipment { get; set; } = new();
|
||||
public int ImagesUploadedToday { get; set; } = 0;
|
||||
public DateTime ImagesUploadedTodayDate { get; set; } = DateTime.MinValue;
|
||||
public List<RoomDBClasses.PermissionEntry> CurrentPermissions { get; set; } = new();
|
||||
public ToxModData? ToxMod { get; set; }
|
||||
public JuniorStatusData? JuniorStatus { get; set; }
|
||||
public DateTime? RoomChangeRestrictedUntil { get; set; }
|
||||
public PersonalDetails PersonalDetails { get; set; } = new PersonalDetails();
|
||||
public long HomeClubhouseId { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class PlayerCurrency
|
||||
{
|
||||
public int Balance { get; set; }
|
||||
public CurrencyType CurrencyType { get; set; }
|
||||
public BalanceType BalanceType { get; set; }
|
||||
}
|
||||
|
||||
public class Avatar
|
||||
{
|
||||
public List<CustomAvatarItem> CustomAvatarItems { get; set; } = new();
|
||||
public string OutfitSelections { get; set; } = "";
|
||||
public string OutfitSelectionsV2 { get; set; } = "";
|
||||
public string FaceFeatures { get; set; } = "";
|
||||
public string SkinColor { get; set; } = "";
|
||||
public string HairColor { get; set; } = "";
|
||||
public string? CustomizationSettings { get; set; }
|
||||
public int DataVersion { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class OutfitSelection
|
||||
{
|
||||
public string? CustomAvatarItemId { get; set; }
|
||||
public int BodyPart { get; set; }
|
||||
public string? BakedUnityAssetFileName { get; set; }
|
||||
public object? AdditionalConfiguration { get; set; }
|
||||
}
|
||||
|
||||
public class CustomAvatarItem
|
||||
{
|
||||
public int BodyPart { get; set; }
|
||||
public string CustomAvatarItemId { get; set; }
|
||||
}
|
||||
|
||||
public class Heartbeat
|
||||
{
|
||||
public string appVersion { get; set; } = ServerConfig.GameVersion.ToString();
|
||||
public DeviceClasses? deviceClass { get; set; } = DeviceClasses.Unknown;
|
||||
public MatchmakingErrorCode? errorCode { get; set; } = null;
|
||||
public bool isOnline { get; set; } = false;
|
||||
public long playerId { get; set; } = 0;
|
||||
public RoomInstance? roomInstance { get; set; } = null;
|
||||
public StatusVisibility statusVisibility { get; set; } = StatusVisibility.Online;
|
||||
public int vrMovementMode { get; set; } = 0;
|
||||
|
||||
public string? photonAuthToken { get; set; }
|
||||
public string? photonRealtimeAppId { get; set; }
|
||||
public string? photonVoiceAppId { get; set; }
|
||||
public string? photonChatAppId { get; set; }
|
||||
public string? photonRegion { get; set; }
|
||||
public string? photonRoomId { get; set; }
|
||||
public string? voiceConnectionInfo { get; set; }
|
||||
public string? voiceServerId { get; set; }
|
||||
public object? experiments { get; set; }
|
||||
}
|
||||
|
||||
public class Subscriptions
|
||||
{
|
||||
public long playerId { get; set; } = 0;
|
||||
public int subscriberCount { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class RoomInstance
|
||||
{
|
||||
public bool encryptVoiceChat { get; set; }
|
||||
public long clubId { get; set; } = 0;
|
||||
public string? dataBlob { get; set; }
|
||||
public long eventId { get; set; } = 0;
|
||||
public bool isFull { get; set; }
|
||||
public bool isInProgress { get; set; }
|
||||
public bool isPrivate { get; set; }
|
||||
public string location { get; set; }
|
||||
public int maxCapacity { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string photonRegion { get; set; }
|
||||
public string photonRegionId { get; set; }
|
||||
public string photonRoomId { get; set; }
|
||||
public string roomCode { get; set; } = "";
|
||||
public long roomId { get; set; }
|
||||
public long roomInstanceId { get; set; }
|
||||
public RoomInstanceType roomInstanceType { get; set; }
|
||||
public long subRoomId { get; set; }
|
||||
}
|
||||
|
||||
public class Reputation
|
||||
{
|
||||
public long AccountId { get; set; }
|
||||
public bool IsCheerful { get; set; }
|
||||
public double Noteriety { get; set; }
|
||||
public CheerCategory SelectedCheer { get; set; }
|
||||
public int CheerCredit { get; set; } = 20;
|
||||
public int CheerGeneral { get; set; }
|
||||
public int CheerHelpful { get; set; }
|
||||
public int CheerCreative { get; set; }
|
||||
public int CheerGreatHost { get; set; }
|
||||
public int CheerSportsman { get; set; }
|
||||
public int SubscriberCount { get; set; }
|
||||
public int SubscribedCount { get; set; }
|
||||
}
|
||||
|
||||
public class ModerationBlockDetails
|
||||
{
|
||||
public ReportCategory ReportCategory { get; set; } = ReportCategory.Moderator;
|
||||
public int Duration { get; set; } = 0;
|
||||
public long GameSessionId { get; set; } = 0;
|
||||
public bool? IsBan { get; set; } = false;
|
||||
public bool? IsHostKick { get; set; } = false;
|
||||
public bool? IsVoiceModAutoban { get; set; } = false; // wow when did this day finally come 9/1/2026 ts feel like heaven boi
|
||||
public bool? IsDeviceBan { get; set; } = false;
|
||||
public bool? IsWarning { get; set; } = false;
|
||||
public string? Message { get; set; } = "";
|
||||
public ulong? PlayerIdReporter { get; set; } = null;
|
||||
public string? VoteKickReason { get; set; } = null;
|
||||
public DateTime? TimeoutStartedAt { get; set; } = null;
|
||||
public string? AssociatedAccountUsername { get; set; } = null;
|
||||
[JsonIgnore]
|
||||
public long ModerationSetUnixTime { get; set; } = 0;
|
||||
[JsonIgnore]
|
||||
public ulong BannedByPlayerId { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class JuniorStatusData
|
||||
{
|
||||
public string? Reason { get; set; }
|
||||
public string? SetBy { get; set; }
|
||||
public DateTime? SetAt { get; set; }
|
||||
}
|
||||
|
||||
public class ToxModData
|
||||
{
|
||||
public int Strikes { get; set; } = 0;
|
||||
public long ActiveBanExpiresUnixTime { get; set; } = 0;
|
||||
public string? ActiveBanCategory { get; set; }
|
||||
public long LastOffenseUnixTime { get; set; } = 0;
|
||||
public List<ToxModOffense> History { get; set; } = new();
|
||||
}
|
||||
|
||||
public class ToxModOffense
|
||||
{
|
||||
public long UnixTime { get; set; }
|
||||
public string? Category { get; set; }
|
||||
public long DurationSeconds { get; set; }
|
||||
public string? Note { get; set; }
|
||||
public string? IssuedBy { get; set; }
|
||||
}
|
||||
|
||||
// gay
|
||||
public class MessageData
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public long FromPlayerId { get; set; }
|
||||
public DateTime SentTime { get; set; }
|
||||
public MessageType Type { get; set; }
|
||||
public string? Data { get; set; }
|
||||
public long? RoomId { get; set; }
|
||||
public long? PlayerEventId { get; set; }
|
||||
}
|
||||
|
||||
public enum MessageType // we dont need another MessageType enum, and WebsocketEvents.cs has more than this because this is from a 2022 dump
|
||||
{
|
||||
GameInvite,
|
||||
GameInviteDeclined,
|
||||
GameJoinFailed,
|
||||
PartyActivitySwitch,
|
||||
FriendInvite,
|
||||
VoteToKick,
|
||||
GameInviteV2,
|
||||
PartyActivitySwitchV2,
|
||||
RequestGameInvite = 10,
|
||||
RequestGameInviteDeclined,
|
||||
FriendStatusOnline = 20,
|
||||
TextMessage = 30,
|
||||
FriendRequestAccepted = 40,
|
||||
PlayerCheer = 50,
|
||||
PlayerCheerAnonymous,
|
||||
RoomCoOwnerAdded = 60,
|
||||
RoomCoOwnerRemoved,
|
||||
RoomCoOwnerInvited,
|
||||
CreatorPublishedNewRoom = 70,
|
||||
PlayerAttendingEvent = 80,
|
||||
PlayerEventInvitation,
|
||||
GroupInvitation = 90,
|
||||
PlayerJoinedGroup,
|
||||
CoachMessage = 100
|
||||
}
|
||||
// gay
|
||||
|
||||
public class Setting
|
||||
{
|
||||
public required string Key { get; set; }
|
||||
public required string Value { get; set; }
|
||||
}
|
||||
|
||||
public class mPlatformID
|
||||
{
|
||||
public Platforms Platform { get; set; }
|
||||
public string PlatformId { get; set; }
|
||||
}
|
||||
|
||||
public class CachedLogins
|
||||
{
|
||||
public Platforms platform { get; set; }
|
||||
public string? platformId { get; set; }
|
||||
public long accountId { get; set; }
|
||||
public DateTime? lastLoginTime { get; set; }
|
||||
public bool requirePassword { get; set; }
|
||||
}
|
||||
|
||||
public class PlayerProgressionDTO
|
||||
{
|
||||
public long PlayerId { get; set; }
|
||||
public int Level { get; set; } = 1;
|
||||
public int XP { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class PersonalDetails //invention
|
||||
{
|
||||
public bool? IsCheering { get; set; } = false;
|
||||
public List<long> inventionsCheered { get; set; } = new List<long>();
|
||||
}
|
||||
|
||||
public class OutfitLegacyData
|
||||
{
|
||||
public string? SelectionsV1 { get; set; }
|
||||
public string? SelectionsV2 { get; set; }
|
||||
public string? FaceFeatures { get; set; }
|
||||
public string? SkinColor { get; set; }
|
||||
public string? HairColor { get; set; }
|
||||
}
|
||||
|
||||
public class SavedOutfitRequest
|
||||
{
|
||||
public int DataVersion { get; set; }
|
||||
public OutfitLegacyData? LegacyData { get; set; }
|
||||
public string? CustomizationSettings { get; set; }
|
||||
public List<OutfitSelection>? Selections { get; set; }
|
||||
public int Slot { get; set; }
|
||||
public string? Name { get; set; }
|
||||
public int Accessibility { get; set; }
|
||||
public string? ThumbnailFileName { get; set; }
|
||||
}
|
||||
|
||||
public class SavedOutfit : Avatar // 2023 & under - discontinued now
|
||||
{
|
||||
public int Slot { get; set; }
|
||||
public string? PreviewImageName { get; set; }
|
||||
public string? Name { get; set; }
|
||||
public int Accessibility { get; set; } = 0;
|
||||
public string? ThumbnailFileName { get; set; }
|
||||
public List<OutfitSelection>? Selections { get; set; }
|
||||
}
|
||||
|
||||
public class Influencer
|
||||
{
|
||||
public string CreatorCode { get; set; } = "";
|
||||
public bool IsInfluencer { get; set; } = false;
|
||||
public long SupportingInfluencer { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class DeleteMessagesRequest
|
||||
{
|
||||
public List<long> MessageIds { get; set; } = new();
|
||||
}
|
||||
|
||||
public class Rep
|
||||
{
|
||||
public long AccountId { get; set; }
|
||||
public bool IsCheerful { get; set; }
|
||||
public int Noteriety { get; set; }
|
||||
public CheerCategory SelectedCheer { get; set; }
|
||||
public int CheerCredit { get; set; }
|
||||
public int CheerGeneral { get; set; }
|
||||
public int CheerHelpful { get; set; }
|
||||
public int CheerCreative { get; set; }
|
||||
public int CheerGreatHost { get; set; }
|
||||
public int CheerSportsman { get; set; }
|
||||
}
|
||||
|
||||
public class SetPlayerPhotoTaggingSettingRequest
|
||||
{
|
||||
public PlayerPhotoTaggingSetting Setting { get; set; }
|
||||
}
|
||||
|
||||
public class ImageMetadata
|
||||
{
|
||||
public long? roomId { get; set; }
|
||||
public string? description { get; set; }
|
||||
public int accessibility { get; set; }
|
||||
public List<long>? playerIds { get; set; }
|
||||
public SavedImageTypeEnum savedImageType { get; set; }
|
||||
}
|
||||
|
||||
public class SavedAvatarRequest
|
||||
{
|
||||
public int Slot { get; set; }
|
||||
public string? OutfitSelections { get; set; }
|
||||
public string? OutfitSelectionsV2 { get; set; }
|
||||
public string? FaceFeatures { get; set; }
|
||||
public string? SkinColor { get; set; }
|
||||
public string? HairColor { get; set; }
|
||||
public string? PreviewImageName { get; set; }
|
||||
public string? Name { get; set; }
|
||||
public List<object>? CustomAvatarItems { get; set; }
|
||||
}
|
||||
|
||||
public enum PlayerPhotoTaggingSetting
|
||||
{
|
||||
Anyone,
|
||||
Friends,
|
||||
NoOne
|
||||
}
|
||||
|
||||
public enum SavedImageTypeEnum
|
||||
{
|
||||
General = 0,
|
||||
OutfitThumbnail = 1
|
||||
}
|
||||
|
||||
public enum Platforms
|
||||
{
|
||||
All = -1,
|
||||
Steam,
|
||||
Oculus,
|
||||
PlayStation,
|
||||
Xbox,
|
||||
RecNet,
|
||||
IOS,
|
||||
GooglePlay,
|
||||
Standalone,
|
||||
Pico,
|
||||
Switch
|
||||
}
|
||||
|
||||
public enum PlayerRoles
|
||||
{
|
||||
Screenshare,
|
||||
Moderator,
|
||||
Developer,
|
||||
Keepsake,
|
||||
betastudio,
|
||||
limitsv2,
|
||||
influencer,
|
||||
gameClient
|
||||
}
|
||||
|
||||
public enum ReportCategory
|
||||
{
|
||||
Moderator = -1,
|
||||
Unknown,
|
||||
DEPRECATED_MicrophoneAbuse,
|
||||
Harassment,
|
||||
Cheating,
|
||||
DEPRECATED_ImmatureBehavior,
|
||||
AFK,
|
||||
Misc,
|
||||
Underage,
|
||||
VoteKick = 10,
|
||||
MisleadingPurchases,
|
||||
CoC_Underage = 100,
|
||||
CoC_Sexual,
|
||||
CoC_Discrimination,
|
||||
CoC_Trolling,
|
||||
CoC_NameOrProfile,
|
||||
InappropriateClothing = 200,
|
||||
IssuingInaccurateReports = 1000
|
||||
}
|
||||
|
||||
public enum CheerCategory
|
||||
{
|
||||
None = -1,
|
||||
General = 0,
|
||||
Helpful = 10,
|
||||
Sportmanship = 20,
|
||||
GreatHost = 30,
|
||||
Creative = 40,
|
||||
RecRoomDeveloper = 9000
|
||||
}
|
||||
|
||||
public enum MatchmakingErrorCode
|
||||
{
|
||||
UnknownError = -1,
|
||||
Success = 0,
|
||||
NoSuchGame = 1,
|
||||
PlayerNotOnline = 2,
|
||||
InsufficientSpace = 3,
|
||||
EventNotStarted = 4,
|
||||
EventAlreadyFinished = 5,
|
||||
BlockedFromRoom = 7,
|
||||
JuniorNotAllowed = 11,
|
||||
Banned = 12,
|
||||
AlreadyInBestInstance = 13,
|
||||
InsufficientRelationship = 14,
|
||||
UpdateRequired = 16,
|
||||
AlreadyInTargetInstance,
|
||||
UGCNotAllowed = 19,
|
||||
NoSuchRoom = 20,
|
||||
RoomIsNotActive = 22,
|
||||
RoomBlockedByCreator = 23,
|
||||
RoomIsPrivate = 25,
|
||||
RoomInstanceIsPrivate = 26,
|
||||
DeviceClassNotSupported = 30,
|
||||
DeviceClassNotSupportedByRoomOwner = 31,
|
||||
MovementModeNotSupportedByRoomOwner = 32,
|
||||
EventIsPrivate = 35,
|
||||
RoomInviteExpired = 40,
|
||||
NoAvailableRegion = 45,
|
||||
NotorietyTooPoor = 50,
|
||||
BannedFromRoom = 55,
|
||||
NoSuchRoomPlaylist = 60,
|
||||
RoomPlaylistIsNotActive,
|
||||
RoomPlaylistIsPrivate,
|
||||
NoSuchClub = 70,
|
||||
ClubHasNoClubhouse = 71,
|
||||
ClubIsNotActive = 73,
|
||||
NotAMemberOfClub = 74,
|
||||
BannedFromClub = 75,
|
||||
InstanceJoinNotPermitted = 76,
|
||||
LevelTooLow = 77,
|
||||
DeveloperOnly = 81,
|
||||
MetaJuniorAccountRestriction = 83,
|
||||
AccountDoesNotExist = 85
|
||||
}
|
||||
|
||||
public enum DeviceClasses
|
||||
{
|
||||
Unknown,
|
||||
VR,
|
||||
Screen,
|
||||
Mobile,
|
||||
VRLow,
|
||||
Quest2
|
||||
}
|
||||
|
||||
public enum CurrencyType
|
||||
{
|
||||
Invalid,
|
||||
LaserTagTickets,
|
||||
RecCenterTokens = 2,
|
||||
LostSkullsGold = 100,
|
||||
DraculaSilver,
|
||||
RecRoyale_Season1 = 200,
|
||||
RoomCurrency = 300
|
||||
}
|
||||
|
||||
public enum BalanceType
|
||||
{
|
||||
NonPurchasedNotUsableInP2P = -2,
|
||||
NonPurchasedDefault,
|
||||
SteamPurchased,
|
||||
OculusPurchased,
|
||||
PlayStationPurchased,
|
||||
MicrosoftPurchased,
|
||||
IOSPurchased = 5,
|
||||
GooglePlayPurchased,
|
||||
PlayStationNonPurchasedP2P = 100,
|
||||
NonPlayStationNonPurchasedP2P,
|
||||
NonPurchasedEarnedByP2P = 1000
|
||||
}
|
||||
|
||||
public enum StatusVisibility
|
||||
{
|
||||
Online,
|
||||
Away,
|
||||
Offline,
|
||||
Unknown = 100
|
||||
}
|
||||
|
||||
public enum RoomInstanceType
|
||||
{
|
||||
Public,
|
||||
Private,
|
||||
Dormroom,
|
||||
Event,
|
||||
Meetup,
|
||||
Clubhouse
|
||||
}
|
||||
|
||||
public enum HileType
|
||||
{
|
||||
Obscured,
|
||||
Time,
|
||||
Inject,
|
||||
GiftCount,
|
||||
Engine,
|
||||
UnknownDll,
|
||||
ImageSignature,
|
||||
AvatarHack,
|
||||
NetworkCertificatePublicKey = 100,
|
||||
NetworkCertificateIssuer,
|
||||
NetworkCertificateMissing,
|
||||
NetworkCertificateMismatch,
|
||||
AutosaveChecksumMismatch = 150,
|
||||
AutosaveSubRoomIdMismatch,
|
||||
AutosaveChecksumException,
|
||||
Photon_MissingHash = 200,
|
||||
Photon_CorruptHash,
|
||||
Photon_DifferentHash = 203,
|
||||
AppData_Runtime_LengthMismatch = 300,
|
||||
AppData_Runtime_LastWriteTimeMismatch,
|
||||
AppData_Runtime_FileModified,
|
||||
AppData_Boot_InvalidSignature = 310,
|
||||
AppData_Boot_UnableToVerifySignatures,
|
||||
Config_MissingHash = 320,
|
||||
Config_DifferentHash,
|
||||
Photon_InstantiateTool = 400,
|
||||
Memory_Hash_Mismatch = 500,
|
||||
Driver_Invalid_Signature = 600
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class RRPlus
|
||||
{
|
||||
public class SubscriptionResponse
|
||||
{
|
||||
[JsonPropertyOrder(1)]
|
||||
public Subscription subscription { get; set; }
|
||||
|
||||
[JsonPropertyOrder(2)]
|
||||
public ulong? platformAccountSubscribedPlayerId { get; set; }
|
||||
}
|
||||
|
||||
public class Subscription
|
||||
{
|
||||
[JsonPropertyOrder(1)] public int subscriptionId { get; set; }
|
||||
[JsonPropertyOrder(2)] public ulong recNetPlayerId { get; set; }
|
||||
[JsonPropertyOrder(3)] public int platformType { get; set; }
|
||||
[JsonPropertyOrder(4)] public string platformId { get; set; }
|
||||
[JsonPropertyOrder(5)] public string platformPurchaseId { get; set; }
|
||||
[JsonPropertyOrder(6)] public object? @event { get; set; }
|
||||
[JsonPropertyOrder(7)] public int type { get; set; }
|
||||
[JsonPropertyOrder(8)] public int level { get; set; }
|
||||
[JsonPropertyOrder(9)] public int period { get; set; }
|
||||
[JsonPropertyOrder(10)] public DateTime expirationDate { get; set; }
|
||||
[JsonPropertyOrder(11)] public bool isAutoRenewing { get; set; }
|
||||
[JsonPropertyOrder(12)] public DateTime createdAt { get; set; }
|
||||
[JsonPropertyOrder(13)] public DateTime modifiedAt { get; set; }
|
||||
}
|
||||
|
||||
public enum SubscriptionLevel
|
||||
{
|
||||
Gold,
|
||||
Platinum,
|
||||
}
|
||||
|
||||
public enum SubscriptionPeriod
|
||||
{
|
||||
Month,
|
||||
Year,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using LiteDB;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class ReportsDBClasses
|
||||
{
|
||||
public class BugReport
|
||||
{
|
||||
[BsonId]
|
||||
public string ReportId { get; set; }
|
||||
public long PlayerId { get; set; }
|
||||
public string TriggerId { get; set; }
|
||||
public int TriggerType { get; set; }
|
||||
public DateTime TriggeredAt { get; set; }
|
||||
public string Title { get; set; }
|
||||
public string Description { get; set; }
|
||||
public string TraceLogPath { get; set; }
|
||||
public string GameScreenshotPath { get; set; }
|
||||
public bool IsCompleted { get; set; } = false;
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public class ReportInitializationRequest
|
||||
{
|
||||
public ClientInfo Client { get; set; }
|
||||
public string ReportId { get; set; }
|
||||
}
|
||||
|
||||
public class ClientInfo
|
||||
{
|
||||
public string TriggerId { get; set; }
|
||||
public int TriggerType { get; set; }
|
||||
public DateTime TriggeredAt { get; set; }
|
||||
}
|
||||
|
||||
public class ReportUserInfoRequest
|
||||
{
|
||||
public string Title { get; set; }
|
||||
public string Description { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using LiteDB;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class RoomCommentsDBClasses
|
||||
{
|
||||
public class RoomComment
|
||||
{
|
||||
[BsonId]
|
||||
public long commentId { get; set; }
|
||||
public long subRoomId { get; set; }
|
||||
public long roomId { get; set; }
|
||||
public long accountId { get; set; }
|
||||
public DateTime createdAt { get; set; } = DateTime.UtcNow;
|
||||
public float positionX { get; set; }
|
||||
public float positionY { get; set; }
|
||||
public float positionZ { get; set; }
|
||||
public string message { get; set; } = "";
|
||||
public int style { get; set; } = 0;
|
||||
public bool unread { get; set; } = true;
|
||||
}
|
||||
|
||||
public class CreateCommentRequest
|
||||
{
|
||||
public string message { get; set; } = "";
|
||||
public long subRoomId { get; set; }
|
||||
public int style { get; set; } = 0;
|
||||
public float positionX { get; set; }
|
||||
public float positionY { get; set; }
|
||||
public float positionZ { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
using LiteDB;
|
||||
using System;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class RoomConsumablesDBClasses
|
||||
{
|
||||
/// <summary>
|
||||
/// A creator-made consumable for sale in a room's shop.
|
||||
/// The client identifies these purely by GUID, so the GUID is the primary key.
|
||||
/// </summary>
|
||||
public class RoomConsumable
|
||||
{
|
||||
[BsonId]
|
||||
public Guid RoomConsumableId { get; set; } = Guid.NewGuid();
|
||||
public long RoomId { get; set; }
|
||||
public long CreatorPlayerId { get; set; }
|
||||
public string Name { get; set; } = "";
|
||||
public string? Description { get; set; }
|
||||
public string? ImageName { get; set; }
|
||||
public int Price { get; set; }
|
||||
|
||||
/// <summary>Room currency the item is priced in; null means it is priced in tokens.</summary>
|
||||
public Guid? CurrencyId { get; set; }
|
||||
|
||||
/// <summary>Soft delete — players may still hold deleted items in inventory.</summary>
|
||||
public bool IsDeleted { get; set; }
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
public DateTime ModifiedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
/// <summary>One player's stack of one consumable.</summary>
|
||||
public class RoomConsumableOwnership
|
||||
{
|
||||
[BsonId]
|
||||
public long Id { get; set; }
|
||||
public long PlayerId { get; set; }
|
||||
public Guid RoomConsumableId { get; set; }
|
||||
public int Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Client-generated token guarding consume/purchase races. The client adopts the
|
||||
/// NewConcurrencyCode it sent regardless of what the response echoes back, so this
|
||||
/// must be stored verbatim or the next consume fails with ConcurrencyCodeMismatch.
|
||||
/// </summary>
|
||||
public Guid ConcurrencyCode { get; set; } = Guid.NewGuid();
|
||||
public DateTime ModifiedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A player's balance of one room currency. Vanadium has no room-currency registry yet
|
||||
/// (see RoomConsumablesController.PurchaseCurrency), so this exists to make
|
||||
/// currency-priced purchases work once one is added.
|
||||
/// </summary>
|
||||
public class RoomCurrencyBalance
|
||||
{
|
||||
[BsonId]
|
||||
public long Id { get; set; }
|
||||
public long PlayerId { get; set; }
|
||||
public Guid CurrencyId { get; set; }
|
||||
public int Balance { get; set; }
|
||||
public DateTime ModifiedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,287 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using LiteDB;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class RoomDBClasses
|
||||
{
|
||||
public class Room
|
||||
{
|
||||
[BsonId]
|
||||
public long RoomId { get; set; }
|
||||
public bool IsDorm { get; set; }
|
||||
public int MaxPlayerCalculationMode { get; set; }
|
||||
public int MaxPlayers { get; set; }
|
||||
public bool CloningAllowed { get; set; }
|
||||
public bool DisableMicAutoMute { get; set; }
|
||||
public bool DisableRoomComments { get; set; }
|
||||
public bool EncryptVoiceChat { get; set; }
|
||||
public bool ToxmodEnabled { get; set; }
|
||||
public bool LoadScreenLocked { get; set; }
|
||||
public int PersistenceVersion { get; set; }
|
||||
public int? UgcSubVersion { get; set; }
|
||||
public int? UgcVersion { get; set; }
|
||||
public bool AutoLocalizeRoom { get; set; }
|
||||
public bool IsDeveloperOwned { get; set; }
|
||||
public bool IsRRO { get; set; }
|
||||
public bool IsRecRoomApproved { get; set; }
|
||||
public bool IsJuniorCreated { get; set; }
|
||||
public bool IsPlacePlay { get; set; }
|
||||
public bool ExcludeFromLists { get; set; }
|
||||
public bool ExcludeFromSearch { get; set; }
|
||||
public string Name { get; set; }
|
||||
//public string? DisplayName { get; set; } // remove this already, we do NOT need this gng
|
||||
public string? Description { get; set; }
|
||||
public string ImageName { get; set; }
|
||||
public WarningMaskType WarningMask { get; set; }
|
||||
public string? CustomWarning { get; set; }
|
||||
public long CreatorAccountId { get; set; }
|
||||
public RoomState? State { get; set; }
|
||||
public RoomAccessibility Accessibility { get; set; }
|
||||
public bool SupportsLevelVoting { get; set; }
|
||||
public bool SupportsScreens { get; set; }
|
||||
public bool SupportsWalkVR { get; set; }
|
||||
public bool SupportsTeleportVR { get; set; }
|
||||
public bool SupportsVRLow { get; set; }
|
||||
public bool SupportsQuest2 { get; set; }
|
||||
public bool SupportsMobile { get; set; }
|
||||
public bool SupportsJuniors { get; set; }
|
||||
public int MinLevel { get; set; }
|
||||
public int? MinUgcSubVersion { get; set; }
|
||||
public int AgeRating { get; set; }
|
||||
public DateTime CreatedAt { get; set; }
|
||||
public DateTime PublishedAt { get; set; }
|
||||
public DateTime? BecameRRStudioRoomAt { get; set; }
|
||||
public Stats Stats { get; set; } = new Stats();
|
||||
public string? RankedEntityId { get; set; }
|
||||
public object? RankingContext { get; set; }
|
||||
public string? DataBlob { get; set; }
|
||||
public string? CurrentSnapshotId { get; set; }
|
||||
public bool NeedsSnapshotId { get; set; }
|
||||
public bool ShouldAutoStageSaves { get; set; }
|
||||
public List<SubRooms> SubRooms { get; set; } = new List<SubRooms>();
|
||||
public List<Roles> Roles { get; set; } = new List<Roles>();
|
||||
public List<Tags> Tags { get; set; } = new List<Tags>();
|
||||
public List<string> PromoImages { get; set; } = new List<string>();
|
||||
public List<PromoExternalContent> PromoExternalContent { get; set; } = new List<PromoExternalContent>();
|
||||
public List<LoadScreens> LoadScreens { get; set; } = new List<LoadScreens>();
|
||||
public List<string> RestrictedCircuitsAllowListNames { get; set; } = new List<string>();
|
||||
public LocalizationContext? LocalizationContext { get; set; }
|
||||
public RoomBanDetails? RoomBanDetails { get; set; }
|
||||
public bool ExperienceEnabled { get; set; }
|
||||
public int ExperienceDailyLimit { get; set; }
|
||||
}
|
||||
|
||||
public class SubRooms
|
||||
{
|
||||
public long SubRoomId { get; set; }
|
||||
public long RoomId { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string? DataBlob { get; set; }
|
||||
public bool IsSandbox { get; set; }
|
||||
public int MaxPlayers { get; set; }
|
||||
public RoomAccessibility Accessibility { get; set; }
|
||||
public string UnitySceneId { get; set; }
|
||||
public long SavedByAccountId { get; set; }
|
||||
public bool ShouldAutoStageSaves { get; set; }
|
||||
public long? StagedSubRoomDataSaveId { get; set; }
|
||||
public int LastModeratedSaveModerationState { get; set; }
|
||||
public long? CreatorAccountId { get; set; }
|
||||
public currentSave? CurrentSave { get; set; }
|
||||
public List<PermissionEntry> Permissions { get; set; } = new();
|
||||
}
|
||||
|
||||
public class PermissionEntry
|
||||
{
|
||||
public string Permission { get; set; }
|
||||
public Role Role { get; set; }
|
||||
public int Type { get; set; }
|
||||
public bool Override { get; set; }
|
||||
public string Value { get; set; }
|
||||
}
|
||||
|
||||
public class DbCounters
|
||||
{
|
||||
[BsonId]
|
||||
public string Key { get; set; }
|
||||
public long Value { get; set; }
|
||||
}
|
||||
|
||||
public class currentSave
|
||||
{
|
||||
[BsonId]
|
||||
public long SubRoomDataSaveId { get; set; }
|
||||
public long SubRoomId { get; set; }
|
||||
public long RoomId { get; set; }
|
||||
public string DataBlob { get; set; }
|
||||
public string DataBlobHash { get; set; }
|
||||
public List<string> ReferencedUnityAssetIds { get; set; } = new();
|
||||
public List<string> UnitySubAssets { get; set; } = new();
|
||||
public List<string> ReferencedUnityAssets { get; set; } = new();
|
||||
public string? UnityAssetId { get; set; }
|
||||
public int PersistenceVersion { get; set; }
|
||||
public int OMVersion { get; set; }
|
||||
public int UgcSubVersion { get; set; }
|
||||
public long? SavedByAccountId { get; set; }
|
||||
public int? SavedOnPlatform { get; set; }
|
||||
public int? SavedOnDeviceClass { get; set; }
|
||||
public string? Description { get; set; }
|
||||
public List<string> Tags { get; set; } = new();
|
||||
public int ModerationState { get; set; }
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public class Tags
|
||||
{
|
||||
public string Tag { get; set; } = "";
|
||||
public TagType Type { get; set; }
|
||||
}
|
||||
|
||||
public class PromoExternalContent
|
||||
{
|
||||
public PromoExternalContentType Type { get; set; }
|
||||
public required string Reference { get; set; }
|
||||
}
|
||||
|
||||
public class CloneRoomRequest
|
||||
{
|
||||
public string Name { get; set; }
|
||||
}
|
||||
|
||||
public class LoadScreens
|
||||
{
|
||||
public string ImageName { get; set; }
|
||||
public string Title { get; set; }
|
||||
public string Subtitle { get; set; }
|
||||
}
|
||||
|
||||
public class Stats
|
||||
{
|
||||
public int CheerCount { get; set; } = 0;
|
||||
public int FavoriteCount { get; set; } = 0;
|
||||
public int VisitorCount { get; set; } = 0;
|
||||
public int VisitCount { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class Roles
|
||||
{
|
||||
public long AccountId { get; set; }
|
||||
public Role Role { get; set; }
|
||||
public Role InvitedRole { get; set; }
|
||||
public long? LastChangedByAccountId { get; set; }
|
||||
}
|
||||
|
||||
public class LocalizationContext
|
||||
{
|
||||
public List<string> LocalizedFields { get; set; } = new();
|
||||
public string? Scope { get; set; }
|
||||
public string? TargetLocale { get; set; }
|
||||
}
|
||||
|
||||
public class RoomBanDetails
|
||||
{
|
||||
public long AccountId { get; set; }
|
||||
public DateTime? BanEndTime { get; set; }
|
||||
public DateTime BanStartTime { get; set; }
|
||||
public long BannedByAccountId { get; set; }
|
||||
public string? Reason { get; set; }
|
||||
public int Status { get; set; }
|
||||
public long? UnbannedByAccountId { get; set; }
|
||||
}
|
||||
|
||||
public class RoomEditPermission
|
||||
{
|
||||
public bool CanEditRoom { get; set; }
|
||||
public string Error { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
public class SubroomSaveResults
|
||||
{
|
||||
public List<currentSave> Results { get; set; } = new();
|
||||
public int TotalCount { get; set; }
|
||||
}
|
||||
|
||||
public class Resultslist<T>
|
||||
{
|
||||
public List<T>? Results { get; set; }
|
||||
public long TotalResults { get; set; }
|
||||
}
|
||||
|
||||
public class RoomFileData
|
||||
{
|
||||
public string? Filename { get; set; }
|
||||
public string? Hash { get; set; }
|
||||
public string? OwnershipProof { get; set; }
|
||||
}
|
||||
|
||||
public class RoomExperience
|
||||
{
|
||||
public bool Enabled { get; set; }
|
||||
public long Experience { get; set; }
|
||||
public string ConcurrencyCode { get; set; }
|
||||
}
|
||||
|
||||
public enum Role : byte
|
||||
{
|
||||
None,
|
||||
Banned,
|
||||
Host = 10,
|
||||
Moderator = 20,
|
||||
CoOwner = 30,
|
||||
TemporaryCoOwner,
|
||||
Creator = 255
|
||||
}
|
||||
|
||||
[Flags]
|
||||
public enum WarningMaskType
|
||||
{
|
||||
None = 0,
|
||||
Scary = 1,
|
||||
Mature = 2,
|
||||
FlashingLights = 4,
|
||||
IntenseMotion = 8,
|
||||
Violence = 16,
|
||||
Custom = 32,
|
||||
Reports = 64
|
||||
}
|
||||
|
||||
public enum RoomAccessibility
|
||||
{
|
||||
Private,
|
||||
Public,
|
||||
Unlisted,
|
||||
Dev_only,
|
||||
Dev_Unlisted
|
||||
}
|
||||
|
||||
public enum RoomState
|
||||
{
|
||||
Active,
|
||||
PendingJunior = 11,
|
||||
Moderation_PendingReview = 100,
|
||||
Moderation_Closed,
|
||||
MarkedForDelete = 1000
|
||||
}
|
||||
|
||||
public enum TagType
|
||||
{
|
||||
General,
|
||||
Auto,
|
||||
AGOnly,
|
||||
Banned
|
||||
}
|
||||
|
||||
public enum PromoExternalContentType
|
||||
{
|
||||
YouTube
|
||||
}
|
||||
|
||||
public enum JoinMode
|
||||
{
|
||||
PublicMatchmaking,
|
||||
PublicNewInstance,
|
||||
PrivateNewInstance
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
using LiteDB;
|
||||
using System;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class RoomKeysDBClasses
|
||||
{
|
||||
public class RoomKey
|
||||
{
|
||||
[BsonId]
|
||||
public long RoomKeyId { get; set; }
|
||||
public long RoomId { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string? Description { get; set; }
|
||||
public string? ImageName { get; set; }
|
||||
public int Price { get; set; }
|
||||
public string? PurchaseCurrencyId { get; set; }
|
||||
public string ReplicationId { get; set; } = Guid.NewGuid().ToString();
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public class RoomKeyOwnership
|
||||
{
|
||||
[BsonId]
|
||||
public long Id { get; set; }
|
||||
public long PlayerId { get; set; }
|
||||
public long RoomKeyId { get; set; }
|
||||
public bool WasPurchased { get; set; }
|
||||
public DateTime AwardedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public class AwardBulkRequest
|
||||
{
|
||||
public long PlayerId { get; set; }
|
||||
public long RoomKeyId { get; set; }
|
||||
}
|
||||
|
||||
public class RevokeRequest
|
||||
{
|
||||
public long PlayerId { get; set; }
|
||||
public long RoomKeyId { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,214 @@
|
||||
using LiteDB;
|
||||
using static Vanadium.Classes.DBs.DBClasses.PlayerDBClasses;
|
||||
|
||||
namespace Vanadium.Classes.DBs.DBClasses
|
||||
{
|
||||
public class StorefrontsDBClasses
|
||||
{
|
||||
public class StorefrontSaleData
|
||||
{
|
||||
public int DiscountPercent { get; set; }
|
||||
public DateTime SaleStart { get; set; }
|
||||
public DateTime SaleEnd { get; set; }
|
||||
}
|
||||
|
||||
public class StorefrontPrice
|
||||
{
|
||||
public int CurrencyType { get; set; }
|
||||
public int Price { get; set; }
|
||||
public StorefrontSaleData? StorefrontSaleData { get; set; } = null;
|
||||
public int Type { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class GiftDrop
|
||||
{
|
||||
public string AvatarItemDesc { get; set; } = "";
|
||||
public int AvatarItemType { get; set; } = 0;
|
||||
public string ConsumableItemDesc { get; set; } = "";
|
||||
public int Context { get; set; } = 0;
|
||||
public int Currency { get; set; } = 0;
|
||||
public int CurrencyType { get; set; } = 0;
|
||||
public string EquipmentModificationGuid { get; set; } = "";
|
||||
public string EquipmentPrefabName { get; set; } = "";
|
||||
public string FriendlyName { get; set; } = "";
|
||||
public int GiftDropId { get; set; }
|
||||
public bool IsQuery { get; set; } = false;
|
||||
public string ItemSetFriendlyName { get; set; } = "";
|
||||
public int ItemSetId { get; set; } = 0;
|
||||
public int Rarity { get; set; } = 0;
|
||||
public bool SubscribersOnly { get; set; } = false;
|
||||
public string Tooltip { get; set; } = "";
|
||||
public bool Unique { get; set; } = false;
|
||||
}
|
||||
|
||||
public class StoreItem
|
||||
{
|
||||
public GiftDrop? GiftDrop { get; set; }
|
||||
public bool IsFeatured { get; set; } = false;
|
||||
public List<StorefrontPrice> Prices { get; set; } = new();
|
||||
public int PurchasableItemId { get; set; }
|
||||
public List<StorefrontPrice> SubscriberPrices { get; set; } = new();
|
||||
public int Type { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class GiftDropStoreResponse
|
||||
{
|
||||
public DateTime NextUpdate { get; set; }
|
||||
public List<StoreItem> StoreItems { get; set; } = new();
|
||||
public int StorefrontType { get; set; }
|
||||
public int SubscriberDiscountPercent { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class AdCarouselItem
|
||||
{
|
||||
[BsonId]
|
||||
public int AdCarouselItemId { get; set; }
|
||||
public string Description { get; set; } = "";
|
||||
public string ImageName { get; set; } = "";
|
||||
public int? PurchaseReminderId { get; set; } = null;
|
||||
public List<int> PurchasableItemIds { get; set; } = new List<int>();
|
||||
public bool ShowCustomAvatarItemSearch { get; set; } = false;
|
||||
public string Title { get; set; } = "";
|
||||
}
|
||||
|
||||
public class WishlistItem
|
||||
{
|
||||
[BsonId]
|
||||
public string WishlistItemId { get; set; } = Guid.NewGuid().ToString();
|
||||
public long AccountId { get; set; }
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
public int PurchasableItemId { get; set; }
|
||||
}
|
||||
|
||||
public class BuyItemRequest
|
||||
{
|
||||
public string? CouponConsumablePlayerMappingId { get; set; } = null;
|
||||
public int CurrencyType { get; set; }
|
||||
public BuyItemGift? Gift { get; set; } = null;
|
||||
public int PurchasableItemId { get; set; }
|
||||
public int RequestedPrice { get; set; }
|
||||
public int StorefrontType { get; set; }
|
||||
}
|
||||
|
||||
public class BuyItemGift
|
||||
{
|
||||
public long RecipientPlayerId { get; set; }
|
||||
public long? ToPlayerId { get; set; }
|
||||
public string? Message { get; set; }
|
||||
}
|
||||
|
||||
public class TransferableConsumable
|
||||
{
|
||||
[BsonId]
|
||||
public long Id { get; set; }
|
||||
public long PlayerId { get; set; }
|
||||
public string ConsumableItemDesc { get; set; } = "";
|
||||
public int ActiveDurationMinutes { get; set; } = 5;
|
||||
public int Count { get; set; } = 1;
|
||||
public int InitialCount { get; set; } = 0;
|
||||
public bool IsActive { get; set; } = false;
|
||||
public bool IsTransferable { get; set; } = true;
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public class TransferableConsumableGroup
|
||||
{
|
||||
public int ActiveDurationMinutes { get; set; }
|
||||
public string ConsumableItemDesc { get; set; } = "";
|
||||
public int Count { get; set; }
|
||||
public List<DateTime> CreatedAts { get; set; } = new();
|
||||
public List<long> Ids { get; set; } = new();
|
||||
public int InitialCount { get; set; } = 0;
|
||||
public bool IsActive { get; set; } = false;
|
||||
public bool IsTransferable { get; set; } = true;
|
||||
}
|
||||
|
||||
public class BuyForFreeGiftButtonRequest
|
||||
{
|
||||
public int Count { get; set; }
|
||||
public string? CouponConsumablePlayerMappingId { get; set; } = null;
|
||||
public long CreatorPlayerId { get; set; }
|
||||
public int PurchasableItemId { get; set; }
|
||||
}
|
||||
|
||||
public class ConsumableItemDTO
|
||||
{
|
||||
public int ActiveDurationMinutes { get; set; }
|
||||
public string ConsumableItemDesc { get; set; } = "";
|
||||
public int Count { get; set; } = 1;
|
||||
public DateTime CreatedAt { get; set; }
|
||||
public long Id { get; set; }
|
||||
public int InitialCount { get; set; } = 0;
|
||||
public bool IsActive { get; set; } = false;
|
||||
public bool IsTransferable { get; set; } = true;
|
||||
}
|
||||
|
||||
public class ConsumableBalanceUpdate
|
||||
{
|
||||
public List<ConsumableItemDTO> Data { get; set; } = new();
|
||||
public int UpdateResponse { get; set; } = 2;
|
||||
}
|
||||
|
||||
public class BuyForFreeGiftButtonResponse
|
||||
{
|
||||
public int Balance { get; set; }
|
||||
public int BalanceType { get; set; } = -2;
|
||||
public List<ConsumableBalanceUpdate> BalanceUpdates { get; set; } = new();
|
||||
public int CurrencyType { get; set; } = 2;
|
||||
}
|
||||
|
||||
public class BalanceUpdate
|
||||
{
|
||||
public List<GiftsDBClasses.GiftDTO> Data { get; set; } = new();
|
||||
public int UpdateResponse { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class BuyItemResponse
|
||||
{
|
||||
public int Balance { get; set; }
|
||||
public int BalanceType { get; set; } = -2;
|
||||
public List<BalanceUpdate> BalanceUpdates { get; set; } = new();
|
||||
public int CurrencyType { get; set; }
|
||||
}
|
||||
|
||||
public class GameRewardRequest
|
||||
{
|
||||
public string RewardType { get; set; } = "";
|
||||
public string? Message { get; set; }
|
||||
}
|
||||
|
||||
public class RewardSelectionRequest
|
||||
{
|
||||
public int RewardSelectionId { get; set; }
|
||||
public int GiftDropId { get; set; }
|
||||
}
|
||||
|
||||
public class RewardSelectionResponse
|
||||
{
|
||||
public string AvatarItemDesc { get; set; } = "";
|
||||
public int AvatarItemType { get; set; } = 0;
|
||||
public string ConsumableItemDesc { get; set; } = "";
|
||||
public int Context { get; set; }
|
||||
public int Currency { get; set; } = 0;
|
||||
public int CurrencyType { get; set; } = 0;
|
||||
public string EquipmentModificationGuid { get; set; } = "";
|
||||
public string EquipmentPrefabName { get; set; } = "";
|
||||
public string FriendlyName { get; set; } = "";
|
||||
public int GiftDropId { get; set; }
|
||||
public bool IsQuery { get; set; } = false;
|
||||
public string ItemSetFriendlyName { get; set; } = "";
|
||||
public int ItemSetId { get; set; } = 1;
|
||||
public int Rarity { get; set; } = 0;
|
||||
public bool SubscribersOnly { get; set; } = false;
|
||||
public string Tooltip { get; set; } = "";
|
||||
public bool Unique { get; set; } = false;
|
||||
}
|
||||
|
||||
public class SuccessResult
|
||||
{
|
||||
public string error { get; set; } = "";
|
||||
public bool success { get; set; } = true;
|
||||
public object? value { get; set; } = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user