diff --git a/packages/api/src/nitro/localization/ILocalizationManager.ts b/packages/api/src/nitro/localization/ILocalizationManager.ts index 86070d0..d709957 100644 --- a/packages/api/src/nitro/localization/ILocalizationManager.ts +++ b/packages/api/src/nitro/localization/ILocalizationManager.ts @@ -8,6 +8,8 @@ getValueWithParameter(key: string, parameter: string, replacement: string): string; getValueWithParameters(key: string, parameters: string[], replacements: string[]): string; setValue(key: string, value: string): void; + setOverrideValues(values: Map): void; + clearOverrideValues(): void; registerParameter(key: string, parameter: string, value: string): void; getBadgeName(key: string): string; getBadgeDesc(key: string): string; diff --git a/packages/api/src/nitro/session/IRoomUserData.ts b/packages/api/src/nitro/session/IRoomUserData.ts index 2892305..4e3e595 100644 --- a/packages/api/src/nitro/session/IRoomUserData.ts +++ b/packages/api/src/nitro/session/IRoomUserData.ts @@ -11,6 +11,13 @@ export interface IRoomUserData sex: string; figure: string; custom: string; + nickIcon: string; + prefixText: string; + prefixColor: string; + prefixIcon: string; + prefixEffect: string; + prefixFont: string; + displayOrder: string; webID: number; groupId: number; groupName: string; diff --git a/packages/api/src/nitro/session/ISessionDataManager.ts b/packages/api/src/nitro/session/ISessionDataManager.ts index 9529473..26947e6 100644 --- a/packages/api/src/nitro/session/ISessionDataManager.ts +++ b/packages/api/src/nitro/session/ISessionDataManager.ts @@ -8,6 +8,8 @@ export interface ISessionDataManager { init(): Promise; getAllFurnitureData(): IFurnitureData[]; + applyFurnitureDataOverrides(url: string): Promise; + clearFurnitureDataOverrides(): void; getFloorItemData(id: number): IFurnitureData; getFloorItemDataByName(name: string): IFurnitureData; getWallItemData(id: number): IFurnitureData; diff --git a/packages/api/src/nitro/session/IUserDataManager.ts b/packages/api/src/nitro/session/IUserDataManager.ts index a16e793..b854be0 100644 --- a/packages/api/src/nitro/session/IUserDataManager.ts +++ b/packages/api/src/nitro/session/IUserDataManager.ts @@ -16,6 +16,9 @@ export interface IUserDataManager updateFigure(roomIndex: number, figure: string, sex: string, hasSaddle: boolean, isRiding: boolean): void; updateName(roomIndex: number, name: string): void; updateMotto(roomIndex: number, custom: string): void; + updateNickIcon(roomIndex: number, nickIcon: string): void; + updateCustomization(roomIndex: number, nickIcon: string, prefixText: string, prefixColor: string, prefixIcon: string, prefixEffect: string, prefixFont: string, displayOrder: string): void; + updateBackground(roomIndex: number, background: number, stand: number, overlay: number, cardBackground?: number): void; updateAchievementScore(roomIndex: number, score: number): void; updatePetLevel(roomIndex: number, level: number): void; updatePetBreedingStatus(roomIndex: number, canBreed: boolean, canHarvest: boolean, canRevive: boolean, hasBreedingPermission: boolean): void; diff --git a/packages/communication/src/NitroMessages.ts b/packages/communication/src/NitroMessages.ts index 469995a..3caca87 100644 --- a/packages/communication/src/NitroMessages.ts +++ b/packages/communication/src/NitroMessages.ts @@ -1,9 +1,12 @@ import { IMessageConfiguration } from '@nitrots/api'; -import { AcceptFriendMessageComposer, AcceptFriendResultEvent, AcceptGameInviteMessageComposer, AcceptQuestMessageComposer, AccountSafetyLockStatusChangeMessageEvent, AchievementEvent, AchievementNotificationMessageEvent, AchievementResolutionCompletedMessageEvent, AchievementResolutionProgressMessageEvent, AchievementResolutionsMessageEvent, AchievementsEvent, AchievementsScoreEvent, ActivateQuestMessageComposer, ActivityPointNotificationMessageEvent, AddFavouriteRoomMessageComposer, AddJukeboxDiskComposer, AddSpamWallPostItMessageComposer, ApplySnapshotMessageComposer, ApplyTonerComposer, ApproveAllMembershipRequestsMessageComposer, ApproveNameMessageComposer, ApproveNameMessageEvent, AreaHideMessageEvent, AuthenticatedEvent, AuthenticationMessageComposer, AvailabilityStatusMessageEvent, AvailabilityTimeMessageEvent, AvailableCommandsEvent, AvatarEffectActivatedComposer, AvatarEffectActivatedEvent, AvatarEffectAddedEvent, AvatarEffectExpiredEvent, AvatarEffectSelectedComposer, AvatarEffectSelectedEvent, AvatarEffectsEvent, BadgePointLimitsEvent, BadgeReceivedEvent, BadgesEvent, BannedUsersFromRoomEvent, BonusRareInfoMessageEvent, BotAddedToInventoryEvent, BotCommandConfigurationEvent, BotErrorEvent, BotForceOpenContextMenuEvent, BotInventoryMessageEvent, BotPlaceComposer, BotReceivedMessageEvent, BotRemoveComposer, BotRemovedFromInventoryEvent, BotSkillListUpdateEvent, BotSkillSaveComposer, BreedPetsMessageComposer, BuildersClubFurniCountMessageEvent, BuildersClubPlaceRoomItemMessageComposer, BuildersClubPlaceWallItemMessageComposer, BuildersClubQueryFurniCountMessageComposer, BuildersClubSubscriptionStatusMessageEvent, BundleDiscountRulesetMessageEvent, BuyMarketplaceOfferMessageComposer, BuyMarketplaceTokensMessageComposer, CallForHelpDisabledNotifyMessageEvent, CallForHelpFromForumMessageMessageComposer, CallForHelpFromForumThreadMessageComposer, CallForHelpFromIMMessageComposer, CallForHelpFromPhotoMessageComposer, CallForHelpFromSelfieMessageComposer, CallForHelpMessageComposer, CallForHelpPendingCallsDeletedMessageEvent, CallForHelpPendingCallsMessageEvent, CallForHelpReplyMessageEvent, CallForHelpResultMessageEvent, CameraPublishStatusMessageEvent, CameraPurchaseOKMessageEvent, CameraSnapshotMessageEvent, CameraStorageUrlMessageEvent, CampaignCalendarDataMessageEvent, CampaignCalendarDoorOpenedMessageEvent, CancelEventMessageComposer, CancelMarketplaceOfferMessageComposer, CancelMysteryBoxWaitMessageEvent, CancelPetBreedingComposer, CancelQuestMessageComposer, CanCreateRoomEvent, CanCreateRoomEventEvent, CanCreateRoomMessageComposer, CatalogAdminCreateOfferComposer, CatalogAdminCreatePageComposer, CatalogAdminDeleteOfferComposer, CatalogAdminDeletePageComposer, CatalogAdminMoveOfferComposer, CatalogAdminMovePageComposer, CatalogAdminPublishComposer, CatalogAdminResultEvent, CatalogAdminSaveOfferComposer, CatalogAdminSavePageComposer, CatalogGroupsComposer, CatalogPageExpirationEvent, CatalogPageMessageEvent, CatalogPagesListEvent, CatalogPageWithEarliestExpiryMessageEvent, CatalogPublishedMessageEvent, CategoriesWithVisitorCountEvent, CfhChatlogEvent, CfhSanctionMessageEvent, CfhTopicsInitEvent, ChangeEmailComposer, ChangeEmailResultEvent, ChangeQueueMessageComposer, ChangeUserNameMessageComposer, ChangeUserNameResultMessageEvent, ChatReviewGuideDecidesOnOfferMessageComposer, ChatReviewGuideDetachedMessageComposer, ChatReviewGuideVoteMessageComposer, ChatReviewSessionCreateMessageComposer, ChatReviewSessionDetachedMessageEvent, ChatReviewSessionOfferedToGuideMessageEvent, ChatReviewSessionResultsMessageEvent, ChatReviewSessionStartedMessageEvent, ChatReviewSessionVotingStatusMessageEvent, CheckUserNameMessageComposer, CheckUserNameResultMessageEvent, ClickFurniMessageComposer, ClientHelloMessageComposer, ClientPingEvent, CloseIssueDefaultActionMessageComposer, CloseIssuesMessageComposer, ClubGiftInfoEvent, ClubGiftNotificationEvent, ClubGiftSelectedEvent, CommunityGoalEarnedPrizesMessageEvent, CommunityGoalHallOfFameMessageEvent, CommunityGoalProgressMessageEvent, CommunityGoalVoteMessageComposer, CommunityGoalVoteMessageEvent, CompetitionEntrySubmitResultEvent, CompetitionRoomsDataMessageEvent, CompetitionRoomsSearchMessageComposer, CompetitionStatusMessageEvent, CompetitionVotingInfoMessageEvent, CompleteDiffieHandshakeEvent, CompleteDiffieHandshakeMessageComposer, CompostPlantMessageComposer, ConcurrentUsersGoalProgressMessageEvent, ConfirmPetBreedingComposer, ConnectionErrorEvent, ControlYoutubeDisplayPlaybackMessageComposer, ConvertedRoomIdEvent, ConvertGlobalRoomIdMessageComposer, CraftableProductsEvent, CraftComposer, CraftingRecipeEvent, CraftingRecipesAvailableEvent, CraftingResultEvent, CraftSecretComposer, CreateFlatMessageComposer, CurrentTimingCodeMessageEvent, CustomUserNotificationMessageEvent, DeclineFriendMessageComposer, DefaultSanctionMessageComposer, DeleteBadgeMessageComposer, DeleteFavouriteRoomMessageComposer, DeleteItemMessageComposer, DeletePendingCallsForHelpMessageComposer, DeletePetMessageComposer, DesktopViewComposer, DesktopViewEvent, DiceValueMessageEvent, DirectSMSClubBuyAvailableMessageEvent, DisconnectMessageComposer, DisconnectReasonEvent, DoorbellMessageEvent, EditEventMessageComposer, ElementPointerMessageEvent, EmailStatusResultEvent, EpicPopupMessageEvent, ExtendedProfileChangedMessageEvent, ExtendRentOrBuyoutFurniMessageComposer, ExtendRentOrBuyoutStripItemMessageComposer, FavoriteMembershipUpdateMessageEvent, FavouriteChangedEvent, FavouritesEvent, FigureSetIdsMessageEvent, FigureUpdateEvent, FindFriendsProcessResultEvent, FindNewFriendsMessageComposer, FireworkChargeDataEvent, FlatAccessDeniedMessageEvent, FlatControllerAddedEvent, FlatControllerRemovedEvent, FlatControllersEvent, FlatCreatedEvent, FloodControlEvent, FloorHeightMapEvent, FollowFriendFailedEvent, FollowFriendMessageComposer, ForumDataMessageEvent, ForumsListMessageEvent, ForwardToACompetitionRoomMessageComposer, ForwardToARandomPromotedRoomMessageComposer, ForwardToASubmittableRoomMessageComposer, ForwardToRandomCompetitionRoomMessageComposer, ForwardToSomeRoomMessageComposer, FriendFurniConfirmLockMessageComposer, FriendListFragmentEvent, FriendListUpdateComposer, FriendListUpdateEvent, FriendNotificationEvent, FriendRequestQuestCompleteMessageComposer, FriendRequestsEvent, FurniRentOrBuyoutOfferMessageEvent, FurnitureAliasesComposer, FurnitureAliasesEvent, FurnitureColorWheelComposer, FurnitureDataEvent, FurnitureDiceActivateComposer, FurnitureDiceDeactivateComposer, FurnitureExchangeComposer, FurnitureFloorAddEvent, FurnitureFloorEvent, FurnitureFloorRemoveEvent, FurnitureFloorUpdateComposer, FurnitureFloorUpdateEvent, FurnitureGroupInfoComposer, FurnitureListAddOrUpdateEvent, FurnitureListComposer, FurnitureListEvent, FurnitureListInvalidateEvent, FurnitureListRemovedEvent, FurnitureMannequinSaveLookComposer, FurnitureMannequinSaveNameComposer, FurnitureMultiStateComposer, FurnitureOneWayDoorComposer, FurniturePickupAllComposer, FurniturePickupComposer, FurniturePlaceComposer, FurniturePlacePaintComposer, FurniturePostItPlaceComposer, FurniturePostItPlacedEvent, FurnitureRandomStateComposer, FurnitureStackHeightComposer, FurnitureStackHeightEvent, FurnitureWallAddEvent, FurnitureWallEvent, FurnitureWallMultiStateComposer, FurnitureWallRemoveEvent, FurnitureWallUpdateComposer, FurnitureWallUpdateEvent, FurniEditorBySpriteComposer, FurniEditorDeleteComposer, FurniEditorDetailComposer, FurniEditorDetailResultEvent, FurniEditorInteractionsComposer, FurniEditorInteractionsResultEvent, FurniEditorResultEvent, FurniEditorSearchComposer, FurniEditorSearchResultEvent, FurniEditorUpdateComposer, Game2AccountGameStatusMessageEvent, Game2CheckGameDirectoryStatusMessageComposer, Game2ExitGameMessageComposer, Game2GameChatMessageComposer, Game2GameDirectoryStatusMessageEvent, Game2GetAccountGameStatusMessageComposer, Game2GetWeeklyFriendsLeaderboardComposer, Game2GetWeeklyLeaderboardComposer, Game2InArenaQueueMessageEvent, Game2JoiningGameFailedMessageEvent, Game2LoadStageReadyMessageComposer, Game2PlayAgainMessageComposer, Game2RequestFullStatusUpdateMessageComposer, Game2StartingGameFailedMessageEvent, Game2StopCounterMessageEvent, Game2UserLeftGameMessageEvent, Game2WeeklyFriendsLeaderboardEvent, Game2WeeklyLeaderboardEvent, GameAchievementsMessageEvent, GameInviteMessageEvent, GameListMessageEvent, GameStatusMessageEvent, GameUnloadedMessageComposer, GenericErrorEvent, GetBadgePointLimitsComposer, GetBonusRareInfoMessageComposer, GetBotInventoryComposer, GetBundleDiscountRulesetComposer, GetCatalogIndexComposer, GetCatalogPageComposer, GetCatalogPageExpirationComposer, GetCatalogPageWithEarliestExpiryComposer, GetCategoriesWithUserCountMessageComposer, GetCfhChatlogMessageComposer, GetCfhStatusMessageComposer, GetClubGiftInfo, GetClubOffersMessageComposer, GetCommunityGoalEarnedPrizesMessageComposer, GetCommunityGoalHallOfFameMessageComposer, GetCommunityGoalProgressMessageComposer, GetConcurrentUsersGoalProgressMessageComposer, GetConcurrentUsersRewardMessageComposer, GetCraftableProductsComposer, GetCraftingRecipeComposer, GetCraftingRecipesAvailableComposer, GetCurrentTimingCodeMessageComposer, GetCustomRoomFilterMessageComposer, GetDailyQuestMessageComposer, GetDirectClubBuyAvailableComposer, GetEmailStatusComposer, GetExtendedProfileByNameMessageComposer, GetFaqCategoryMessageComposer, GetFaqTextMessageComposer, GetForumsListMessageComposer, GetForumStatsMessageComposer, GetFriendRequestsComposer, GetGameAchievementsMessageComposer, GetGameListMessageComposer, GetGameStatusMessageComposer, GetGiftMessageComposer, GetGiftWrappingConfigurationComposer, GetGuestRoomMessageComposer, GetGuestRoomResultEvent, GetGuideReportingStatusMessageComposer, GetHabboBasicMembershipExtendOfferComposer, GetHabboClubExtendOfferMessageComposer, GetHabboGroupBadgesMessageComposer, GetIgnoredUsersComposer, GetInterstitialMessageComposer, GetIsBadgeRequestFulfilledComposer, GetIsOfferGiftableComposer, GetIsUserPartOfCompetitionMessageComposer, GetItemDataComposer, GetJukeboxPlayListMessageComposer, GetLimitedOfferAppearingNextComposer, GetMarketplaceCanMakeOfferComposer, GetMarketplaceConfigurationMessageComposer, GetMarketplaceItemStatsComposer, GetMarketplaceOffersMessageComposer, GetMarketplaceOwnOffersMessageComposer, GetMessagesMessageComposer, GetModeratorRoomInfoMessageComposer, GetModeratorUserInfoMessageComposer, GetNextTargetedOfferComposer, GetNowPlayingMessageComposer, GetOccupiedTilesMessageComposer, GetOfficialRoomsMessageComposer, GetOfficialSongIdMessageComposer, GetPendingCallsForHelpMessageComposer, GetPetCommandsComposer, GetPopularRoomTagsMessageComposer, GetProductOfferComposer, GetPromoArticlesComposer, GetQuestsMessageComposer, GetQuizQuestionsComposer, GetRecyclerStatusMessageComposer, GetRentOrBuyoutOfferMessageComposer, GetResolutionAchievementsMessageComposer, GetRoomAdPurchaseInfoComposer, GetRoomChatlogMessageComposer, GetRoomEntryDataMessageComposer, GetRoomEntryTileMessageComposer, GetRoomVisitsMessageComposer, GetSeasonalCalendarDailyOfferComposer, GetSeasonalQuestsOnlyMessageComposer, GetSecondsUntilMessageComposer, GetSellablePetPalettesComposer, GetSongInfoMessageComposer, GetSoundMachinePlayListMessageComposer, GetSoundSettingsComposer, GetTalentTrackLevelMessageComposer, GetTargetedOfferComposer, GetThreadMessageComposer, GetThreadsMessageComposer, GetUnreadForumsCountMessageComposer, GetUserChatlogMessageComposer, GetUserEventCatsMessageComposer, GetUserFlatCatsMessageComposer, GetUserGameAchievementsMessageComposer, GetUserSongDisksMessageComposer, GetUserTagsComposer, GetWardrobeMessageComposer, GetWeeklyGameRewardComposer, GetWeeklyGameRewardWinnersComposer, GetYoutubeDisplayStatusMessageComposer, GiftReceiverNotFoundEvent, GiftWrappingConfigurationEvent, GotMysteryBoxPrizeMessageEvent, GoToFlatMessageComposer, GroupAdminGiveComposer, GroupAdminTakeComposer, GroupBadgePartsComposer, GroupBadgePartsEvent, GroupBuyComposer, GroupBuyDataComposer, GroupBuyDataEvent, GroupConfirmMemberRemoveEvent, GroupConfirmRemoveMemberComposer, GroupDeleteComposer, GroupDetailsChangedMessageEvent, GroupFavoriteComposer, GroupFurniContextMenuInfoMessageEvent, GroupInformationComposer, GroupInformationEvent, GroupJoinComposer, GroupMembersComposer, GroupMembersEvent, GroupMembershipAcceptComposer, GroupMembershipDeclineComposer, GroupMembershipRequestedMessageEvent, GroupPurchasedEvent, GroupRemoveMemberComposer, GroupSaveBadgeComposer, GroupSaveColorsComposer, GroupSaveInformationComposer, GroupSavePreferencesComposer, GroupSettingsComposer, GroupSettingsEvent, GroupUnfavoriteComposer, GuestRoomSearchResultEvent, GuideOnDutyStatusMessageEvent, GuideReportingStatusMessageEvent, GuideSessionAttachedMessageEvent, GuideSessionCreateMessageComposer, GuideSessionDetachedMessageEvent, GuideSessionEndedMessageEvent, GuideSessionErrorMessageEvent, GuideSessionFeedbackMessageComposer, GuideSessionGetRequesterRoomMessageComposer, GuideSessionGuideDecidesMessageComposer, GuideSessionInvitedToGuideRoomMessageEvent, GuideSessionInviteRequesterMessageComposer, GuideSessionIsTypingMessageComposer, GuideSessionMessageMessageComposer, GuideSessionMessageMessageEvent, GuideSessionOnDutyUpdateMessageComposer, GuideSessionPartnerIsTypingMessageEvent, GuideSessionReportMessageComposer, GuideSessionRequesterCancelsMessageComposer, GuideSessionRequesterRoomMessageEvent, GuideSessionResolvedMessageComposer, GuideSessionStartedMessageEvent, GuideTicketCreationResultMessageEvent, GuideTicketResolutionMessageEvent, GuildBaseSearchMessageComposer, GuildEditFailedMessageEvent, GuildForumThreadsEvent, GuildMemberMgmtFailedMessageEvent, GuildMembershipsMessageEvent, HabboBroadcastMessageEvent, HabboClubExtendOfferMessageEvent, HabboClubOffersMessageEvent, HabboGroupBadgesMessageEvent, HabboGroupDeactivatedMessageEvent, HabboGroupJoinFailedMessageEvent, HabboSearchComposer, HabboSearchResultEvent, HarvestPetMessageComposer, HotelClosedAndOpensEvent, HotelClosesAndWillOpenAtEvent, HotelMergeNameChangeEvent, HotelWillCloseInMinutesEvent, IdentityAccountsEvent, IgnoredUsersEvent, IgnoreResultEvent, IgnoreUserComposer, IgnoreUserIdComposer, InClientLinkEvent, IncomingHeader, InfoFeedEnableMessageEvent, InfoRetrieveMessageComposer, InitCameraMessageEvent, InitDiffieHandshakeEvent, InitDiffieHandshakeMessageComposer, InstantMessageErrorEvent, InterstitialMessageEvent, InterstitialShownMessageComposer, IsBadgeRequestFulfilledEvent, IsOfferGiftableMessageEvent, IssueCloseNotificationMessageEvent, IssueDeletedMessageEvent, IssueInfoMessageEvent, IssuePickFailedMessageEvent, IsUserPartOfCompetitionMessageEvent, ItemDataUpdateMessageEvent, JoinedQueueMessageEvent, JoiningQueueFailedMessageEvent, JoinQueueMessageComposer, JukeboxPlayListFullMessageEvent, JukeboxSongDisksMessageEvent, LagWarningReportMessageComposer, LeaveQueueMessageComposer, LeftQueueMessageEvent, LimitedEditionSoldOutEvent, LimitedOfferAppearingNextMessageEvent, LoadGameMessageEvent, LoadGameUrlEvent, LoveLockFurniFinishedEvent, LoveLockFurniFriendConfirmedEvent, LoveLockFurniStartEvent, MaintenanceStatusMessageEvent, MakeOfferMessageComposer, MarkCatalogNewAdditionsPageOpenedComposer, MarketplaceBuyOfferResultEvent, MarketplaceCancelOfferResultEvent, MarketplaceCanMakeOfferResult, MarketplaceConfigurationEvent, MarketplaceItemStatsEvent, MarketplaceMakeOfferResult, MarketPlaceOffersEvent, MarketplaceOwnOffersEvent, MessageErrorEvent, MessengerInitComposer, MessengerInitEvent, MiniMailNewMessageEvent, MiniMailUnreadCountEvent, ModAlertMessageComposer, ModBanMessageComposer, ModerateMessageMessageComposer, ModerateRoomMessageComposer, ModerateThreadMessageComposer, ModeratorActionMessageComposer, ModeratorActionResultMessageEvent, ModeratorCautionEvent, ModeratorInitMessageEvent, ModeratorMessageEvent, ModeratorRoomInfoEvent, ModeratorToolPreferencesEvent, ModeratorUserInfoEvent, ModKickMessageComposer, ModMessageMessageComposer, ModMuteMessageComposer, ModToolPreferencesComposer, ModToolSanctionComposer, ModTradingLockMessageComposer, MoodlightSettingsComposer, MoodlightSettingsSaveComposer, MoodlightTogggleStateComposer, MOTDNotificationEvent, MuteAllInRoomEvent, MyFavouriteRoomsSearchMessageComposer, MyFrequentRoomHistorySearchMessageComposer, MyFriendsRoomsSearchMessageComposer, MyGuildBasesSearchMessageComposer, MyRecommendedRoomsMessageComposer, MyRoomHistorySearchMessageComposer, MyRoomRightsSearchMessageComposer, MyRoomsSearchMessageComposer, MysteryBoxKeysEvent, MysteryBoxWaitingCanceledMessageComposer, NavigatorCategoryListModeComposer, NavigatorCollapsedEvent, NavigatorDeleteSavedSearchComposer, NavigatorHomeRoomEvent, NavigatorInitComposer, NavigatorLiftedEvent, NavigatorMetadataEvent, NavigatorOpenRoomCreatorEvent, NavigatorSearchCloseComposer, NavigatorSearchComposer, NavigatorSearchesEvent, NavigatorSearchEvent, NavigatorSearchOpenComposer, NavigatorSearchSaveComposer, NavigatorSettingsEvent, NavigatorSettingsSaveComposer, NewConsoleMessageEvent, NewFriendRequestEvent, NewUserExperienceGetGiftsComposer, NewUserExperienceGiftOfferMessageEvent, NewUserExperienceNotCompleteEvent, NewUserExperienceScriptProceedComposer, NoobnessLevelMessageEvent, NoOwnedRoomsAlertMessageEvent, NoSuchFlatEvent, NotEnoughBalanceMessageEvent, NotificationDialogMessageEvent, NowPlayingMessageEvent, ObjectsDataUpdateEvent, ObjectsRollingEvent, OfferRewardDeliveredMessageEvent, OfficialSongIdMessageEvent, OneWayDoorStatusMessageEvent, OpenCampaignCalendarDoorAsStaffComposer, OpenCampaignCalendarDoorComposer, OpenMessageComposer, OpenMysteryTrophyMessageComposer, OpenPetPackageMessageComposer, OpenPetPackageRequestedMessageEvent, OpenPetPackageResultMessageEvent, OpenPresentComposer, OpenQuestTrackerMessageComposer, OpenWelcomeGiftComposer, OutgoingHeader, PeerUsersClassificationMessageComposer, PerformanceLogMessageComposer, PerkAllowancesMessageEvent, PetAddedToInventoryEvent, PetBreedingResultEvent, PetExperienceEvent, PetFigureUpdateEvent, PetInfoEvent, PetInventoryEvent, PetLevelNotificationEvent, PetLevelUpdateMessageEvent, PetMountComposer, PetMoveComposer, PetPlaceComposer, PetPlacingErrorEvent, PetReceivedMessageEvent, PetRemoveComposer, PetRemovedFromInventory, PetRespectComposer, PetRespectNoficationEvent, PetScratchFailedMessageEvent, PetSelectedMessageComposer, PetStatusUpdateEvent, PetSupplementComposer, PetSupplementedNotificationEvent, PetTrainingPanelMessageEvent, PhoneCollectionStateMessageEvent, PhotoCompetitionMessageComposer, PickIssuesMessageComposer, PlayListMessageEvent, PlayListSongAddedMessageEvent, PollAnswerComposer, PollContentsEvent, PollErrorEvent, PollOfferEvent, PollRejectComposer, PollStartComposer, PongMessageComposer, PopularRoomsSearchMessageComposer, PopularRoomTagsResultEvent, PostMessageMessageComposer, PostMessageMessageEvent, PostQuizAnswersComposer, PostThreadMessageEvent, PresentOpenedMessageEvent, ProductOfferEvent, PromoArticlesMessageEvent, PublishPhotoMessageComposer, PurchaseBasicMembershipExtensionComposer, PurchaseErrorMessageEvent, PurchaseFromCatalogAsGiftComposer, PurchaseFromCatalogComposer, PurchaseNotAllowedMessageEvent, PurchaseOKMessageEvent, PurchasePhotoMessageComposer, PurchaseRoomAdMessageComposer, PurchaseTargetedOfferComposer, PurchaseVipMembershipExtensionComposer, QuestCancelledMessageEvent, QuestCompletedMessageEvent, QuestDailyMessageEvent, QuestionAnsweredEvent, QuestionEvent, QuestionFinishedEvent, QuestMessageEvent, QuestsMessageEvent, QuizDataMessageEvent, QuizResultsMessageEvent, RateFlatMessageComposer, RecycleItemsMessageComposer, RecyclerFinishedMessageEvent, RecyclerStatusMessageEvent, RedeemCommunityGoalPrizeMessageComposer, RedeemItemClothingComposer, RedeemMarketplaceOfferCreditsMessageComposer, RedeemVoucherMessageComposer, RejectQuestMessageComposer, RelationshipStatusInfoEvent, ReleaseIssuesMessageComposer, RemainingMuteEvent, RemoveAllRightsMessageComposer, RemoveFriendComposer, RemoveJukeboxDiskComposer, RemoveOwnRoomRightsRoomMessageComposer, RemovePetSaddleComposer, RemoveWallItemComposer, RenderRoomMessageComposer, RenderRoomThumbnailMessageComposer, RentableSpaceCancelRentMessageComposer, RentableSpaceRentFailedMessageEvent, RentableSpaceRentMessageComposer, RentableSpaceRentOkMessageEvent, RentableSpaceStatusMessageComposer, RentableSpaceStatusMessageEvent, RequestABadgeComposer, RequestAchievementsMessageComposer, RequestBadgesComposer, RequestBotCommandConfigurationComposer, RequestCameraConfigurationComposer, RequestFriendComposer, RequestFurniInventoryWhenNotInRoomComposer, RequestPetInfoComposer, RequestPetsComposer, RequestSpamWallPostItMessageEvent, ResetPhoneNumberStateMessageComposer, ResetResolutionAchievementMessageComposer, RespectReceivedEvent, RestoreClientMessageEvent, RoomAdErrorEvent, RoomAdEventTabAdClickedComposer, RoomAdEventTabViewedComposer, RoomAdPurchaseInfoEvent, RoomAdPurchaseInitiatedComposer, RoomAdSearchMessageComposer, RoomAmbassadorAlertComposer, RoomBannedUsersComposer, RoomBanUserComposer, RoomChatlogEvent, RoomChatSettingsEvent, RoomCompetitionInitMessageComposer, RoomDeleteComposer, RoomDimmerPresetsEvent, RoomDoorbellAcceptedEvent, RoomDoorbellAccessComposer, RoomEnterComposer, RoomEnterErrorEvent, RoomEnterEvent, RoomEntryInfoMessageEvent, RoomEntryTileMessageEvent, RoomEventCancelEvent, RoomEventEvent, RoomFilterSettingsMessageEvent, RoomForwardEvent, RoomGiveRightsComposer, RoomHeightMapEvent, RoomHeightMapUpdateEvent, RoomInviteErrorEvent, RoomInviteEvent, RoomKickUserComposer, RoomMessageNotificationMessageEvent, RoomMuteComposer, RoomMuteUserComposer, RoomNetworkOpenConnectionMessageComposer, RoomOccupiedTilesMessageEvent, RoomPaintEvent, RoomPollResultEvent, RoomReadyMessageEvent, RoomRightsClearEvent, RoomRightsEvent, RoomRightsOwnerEvent, RoomScoreEvent, RoomSettingsComposer, RoomSettingsDataEvent, RoomSettingsErrorEvent, RoomSettingsSavedEvent, RoomSettingsSaveErrorEvent, RoomSettingsUpdatedEvent, RoomsWhereMyFriendsAreSearchMessageComposer, RoomsWithHighestScoreSearchMessageComposer, RoomTakeRightsComposer, RoomTextSearchMessageComposer, RoomThumbnailUpdateResultEvent, RoomUnbanUserComposer, RoomUnitActionComposer, RoomUnitBackgroundComposer, RoomUnitChatComposer, RoomUnitChatEvent, RoomUnitChatShoutComposer, RoomUnitChatShoutEvent, RoomUnitChatStyleComposer, RoomUnitChatWhisperComposer, RoomUnitChatWhisperEvent, RoomUnitDanceComposer, RoomUnitDanceEvent, RoomUnitDropHandItemComposer, RoomUnitEffectEvent, RoomUnitEvent, RoomUnitExpressionEvent, RoomUnitGiveHandItemComposer, RoomUnitGiveHandItemPetComposer, RoomUnitHandItemEvent, RoomUnitHandItemReceivedEvent, RoomUnitIdleEvent, RoomUnitInfoEvent, RoomUnitLookComposer, RoomUnitNumberEvent, RoomUnitPostureComposer, RoomUnitRemoveEvent, RoomUnitSignComposer, RoomUnitStatusEvent, RoomUnitTypingEvent, RoomUnitTypingStartComposer, RoomUnitTypingStopComposer, RoomUnitWalkComposer, RoomUsersClassificationMessageComposer, RoomUsersWithRightsComposer, RoomVisitsEvent, RoomVisualizationSettingsEvent, SanctionStatusEvent, SaveRoomSettingsComposer, SaveWardrobeOutfitMessageComposer, ScrGetKickbackInfoMessageComposer, ScrSendKickbackInfoMessageEvent, SearchFaqsMessageComposer, SeasonalCalendarDailyOfferMessageEvent, SeasonalQuestsMessageEvent, SecondsUntilMessageEvent, SelectClubGiftComposer, SellablePetPalettesMessageEvent, SendMessageComposer, SendRoomInviteComposer, SetActivatedBadgesComposer, SetClothingChangeDataMessageComposer, SetItemDataMessageComposer, SetObjectDataMessageComposer, SetPhoneNumberVerificationStatusMessageComposer, SetRelationshipStatusComposer, SetRoomSessionTagsMessageComposer, SetTargetedOfferStateComposer, SetYoutubeDisplayPlaylistMessageComposer, ShopTargetedOfferViewedComposer, ShowEnforceRoomCategoryDialogEvent, ShowMysteryBoxWaitMessageEvent, SimpleAlertMessageEvent, SSOTicketMessageComposer, StartCampaignMessageComposer, StartRoomPollEvent, SubmitRoomToCompetitionMessageComposer, TalentLevelUpEvent, TalentTrackComposer, TalentTrackLevelMessageEvent, TalentTrackMessageEvent, TargetedOfferEvent, TargetedOfferNotFoundEvent, ThreadMessagesMessageEvent, ThumbnailStatusMessageEvent, TogglePetBreedingComposer, TogglePetRidingComposer, ToggleStaffPickMessageComposer, TradingAcceptComposer, TradingAcceptEvent, TradingCancelComposer, TradingCloseComposer, TradingCloseEvent, TradingCompletedEvent, TradingConfirmationComposer, TradingConfirmationEvent, TradingListAddItemComposer, TradingListAddItemsComposer, TradingListItemEvent, TradingListItemRemoveComposer, TradingNoSuchItemEvent, TradingNotOpenEvent, TradingOpenComposer, TradingOpenEvent, TradingOpenFailedEvent, TradingOtherNotAllowedEvent, TradingUnacceptComposer, TradingYouAreNotAllowedEvent, TraxSongInfoMessageEvent, TryPhoneNumberMessageComposer, TryPhoneNumberResultMessageEvent, TryVerificationCodeResultMessageEvent, UnblockGroupMemberMessageComposer, UnignoreUserComposer, UniqueIDMessageComposer, UnloadGameMessageEvent, UnreadForumsCountMessageEvent, UnseenItemsEvent, UnseenResetCategoryComposer, UnseenResetItemsComposer, UpdateActionMessageComposer, UpdateConditionMessageComposer, UpdateFloorPropertiesMessageComposer, UpdateForumReadMarkerMessageComposer, UpdateForumSettingsMessageComposer, UpdateFurniturePositionComposer, UpdateHomeRoomMessageComposer, UpdateMessageMessageEvent, UpdateRoomCategoryAndTradeSettingsComposer, UpdateRoomFilterMessageComposer, UpdateRoomThumbnailMessageComposer, UpdateThreadMessageComposer, UpdateThreadMessageEvent, UpdateTriggerMessageComposer, UsePetProductComposer, UserBannedMessageEvent, UserChatlogEvent, UserClassificationMessageEvent, UserCreditsEvent, UserCurrencyComposer, UserCurrencyEvent, UserCurrentBadgesComposer, UserCurrentBadgesEvent, UserEventCatsEvent, UserFigureComposer, UserFlatCatsEvent, UserGameAchievementsMessageEvent, UserInfoEvent, UserMottoComposer, UserNameChangeMessageEvent, UserPermissionsEvent, UserProfileComposer, UserProfileEvent, UserRelationshipsComposer, UserRespectComposer, UserSettingsCameraFollowComposer, UserSettingsEvent, UserSettingsOldChatComposer, UserSettingsRoomInvitesComposer, UserSettingsSoundComposer, UserSongDisksInventoryMessageEvent, UserSubscriptionComposer, UserSubscriptionEvent, UserTagsMessageEvent, UserUnbannedFromRoomEvent, UserWardrobePageEvent, VerifyCodeMessageComposer, VersionCheckMessageComposer, VisitUserComposer, VoteForRoomMessageComposer, VotePollCounterMessageComposer, VoucherRedeemErrorMessageEvent, VoucherRedeemOkMessageEvent, WardrobeMessageEvent, WeeklyCompetitiveFriendsLeaderboardEvent, WeeklyCompetitiveLeaderboardEvent, WeeklyGameRewardEvent, WeeklyGameRewardWinnersEvent, WelcomeGiftChangeEmailComposer, WelcomeGiftChangeEmailResultEvent, WelcomeGiftStatusEvent, WiredFurniActionEvent, WiredFurniConditionEvent, WiredFurniTriggerEvent, WiredOpenEvent, WiredRewardResultMessageEvent, WiredSaveSuccessEvent, WiredValidationErrorEvent, YouArePlayingGameEvent, YouAreSpectatorMessageEvent, YoutubeControlVideoMessageEvent, YoutubeDisplayPlaylistsEvent, YoutubeDisplayVideoMessageEvent, YouTubeRoomBroadcastEvent, YouTubeRoomSettingsEvent, YouTubeRoomWatchersEvent, YouTubeRoomPlayComposer, YouTubeRoomSettingsComposer, YouTubeRoomWatchingComposer, ClickUserMessageComposer } from './messages'; +import { AcceptFriendMessageComposer, AcceptFriendResultEvent, AcceptGameInviteMessageComposer, AcceptQuestMessageComposer, AccountSafetyLockStatusChangeMessageEvent, AchievementEvent, AchievementNotificationMessageEvent, AchievementResolutionCompletedMessageEvent, AchievementResolutionProgressMessageEvent, AchievementResolutionsMessageEvent, AchievementsEvent, AchievementsScoreEvent, ActivateQuestMessageComposer, ActivityPointNotificationMessageEvent, AddFavouriteRoomMessageComposer, AddJukeboxDiskComposer, AddSpamWallPostItMessageComposer, ApplySnapshotMessageComposer, ApplyTonerComposer, ApproveAllMembershipRequestsMessageComposer, ApproveNameMessageComposer, ApproveNameMessageEvent, AreaHideMessageEvent, AuthenticatedEvent, AuthenticationMessageComposer, AvailabilityStatusMessageEvent, AvailabilityTimeMessageEvent, AvailableCommandsEvent, AvatarEffectActivatedComposer, AvatarEffectActivatedEvent, AvatarEffectAddedEvent, AvatarEffectExpiredEvent, AvatarEffectSelectedComposer, AvatarEffectSelectedEvent, AvatarEffectsEvent, BadgePointLimitsEvent, BadgeReceivedEvent, BadgesEvent, BannedUsersFromRoomEvent, BonusRareInfoMessageEvent, BotAddedToInventoryEvent, BotCommandConfigurationEvent, BotErrorEvent, BotForceOpenContextMenuEvent, BotInventoryMessageEvent, BotPlaceComposer, BotReceivedMessageEvent, BotRemoveComposer, BotRemovedFromInventoryEvent, BotSkillListUpdateEvent, BotSkillSaveComposer, BreedPetsMessageComposer, BuildersClubFurniCountMessageEvent, BuildersClubPlaceRoomItemMessageComposer, BuildersClubPlaceWallItemMessageComposer, BuildersClubQueryFurniCountMessageComposer, BuildersClubSubscriptionStatusMessageEvent, BundleDiscountRulesetMessageEvent, BuyMarketplaceOfferMessageComposer, BuyMarketplaceTokensMessageComposer, CallForHelpDisabledNotifyMessageEvent, CallForHelpFromForumMessageMessageComposer, CallForHelpFromForumThreadMessageComposer, CallForHelpFromIMMessageComposer, CallForHelpFromPhotoMessageComposer, CallForHelpFromSelfieMessageComposer, CallForHelpMessageComposer, CallForHelpPendingCallsDeletedMessageEvent, CallForHelpPendingCallsMessageEvent, CallForHelpReplyMessageEvent, CallForHelpResultMessageEvent, CameraPublishStatusMessageEvent, CameraPurchaseOKMessageEvent, CameraSnapshotMessageEvent, CameraStorageUrlMessageEvent, CampaignCalendarDataMessageEvent, CampaignCalendarDoorOpenedMessageEvent, CancelEventMessageComposer, CancelMarketplaceOfferMessageComposer, CancelMysteryBoxWaitMessageEvent, CancelPetBreedingComposer, CancelQuestMessageComposer, CanCreateRoomEvent, CanCreateRoomEventEvent, CanCreateRoomMessageComposer, CatalogAdminCreateOfferComposer, CatalogAdminCreatePageComposer, CatalogAdminDeleteOfferComposer, CatalogAdminDeletePageComposer, CatalogAdminMoveOfferComposer, CatalogAdminMovePageComposer, CatalogAdminPublishComposer, CatalogAdminResultEvent, CatalogAdminSaveOfferComposer, CatalogAdminSavePageComposer, CatalogGroupsComposer, CatalogPageExpirationEvent, CatalogPageMessageEvent, CatalogPagesListEvent, CatalogPageWithEarliestExpiryMessageEvent, CatalogPublishedMessageEvent, CategoriesWithVisitorCountEvent, CfhChatlogEvent, CfhSanctionMessageEvent, CfhTopicsInitEvent, ChangeEmailComposer, ChangeEmailResultEvent, ChangeQueueMessageComposer, ChangeUserNameMessageComposer, ChangeUserNameResultMessageEvent, ChatReviewGuideDecidesOnOfferMessageComposer, ChatReviewGuideDetachedMessageComposer, ChatReviewGuideVoteMessageComposer, ChatReviewSessionCreateMessageComposer, ChatReviewSessionDetachedMessageEvent, ChatReviewSessionOfferedToGuideMessageEvent, ChatReviewSessionResultsMessageEvent, ChatReviewSessionStartedMessageEvent, ChatReviewSessionVotingStatusMessageEvent, CheckUserNameMessageComposer, CheckUserNameResultMessageEvent, ClickFurniMessageComposer, ClientHelloMessageComposer, ClientPingEvent, CloseIssueDefaultActionMessageComposer, CloseIssuesMessageComposer, ClubGiftInfoEvent, ClubGiftNotificationEvent, ClubGiftSelectedEvent, CommunityGoalEarnedPrizesMessageEvent, CommunityGoalHallOfFameMessageEvent, CommunityGoalProgressMessageEvent, CommunityGoalVoteMessageComposer, CommunityGoalVoteMessageEvent, CompetitionEntrySubmitResultEvent, CompetitionRoomsDataMessageEvent, CompetitionRoomsSearchMessageComposer, CompetitionStatusMessageEvent, CompetitionVotingInfoMessageEvent, CompleteDiffieHandshakeEvent, CompleteDiffieHandshakeMessageComposer, CompostPlantMessageComposer, ConcurrentUsersGoalProgressMessageEvent, ConfirmPetBreedingComposer, ConnectionErrorEvent, ControlYoutubeDisplayPlaybackMessageComposer, ConvertedRoomIdEvent, ConvertGlobalRoomIdMessageComposer, CraftableProductsEvent, CraftComposer, CraftingRecipeEvent, CraftingRecipesAvailableEvent, CraftingResultEvent, CraftSecretComposer, CreateFlatMessageComposer, CurrentTimingCodeMessageEvent, CustomUserNotificationMessageEvent, DeclineFriendMessageComposer, DefaultSanctionMessageComposer, DeleteBadgeMessageComposer, DeleteFavouriteRoomMessageComposer, DeleteItemMessageComposer, DeletePendingCallsForHelpMessageComposer, DeletePetMessageComposer, DesktopViewComposer, DesktopViewEvent, DiceValueMessageEvent, DirectSMSClubBuyAvailableMessageEvent, DisconnectMessageComposer, DisconnectReasonEvent, DoorbellMessageEvent, EditEventMessageComposer, ElementPointerMessageEvent, EmailStatusResultEvent, EpicPopupMessageEvent, ExtendedProfileChangedMessageEvent, ExtendRentOrBuyoutFurniMessageComposer, ExtendRentOrBuyoutStripItemMessageComposer, FavoriteMembershipUpdateMessageEvent, FavouriteChangedEvent, FavouritesEvent, FigureSetIdsMessageEvent, FigureUpdateEvent, FindFriendsProcessResultEvent, FindNewFriendsMessageComposer, FireworkChargeDataEvent, FlatAccessDeniedMessageEvent, FlatControllerAddedEvent, FlatControllerRemovedEvent, FlatControllersEvent, FlatCreatedEvent, FloodControlEvent, FloorHeightMapEvent, FollowFriendFailedEvent, FollowFriendMessageComposer, ForumDataMessageEvent, ForumsListMessageEvent, ForwardToACompetitionRoomMessageComposer, ForwardToARandomPromotedRoomMessageComposer, ForwardToASubmittableRoomMessageComposer, ForwardToRandomCompetitionRoomMessageComposer, ForwardToSomeRoomMessageComposer, FriendFurniConfirmLockMessageComposer, FriendListFragmentEvent, FriendListUpdateComposer, FriendListUpdateEvent, FriendNotificationEvent, FriendRequestQuestCompleteMessageComposer, FriendRequestsEvent, FurniRentOrBuyoutOfferMessageEvent, FurnitureAliasesComposer, FurnitureAliasesEvent, FurnitureColorWheelComposer, FurnitureDataEvent, FurnitureDiceActivateComposer, FurnitureDiceDeactivateComposer, FurnitureExchangeComposer, FurnitureFloorAddEvent, FurnitureFloorEvent, FurnitureFloorRemoveEvent, FurnitureFloorUpdateComposer, FurnitureFloorUpdateEvent, FurnitureGroupInfoComposer, FurnitureListAddOrUpdateEvent, FurnitureListComposer, FurnitureListEvent, FurnitureListInvalidateEvent, FurnitureListRemovedEvent, FurnitureMannequinSaveLookComposer, FurnitureMannequinSaveNameComposer, FurnitureMultiStateComposer, FurnitureOneWayDoorComposer, FurniturePickupAllComposer, FurniturePickupComposer, FurniturePlaceComposer, FurniturePlacePaintComposer, FurniturePostItPlaceComposer, FurniturePostItPlacedEvent, FurnitureRandomStateComposer, FurnitureStackHeightComposer, FurnitureStackHeightEvent, FurnitureWallAddEvent, FurnitureWallEvent, FurnitureWallMultiStateComposer, FurnitureWallRemoveEvent, FurnitureWallUpdateComposer, FurnitureWallUpdateEvent, FurniEditorBySpriteComposer, FurniEditorDeleteComposer, FurniEditorDetailComposer, FurniEditorDetailResultEvent, FurniEditorInteractionsComposer, FurniEditorInteractionsResultEvent, FurniEditorResultEvent, FurniEditorSearchComposer, FurniEditorSearchResultEvent, FurniEditorUpdateComposer, Game2AccountGameStatusMessageEvent, Game2CheckGameDirectoryStatusMessageComposer, Game2ExitGameMessageComposer, Game2GameChatMessageComposer, Game2GameDirectoryStatusMessageEvent, Game2GetAccountGameStatusMessageComposer, Game2GetWeeklyFriendsLeaderboardComposer, Game2GetWeeklyLeaderboardComposer, Game2InArenaQueueMessageEvent, Game2JoiningGameFailedMessageEvent, Game2LoadStageReadyMessageComposer, Game2PlayAgainMessageComposer, Game2RequestFullStatusUpdateMessageComposer, Game2StartingGameFailedMessageEvent, Game2StopCounterMessageEvent, Game2UserLeftGameMessageEvent, Game2WeeklyFriendsLeaderboardEvent, Game2WeeklyLeaderboardEvent, GameAchievementsMessageEvent, GameInviteMessageEvent, GameListMessageEvent, GameStatusMessageEvent, GameUnloadedMessageComposer, GenericErrorEvent, GetBadgePointLimitsComposer, GetBonusRareInfoMessageComposer, GetBotInventoryComposer, GetBundleDiscountRulesetComposer, GetCatalogIndexComposer, GetCatalogPageComposer, GetCatalogPageExpirationComposer, GetCatalogPageWithEarliestExpiryComposer, GetCategoriesWithUserCountMessageComposer, GetCfhChatlogMessageComposer, GetCfhStatusMessageComposer, GetClubGiftInfo, GetClubOffersMessageComposer, GetCommunityGoalEarnedPrizesMessageComposer, GetCommunityGoalHallOfFameMessageComposer, GetCommunityGoalProgressMessageComposer, GetConcurrentUsersGoalProgressMessageComposer, GetConcurrentUsersRewardMessageComposer, GetCraftableProductsComposer, GetCraftingRecipeComposer, GetCraftingRecipesAvailableComposer, GetCurrentTimingCodeMessageComposer, GetCustomRoomFilterMessageComposer, GetDailyQuestMessageComposer, GetDirectClubBuyAvailableComposer, GetEmailStatusComposer, GetExtendedProfileByNameMessageComposer, GetFaqCategoryMessageComposer, GetFaqTextMessageComposer, GetForumsListMessageComposer, GetForumStatsMessageComposer, GetFriendRequestsComposer, GetGameAchievementsMessageComposer, GetGameListMessageComposer, GetGameStatusMessageComposer, GetGiftMessageComposer, GetGiftWrappingConfigurationComposer, GetGuestRoomMessageComposer, GetGuestRoomResultEvent, GetGuideReportingStatusMessageComposer, GetHabboBasicMembershipExtendOfferComposer, GetHabboClubExtendOfferMessageComposer, GetHabboGroupBadgesMessageComposer, GetIgnoredUsersComposer, GetInterstitialMessageComposer, GetIsBadgeRequestFulfilledComposer, GetIsOfferGiftableComposer, GetIsUserPartOfCompetitionMessageComposer, GetItemDataComposer, GetJukeboxPlayListMessageComposer, GetLimitedOfferAppearingNextComposer, GetMarketplaceCanMakeOfferComposer, GetMarketplaceConfigurationMessageComposer, GetMarketplaceItemStatsComposer, GetMarketplaceOffersMessageComposer, GetMarketplaceOwnOffersMessageComposer, GetMessagesMessageComposer, GetModeratorRoomInfoMessageComposer, GetModeratorUserInfoMessageComposer, GetNextTargetedOfferComposer, GetNowPlayingMessageComposer, GetOccupiedTilesMessageComposer, GetOfficialRoomsMessageComposer, GetOfficialSongIdMessageComposer, GetPendingCallsForHelpMessageComposer, GetPetCommandsComposer, GetPopularRoomTagsMessageComposer, GetProductOfferComposer, GetPromoArticlesComposer, GetQuestsMessageComposer, GetQuizQuestionsComposer, GetRecyclerStatusMessageComposer, GetRentOrBuyoutOfferMessageComposer, GetResolutionAchievementsMessageComposer, GetRoomAdPurchaseInfoComposer, GetRoomChatlogMessageComposer, GetRoomEntryDataMessageComposer, GetRoomEntryTileMessageComposer, GetRoomVisitsMessageComposer, GetSeasonalCalendarDailyOfferComposer, GetSeasonalQuestsOnlyMessageComposer, GetSecondsUntilMessageComposer, GetSellablePetPalettesComposer, GetSongInfoMessageComposer, GetSoundMachinePlayListMessageComposer, GetSoundSettingsComposer, GetTalentTrackLevelMessageComposer, GetTargetedOfferComposer, GetThreadMessageComposer, GetThreadsMessageComposer, GetUnreadForumsCountMessageComposer, GetUserChatlogMessageComposer, GetUserEventCatsMessageComposer, GetUserFlatCatsMessageComposer, GetUserGameAchievementsMessageComposer, GetUserSongDisksMessageComposer, GetUserTagsComposer, GetWardrobeMessageComposer, GetWeeklyGameRewardComposer, GetWeeklyGameRewardWinnersComposer, GetYoutubeDisplayStatusMessageComposer, GiftReceiverNotFoundEvent, GiftWrappingConfigurationEvent, GotMysteryBoxPrizeMessageEvent, GoToFlatMessageComposer, GroupAdminGiveComposer, GroupAdminTakeComposer, GroupBadgePartsComposer, GroupBadgePartsEvent, GroupBuyComposer, GroupBuyDataComposer, GroupBuyDataEvent, GroupConfirmMemberRemoveEvent, GroupConfirmRemoveMemberComposer, GroupDeleteComposer, GroupDetailsChangedMessageEvent, GroupFavoriteComposer, GroupFurniContextMenuInfoMessageEvent, GroupInformationComposer, GroupInformationEvent, GroupJoinComposer, GroupMembersComposer, GroupMembersEvent, GroupMembershipAcceptComposer, GroupMembershipDeclineComposer, GroupMembershipRequestedMessageEvent, GroupPurchasedEvent, GroupRemoveMemberComposer, GroupSaveBadgeComposer, GroupSaveColorsComposer, GroupSaveInformationComposer, GroupSavePreferencesComposer, GroupSettingsComposer, GroupSettingsEvent, GroupUnfavoriteComposer, GuestRoomSearchResultEvent, GuideOnDutyStatusMessageEvent, GuideReportingStatusMessageEvent, GuideSessionAttachedMessageEvent, GuideSessionCreateMessageComposer, GuideSessionDetachedMessageEvent, GuideSessionEndedMessageEvent, GuideSessionErrorMessageEvent, GuideSessionFeedbackMessageComposer, GuideSessionGetRequesterRoomMessageComposer, GuideSessionGuideDecidesMessageComposer, GuideSessionInvitedToGuideRoomMessageEvent, GuideSessionInviteRequesterMessageComposer, GuideSessionIsTypingMessageComposer, GuideSessionMessageMessageComposer, GuideSessionMessageMessageEvent, GuideSessionOnDutyUpdateMessageComposer, GuideSessionPartnerIsTypingMessageEvent, GuideSessionReportMessageComposer, GuideSessionRequesterCancelsMessageComposer, GuideSessionRequesterRoomMessageEvent, GuideSessionResolvedMessageComposer, GuideSessionStartedMessageEvent, GuideTicketCreationResultMessageEvent, GuideTicketResolutionMessageEvent, GuildBaseSearchMessageComposer, GuildEditFailedMessageEvent, GuildForumThreadsEvent, GuildMemberMgmtFailedMessageEvent, GuildMembershipsMessageEvent, HabboBroadcastMessageEvent, HabboClubExtendOfferMessageEvent, HabboClubOffersMessageEvent, HabboGroupBadgesMessageEvent, HabboGroupDeactivatedMessageEvent, HabboGroupJoinFailedMessageEvent, HabboSearchComposer, HabboSearchResultEvent, HarvestPetMessageComposer, HotelClosedAndOpensEvent, HotelClosesAndWillOpenAtEvent, HotelMergeNameChangeEvent, HotelWillCloseInMinutesEvent, IdentityAccountsEvent, IgnoredUsersEvent, IgnoreResultEvent, IgnoreUserComposer, IgnoreUserIdComposer, InClientLinkEvent, IncomingHeader, InfoFeedEnableMessageEvent, InfoRetrieveMessageComposer, InitCameraMessageEvent, InitDiffieHandshakeEvent, InitDiffieHandshakeMessageComposer, InstantMessageErrorEvent, InterstitialMessageEvent, InterstitialShownMessageComposer, IsBadgeRequestFulfilledEvent, IsOfferGiftableMessageEvent, IssueCloseNotificationMessageEvent, IssueDeletedMessageEvent, IssueInfoMessageEvent, IssuePickFailedMessageEvent, IsUserPartOfCompetitionMessageEvent, ItemDataUpdateMessageEvent, JoinedQueueMessageEvent, JoiningQueueFailedMessageEvent, JoinQueueMessageComposer, JukeboxPlayListFullMessageEvent, JukeboxSongDisksMessageEvent, LagWarningReportMessageComposer, LeaveQueueMessageComposer, LeftQueueMessageEvent, LimitedEditionSoldOutEvent, LimitedOfferAppearingNextMessageEvent, LoadGameMessageEvent, LoadGameUrlEvent, LoveLockFurniFinishedEvent, LoveLockFurniFriendConfirmedEvent, LoveLockFurniStartEvent, MaintenanceStatusMessageEvent, MakeOfferMessageComposer, MarkCatalogNewAdditionsPageOpenedComposer, MarketplaceBuyOfferResultEvent, MarketplaceCancelOfferResultEvent, MarketplaceCanMakeOfferResult, MarketplaceConfigurationEvent, MarketplaceItemStatsEvent, MarketplaceMakeOfferResult, MarketPlaceOffersEvent, MarketplaceOwnOffersEvent, MessageErrorEvent, MessengerInitComposer, MessengerInitEvent, MiniMailNewMessageEvent, MiniMailUnreadCountEvent, ModAlertMessageComposer, ModBanMessageComposer, ModerateMessageMessageComposer, ModerateRoomMessageComposer, ModerateThreadMessageComposer, ModeratorActionMessageComposer, ModeratorActionResultMessageEvent, ModeratorCautionEvent, ModeratorInitMessageEvent, ModeratorMessageEvent, ModeratorRoomInfoEvent, ModeratorToolPreferencesEvent, ModeratorUserInfoEvent, ModKickMessageComposer, ModMessageMessageComposer, ModMuteMessageComposer, ModToolPreferencesComposer, ModToolSanctionComposer, ModTradingLockMessageComposer, MoodlightSettingsComposer, MoodlightSettingsSaveComposer, MoodlightTogggleStateComposer, MOTDNotificationEvent, MuteAllInRoomEvent, MyFavouriteRoomsSearchMessageComposer, MyFrequentRoomHistorySearchMessageComposer, MyFriendsRoomsSearchMessageComposer, MyGuildBasesSearchMessageComposer, MyRecommendedRoomsMessageComposer, MyRoomHistorySearchMessageComposer, MyRoomRightsSearchMessageComposer, MyRoomsSearchMessageComposer, MysteryBoxKeysEvent, MysteryBoxWaitingCanceledMessageComposer, NavigatorCategoryListModeComposer, NavigatorCollapsedEvent, NavigatorDeleteSavedSearchComposer, NavigatorHomeRoomEvent, NavigatorInitComposer, NavigatorLiftedEvent, NavigatorMetadataEvent, NavigatorOpenRoomCreatorEvent, NavigatorSearchCloseComposer, NavigatorSearchComposer, NavigatorSearchesEvent, NavigatorSearchEvent, NavigatorSearchOpenComposer, NavigatorSearchSaveComposer, NavigatorSettingsEvent, NavigatorSettingsSaveComposer, NewConsoleMessageEvent, NewFriendRequestEvent, NewUserExperienceGetGiftsComposer, NewUserExperienceGiftOfferMessageEvent, NewUserExperienceNotCompleteEvent, NewUserExperienceScriptProceedComposer, NoobnessLevelMessageEvent, NoOwnedRoomsAlertMessageEvent, NoSuchFlatEvent, NotEnoughBalanceMessageEvent, NotificationDialogMessageEvent, NowPlayingMessageEvent, ObjectsDataUpdateEvent, ObjectsRollingEvent, OfferRewardDeliveredMessageEvent, OfficialSongIdMessageEvent, OneWayDoorStatusMessageEvent, OpenCampaignCalendarDoorAsStaffComposer, OpenCampaignCalendarDoorComposer, OpenMessageComposer, OpenMysteryTrophyMessageComposer, OpenPetPackageMessageComposer, OpenPetPackageRequestedMessageEvent, OpenPetPackageResultMessageEvent, OpenPresentComposer, OpenQuestTrackerMessageComposer, OpenWelcomeGiftComposer, OutgoingHeader, PeerUsersClassificationMessageComposer, PerformanceLogMessageComposer, PerkAllowancesMessageEvent, PetAddedToInventoryEvent, PetBreedingResultEvent, PetExperienceEvent, PetFigureUpdateEvent, PetInfoEvent, PetInventoryEvent, PetLevelNotificationEvent, PetLevelUpdateMessageEvent, PetMountComposer, PetMoveComposer, PetPlaceComposer, PetPlacingErrorEvent, PetReceivedMessageEvent, PetRemoveComposer, PetRemovedFromInventory, PetRespectComposer, PetRespectNoficationEvent, PetScratchFailedMessageEvent, PetSelectedMessageComposer, PetStatusUpdateEvent, PetSupplementComposer, PetSupplementedNotificationEvent, PetTrainingPanelMessageEvent, PhoneCollectionStateMessageEvent, PhotoCompetitionMessageComposer, PickIssuesMessageComposer, PlayListMessageEvent, PlayListSongAddedMessageEvent, PollAnswerComposer, PollContentsEvent, PollErrorEvent, PollOfferEvent, PollRejectComposer, PollStartComposer, PongMessageComposer, PopularRoomsSearchMessageComposer, PopularRoomTagsResultEvent, PostMessageMessageComposer, PostMessageMessageEvent, PostQuizAnswersComposer, PostThreadMessageEvent, PresentOpenedMessageEvent, ProductOfferEvent, PromoArticlesMessageEvent, PublishPhotoMessageComposer, PurchaseBasicMembershipExtensionComposer, PurchaseErrorMessageEvent, PurchaseFromCatalogAsGiftComposer, PurchaseFromCatalogComposer, PurchaseNotAllowedMessageEvent, PurchaseOKMessageEvent, PurchasePhotoMessageComposer, PurchaseRoomAdMessageComposer, PurchaseTargetedOfferComposer, PurchaseVipMembershipExtensionComposer, QuestCancelledMessageEvent, QuestCompletedMessageEvent, QuestDailyMessageEvent, QuestionAnsweredEvent, QuestionEvent, QuestionFinishedEvent, QuestMessageEvent, QuestsMessageEvent, QuizDataMessageEvent, QuizResultsMessageEvent, RateFlatMessageComposer, RecycleItemsMessageComposer, RecyclerFinishedMessageEvent, RecyclerStatusMessageEvent, RedeemCommunityGoalPrizeMessageComposer, RedeemItemClothingComposer, RedeemMarketplaceOfferCreditsMessageComposer, RedeemVoucherMessageComposer, RejectQuestMessageComposer, RelationshipStatusInfoEvent, ReleaseIssuesMessageComposer, RemainingMuteEvent, RemoveAllRightsMessageComposer, RemoveFriendComposer, RemoveJukeboxDiskComposer, RemoveOwnRoomRightsRoomMessageComposer, RemovePetSaddleComposer, RemoveWallItemComposer, RenderRoomMessageComposer, RenderRoomThumbnailMessageComposer, RentableSpaceCancelRentMessageComposer, RentableSpaceRentFailedMessageEvent, RentableSpaceRentMessageComposer, RentableSpaceRentOkMessageEvent, RentableSpaceStatusMessageComposer, RentableSpaceStatusMessageEvent, RequestABadgeComposer, RequestAchievementsMessageComposer, RequestBadgesComposer, RequestBotCommandConfigurationComposer, RequestCameraConfigurationComposer, RequestFriendComposer, RequestFurniInventoryWhenNotInRoomComposer, RequestPetInfoComposer, RequestPetsComposer, RequestSpamWallPostItMessageEvent, ResetPhoneNumberStateMessageComposer, ResetResolutionAchievementMessageComposer, RespectReceivedEvent, RestoreClientMessageEvent, RoomAdErrorEvent, RoomAdEventTabAdClickedComposer, RoomAdEventTabViewedComposer, RoomAdPurchaseInfoEvent, RoomAdPurchaseInitiatedComposer, RoomAdSearchMessageComposer, RoomAmbassadorAlertComposer, RoomBannedUsersComposer, RoomBanUserComposer, RoomChatlogEvent, RoomChatSettingsEvent, RoomCompetitionInitMessageComposer, RoomDeleteComposer, RoomDimmerPresetsEvent, RoomDoorbellAcceptedEvent, RoomDoorbellAccessComposer, RoomEnterComposer, RoomEnterErrorEvent, RoomEnterEvent, RoomEntryInfoMessageEvent, RoomEntryTileMessageEvent, RoomEventCancelEvent, RoomEventEvent, RoomFilterSettingsMessageEvent, RoomForwardEvent, RoomGiveRightsComposer, RoomHeightMapEvent, RoomHeightMapUpdateEvent, RoomInviteErrorEvent, RoomInviteEvent, RoomKickUserComposer, RoomMessageNotificationMessageEvent, RoomMuteComposer, RoomMuteUserComposer, RoomNetworkOpenConnectionMessageComposer, RoomOccupiedTilesMessageEvent, RoomPaintEvent, RoomPollResultEvent, RoomReadyMessageEvent, RoomRightsClearEvent, RoomRightsEvent, RoomRightsOwnerEvent, RoomScoreEvent, RoomSettingsComposer, RoomSettingsDataEvent, RoomSettingsErrorEvent, RoomSettingsSavedEvent, RoomSettingsSaveErrorEvent, RoomSettingsUpdatedEvent, RoomsWhereMyFriendsAreSearchMessageComposer, RoomsWithHighestScoreSearchMessageComposer, RoomTakeRightsComposer, RoomTextSearchMessageComposer, RoomThumbnailUpdateResultEvent, RoomUnbanUserComposer, RoomUnitActionComposer, RoomUnitBackgroundComposer, RoomUnitChatComposer, RoomUnitChatEvent, RoomUnitChatShoutComposer, RoomUnitChatShoutEvent, RoomUnitChatStyleComposer, RoomUnitChatWhisperComposer, RoomUnitChatWhisperEvent, RoomUnitDanceComposer, RoomUnitDanceEvent, RoomUnitDropHandItemComposer, RoomUnitEffectEvent, RoomUnitEvent, RoomUnitExpressionEvent, RoomUnitGiveHandItemComposer, RoomUnitGiveHandItemPetComposer, RoomUnitHandItemEvent, RoomUnitHandItemReceivedEvent, RoomUnitIdleEvent, RoomUnitInfoEvent, RoomUnitLookComposer, RoomUnitNumberEvent, RoomUnitPostureComposer, RoomUnitRemoveEvent, RoomUnitSignComposer, RoomUnitStatusEvent, RoomUnitTypingEvent, RoomUnitTypingStartComposer, RoomUnitTypingStopComposer, RoomUnitWalkComposer, RoomUsersClassificationMessageComposer, RoomUsersWithRightsComposer, RoomVisitsEvent, RoomVisualizationSettingsEvent, SanctionStatusEvent, SaveRoomSettingsComposer, SaveWardrobeOutfitMessageComposer, ScrGetKickbackInfoMessageComposer, ScrSendKickbackInfoMessageEvent, SearchFaqsMessageComposer, SeasonalCalendarDailyOfferMessageEvent, SeasonalQuestsMessageEvent, SecondsUntilMessageEvent, SelectClubGiftComposer, SellablePetPalettesMessageEvent, SendMessageComposer, SendRoomInviteComposer, SetActivatedBadgesComposer, SetClothingChangeDataMessageComposer, SetItemDataMessageComposer, SetObjectDataMessageComposer, SetPhoneNumberVerificationStatusMessageComposer, SetRelationshipStatusComposer, SetRoomSessionTagsMessageComposer, SetTargetedOfferStateComposer, SetYoutubeDisplayPlaylistMessageComposer, ShopTargetedOfferViewedComposer, ShowEnforceRoomCategoryDialogEvent, ShowMysteryBoxWaitMessageEvent, SimpleAlertMessageEvent, SSOTicketMessageComposer, StartCampaignMessageComposer, StartRoomPollEvent, SubmitRoomToCompetitionMessageComposer, TalentLevelUpEvent, TalentTrackComposer, TalentTrackLevelMessageEvent, TalentTrackMessageEvent, TargetedOfferEvent, TargetedOfferNotFoundEvent, ThreadMessagesMessageEvent, ThumbnailStatusMessageEvent, TogglePetBreedingComposer, TogglePetRidingComposer, ToggleStaffPickMessageComposer, TradingAcceptComposer, TradingAcceptEvent, TradingCancelComposer, TradingCloseComposer, TradingCloseEvent, TradingCompletedEvent, TradingConfirmationComposer, TradingConfirmationEvent, TradingListAddItemComposer, TradingListAddItemsComposer, TradingListItemEvent, TradingListItemRemoveComposer, TradingNoSuchItemEvent, TradingNotOpenEvent, TradingOpenComposer, TradingOpenEvent, TradingOpenFailedEvent, TradingOtherNotAllowedEvent, TradingUnacceptComposer, TradingYouAreNotAllowedEvent, TraxSongInfoMessageEvent, TryPhoneNumberMessageComposer, TryPhoneNumberResultMessageEvent, TryVerificationCodeResultMessageEvent, UnblockGroupMemberMessageComposer, UnignoreUserComposer, UniqueIDMessageComposer, UnloadGameMessageEvent, UnreadForumsCountMessageEvent, UnseenItemsEvent, UnseenResetCategoryComposer, UnseenResetItemsComposer, UpdateActionMessageComposer, UpdateConditionMessageComposer, UpdateFloorPropertiesMessageComposer, UpdateForumReadMarkerMessageComposer, UpdateForumSettingsMessageComposer, UpdateFurniturePositionComposer, UpdateHomeRoomMessageComposer, UpdateMessageMessageEvent, UpdateRoomCategoryAndTradeSettingsComposer, UpdateRoomFilterMessageComposer, UpdateRoomThumbnailMessageComposer, UpdateThreadMessageComposer, UpdateThreadMessageEvent, UpdateTriggerMessageComposer, UsePetProductComposer, UserBannedMessageEvent, UserChatlogEvent, UserClassificationMessageEvent, UserCreditsEvent, UserCurrencyComposer, UserCurrencyEvent, UserCurrentBadgesComposer, UserCurrentBadgesEvent, UserEventCatsEvent, UserFigureComposer, UserFlatCatsEvent, UserGameAchievementsMessageEvent, UserInfoEvent, UserMottoComposer, UserNameChangeMessageEvent, UserPermissionsEvent, UserProfileComposer, UserProfileEvent, UserRelationshipsComposer, UserRespectComposer, UserSettingsCameraFollowComposer, UserSettingsEvent, UserSettingsOldChatComposer, UserSettingsRoomInvitesComposer, UserSettingsSoundComposer, UserSongDisksInventoryMessageEvent, UserSubscriptionComposer, UserSubscriptionEvent, UserTagsMessageEvent, UserUnbannedFromRoomEvent, UserWardrobePageEvent, VerifyCodeMessageComposer, VersionCheckMessageComposer, VisitUserComposer, VoteForRoomMessageComposer, VotePollCounterMessageComposer, VoucherRedeemErrorMessageEvent, VoucherRedeemOkMessageEvent, WardrobeMessageEvent, WeeklyCompetitiveFriendsLeaderboardEvent, WeeklyCompetitiveLeaderboardEvent, WeeklyGameRewardEvent, WeeklyGameRewardWinnersEvent, WelcomeGiftChangeEmailComposer, WelcomeGiftChangeEmailResultEvent, WelcomeGiftStatusEvent, WiredFurniActionEvent, WiredFurniConditionEvent, WiredFurniTriggerEvent, WiredOpenEvent, WiredRewardResultMessageEvent, WiredSaveSuccessEvent, WiredValidationErrorEvent, YouArePlayingGameEvent, YouAreSpectatorMessageEvent, YoutubeControlVideoMessageEvent, YoutubeDisplayPlaylistsEvent, YoutubeDisplayVideoMessageEvent, ClickUserMessageComposer } from './messages'; +import { PurchaseCatalogPrefixComposer, PurchaseNickIconComposer, PurchasePrefixComposer, RequestNickIconsComposer, SetActiveNickIconComposer, SetActivePrefixComposer, SetDisplayOrderComposer, UserNickIconsEvent } from './messages'; import { WiredMonitorDataEvent, WiredMonitorRequestComposer, WiredRoomSettingsDataEvent, WiredRoomSettingsRequestComposer, WiredRoomSettingsSaveComposer, WiredUserInspectMoveComposer, WiredUserVariableManageComposer, WiredUserVariableUpdateComposer, WiredUserVariablesDataEvent, WiredUserVariablesRequestComposer } from './messages'; import { WiredMovementsEvent } from './messages'; import { ConfInvisStateMessageEvent } from './messages'; import { HanditemBlockStateMessageEvent } from './messages'; +import { TranslationLanguagesEvent, TranslationLanguagesRequestComposer, TranslationResultEvent, TranslationTextRequestComposer } from './messages'; +import { YouTubeRoomBroadcastEvent, YouTubeRoomPlayComposer, YouTubeRoomSettingsComposer, YouTubeRoomSettingsEvent, YouTubeRoomWatchersEvent, YouTubeRoomWatchingComposer } from './messages'; export class NitroMessages implements IMessageConfiguration { private _events: Map; @@ -264,9 +267,6 @@ export class NitroMessages implements IMessageConfiguration this._events.set(IncomingHeader.YOUTUBE_CONTROL_VIDEO, YoutubeControlVideoMessageEvent); this._events.set(IncomingHeader.YOUTUBE_DISPLAY_PLAYLISTS, YoutubeDisplayPlaylistsEvent); this._events.set(IncomingHeader.YOUTUBE_DISPLAY_VIDEO, YoutubeDisplayVideoMessageEvent); - this._events.set(IncomingHeader.YOUTUBE_ROOM_BROADCAST, YouTubeRoomBroadcastEvent); - this._events.set(IncomingHeader.YOUTUBE_ROOM_SETTINGS, YouTubeRoomSettingsEvent); - this._events.set(IncomingHeader.YOUTUBE_ROOM_WATCHERS, YouTubeRoomWatchersEvent); // TRADING this._events.set(IncomingHeader.TRADE_ACCEPTED, TradingAcceptEvent); @@ -500,6 +500,11 @@ export class NitroMessages implements IMessageConfiguration this._events.set(IncomingHeader.WIRED_USER_VARIABLES_DATA, WiredUserVariablesDataEvent); this._events.set(IncomingHeader.CONF_INVIS_STATE, ConfInvisStateMessageEvent); this._events.set(IncomingHeader.HANDITEM_BLOCK_STATE, HanditemBlockStateMessageEvent); + this._events.set(IncomingHeader.TRANSLATION_LANGUAGES, TranslationLanguagesEvent); + this._events.set(IncomingHeader.TRANSLATION_RESULT, TranslationResultEvent); + this._events.set(IncomingHeader.YOUTUBE_ROOM_BROADCAST, YouTubeRoomBroadcastEvent); + this._events.set(IncomingHeader.YOUTUBE_ROOM_SETTINGS, YouTubeRoomSettingsEvent); + this._events.set(IncomingHeader.YOUTUBE_ROOM_WATCHERS, YouTubeRoomWatchersEvent); this._events.set(IncomingHeader.WIRED_REWARD, WiredRewardResultMessageEvent); this._events.set(IncomingHeader.WIRED_SAVE, WiredSaveSuccessEvent); this._events.set(IncomingHeader.WIRED_ERROR, WiredValidationErrorEvent); @@ -598,10 +603,8 @@ export class NitroMessages implements IMessageConfiguration // Custom packets this._events.set(IncomingHeader.AREA_HIDE, AreaHideMessageEvent); - // Custom Prefixes - // this._events.set(IncomingHeader.USER_PREFIXES, UserPrefixesEvent); - // this._events.set(IncomingHeader.PREFIX_RECEIVED, PrefixReceivedEvent); - // this._events.set(IncomingHeader.ACTIVE_PREFIX_UPDATED, ActivePrefixUpdatedEvent); + // Nick Icons + this._events.set(IncomingHeader.USER_NICK_ICONS, UserNickIconsEvent); } private registerComposers(): void @@ -1014,9 +1017,6 @@ export class NitroMessages implements IMessageConfiguration this._composers.set(OutgoingHeader.CONTROL_YOUTUBE_DISPLAY_PLAYBACK, ControlYoutubeDisplayPlaybackMessageComposer); this._composers.set(OutgoingHeader.GET_YOUTUBE_DISPLAY_STATUS, GetYoutubeDisplayStatusMessageComposer); this._composers.set(OutgoingHeader.SET_YOUTUBE_DISPLAY_PLAYLIST, SetYoutubeDisplayPlaylistMessageComposer); - this._composers.set(OutgoingHeader.YOUTUBE_ROOM_PLAY, YouTubeRoomPlayComposer); - this._composers.set(OutgoingHeader.YOUTUBE_ROOM_SETTINGS, YouTubeRoomSettingsComposer); - this._composers.set(OutgoingHeader.YOUTUBE_ROOM_WATCHING, YouTubeRoomWatchingComposer); // FLOOR this._composers.set(OutgoingHeader.FURNITURE_FLOOR_UPDATE, FurnitureFloorUpdateComposer); @@ -1080,6 +1080,8 @@ export class NitroMessages implements IMessageConfiguration this._composers.set(OutgoingHeader.WIRED_USER_VARIABLE_UPDATE, WiredUserVariableUpdateComposer); this._composers.set(OutgoingHeader.WIRED_USER_VARIABLE_MANAGE, WiredUserVariableManageComposer); this._composers.set(OutgoingHeader.WIRED_USER_INSPECT_MOVE, WiredUserInspectMoveComposer); + this._composers.set(OutgoingHeader.TRANSLATION_LANGUAGES_REQUEST, TranslationLanguagesRequestComposer); + this._composers.set(OutgoingHeader.TRANSLATION_TEXT_REQUEST, TranslationTextRequestComposer); this._composers.set(OutgoingHeader.WIRED_OPEN, OpenMessageComposer); this._composers.set(OutgoingHeader.WIRED_ACTION_SAVE, UpdateActionMessageComposer); this._composers.set(OutgoingHeader.WIRED_CONDITION_SAVE, UpdateConditionMessageComposer); @@ -1242,11 +1244,17 @@ export class NitroMessages implements IMessageConfiguration this._composers.set(OutgoingHeader.RENTABLE_EXTEND_RENT_OR_BUYOUT_FURNI, ExtendRentOrBuyoutFurniMessageComposer); this._composers.set(OutgoingHeader.RENTABLE_GET_RENT_OR_BUYOUT_OFFER, GetRentOrBuyoutOfferMessageComposer); - // Custom Prefixes - // this._composers.set(OutgoingHeader.REQUEST_PREFIXES, RequestPrefixesComposer); - // this._composers.set(OutgoingHeader.SET_ACTIVE_PREFIX, SetActivePrefixComposer); - // this._composers.set(OutgoingHeader.DELETE_PREFIX, DeletePrefixComposer); - // this._composers.set(OutgoingHeader.PURCHASE_PREFIX, PurchasePrefixComposer); + // Nick Icons + this._composers.set(OutgoingHeader.REQUEST_NICK_ICONS, RequestNickIconsComposer); + this._composers.set(OutgoingHeader.PURCHASE_NICK_ICON, PurchaseNickIconComposer); + this._composers.set(OutgoingHeader.SET_ACTIVE_NICK_ICON, SetActiveNickIconComposer); + this._composers.set(OutgoingHeader.SET_ACTIVE_PREFIX, SetActivePrefixComposer); + this._composers.set(OutgoingHeader.PURCHASE_PREFIX, PurchasePrefixComposer); + this._composers.set(OutgoingHeader.PURCHASE_CATALOG_PREFIX, PurchaseCatalogPrefixComposer); + this._composers.set(OutgoingHeader.SET_DISPLAY_ORDER, SetDisplayOrderComposer); + this._composers.set(OutgoingHeader.YOUTUBE_ROOM_PLAY, YouTubeRoomPlayComposer); + this._composers.set(OutgoingHeader.YOUTUBE_ROOM_SETTINGS, YouTubeRoomSettingsComposer); + this._composers.set(OutgoingHeader.YOUTUBE_ROOM_WATCHING, YouTubeRoomWatchingComposer); } public get events(): Map diff --git a/packages/communication/src/index.ts b/packages/communication/src/index.ts index da3786f..02a98fc 100644 --- a/packages/communication/src/index.ts +++ b/packages/communication/src/index.ts @@ -78,6 +78,7 @@ export * from './messages/incoming/roomsettings'; export * from './messages/incoming/security'; export * from './messages/incoming/sound'; export * from './messages/incoming/talent'; +export * from './messages/incoming/translation'; export * from './messages/incoming/user'; export * from './messages/incoming/user/access'; export * from './messages/incoming/user/data'; @@ -156,6 +157,7 @@ export * from './messages/outgoing/roomsettings'; export * from './messages/outgoing/sound'; export * from './messages/outgoing/talent'; export * from './messages/outgoing/tracking'; +export * from './messages/outgoing/translation'; export * from './messages/outgoing/user'; export * from './messages/outgoing/user/data'; export * from './messages/outgoing/user/inventory'; @@ -237,6 +239,7 @@ export * from './messages/parser/roomsettings'; export * from './messages/parser/security'; export * from './messages/parser/sound'; export * from './messages/parser/talent'; +export * from './messages/parser/translation'; export * from './messages/parser/user'; export * from './messages/parser/user/access'; export * from './messages/parser/user/data'; diff --git a/packages/communication/src/messages/incoming/IncomingHeader.ts b/packages/communication/src/messages/incoming/IncomingHeader.ts index 0da020f..70dbad3 100644 --- a/packages/communication/src/messages/incoming/IncomingHeader.ts +++ b/packages/communication/src/messages/incoming/IncomingHeader.ts @@ -274,6 +274,8 @@ export class IncomingHeader public static WIRED_USER_VARIABLES_DATA = 5103; public static CONF_INVIS_STATE = 5104; public static HANDITEM_BLOCK_STATE = 5105; + public static TRANSLATION_LANGUAGES = 5106; + public static TRANSLATION_RESULT = 5107; public static WIRED_OPEN = 1830; public static WIRED_REWARD = 178; public static WIRED_SAVE = 1155; @@ -495,8 +497,9 @@ export class IncomingHeader public static USER_PREFIXES = 7001; public static PREFIX_RECEIVED = 7002; public static ACTIVE_PREFIX_UPDATED = 7003; - - // YouTube Room Broadcast + public static USER_NICK_ICONS = 7004; + + // YouTube Room Broadcast public static YOUTUBE_ROOM_BROADCAST = 8001; public static YOUTUBE_ROOM_WATCHERS = 8002; public static YOUTUBE_ROOM_SETTINGS = 8003; diff --git a/packages/communication/src/messages/incoming/index.ts b/packages/communication/src/messages/incoming/index.ts index 4a2a2fc..5584383 100644 --- a/packages/communication/src/messages/incoming/index.ts +++ b/packages/communication/src/messages/incoming/index.ts @@ -69,6 +69,7 @@ export * from './roomsettings'; export * from './security'; export * from './sound'; export * from './talent'; +export * from './translation'; export * from './user'; export * from './user/access'; export * from './user/data'; diff --git a/packages/communication/src/messages/incoming/inventory/index.ts b/packages/communication/src/messages/incoming/inventory/index.ts index 9109eb5..b23d7fa 100644 --- a/packages/communication/src/messages/incoming/inventory/index.ts +++ b/packages/communication/src/messages/incoming/inventory/index.ts @@ -4,6 +4,7 @@ export * from './badges'; export * from './clothes'; export * from './furni'; export * from './furni/gifts'; +export * from './nickicons'; export * from './pets'; export * from './prefixes'; export * from './trading'; diff --git a/packages/communication/src/messages/incoming/inventory/nickicons/UserNickIconsEvent.ts b/packages/communication/src/messages/incoming/inventory/nickicons/UserNickIconsEvent.ts new file mode 100644 index 0000000..1efed58 --- /dev/null +++ b/packages/communication/src/messages/incoming/inventory/nickicons/UserNickIconsEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '@nitrots/api'; +import { MessageEvent } from '@nitrots/events'; +import { UserNickIconsParser } from '../../../parser'; + +export class UserNickIconsEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, UserNickIconsParser); + } + + public getParser(): UserNickIconsParser + { + return this.parser as UserNickIconsParser; + } +} diff --git a/packages/communication/src/messages/incoming/inventory/nickicons/index.ts b/packages/communication/src/messages/incoming/inventory/nickicons/index.ts new file mode 100644 index 0000000..f9f0ba9 --- /dev/null +++ b/packages/communication/src/messages/incoming/inventory/nickicons/index.ts @@ -0,0 +1 @@ +export * from './UserNickIconsEvent'; diff --git a/packages/communication/src/messages/incoming/translation/TranslationLanguagesEvent.ts b/packages/communication/src/messages/incoming/translation/TranslationLanguagesEvent.ts new file mode 100644 index 0000000..28937a9 --- /dev/null +++ b/packages/communication/src/messages/incoming/translation/TranslationLanguagesEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '@nitrots/api'; +import { MessageEvent } from '@nitrots/events'; +import { TranslationLanguagesParser } from '../../parser'; + +export class TranslationLanguagesEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, TranslationLanguagesParser); + } + + public getParser(): TranslationLanguagesParser + { + return this.parser as TranslationLanguagesParser; + } +} diff --git a/packages/communication/src/messages/incoming/translation/TranslationResultEvent.ts b/packages/communication/src/messages/incoming/translation/TranslationResultEvent.ts new file mode 100644 index 0000000..96984ed --- /dev/null +++ b/packages/communication/src/messages/incoming/translation/TranslationResultEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '@nitrots/api'; +import { MessageEvent } from '@nitrots/events'; +import { TranslationResultParser } from '../../parser'; + +export class TranslationResultEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, TranslationResultParser); + } + + public getParser(): TranslationResultParser + { + return this.parser as TranslationResultParser; + } +} diff --git a/packages/communication/src/messages/incoming/translation/index.ts b/packages/communication/src/messages/incoming/translation/index.ts new file mode 100644 index 0000000..0258019 --- /dev/null +++ b/packages/communication/src/messages/incoming/translation/index.ts @@ -0,0 +1,2 @@ +export * from './TranslationLanguagesEvent'; +export * from './TranslationResultEvent'; diff --git a/packages/communication/src/messages/outgoing/OutgoingHeader.ts b/packages/communication/src/messages/outgoing/OutgoingHeader.ts index cfb0ece..80dc117 100644 --- a/packages/communication/src/messages/outgoing/OutgoingHeader.ts +++ b/packages/communication/src/messages/outgoing/OutgoingHeader.ts @@ -278,6 +278,8 @@ export class OutgoingHeader public static WIRED_USER_VARIABLE_UPDATE = 10025; public static WIRED_USER_VARIABLE_MANAGE = 10026; public static WIRED_USER_INSPECT_MOVE = 10027; + public static TRANSLATION_LANGUAGES_REQUEST = 10032; + public static TRANSLATION_TEXT_REQUEST = 10033; public static WIRED_OPEN = 768; public static WIRED_TRIGGER_SAVE = 1520; public static GET_ITEM_DATA = 3964; @@ -510,8 +512,13 @@ export class OutgoingHeader public static SET_ACTIVE_PREFIX = 7012; public static DELETE_PREFIX = 7013; public static PURCHASE_PREFIX = 7014; - - // YouTube Room Broadcast + public static REQUEST_NICK_ICONS = 7015; + public static PURCHASE_NICK_ICON = 7016; + public static SET_ACTIVE_NICK_ICON = 7017; + public static PURCHASE_CATALOG_PREFIX = 7018; + public static SET_DISPLAY_ORDER = 7019; + + // YouTube Room Broadcast public static YOUTUBE_ROOM_PLAY = 8001; public static YOUTUBE_ROOM_WATCHING = 8002; public static YOUTUBE_ROOM_SETTINGS = 8003; diff --git a/packages/communication/src/messages/outgoing/index.ts b/packages/communication/src/messages/outgoing/index.ts index 814a55e..10e3549 100644 --- a/packages/communication/src/messages/outgoing/index.ts +++ b/packages/communication/src/messages/outgoing/index.ts @@ -67,6 +67,7 @@ export * from './roomsettings'; export * from './sound'; export * from './talent'; export * from './tracking'; +export * from './translation'; export * from './user'; export * from './user/data'; export * from './user/inventory'; diff --git a/packages/communication/src/messages/outgoing/inventory/index.ts b/packages/communication/src/messages/outgoing/inventory/index.ts index 59aebf7..0df4fd5 100644 --- a/packages/communication/src/messages/outgoing/inventory/index.ts +++ b/packages/communication/src/messages/outgoing/inventory/index.ts @@ -2,6 +2,7 @@ export * from './avatareffect'; export * from './badges'; export * from './bots'; export * from './furni'; +export * from './nickicons'; export * from './pets'; export * from './prefixes'; export * from './trading'; diff --git a/packages/communication/src/messages/outgoing/inventory/nickicons/PurchaseNickIconComposer.ts b/packages/communication/src/messages/outgoing/inventory/nickicons/PurchaseNickIconComposer.ts new file mode 100644 index 0000000..6cf6f91 --- /dev/null +++ b/packages/communication/src/messages/outgoing/inventory/nickicons/PurchaseNickIconComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class PurchaseNickIconComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(iconKey: string) + { + this._data = [ iconKey ]; + } + + public getMessageArray() + { + return this._data; + } + + public dispose(): void + { + return; + } +} diff --git a/packages/communication/src/messages/outgoing/inventory/nickicons/RequestNickIconsComposer.ts b/packages/communication/src/messages/outgoing/inventory/nickicons/RequestNickIconsComposer.ts new file mode 100644 index 0000000..a241f87 --- /dev/null +++ b/packages/communication/src/messages/outgoing/inventory/nickicons/RequestNickIconsComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class RequestNickIconsComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor() + { + this._data = []; + } + + public getMessageArray() + { + return this._data; + } + + public dispose(): void + { + return; + } +} diff --git a/packages/communication/src/messages/outgoing/inventory/nickicons/SetActiveNickIconComposer.ts b/packages/communication/src/messages/outgoing/inventory/nickicons/SetActiveNickIconComposer.ts new file mode 100644 index 0000000..8c74343 --- /dev/null +++ b/packages/communication/src/messages/outgoing/inventory/nickicons/SetActiveNickIconComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class SetActiveNickIconComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(iconId: number) + { + this._data = [ iconId ]; + } + + public getMessageArray() + { + return this._data; + } + + public dispose(): void + { + return; + } +} diff --git a/packages/communication/src/messages/outgoing/inventory/nickicons/index.ts b/packages/communication/src/messages/outgoing/inventory/nickicons/index.ts new file mode 100644 index 0000000..d52be18 --- /dev/null +++ b/packages/communication/src/messages/outgoing/inventory/nickicons/index.ts @@ -0,0 +1,3 @@ +export * from './PurchaseNickIconComposer'; +export * from './RequestNickIconsComposer'; +export * from './SetActiveNickIconComposer'; diff --git a/packages/communication/src/messages/outgoing/inventory/prefixes/PurchaseCatalogPrefixComposer.ts b/packages/communication/src/messages/outgoing/inventory/prefixes/PurchaseCatalogPrefixComposer.ts new file mode 100644 index 0000000..e77e4e1 --- /dev/null +++ b/packages/communication/src/messages/outgoing/inventory/prefixes/PurchaseCatalogPrefixComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class PurchaseCatalogPrefixComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(prefixId: number) + { + this._data = [ prefixId ]; + } + + public getMessageArray() + { + return this._data; + } + + public dispose(): void + { + this._data = null; + } +} diff --git a/packages/communication/src/messages/outgoing/inventory/prefixes/PurchasePrefixComposer.ts b/packages/communication/src/messages/outgoing/inventory/prefixes/PurchasePrefixComposer.ts index 29e5ec9..e040c3f 100644 --- a/packages/communication/src/messages/outgoing/inventory/prefixes/PurchasePrefixComposer.ts +++ b/packages/communication/src/messages/outgoing/inventory/prefixes/PurchasePrefixComposer.ts @@ -4,9 +4,9 @@ export class PurchasePrefixComposer implements IMessageComposer; - constructor(text: string, color: string, icon: string = '', effect: string = '') + constructor(text: string, color: string, icon: string = '', effect: string = '', font: string = '') { - this._data = [ text, color, icon, effect ]; + this._data = [ text, color, icon, effect, font ]; } public getMessageArray() diff --git a/packages/communication/src/messages/outgoing/inventory/prefixes/SetDisplayOrderComposer.ts b/packages/communication/src/messages/outgoing/inventory/prefixes/SetDisplayOrderComposer.ts new file mode 100644 index 0000000..7946f99 --- /dev/null +++ b/packages/communication/src/messages/outgoing/inventory/prefixes/SetDisplayOrderComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class SetDisplayOrderComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(displayOrder: string) + { + this._data = [ displayOrder ]; + } + + public getMessageArray() + { + return this._data; + } + + public dispose(): void + { + this._data = null; + } +} diff --git a/packages/communication/src/messages/outgoing/inventory/prefixes/index.ts b/packages/communication/src/messages/outgoing/inventory/prefixes/index.ts index e4c2b5c..e51de8a 100644 --- a/packages/communication/src/messages/outgoing/inventory/prefixes/index.ts +++ b/packages/communication/src/messages/outgoing/inventory/prefixes/index.ts @@ -1,4 +1,6 @@ export * from './DeletePrefixComposer'; +export * from './PurchaseCatalogPrefixComposer'; export * from './PurchasePrefixComposer'; export * from './RequestPrefixesComposer'; +export * from './SetDisplayOrderComposer'; export * from './SetActivePrefixComposer'; diff --git a/packages/communication/src/messages/outgoing/translation/TranslationLanguagesRequestComposer.ts b/packages/communication/src/messages/outgoing/translation/TranslationLanguagesRequestComposer.ts new file mode 100644 index 0000000..c4a0143 --- /dev/null +++ b/packages/communication/src/messages/outgoing/translation/TranslationLanguagesRequestComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class TranslationLanguagesRequestComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(displayLanguage: string = 'en') + { + this._data = [displayLanguage]; + } + + public getMessageArray() + { + return this._data; + } + + public dispose(): void + { + return; + } +} diff --git a/packages/communication/src/messages/outgoing/translation/TranslationTextRequestComposer.ts b/packages/communication/src/messages/outgoing/translation/TranslationTextRequestComposer.ts new file mode 100644 index 0000000..e2ac718 --- /dev/null +++ b/packages/communication/src/messages/outgoing/translation/TranslationTextRequestComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class TranslationTextRequestComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(requestId: number, text: string, targetLanguage: string) + { + this._data = [requestId, text, targetLanguage]; + } + + public getMessageArray() + { + return this._data; + } + + public dispose(): void + { + return; + } +} diff --git a/packages/communication/src/messages/outgoing/translation/index.ts b/packages/communication/src/messages/outgoing/translation/index.ts new file mode 100644 index 0000000..542943a --- /dev/null +++ b/packages/communication/src/messages/outgoing/translation/index.ts @@ -0,0 +1,2 @@ +export * from './TranslationLanguagesRequestComposer'; +export * from './TranslationTextRequestComposer'; diff --git a/packages/communication/src/messages/parser/index.ts b/packages/communication/src/messages/parser/index.ts index 0bf896a..7a7fc3b 100644 --- a/packages/communication/src/messages/parser/index.ts +++ b/packages/communication/src/messages/parser/index.ts @@ -70,6 +70,7 @@ export * from './roomsettings'; export * from './security'; export * from './sound'; export * from './talent'; +export * from './translation'; export * from './user'; export * from './user/access'; export * from './user/data'; diff --git a/packages/communication/src/messages/parser/inventory/index.ts b/packages/communication/src/messages/parser/inventory/index.ts index 58cb9a2..eaaeba2 100644 --- a/packages/communication/src/messages/parser/inventory/index.ts +++ b/packages/communication/src/messages/parser/inventory/index.ts @@ -3,6 +3,7 @@ export * from './avatareffect'; export * from './badges'; export * from './clothing'; export * from './furniture'; +export * from './nickicons'; export * from './pets'; export * from './prefixes'; export * from './purse'; diff --git a/packages/communication/src/messages/parser/inventory/nickicons/UserNickIconsParser.ts b/packages/communication/src/messages/parser/inventory/nickicons/UserNickIconsParser.ts new file mode 100644 index 0000000..78d2dba --- /dev/null +++ b/packages/communication/src/messages/parser/inventory/nickicons/UserNickIconsParser.ts @@ -0,0 +1,222 @@ +import { IMessageDataWrapper, IMessageParser } from '@nitrots/api'; + +export interface INickIconData +{ + iconKey: string; + displayName: string; + points: number; + pointsType: number; + owned: boolean; + active: boolean; + id: number; +} + +export interface ICustomizePrefixCatalogData +{ + id: number; + displayName: string; + text: string; + color: string; + icon: string; + effect: string; + font: string; + points: number; + pointsType: number; + owned: boolean; + active: boolean; + ownedPrefixId: number; +} + +export interface ICustomizeOwnedPrefixData +{ + id: number; + displayName: string; + text: string; + color: string; + icon: string; + effect: string; + font: string; + active: boolean; + isCustom: boolean; + points: number; + pointsType: number; + catalogPrefixId: number; +} + +export class UserNickIconsParser implements IMessageParser +{ + private _nickIcons: INickIconData[]; + private _displayOrder: string; + private _customPrefixMaxLength: number; + private _customPrefixPriceCredits: number; + private _customPrefixPricePoints: number; + private _customPrefixPointsType: number; + private _customPrefixFontPriceCredits: number; + private _customPrefixFontPricePoints: number; + private _customPrefixFontPointsType: number; + private _prefixCatalog: ICustomizePrefixCatalogData[]; + private _ownedPrefixes: ICustomizeOwnedPrefixData[]; + + public flush(): boolean + { + this._nickIcons = []; + this._displayOrder = 'icon-prefix-name'; + this._customPrefixMaxLength = 15; + this._customPrefixPriceCredits = 0; + this._customPrefixPricePoints = 0; + this._customPrefixPointsType = 0; + this._customPrefixFontPriceCredits = 0; + this._customPrefixFontPricePoints = 0; + this._customPrefixFontPointsType = 0; + this._prefixCatalog = []; + this._ownedPrefixes = []; + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + if(!wrapper) return false; + + this._nickIcons = []; + this._displayOrder = 'icon-prefix-name'; + this._customPrefixMaxLength = 15; + this._customPrefixPriceCredits = 0; + this._customPrefixPricePoints = 0; + this._customPrefixPointsType = 0; + this._customPrefixFontPriceCredits = 0; + this._customPrefixFontPricePoints = 0; + this._customPrefixFontPointsType = 0; + this._prefixCatalog = []; + this._ownedPrefixes = []; + + let count = wrapper.readInt(); + + while(count > 0) + { + this._nickIcons.push({ + iconKey: wrapper.readString(), + displayName: wrapper.readString(), + points: wrapper.readInt(), + pointsType: wrapper.readInt(), + owned: (wrapper.readInt() === 1), + active: (wrapper.readInt() === 1), + id: wrapper.readInt() + }); + + count--; + } + + if(wrapper.bytesAvailable) + { + this._displayOrder = wrapper.readString(); + this._customPrefixMaxLength = wrapper.readInt(); + this._customPrefixPriceCredits = wrapper.readInt(); + this._customPrefixPricePoints = wrapper.readInt(); + this._customPrefixPointsType = wrapper.readInt(); + this._customPrefixFontPriceCredits = wrapper.readInt(); + this._customPrefixFontPricePoints = wrapper.readInt(); + this._customPrefixFontPointsType = wrapper.readInt(); + + let catalogCount = wrapper.readInt(); + + while(catalogCount > 0) + { + this._prefixCatalog.push({ + id: wrapper.readInt(), + displayName: wrapper.readString(), + text: wrapper.readString(), + color: wrapper.readString(), + icon: wrapper.readString(), + effect: wrapper.readString(), + font: wrapper.readString(), + points: wrapper.readInt(), + pointsType: wrapper.readInt(), + owned: (wrapper.readInt() === 1), + active: (wrapper.readInt() === 1), + ownedPrefixId: wrapper.readInt() + }); + + catalogCount--; + } + + let ownedCount = wrapper.readInt(); + + while(ownedCount > 0) + { + this._ownedPrefixes.push({ + id: wrapper.readInt(), + displayName: wrapper.readString(), + text: wrapper.readString(), + color: wrapper.readString(), + icon: wrapper.readString(), + effect: wrapper.readString(), + font: wrapper.readString(), + active: (wrapper.readInt() === 1), + isCustom: (wrapper.readInt() === 1), + points: wrapper.readInt(), + pointsType: wrapper.readInt(), + catalogPrefixId: wrapper.readInt() + }); + + ownedCount--; + } + } + + return true; + } + + public get nickIcons(): INickIconData[] + { + return this._nickIcons; + } + + public get displayOrder(): string + { + return this._displayOrder; + } + + public get customPrefixMaxLength(): number + { + return this._customPrefixMaxLength; + } + + public get customPrefixPriceCredits(): number + { + return this._customPrefixPriceCredits; + } + + public get customPrefixPricePoints(): number + { + return this._customPrefixPricePoints; + } + + public get customPrefixPointsType(): number + { + return this._customPrefixPointsType; + } + + public get customPrefixFontPriceCredits(): number + { + return this._customPrefixFontPriceCredits; + } + + public get customPrefixFontPricePoints(): number + { + return this._customPrefixFontPricePoints; + } + + public get customPrefixFontPointsType(): number + { + return this._customPrefixFontPointsType; + } + + public get prefixCatalog(): ICustomizePrefixCatalogData[] + { + return this._prefixCatalog; + } + + public get ownedPrefixes(): ICustomizeOwnedPrefixData[] + { + return this._ownedPrefixes; + } +} diff --git a/packages/communication/src/messages/parser/inventory/nickicons/index.ts b/packages/communication/src/messages/parser/inventory/nickicons/index.ts new file mode 100644 index 0000000..8a17588 --- /dev/null +++ b/packages/communication/src/messages/parser/inventory/nickicons/index.ts @@ -0,0 +1 @@ +export * from './UserNickIconsParser'; diff --git a/packages/communication/src/messages/parser/inventory/prefixes/ActivePrefixUpdatedParser.ts b/packages/communication/src/messages/parser/inventory/prefixes/ActivePrefixUpdatedParser.ts index 26ce917..f7ec1bf 100644 --- a/packages/communication/src/messages/parser/inventory/prefixes/ActivePrefixUpdatedParser.ts +++ b/packages/communication/src/messages/parser/inventory/prefixes/ActivePrefixUpdatedParser.ts @@ -7,6 +7,7 @@ export class ActivePrefixUpdatedParser implements IMessageParser private _color: string; private _icon: string; private _effect: string; + private _font: string; public flush(): boolean { @@ -15,6 +16,7 @@ export class ActivePrefixUpdatedParser implements IMessageParser this._color = ''; this._icon = ''; this._effect = ''; + this._font = ''; return true; } @@ -27,6 +29,7 @@ export class ActivePrefixUpdatedParser implements IMessageParser this._color = wrapper.readString(); this._icon = wrapper.readString(); this._effect = wrapper.readString(); + this._font = wrapper.readString(); return true; } @@ -36,4 +39,5 @@ export class ActivePrefixUpdatedParser implements IMessageParser public get color(): string { return this._color; } public get icon(): string { return this._icon; } public get effect(): string { return this._effect; } + public get font(): string { return this._font; } } diff --git a/packages/communication/src/messages/parser/inventory/prefixes/PrefixReceivedParser.ts b/packages/communication/src/messages/parser/inventory/prefixes/PrefixReceivedParser.ts index a286a2d..f304764 100644 --- a/packages/communication/src/messages/parser/inventory/prefixes/PrefixReceivedParser.ts +++ b/packages/communication/src/messages/parser/inventory/prefixes/PrefixReceivedParser.ts @@ -7,6 +7,7 @@ export class PrefixReceivedParser implements IMessageParser private _color: string; private _icon: string; private _effect: string; + private _font: string; public flush(): boolean { @@ -15,6 +16,7 @@ export class PrefixReceivedParser implements IMessageParser this._color = ''; this._icon = ''; this._effect = ''; + this._font = ''; return true; } @@ -27,6 +29,7 @@ export class PrefixReceivedParser implements IMessageParser this._color = wrapper.readString(); this._icon = wrapper.readString(); this._effect = wrapper.readString(); + this._font = wrapper.readString(); return true; } @@ -36,4 +39,5 @@ export class PrefixReceivedParser implements IMessageParser public get color(): string { return this._color; } public get icon(): string { return this._icon; } public get effect(): string { return this._effect; } + public get font(): string { return this._font; } } diff --git a/packages/communication/src/messages/parser/inventory/prefixes/UserPrefixesParser.ts b/packages/communication/src/messages/parser/inventory/prefixes/UserPrefixesParser.ts index 26d4342..96d08f2 100644 --- a/packages/communication/src/messages/parser/inventory/prefixes/UserPrefixesParser.ts +++ b/packages/communication/src/messages/parser/inventory/prefixes/UserPrefixesParser.ts @@ -7,6 +7,7 @@ export interface IPrefixData color: string; icon: string; effect: string; + font: string; active: boolean; } @@ -36,6 +37,7 @@ export class UserPrefixesParser implements IMessageParser color: wrapper.readString(), icon: wrapper.readString(), effect: wrapper.readString(), + font: wrapper.readString(), active: wrapper.readInt() === 1 }); diff --git a/packages/communication/src/messages/parser/room/unit/RoomUnitInfoParser.ts b/packages/communication/src/messages/parser/room/unit/RoomUnitInfoParser.ts index bc11063..9b128f0 100644 --- a/packages/communication/src/messages/parser/room/unit/RoomUnitInfoParser.ts +++ b/packages/communication/src/messages/parser/room/unit/RoomUnitInfoParser.ts @@ -7,10 +7,17 @@ export class RoomUnitInfoParser implements IMessageParser private _gender: string; private _motto: string; private _achievementScore: number; - private _backgroundId: number; + private _backgroundId: number; private _standId: number; private _overlayId: number; private _cardBackgroundId: number; + private _nickIcon: string; + private _prefixText: string; + private _prefixColor: string; + private _prefixIcon: string; + private _prefixEffect: string; + private _prefixFont: string; + private _displayOrder: string; public flush(): boolean { @@ -19,10 +26,17 @@ export class RoomUnitInfoParser implements IMessageParser this._gender = 'M'; this._motto = null; this._achievementScore = 0; - this._backgroundId = 0; + this._backgroundId = 0; this._standId = 0; this._overlayId = 0; this._cardBackgroundId = 0; + this._nickIcon = ''; + this._prefixText = ''; + this._prefixColor = ''; + this._prefixIcon = ''; + this._prefixEffect = ''; + this._prefixFont = ''; + this._displayOrder = 'icon-prefix-name'; return true; } @@ -36,11 +50,17 @@ export class RoomUnitInfoParser implements IMessageParser this._gender = wrapper.readString().toLocaleUpperCase(); this._motto = wrapper.readString(); this._achievementScore = wrapper.readInt(); - this._backgroundId = wrapper.readInt(); + this._backgroundId = wrapper.readInt(); this._standId = wrapper.readInt(); this._overlayId = wrapper.readInt(); - - if(wrapper.bytesAvailable) this._cardBackgroundId = wrapper.readInt(); + this._cardBackgroundId = (wrapper.bytesAvailable ? wrapper.readInt() : 0); + this._nickIcon = (wrapper.bytesAvailable ? wrapper.readString() : ''); + this._prefixText = (wrapper.bytesAvailable ? wrapper.readString() : ''); + this._prefixColor = (wrapper.bytesAvailable ? wrapper.readString() : ''); + this._prefixIcon = (wrapper.bytesAvailable ? wrapper.readString() : ''); + this._prefixEffect = (wrapper.bytesAvailable ? wrapper.readString() : ''); + this._prefixFont = (wrapper.bytesAvailable ? wrapper.readString() : ''); + this._displayOrder = (wrapper.bytesAvailable ? wrapper.readString() : 'icon-prefix-name'); return true; } @@ -89,4 +109,39 @@ export class RoomUnitInfoParser implements IMessageParser { return this._cardBackgroundId; } -} \ No newline at end of file + + public get nickIcon(): string + { + return this._nickIcon; + } + + public get prefixText(): string + { + return this._prefixText; + } + + public get prefixColor(): string + { + return this._prefixColor; + } + + public get prefixIcon(): string + { + return this._prefixIcon; + } + + public get prefixEffect(): string + { + return this._prefixEffect; + } + + public get prefixFont(): string + { + return this._prefixFont; + } + + public get displayOrder(): string + { + return this._displayOrder; + } +} diff --git a/packages/communication/src/messages/parser/room/unit/RoomUnitParser.ts b/packages/communication/src/messages/parser/room/unit/RoomUnitParser.ts index 5322df8..ab638c0 100644 --- a/packages/communication/src/messages/parser/room/unit/RoomUnitParser.ts +++ b/packages/communication/src/messages/parser/room/unit/RoomUnitParser.ts @@ -77,6 +77,13 @@ export class RoomUnitParser implements IMessageParser user.figure = figure; user.activityPoints = wrapper.readInt(); user.isModerator = wrapper.readBoolean(); + user.nickIcon = wrapper.readString(); + user.prefixText = wrapper.readString(); + user.prefixColor = wrapper.readString(); + user.prefixIcon = wrapper.readString(); + user.prefixEffect = wrapper.readString(); + user.prefixFont = wrapper.readString(); + user.displayOrder = wrapper.readString(); } else if(type === 2) diff --git a/packages/communication/src/messages/parser/room/unit/UserMessageData.ts b/packages/communication/src/messages/parser/room/unit/UserMessageData.ts index 90c6bc1..d720576 100644 --- a/packages/communication/src/messages/parser/room/unit/UserMessageData.ts +++ b/packages/communication/src/messages/parser/room/unit/UserMessageData.ts @@ -13,6 +13,13 @@ export class UserMessageData private _sex: string = ''; private _figure: string = ''; private _custom: string = ''; + private _nickIcon: string = ''; + private _prefixText: string = ''; + private _prefixColor: string = ''; + private _prefixIcon: string = ''; + private _prefixEffect: string = ''; + private _prefixFont: string = ''; + private _displayOrder: string = 'icon-prefix-name'; private _activityPoints: number = 0; private _background: number = 0; private _stand: number = 0; @@ -448,6 +455,97 @@ export class UserMessageData return this._isModerator; } + public get nickIcon(): string + { + return this._nickIcon; + } + + public set nickIcon(k: string) + { + if(!this._isReadOnly) + { + this._nickIcon = k; + } + } + + public get prefixText(): string + { + return this._prefixText; + } + + public set prefixText(k: string) + { + if(!this._isReadOnly) + { + this._prefixText = k; + } + } + + public get prefixColor(): string + { + return this._prefixColor; + } + + public set prefixColor(k: string) + { + if(!this._isReadOnly) + { + this._prefixColor = k; + } + } + + public get prefixIcon(): string + { + return this._prefixIcon; + } + + public set prefixIcon(k: string) + { + if(!this._isReadOnly) + { + this._prefixIcon = k; + } + } + + public get prefixEffect(): string + { + return this._prefixEffect; + } + + public set prefixEffect(k: string) + { + if(!this._isReadOnly) + { + this._prefixEffect = k; + } + } + + public get prefixFont(): string + { + return this._prefixFont; + } + + public set prefixFont(k: string) + { + if(!this._isReadOnly) + { + this._prefixFont = k; + } + } + + public get displayOrder(): string + { + return this._displayOrder; + } + + public set displayOrder(k: string) + { + if(!this._isReadOnly) + { + this._displayOrder = k; + } + } + public set isModerator(k: boolean) { if(!this._isReadOnly) diff --git a/packages/communication/src/messages/parser/room/unit/chat/RoomUnitChatParser.ts b/packages/communication/src/messages/parser/room/unit/chat/RoomUnitChatParser.ts index 09a30ec..1c47e9f 100644 --- a/packages/communication/src/messages/parser/room/unit/chat/RoomUnitChatParser.ts +++ b/packages/communication/src/messages/parser/room/unit/chat/RoomUnitChatParser.ts @@ -13,6 +13,9 @@ export class RoomUnitChatParser implements IMessageParser private _prefixColor: string; private _prefixIcon: string; private _prefixEffect: string; + private _prefixFont: string; + private _nickIcon: string; + private _displayOrder: string; public flush(): boolean { @@ -27,6 +30,9 @@ export class RoomUnitChatParser implements IMessageParser this._prefixColor = ''; this._prefixIcon = ''; this._prefixEffect = ''; + this._prefixFont = ''; + this._nickIcon = ''; + this._displayOrder = 'icon-prefix-name'; return true; } @@ -48,6 +54,9 @@ export class RoomUnitChatParser implements IMessageParser this._prefixColor = wrapper.readString(); this._prefixIcon = wrapper.readString(); this._prefixEffect = wrapper.readString(); + this._prefixFont = wrapper.readString(); + this._nickIcon = wrapper.readString(); + this._displayOrder = (wrapper.bytesAvailable ? wrapper.readString() : 'icon-prefix-name'); return true; } @@ -124,4 +133,19 @@ export class RoomUnitChatParser implements IMessageParser { return this._prefixEffect; } + + public get prefixFont(): string + { + return this._prefixFont; + } + + public get nickIcon(): string + { + return this._nickIcon; + } + + public get displayOrder(): string + { + return this._displayOrder; + } } diff --git a/packages/communication/src/messages/parser/translation/TranslationLanguagesParser.ts b/packages/communication/src/messages/parser/translation/TranslationLanguagesParser.ts new file mode 100644 index 0000000..f000e7b --- /dev/null +++ b/packages/communication/src/messages/parser/translation/TranslationLanguagesParser.ts @@ -0,0 +1,59 @@ +import { IMessageDataWrapper, IMessageParser } from '@nitrots/api'; + +export interface ITranslationLanguageData +{ + code: string; + name: string; +} + +export class TranslationLanguagesParser implements IMessageParser +{ + private _success: boolean; + private _errorMessage: string; + private _languages: ITranslationLanguageData[]; + + public flush(): boolean + { + this._success = false; + this._errorMessage = ''; + this._languages = []; + + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + if(!wrapper) return false; + + this._success = wrapper.readBoolean(); + this._errorMessage = wrapper.readString(); + this._languages = []; + + const totalLanguages = wrapper.readInt(); + + for(let index = 0; index < totalLanguages; index++) + { + this._languages.push({ + code: wrapper.readString(), + name: wrapper.readString() + }); + } + + return true; + } + + public get success(): boolean + { + return this._success; + } + + public get errorMessage(): string + { + return this._errorMessage; + } + + public get languages(): ITranslationLanguageData[] + { + return this._languages; + } +} diff --git a/packages/communication/src/messages/parser/translation/TranslationResultParser.ts b/packages/communication/src/messages/parser/translation/TranslationResultParser.ts new file mode 100644 index 0000000..fe38178 --- /dev/null +++ b/packages/communication/src/messages/parser/translation/TranslationResultParser.ts @@ -0,0 +1,75 @@ +import { IMessageDataWrapper, IMessageParser } from '@nitrots/api'; + +export class TranslationResultParser implements IMessageParser +{ + private _requestId: number; + private _success: boolean; + private _errorMessage: string; + private _originalText: string; + private _translatedText: string; + private _detectedLanguage: string; + private _targetLanguage: string; + + public flush(): boolean + { + this._requestId = 0; + this._success = false; + this._errorMessage = ''; + this._originalText = ''; + this._translatedText = ''; + this._detectedLanguage = ''; + this._targetLanguage = ''; + + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + if(!wrapper) return false; + + this._requestId = wrapper.readInt(); + this._success = wrapper.readBoolean(); + this._errorMessage = wrapper.readString(); + this._originalText = wrapper.readString(); + this._translatedText = wrapper.readString(); + this._detectedLanguage = wrapper.readString(); + this._targetLanguage = wrapper.readString(); + + return true; + } + + public get requestId(): number + { + return this._requestId; + } + + public get success(): boolean + { + return this._success; + } + + public get errorMessage(): string + { + return this._errorMessage; + } + + public get originalText(): string + { + return this._originalText; + } + + public get translatedText(): string + { + return this._translatedText; + } + + public get detectedLanguage(): string + { + return this._detectedLanguage; + } + + public get targetLanguage(): string + { + return this._targetLanguage; + } +} diff --git a/packages/communication/src/messages/parser/translation/index.ts b/packages/communication/src/messages/parser/translation/index.ts new file mode 100644 index 0000000..659a213 --- /dev/null +++ b/packages/communication/src/messages/parser/translation/index.ts @@ -0,0 +1,2 @@ +export * from './TranslationLanguagesParser'; +export * from './TranslationResultParser'; diff --git a/packages/communication/src/messages/parser/user/data/UserProfileParser.ts b/packages/communication/src/messages/parser/user/data/UserProfileParser.ts index 4fd679b..ef07255 100644 --- a/packages/communication/src/messages/parser/user/data/UserProfileParser.ts +++ b/packages/communication/src/messages/parser/user/data/UserProfileParser.ts @@ -20,6 +20,13 @@ export class UserProfileParser implements IMessageParser private _standId: number; private _overlayId: number; private _cardBackgroundId: number; + private _nickIcon: string; + private _prefixText: string; + private _prefixColor: string; + private _prefixIcon: string; + private _prefixEffect: string; + private _prefixFont: string; + private _displayOrder: string; public flush(): boolean { @@ -40,6 +47,13 @@ export class UserProfileParser implements IMessageParser this._standId = 0; this._overlayId = 0; this._cardBackgroundId = 0; + this._nickIcon = ''; + this._prefixText = ''; + this._prefixColor = ''; + this._prefixIcon = ''; + this._prefixEffect = ''; + this._prefixFont = ''; + this._displayOrder = 'icon-prefix-name'; return true; } @@ -74,7 +88,22 @@ export class UserProfileParser implements IMessageParser this._standId = wrapper.readInt(); this._overlayId = wrapper.readInt(); - if(wrapper.bytesAvailable) this._cardBackgroundId = wrapper.readInt(); + this._cardBackgroundId = (wrapper.bytesAvailable ? wrapper.readInt() : 0); + + if(wrapper.bytesAvailable) + { + this._nickIcon = wrapper.readString(); + + if(wrapper.bytesAvailable) + { + this._prefixText = wrapper.readString(); + this._prefixColor = wrapper.readString(); + this._prefixIcon = wrapper.readString(); + this._prefixEffect = wrapper.readString(); + this._prefixFont = wrapper.readString(); + this._displayOrder = wrapper.readString(); + } + } } return true; @@ -164,4 +193,39 @@ export class UserProfileParser implements IMessageParser { return this._cardBackgroundId; } + + public get nickIcon(): string + { + return this._nickIcon; + } + + public get prefixText(): string + { + return this._prefixText; + } + + public get prefixColor(): string + { + return this._prefixColor; + } + + public get prefixIcon(): string + { + return this._prefixIcon; + } + + public get prefixEffect(): string + { + return this._prefixEffect; + } + + public get prefixFont(): string + { + return this._prefixFont; + } + + public get displayOrder(): string + { + return this._displayOrder; + } } diff --git a/packages/configuration/src/ConfigurationManager.ts b/packages/configuration/src/ConfigurationManager.ts index 8a2de97..457adab 100644 --- a/packages/configuration/src/ConfigurationManager.ts +++ b/packages/configuration/src/ConfigurationManager.ts @@ -129,6 +129,11 @@ export class ConfigurationManager implements IConfigurationManager } } + if(value.indexOf('%timestamp%') >= 0) + { + value = value.replace(/%timestamp%/gi, Date.now().toString()); + } + return value; } diff --git a/packages/events/src/session/RoomSessionChatEvent.ts b/packages/events/src/session/RoomSessionChatEvent.ts index 1f3e0ad..59b493a 100644 --- a/packages/events/src/session/RoomSessionChatEvent.ts +++ b/packages/events/src/session/RoomSessionChatEvent.ts @@ -21,6 +21,7 @@ export class RoomSessionChatEvent extends RoomSessionEvent private _objectId: number; private _message: string; private _chatType: number; + private _chatColours: string; private _links: string[]; private _extraParam: number; private _style: number; @@ -28,8 +29,11 @@ export class RoomSessionChatEvent extends RoomSessionEvent private _prefixColor: string; private _prefixIcon: string; private _prefixEffect: string; + private _prefixFont: string; + private _nickIcon: string; + private _displayOrder: string; - constructor(type: string, session: IRoomSession, objectId: number, message: string, chatType: number, style: number = 0, chatColours: string[], links: string[] = null, extraParam: number = -1, prefixText: string = '', prefixColor: string = '', prefixIcon: string = '', prefixEffect: string = '') + constructor(type: string, session: IRoomSession, objectId: number, message: string, chatType: number, style: number = 0, chatColours: string = '', links: string[] = null, extraParam: number = -1, prefixText: string = '', prefixColor: string = '', prefixIcon: string = '', prefixEffect: string = '', prefixFont: string = '', nickIcon: string = '', displayOrder: string = 'icon-prefix-name') { super(type, session); @@ -44,6 +48,9 @@ export class RoomSessionChatEvent extends RoomSessionEvent this._prefixColor = prefixColor; this._prefixIcon = prefixIcon; this._prefixEffect = prefixEffect; + this._prefixFont = prefixFont; + this._nickIcon = nickIcon; + this._displayOrder = displayOrder; } public get objectId(): number @@ -76,7 +83,7 @@ export class RoomSessionChatEvent extends RoomSessionEvent return this._style; } - public get chatColours(): string[] + public get chatColours(): string { return this._chatColours; } @@ -100,4 +107,19 @@ export class RoomSessionChatEvent extends RoomSessionEvent { return this._prefixEffect; } + + public get prefixFont(): string + { + return this._prefixFont; + } + + public get nickIcon(): string + { + return this._nickIcon; + } + + public get displayOrder(): string + { + return this._displayOrder; + } } diff --git a/packages/events/src/session/RoomSessionUserFigureUpdateEvent.ts b/packages/events/src/session/RoomSessionUserFigureUpdateEvent.ts index b273b3a..0fbea8a 100644 --- a/packages/events/src/session/RoomSessionUserFigureUpdateEvent.ts +++ b/packages/events/src/session/RoomSessionUserFigureUpdateEvent.ts @@ -13,6 +13,13 @@ export class RoomSessionUserFigureUpdateEvent extends RoomSessionEvent { private _standId: number | null; private _overlayId: number | null; private _cardBackgroundId: number | null; + private _nickIcon: string; + private _prefixText: string; + private _prefixColor: string; + private _prefixIcon: string; + private _prefixEffect: string; + private _prefixFont: string; + private _displayOrder: string; constructor( session: IRoomSession, @@ -24,7 +31,14 @@ export class RoomSessionUserFigureUpdateEvent extends RoomSessionEvent { backgroundId: number | null, standId: number | null, overlayId: number | null, - cardBackgroundId: number | null = 0 + cardBackgroundId: number | null = 0, + nickIcon: string = '', + prefixText: string = '', + prefixColor: string = '', + prefixIcon: string = '', + prefixEffect: string = '', + prefixFont: string = '', + displayOrder: string = 'icon-prefix-name' ) { super(RoomSessionUserFigureUpdateEvent.USER_FIGURE, session); @@ -37,6 +51,13 @@ export class RoomSessionUserFigureUpdateEvent extends RoomSessionEvent { this._standId = standId; this._overlayId = overlayId; this._cardBackgroundId = cardBackgroundId; + this._nickIcon = nickIcon; + this._prefixText = prefixText; + this._prefixColor = prefixColor; + this._prefixIcon = prefixIcon; + this._prefixEffect = prefixEffect; + this._prefixFont = prefixFont; + this._displayOrder = displayOrder; } public get roomIndex(): number { @@ -74,4 +95,32 @@ export class RoomSessionUserFigureUpdateEvent extends RoomSessionEvent { public get cardBackgroundId(): number | null { return this._cardBackgroundId; } -} \ No newline at end of file + + public get nickIcon(): string { + return this._nickIcon; + } + + public get prefixText(): string { + return this._prefixText; + } + + public get prefixColor(): string { + return this._prefixColor; + } + + public get prefixIcon(): string { + return this._prefixIcon; + } + + public get prefixEffect(): string { + return this._prefixEffect; + } + + public get prefixFont(): string { + return this._prefixFont; + } + + public get displayOrder(): string { + return this._displayOrder; + } +} diff --git a/packages/localization/src/LocalizationManager.ts b/packages/localization/src/LocalizationManager.ts index b3ffc92..1acb949 100644 --- a/packages/localization/src/LocalizationManager.ts +++ b/packages/localization/src/LocalizationManager.ts @@ -6,6 +6,7 @@ import { BadgeBaseAndLevel } from './BadgeBaseAndLevel'; export class LocalizationManager implements ILocalizationManager { private _definitions: Map = new Map(); + private _overrideDefinitions: Map = new Map(); private _parameters: Map> = new Map(); private _badgePointLimits: Map = new Map(); private _romanNumerals: string[] = [ 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX', 'XXI', 'XXII', 'XXIII', 'XXIV', 'XXV', 'XXVI', 'XXVII', 'XXVIII', 'XXIX', 'XXX' ]; @@ -102,7 +103,7 @@ export class LocalizationManager implements ILocalizationManager public hasValue(key: string): boolean { - return this._definitions.has(key); + return (this._overrideDefinitions.has(key) || this._definitions.has(key)); } public getValue(key: string, doParams: boolean = true): string @@ -116,7 +117,7 @@ export class LocalizationManager implements ILocalizationManager for(const splitKey of keys) key = key.replace(splitKey, this.getValue(splitKey.slice(2, -1), doParams)); } - let value = (this._definitions.get(key) || null); + let value = (this._overrideDefinitions.get(key) || this._definitions.get(key) || null); if(!value) { @@ -260,6 +261,16 @@ export class LocalizationManager implements ILocalizationManager this._definitions.set(key, value); } + public setOverrideValues(values: Map): void + { + this._overrideDefinitions = (values || new Map()); + } + + public clearOverrideValues(): void + { + this._overrideDefinitions.clear(); + } + public registerParameter(key: string, parameter: string, value: string): void { if(!key || (key.length === 0) || !parameter || (parameter.length === 0)) return; diff --git a/packages/room/src/object/visualization/avatar/AvatarVisualization.ts b/packages/room/src/object/visualization/avatar/AvatarVisualization.ts index 4831392..b267191 100644 --- a/packages/room/src/object/visualization/avatar/AvatarVisualization.ts +++ b/packages/room/src/object/visualization/avatar/AvatarVisualization.ts @@ -326,10 +326,6 @@ export class AvatarVisualization extends RoomObjectSpriteVisualization implement // }) // ]; } - else - { - sprite.filters = []; - } } if(sprite.texture) diff --git a/packages/session/src/RoomUserData.ts b/packages/session/src/RoomUserData.ts index c135017..b3220f4 100644 --- a/packages/session/src/RoomUserData.ts +++ b/packages/session/src/RoomUserData.ts @@ -8,6 +8,13 @@ export class RoomUserData implements IRoomUserData private _sex: string = ''; private _figure: string = ''; private _custom: string = ''; + private _nickIcon: string = ''; + private _prefixText: string = ''; + private _prefixColor: string = ''; + private _prefixIcon: string = ''; + private _prefixEffect: string = ''; + private _prefixFont: string = ''; + private _displayOrder: string = 'icon-prefix-name'; private _activityPoints: number; private _background: number; private _stand: number; @@ -297,6 +304,76 @@ export class RoomUserData implements IRoomUserData return this._isModerator; } + public get nickIcon(): string + { + return this._nickIcon; + } + + public set nickIcon(k: string) + { + this._nickIcon = k; + } + + public get prefixText(): string + { + return this._prefixText; + } + + public set prefixText(k: string) + { + this._prefixText = k; + } + + public get prefixColor(): string + { + return this._prefixColor; + } + + public set prefixColor(k: string) + { + this._prefixColor = k; + } + + public get prefixIcon(): string + { + return this._prefixIcon; + } + + public set prefixIcon(k: string) + { + this._prefixIcon = k; + } + + public get prefixEffect(): string + { + return this._prefixEffect; + } + + public set prefixEffect(k: string) + { + this._prefixEffect = k; + } + + public get prefixFont(): string + { + return this._prefixFont; + } + + public set prefixFont(k: string) + { + this._prefixFont = k; + } + + public get displayOrder(): string + { + return this._displayOrder; + } + + public set displayOrder(k: string) + { + this._displayOrder = k; + } + public set isModerator(k: boolean) { this._isModerator = k; diff --git a/packages/session/src/SessionDataManager.ts b/packages/session/src/SessionDataManager.ts index f690ea0..9d3c07f 100644 --- a/packages/session/src/SessionDataManager.ts +++ b/packages/session/src/SessionDataManager.ts @@ -1,6 +1,7 @@ import { IFurnitureData, IGroupInformationManager, IMessageComposer, IMessageEvent, IProductData, ISessionDataManager, NoobnessLevelEnum, SecurityLevel } from '@nitrots/api'; import { AccountSafetyLockStatusChangeMessageEvent, AccountSafetyLockStatusChangeParser, AvailabilityStatusMessageEvent, ChangeUserNameResultMessageEvent, EmailStatusResultEvent, FigureUpdateEvent, GetCommunication, GetUserTagsComposer, InClientLinkEvent, MysteryBoxKeysEvent, NoobnessLevelMessageEvent, PetRespectComposer, PetScratchFailedMessageEvent, RoomReadyMessageEvent, RoomUnitChatComposer, UserInfoEvent, UserNameChangeMessageEvent, UserPermissionsEvent, UserRespectComposer, UserTagsMessageEvent } from '@nitrots/communication'; import { GetConfiguration } from '@nitrots/configuration'; +import { GetLocalizationManager } from '@nitrots/localization'; import { GetEventDispatcher, MysteryBoxKeysUpdateEvent, NitroSettingsEvent, SessionDataPreferencesEvent, UserNameUpdateEvent } from '@nitrots/events'; import { CreateLinkEvent, HabboWebTools } from '@nitrots/utils'; import { Texture } from 'pixi.js'; @@ -42,6 +43,8 @@ export class SessionDataManager implements ISessionDataManager private _floorItems: Map = new Map(); private _wallItems: Map = new Map(); + private _floorItemOverrides: Map> = new Map(); + private _wallItemOverrides: Map> = new Map(); private _products: Map = new Map(); private _furnitureData: FurnitureDataLoader = new FurnitureDataLoader(this._floorItems, this._wallItems); private _productData: ProductDataLoader = new ProductDataLoader(this._products); @@ -130,7 +133,38 @@ export class SessionDataManager implements ISessionDataManager public getAllFurnitureData(): IFurnitureData[] { - return [ ...Array.from(this._floorItems.values()), ...Array.from(this._wallItems.values()) ]; + return [ + ...Array.from(this._floorItems.values()).map(item => this.applyFurnitureOverrides(item, this._floorItemOverrides)), + ...Array.from(this._wallItems.values()).map(item => this.applyFurnitureOverrides(item, this._wallItemOverrides)) + ]; + } + + public async applyFurnitureDataOverrides(url: string): Promise + { + if(!url || !url.length) + { + this.clearFurnitureDataOverrides(); + + return; + } + + const response = await fetch(url); + + if(response.status !== 200) throw new Error(`Unable to load ${ url }`); + + const data = await response.json(); + + this._floorItemOverrides = this.parseFurnitureOverrides(data?.roomitemtypes?.furnitype || []); + this._wallItemOverrides = this.parseFurnitureOverrides(data?.wallitemtypes?.furnitype || []); + + this.refreshFurnitureLocalizations(); + } + + public clearFurnitureDataOverrides(): void + { + this._floorItemOverrides.clear(); + this._wallItemOverrides.clear(); + this.refreshFurnitureLocalizations(); } private onUserInfoEvent(event: UserInfoEvent): void @@ -290,7 +324,7 @@ export class SessionDataManager implements ISessionDataManager if(!existing) return null; - return existing; + return this.applyFurnitureOverrides(existing, this._floorItemOverrides); } public getFloorItemDataByName(name: string): IFurnitureData @@ -301,7 +335,7 @@ export class SessionDataManager implements ISessionDataManager { if(!item || (item.className !== name)) continue; - return item; + return this.applyFurnitureOverrides(item, this._floorItemOverrides); } return null; @@ -313,7 +347,7 @@ export class SessionDataManager implements ISessionDataManager if(!existing) return null; - return existing; + return this.applyFurnitureOverrides(existing, this._wallItemOverrides); } public getWallItemDataByName(name: string): IFurnitureData @@ -324,7 +358,7 @@ export class SessionDataManager implements ISessionDataManager { if(!item || (item.className !== name)) continue; - return item; + return this.applyFurnitureOverrides(item, this._wallItemOverrides); } return null; @@ -335,6 +369,64 @@ export class SessionDataManager implements ISessionDataManager return this._products.get(type); } + private parseFurnitureOverrides(items: any[]): Map> + { + const overrides = new Map>(); + + for(const item of items) + { + if(!item?.classname) continue; + + const className = ((item.classname as string).split('*')[0] || '').trim(); + + if(!className.length) continue; + + overrides.set(className, { + name: item.name || '', + description: item.description || '' + }); + } + + return overrides; + } + + private applyFurnitureOverrides(item: IFurnitureData, overrides: Map>): IFurnitureData + { + if(!item) return null; + + const override = overrides.get(item.className); + + if(!override) return item; + + const clonedItem = Object.assign(Object.create(Object.getPrototypeOf(item)), item) as any; + + if(override.name !== undefined) clonedItem._localizedName = override.name; + if(override.description !== undefined) clonedItem._description = override.description; + + return clonedItem as IFurnitureData; + } + + private refreshFurnitureLocalizations(): void + { + const localizationManager = GetLocalizationManager(); + + for(const item of this._floorItems.values()) + { + const resolvedItem = this.applyFurnitureOverrides(item, this._floorItemOverrides); + + localizationManager.setValue(('roomItem.name.' + item.id), resolvedItem.name); + localizationManager.setValue(('roomItem.desc.' + item.id), resolvedItem.description); + } + + for(const item of this._wallItems.values()) + { + const resolvedItem = this.applyFurnitureOverrides(item, this._wallItemOverrides); + + localizationManager.setValue(('wallItem.name.' + item.id), resolvedItem.name); + localizationManager.setValue(('wallItem.desc.' + item.id), resolvedItem.description); + } + } + public getBadgeUrl(name: string): string { return this._badgeImageManager.getBadgeUrl(name); @@ -544,4 +636,4 @@ export class SessionDataManager implements ISessionDataManager { return this._tags; } -} \ No newline at end of file +} diff --git a/packages/session/src/UserDataManager.ts b/packages/session/src/UserDataManager.ts index af95750..374458c 100644 --- a/packages/session/src/UserDataManager.ts +++ b/packages/session/src/UserDataManager.ts @@ -144,6 +144,30 @@ export class UserDataManager implements IUserDataManager userData.custom = custom; } + + public updateNickIcon(roomIndex: number, nickIcon: string): void + { + const userData = this.getUserDataByIndex(roomIndex); + + if(!userData) return; + + userData.nickIcon = nickIcon; + } + + public updateCustomization(roomIndex: number, nickIcon: string, prefixText: string, prefixColor: string, prefixIcon: string, prefixEffect: string, prefixFont: string, displayOrder: string): void + { + const userData = this.getUserDataByIndex(roomIndex); + + if(!userData) return; + + userData.nickIcon = nickIcon; + userData.prefixText = prefixText; + userData.prefixColor = prefixColor; + userData.prefixIcon = prefixIcon; + userData.prefixEffect = prefixEffect; + userData.prefixFont = prefixFont; + userData.displayOrder = displayOrder; + } public updateBackground(roomIndex: number, background: number, stand: number, overlay: number, cardBackground: number = 0): void { diff --git a/packages/session/src/handler/RoomChatHandler.ts b/packages/session/src/handler/RoomChatHandler.ts index e515ae5..f901ef3 100644 --- a/packages/session/src/handler/RoomChatHandler.ts +++ b/packages/session/src/handler/RoomChatHandler.ts @@ -37,7 +37,7 @@ export class RoomChatHandler extends BaseHandler if(event instanceof RoomUnitChatShoutEvent) chatType = RoomSessionChatEvent.CHAT_TYPE_SHOUT; else if(event instanceof RoomUnitChatWhisperEvent) chatType = RoomSessionChatEvent.CHAT_TYPE_WHISPER; - const chatEvent = new RoomSessionChatEvent(RoomSessionChatEvent.CHAT_EVENT, session, parser.roomIndex, parser.message, chatType, parser.bubble, parser.chatColours, null, -1, parser.prefixText, parser.prefixColor, parser.prefixIcon, parser.prefixEffect); + const chatEvent = new RoomSessionChatEvent(RoomSessionChatEvent.CHAT_EVENT, session, parser.roomIndex, parser.message, chatType, parser.bubble, parser.chatColours, null, -1, parser.prefixText, parser.prefixColor, parser.prefixIcon, parser.prefixEffect, parser.prefixFont, parser.nickIcon, parser.displayOrder); GetEventDispatcher().dispatchEvent(chatEvent); } @@ -54,7 +54,7 @@ export class RoomChatHandler extends BaseHandler if(!parser) return; - GetEventDispatcher().dispatchEvent(new RoomSessionChatEvent(RoomSessionChatEvent.CHAT_EVENT, session, parser.giverUserId, '', RoomSessionChatEvent.CHAT_TYPE_HAND_ITEM_RECEIVED, SystemChatStyleEnum.GENERIC, [], null, parser.handItemType)); + GetEventDispatcher().dispatchEvent(new RoomSessionChatEvent(RoomSessionChatEvent.CHAT_EVENT, session, parser.giverUserId, '', RoomSessionChatEvent.CHAT_TYPE_HAND_ITEM_RECEIVED, SystemChatStyleEnum.GENERIC, '', null, parser.handItemType)); } private onRespectReceivedEvent(event: RespectReceivedEvent): void @@ -136,7 +136,7 @@ export class RoomChatHandler extends BaseHandler break; } - GetEventDispatcher().dispatchEvent(new RoomSessionChatEvent(RoomSessionChatEvent.CHAT_EVENT, session, petData.roomIndex, '', chatType, SystemChatStyleEnum.GENERIC, [], null, userRoomIndex)); + GetEventDispatcher().dispatchEvent(new RoomSessionChatEvent(RoomSessionChatEvent.CHAT_EVENT, session, petData.roomIndex, '', chatType, SystemChatStyleEnum.GENERIC, '', null, userRoomIndex)); } private onFloodControlEvent(event: FloodControlEvent): void diff --git a/packages/session/src/handler/RoomUsersHandler.ts b/packages/session/src/handler/RoomUsersHandler.ts index acaf263..f8ec5f6 100644 --- a/packages/session/src/handler/RoomUsersHandler.ts +++ b/packages/session/src/handler/RoomUsersHandler.ts @@ -55,6 +55,13 @@ export class RoomUsersHandler extends BaseHandler userData.name = user.name; userData.custom = user.custom; + userData.nickIcon = user.nickIcon; + userData.prefixText = user.prefixText; + userData.prefixColor = user.prefixColor; + userData.prefixIcon = user.prefixIcon; + userData.prefixEffect = user.prefixEffect; + userData.prefixFont = user.prefixFont; + userData.displayOrder = user.displayOrder; userData.background = user.background; userData.stand = user.stand; userData.overlay = user.overlay; @@ -105,11 +112,12 @@ export class RoomUsersHandler extends BaseHandler session.userDataManager.updateFigure(parser.unitId, parser.figure, parser.gender, false, false); session.userDataManager.updateMotto(parser.unitId, parser.motto); + session.userDataManager.updateCustomization(parser.unitId, parser.nickIcon || '', parser.prefixText || '', parser.prefixColor || '', parser.prefixIcon || '', parser.prefixEffect || '', parser.prefixFont || '', parser.displayOrder || 'icon-prefix-name'); session.userDataManager.updateAchievementScore(parser.unitId, parser.achievementScore); session.userDataManager.updateBackground(parser.unitId, parser.backgroundId, parser.standId, parser.overlayId, parser.cardBackgroundId); - GetEventDispatcher().dispatchEvent(new RoomSessionUserFigureUpdateEvent(session, parser.unitId, parser.figure, parser.gender, parser.motto, parser.achievementScore, parser.backgroundId, parser.standId, parser.overlayId, parser.cardBackgroundId)); + GetEventDispatcher().dispatchEvent(new RoomSessionUserFigureUpdateEvent(session, parser.unitId, parser.figure, parser.gender, parser.motto, parser.achievementScore, parser.backgroundId, parser.standId, parser.overlayId, parser.cardBackgroundId, parser.nickIcon || '', parser.prefixText || '', parser.prefixColor || '', parser.prefixIcon || '', parser.prefixEffect || '', parser.prefixFont || '', parser.displayOrder || 'icon-prefix-name')); } diff --git a/yarn.lock b/yarn.lock index 8d77961..51751cf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -119,121 +119,6 @@ dependencies: tslib "^2.4.0" -"@esbuild/aix-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" - integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== - -"@esbuild/android-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" - integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== - -"@esbuild/android-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" - integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== - -"@esbuild/android-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" - integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== - -"@esbuild/darwin-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" - integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== - -"@esbuild/darwin-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" - integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== - -"@esbuild/freebsd-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" - integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== - -"@esbuild/freebsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" - integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== - -"@esbuild/linux-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" - integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== - -"@esbuild/linux-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" - integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== - -"@esbuild/linux-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" - integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== - -"@esbuild/linux-loong64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" - integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== - -"@esbuild/linux-mips64el@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" - integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== - -"@esbuild/linux-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" - integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== - -"@esbuild/linux-riscv64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" - integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== - -"@esbuild/linux-s390x@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" - integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== - -"@esbuild/linux-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" - integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== - -"@esbuild/netbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" - integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== - -"@esbuild/openbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" - integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== - -"@esbuild/sunos-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" - integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== - -"@esbuild/win32-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" - integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== - -"@esbuild/win32-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" - integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== - -"@esbuild/win32-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" - integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== - "@eslint-community/eslint-utils@^4.8.0", "@eslint-community/eslint-utils@^4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz#4e90af67bc51ddee6cdef5284edf572ec376b595" @@ -479,131 +364,6 @@ estree-walker "^2.0.2" picomatch "^4.0.2" -"@rollup/rollup-android-arm-eabi@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz#a19c645c375158cd5c50a344106f0fa18eb821c4" - integrity sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw== - -"@rollup/rollup-android-arm64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz#1af19aa9d3ad6d00df2681f59cfcb8bf7499576b" - integrity sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg== - -"@rollup/rollup-darwin-arm64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz#3b8463e03ba2a393453fea70e7d907379c27b649" - integrity sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA== - -"@rollup/rollup-darwin-x64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz#28da23d69fe117f5f0ff330a8549e51bd09f1b6a" - integrity sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g== - -"@rollup/rollup-freebsd-arm64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz#94bacac3190f621de1355922b599f3817786044c" - integrity sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw== - -"@rollup/rollup-freebsd-x64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz#8a0094f533b9fda160b5c90ad9e0c78fca341788" - integrity sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ== - -"@rollup/rollup-linux-arm-gnueabihf@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz#3b7e901a555c7245c87f7440979bee0a1ec882bb" - integrity sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg== - -"@rollup/rollup-linux-arm-musleabihf@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz#ee9a09b72e8ad764cfd6188b32ff1de528ff7ebe" - integrity sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw== - -"@rollup/rollup-linux-arm64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz#ba483f4aca9be141171d086dbd01ada6ab03b58d" - integrity sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg== - -"@rollup/rollup-linux-arm64-musl@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz#17b595b790e6df68e91c5d02526fc832a985ce4f" - integrity sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA== - -"@rollup/rollup-linux-loong64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz#551718714075a2bfb36a2813c466e3a0e9d56abf" - integrity sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A== - -"@rollup/rollup-linux-loong64-musl@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz#ba156ed1243447a3d710972001d5dcfe3827ff3d" - integrity sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q== - -"@rollup/rollup-linux-ppc64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz#6a957a709b86ac62ef68e597ac03dbd4336782b1" - integrity sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw== - -"@rollup/rollup-linux-ppc64-musl@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz#ca4176b4ad53f3edee3b4bfa6f9ef48ff38f167b" - integrity sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ== - -"@rollup/rollup-linux-riscv64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz#4e6b08f72ebeafdb41f3ec433bd228ba8573473b" - integrity sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A== - -"@rollup/rollup-linux-riscv64-musl@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz#a0b8b8580c7680c8086cb3226527e5472253b895" - integrity sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ== - -"@rollup/rollup-linux-s390x-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz#79fe15b92ce0bae2b609cf26dd158cd3e2b73634" - integrity sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA== - -"@rollup/rollup-linux-x64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz#6aa8302fa45fd3cbbc510ccd223c9c37bf67e53f" - integrity sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ== - -"@rollup/rollup-linux-x64-musl@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz#0c1a5e9799f80c47a66f2c3a5f1a280f38356047" - integrity sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw== - -"@rollup/rollup-openbsd-x64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz#5f07c863e74fd428794f1dc5749f321b661d1f17" - integrity sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg== - -"@rollup/rollup-openharmony-arm64@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz#8e0d71324be0f423428b12b25a2eb8ea8e0a7833" - integrity sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q== - -"@rollup/rollup-win32-arm64-msvc@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz#a553fdf90a785ace6d7501eed6241c468b088999" - integrity sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ== - -"@rollup/rollup-win32-ia32-msvc@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz#0fb04f0a88027fbfd323e25a446debce4773868c" - integrity sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg== - -"@rollup/rollup-win32-x64-gnu@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz#aaa9e36dbdc0f0e397e5966dcce1b4285354ede2" - integrity sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA== - -"@rollup/rollup-win32-x64-msvc@4.60.2": - version "4.60.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz#3418dcf1388f2abd6b0ccc08fe1ef205ae76d696" - integrity sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA== - "@standard-schema/spec@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@standard-schema/spec/-/spec-1.1.0.tgz#a79b55dbaf8604812f52d140b2c9ab41bc150bb8" @@ -639,7 +399,7 @@ resolved "https://registry.yarnpkg.com/@types/earcut/-/earcut-3.0.0.tgz#c21ab8372c47f8af1bec63cb36eecb6917b6c5b6" integrity sha512-k/9fOUGO39yd2sCjrbAJvGDEQvRwRnQIZlBz43roGwUZo5SHAmyVvSFyaVVZkicRVCaDXPKlbxrUcBuJoSWunQ== -"@types/estree@1.0.8", "@types/estree@^1.0.0", "@types/estree@^1.0.6": +"@types/estree@^1.0.0", "@types/estree@^1.0.6": version "1.0.8" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== @@ -1053,35 +813,6 @@ es-module-lexer@^2.0.0: resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.1.0.tgz#1dfcbb5ea3bbfb63f28e1fc3676c3676d1c9624c" integrity sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ== -esbuild@^0.21.3: - version "0.21.5" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" - integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== - optionalDependencies: - "@esbuild/aix-ppc64" "0.21.5" - "@esbuild/android-arm" "0.21.5" - "@esbuild/android-arm64" "0.21.5" - "@esbuild/android-x64" "0.21.5" - "@esbuild/darwin-arm64" "0.21.5" - "@esbuild/darwin-x64" "0.21.5" - "@esbuild/freebsd-arm64" "0.21.5" - "@esbuild/freebsd-x64" "0.21.5" - "@esbuild/linux-arm" "0.21.5" - "@esbuild/linux-arm64" "0.21.5" - "@esbuild/linux-ia32" "0.21.5" - "@esbuild/linux-loong64" "0.21.5" - "@esbuild/linux-mips64el" "0.21.5" - "@esbuild/linux-ppc64" "0.21.5" - "@esbuild/linux-riscv64" "0.21.5" - "@esbuild/linux-s390x" "0.21.5" - "@esbuild/linux-x64" "0.21.5" - "@esbuild/netbsd-x64" "0.21.5" - "@esbuild/openbsd-x64" "0.21.5" - "@esbuild/sunos-x64" "0.21.5" - "@esbuild/win32-arm64" "0.21.5" - "@esbuild/win32-ia32" "0.21.5" - "@esbuild/win32-x64" "0.21.5" - escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" @@ -1253,7 +984,7 @@ flatted@^3.2.9: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.4.2.tgz#f5c23c107f0f37de8dbdf24f13722b3b98d52726" integrity sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA== -fsevents@~2.3.2, fsevents@~2.3.3: +fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -1735,7 +1466,7 @@ pixi.js@^8.18.1, pixi.js@^8.8.1: parse-svg-path "^0.1.2" tiny-lru "^11.4.7" -postcss@^8.4.43, postcss@^8.5.10: +postcss@^8.5.10: version "8.5.12" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.12.tgz#cd0c0f667f7cb0521e2313234ea6e707a9ec1ddb" integrity sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA== @@ -1798,40 +1529,6 @@ rolldown@1.0.0-rc.17: "@rolldown/binding-win32-arm64-msvc" "1.0.0-rc.17" "@rolldown/binding-win32-x64-msvc" "1.0.0-rc.17" -rollup@^4.20.0: - version "4.60.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.60.2.tgz#ac23fe4bd530304cef9fa61e639d7098b6762cf4" - integrity sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ== - dependencies: - "@types/estree" "1.0.8" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.60.2" - "@rollup/rollup-android-arm64" "4.60.2" - "@rollup/rollup-darwin-arm64" "4.60.2" - "@rollup/rollup-darwin-x64" "4.60.2" - "@rollup/rollup-freebsd-arm64" "4.60.2" - "@rollup/rollup-freebsd-x64" "4.60.2" - "@rollup/rollup-linux-arm-gnueabihf" "4.60.2" - "@rollup/rollup-linux-arm-musleabihf" "4.60.2" - "@rollup/rollup-linux-arm64-gnu" "4.60.2" - "@rollup/rollup-linux-arm64-musl" "4.60.2" - "@rollup/rollup-linux-loong64-gnu" "4.60.2" - "@rollup/rollup-linux-loong64-musl" "4.60.2" - "@rollup/rollup-linux-ppc64-gnu" "4.60.2" - "@rollup/rollup-linux-ppc64-musl" "4.60.2" - "@rollup/rollup-linux-riscv64-gnu" "4.60.2" - "@rollup/rollup-linux-riscv64-musl" "4.60.2" - "@rollup/rollup-linux-s390x-gnu" "4.60.2" - "@rollup/rollup-linux-x64-gnu" "4.60.2" - "@rollup/rollup-linux-x64-musl" "4.60.2" - "@rollup/rollup-openbsd-x64" "4.60.2" - "@rollup/rollup-openharmony-arm64" "4.60.2" - "@rollup/rollup-win32-arm64-msvc" "4.60.2" - "@rollup/rollup-win32-ia32-msvc" "4.60.2" - "@rollup/rollup-win32-x64-gnu" "4.60.2" - "@rollup/rollup-win32-x64-msvc" "4.60.2" - fsevents "~2.3.2" - saxes@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" @@ -2001,18 +1698,7 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -vite@^5.4.9: - version "5.4.21" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.21.tgz#84a4f7c5d860b071676d39ba513c0d598fdc7027" - integrity sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw== - dependencies: - esbuild "^0.21.3" - postcss "^8.4.43" - rollup "^4.20.0" - optionalDependencies: - fsevents "~2.3.3" - -"vite@^6.0.0 || ^7.0.0 || ^8.0.0": +"vite@^6.0.0 || ^7.0.0 || ^8.0.0", vite@^8.0.10: version "8.0.10" resolved "https://registry.yarnpkg.com/vite/-/vite-8.0.10.tgz#fb31868526ec874101fac084172a2cdc6776319b" integrity sha512-rZuUu9j6J5uotLDs+cAA4O5H4K1SfPliUlQwqa6YEwSrWDZzP4rhm00oJR5snMewjxF5V/K3D4kctsUTsIU9Mw== @@ -2025,7 +1711,7 @@ vite@^5.4.9: optionalDependencies: fsevents "~2.3.3" -vitest@^4.0.18: +vitest@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/vitest/-/vitest-4.1.5.tgz#cda189c0cd9dd1c920be477c0f371b64ec14782a" integrity sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==