├── icon.ico
├── GlobalSuppressions.cs
├── Resources
├── libs
│ ├── AStar.dll
│ ├── MoreLinq.dll
│ └── HabboEncryption.dll
├── RELEASE NOTES.txt
└── README.txt
├── Communication
├── Interfaces
│ └── IServerPacket.cs
├── Encryption
│ ├── Crypto
│ │ └── RSA
│ │ │ └── Pkcs1PadType.cs
│ └── Keys
│ │ └── RSAKeys.cs
├── ConnectionManager
│ ├── ConnectionState.cs
│ ├── IDataParser.cs
│ ├── GameSocketManagerStatics.cs
│ └── Socket Exceptions
│ │ └── SocketInitializationException.cs
├── RCON
│ └── Commands
│ │ ├── IRCONCommand.cs
│ │ └── Hotel
│ │ ├── ReloadItemsCommand.cs
│ │ ├── ReloadNavigatorCommand.cs
│ │ ├── ReloadBansCommand.cs
│ │ ├── ReloadQuestsCommand.cs
│ │ ├── ReloadServerSettingsCommand.cs
│ │ ├── ReloadFilterCommand.cs
│ │ ├── ReloadVouchersCommand.cs
│ │ └── ReloadCatalogCommand.cs
└── Packets
│ ├── IPacketEvent.cs
│ ├── Outgoing
│ ├── Handshake
│ │ ├── PongComposer.cs
│ │ ├── AuthenticationOKComposer.cs
│ │ ├── SetUniqueIdComposer.cs
│ │ ├── SecretKeyComposer.cs
│ │ ├── GenericErrorComposer.cs
│ │ ├── InitCryptoComposer.cs
│ │ ├── AvailabilityStatusComposer.cs
│ │ └── UserRightsComposer.cs
│ ├── Quests
│ │ ├── QuestCompletedCompser.cs
│ │ └── QuestAbortedComposer.cs
│ ├── Rooms
│ │ ├── Permissions
│ │ │ ├── YouAreOwnerComposer.cs
│ │ │ ├── YouAreNotControllerComposer.cs
│ │ │ └── YouAreControllerMessageComposer.cs
│ │ ├── Furni
│ │ │ ├── Wired
│ │ │ │ └── HideWiredConfigComposer.cs
│ │ │ ├── GnomeBoxComposer.cs
│ │ │ ├── Stickys
│ │ │ │ └── StickyNoteComposer.cs
│ │ │ ├── LoveLocks
│ │ │ │ ├── LoveLockDialogueCloseMessageComposer.cs
│ │ │ │ ├── LoveLockDialogueMessageComposer.cs
│ │ │ │ └── LoveLockDialogueSetLockedMessageComposer.cs
│ │ │ ├── UpdateMagicTileComposer.cs
│ │ │ ├── YouTubeTelevisions
│ │ │ │ └── GetYouTubeVideoComposer.cs
│ │ │ ├── RentableSpaces
│ │ │ │ └── RentableSpaceComposer.cs
│ │ │ └── OpenGiftComposer.cs
│ │ ├── Session
│ │ │ ├── OpenConnectionComposer.cs
│ │ │ ├── CloseConnectionComposer.cs
│ │ │ ├── CantConnectComposer.cs
│ │ │ ├── RoomForwardComposer.cs
│ │ │ ├── FlatAccessibleComposer.cs
│ │ │ └── RoomReadyComposer.cs
│ │ ├── Engine
│ │ │ ├── UserRemoveComposer.cs
│ │ │ ├── FurnitureAliasesComposer.cs
│ │ │ ├── RoomPropertyComposer.cs
│ │ │ ├── RoomEntryInfoComposer.cs
│ │ │ ├── FloorHeightMapComposer.cs
│ │ │ ├── UserNameChangeComposer.cs
│ │ │ ├── ItemRemoveComposer.cs
│ │ │ ├── RoomVisualizationSettingsComposer.cs
│ │ │ ├── ObjectRemoveComposer.cs
│ │ │ ├── UserChangeComposer.cs
│ │ │ └── ItemAddComposer.cs
│ │ ├── Chat
│ │ │ ├── FloodControlComposer.cs
│ │ │ ├── UserTypingComposer.cs
│ │ │ ├── ChatComposer.cs
│ │ │ ├── ShoutComposer.cs
│ │ │ └── WhisperComposer.cs
│ │ ├── Settings
│ │ │ ├── RoomMuteSettingsComposer.cs
│ │ │ ├── RoomSettingsSavedComposer.cs
│ │ │ ├── UnbanUserFromRoomComposer.cs
│ │ │ ├── FlatControllerAddedComposer.cs
│ │ │ ├── FlatControllerRemovedComposer.cs
│ │ │ └── GetRoomFilterListComposer.cs
│ │ ├── Notifications
│ │ │ └── RoomErrorNotifComposer.cs
│ │ ├── Avatar
│ │ │ ├── ActionComposer.cs
│ │ │ ├── CarryObjectComposer.cs
│ │ │ ├── DanceComposer.cs
│ │ │ ├── AvatarAspectUpdateComposer.cs
│ │ │ ├── AvatarEffectComposer.cs
│ │ │ ├── SleepComposer.cs
│ │ │ └── AvatarAspectUpdateMessageComposer.cs
│ │ ├── Action
│ │ │ └── IgnoreStatusComposer.cs
│ │ ├── Freeze
│ │ │ └── UpdateFreezeLivesComposer.cs
│ │ ├── Polls
│ │ │ ├── PollOfferComposer.cs
│ │ │ └── Questions
│ │ │ │ └── QuestionParserComposer.cs
│ │ ├── AI
│ │ │ ├── Pets
│ │ │ │ └── AddExperiencePointsComposer.cs
│ │ │ └── Bots
│ │ │ │ └── OpenBotActionComposer.cs
│ │ └── FloorPlan
│ │ │ ├── FloorPlanSendDoorComposer.cs
│ │ │ └── FloorPlanFloorMapComposer.cs
│ ├── Inventory
│ │ ├── Trading
│ │ │ ├── TradingFinishComposer.cs
│ │ │ ├── TradingCompleteComposer.cs
│ │ │ ├── TradingClosedComposer.cs
│ │ │ ├── TradingErrorComposer.cs
│ │ │ ├── TradingAcceptComposer.cs
│ │ │ ├── TradingConfirmedComposer.cs
│ │ │ └── TradingStartComposer.cs
│ │ ├── Furni
│ │ │ ├── FurniListUpdateComposer.cs
│ │ │ ├── FurniListRemoveComposer.cs
│ │ │ └── FurniListNotificationComposer.cs
│ │ ├── Purse
│ │ │ ├── CreditBalanceComposer.cs
│ │ │ └── HabboActivityPointNotificationComposer.cs
│ │ ├── Achievements
│ │ │ └── AchievementScoreComposer.cs
│ │ ├── AvatarEffects
│ │ │ ├── AvatarEffectExpiredComposer.cs
│ │ │ ├── AvatarEffectAddedComposer.cs
│ │ │ └── AvatarEffectActivatedComposer.cs
│ │ └── Bots
│ │ │ └── BotInventoryComposer.cs
│ ├── Catalog
│ │ ├── GiftWrappingErrorComposer.cs
│ │ ├── CatalogUpdatedComposer.cs
│ │ ├── PurchaseErrorComposer.cs
│ │ ├── RecyclerRewardsComposer.cs
│ │ ├── VoucherRedeemErrorComposer.cs
│ │ ├── VoucherRedeemOkComposer.cs
│ │ ├── CheckGnomeNameComposer.cs
│ │ ├── CheckPetNameComposer.cs
│ │ ├── PresentDeliverErrorMessageComposer.cs
│ │ ├── CatalogItemDiscountComposer.cs
│ │ ├── MarketplaceConfigurationComposer.cs
│ │ ├── PromotableRoomsComposer.cs
│ │ └── GetCatalogRoomPromotionComposer.cs
│ ├── Sound
│ │ ├── TraxSongInfoComposer.cs
│ │ └── SoundSettingsComposer.cs
│ ├── GameCenter
│ │ ├── JoinQueueComposer.cs
│ │ ├── PlayableGamesComposer.cs
│ │ ├── GameAccountStatusComposer.cs
│ │ └── GameListComposer.cs
│ ├── Moderation
│ │ ├── OpenHelpToolComposer.cs
│ │ ├── MutedComposer.cs
│ │ ├── BroadcastMessageAlertComposer.cs
│ │ ├── ModeratorSupportTicketResponseComposer.cs
│ │ └── CallForHelpPendingCallsComposer.cs
│ ├── Navigator
│ │ ├── DoorbellComposer.cs
│ │ ├── RoomInfoUpdatedComposer.cs
│ │ ├── FlatAccessDeniedComposer.cs
│ │ ├── RoomRatingComposer.cs
│ │ ├── FlatCreatedComposer.cs
│ │ ├── New
│ │ │ ├── NavigatorCollapsedCategoriesComposer.cs
│ │ │ ├── NavigatorLiftedRoomsComposer.cs
│ │ │ └── NavigatorPreferencesComposer.cs
│ │ ├── NavigatorSettingsComposer.cs
│ │ ├── UpdateFavouriteRoomComposer.cs
│ │ ├── CanCreateRoomComposer.cs
│ │ ├── FavouritesComposer.cs
│ │ ├── PopularRoomTagsResultComposer.cs
│ │ └── NavigatorFlatCatsComposer.cs
│ ├── BuildersClub
│ │ ├── BCBorrowedItemsComposer.cs
│ │ └── BuildersClubMembershipComposer.cs
│ ├── Misc
│ │ ├── LatencyTestComposer.cs
│ │ └── VideoOffersRewardsComposer.cs
│ ├── Help
│ │ ├── SubmitBullyReportComposer.cs
│ │ ├── SendBullyReportComposer.cs
│ │ └── SanctionStatusComposer.cs
│ ├── Groups
│ │ ├── RefreshFavouriteGroupComposer.cs
│ │ ├── UnknownGroupComposer.cs
│ │ ├── NewGroupInfoComposer.cs
│ │ ├── UpdateFavouriteGroupComposer.cs
│ │ ├── GroupFurniSettingsComposer.cs
│ │ ├── GroupMemberUpdatedComposer.cs
│ │ └── GroupMembershipRequestedComposer.cs
│ ├── Messenger
│ │ ├── FollowFriendFailedComposer.cs
│ │ ├── FindFriendsProcessResultComposer.cs
│ │ ├── RoomInviteComposer.cs
│ │ ├── MessengerErrorComposer.cs
│ │ ├── NewConsoleMessageComposer.cs
│ │ ├── NewBuddyRequestComposer.cs
│ │ ├── InstantMessageErrorComposer.cs
│ │ ├── FriendNotificationComposer.cs
│ │ └── MessengerInitComposer.cs
│ ├── Marketplace
│ │ ├── MarketplaceMakeOfferResultComposer.cs
│ │ ├── MarketplaceCanMakeOfferResultComposer.cs
│ │ ├── MarketplaceCancelOfferResultComposer.cs
│ │ └── MarketplaceItemStatsComposer.cs
│ ├── Notifications
│ │ └── MOTDNotificationComposer.cs
│ ├── LandingView
│ │ ├── CampaignComposer.cs
│ │ └── ConcurrentUsersGoalProgressComposer.cs
│ └── Users
│ │ ├── UpdateUsernameComposer.cs
│ │ ├── RespectNotificationComposer.cs
│ │ ├── UserTagsComposer.cs
│ │ ├── IgnoredUsersComposer.cs
│ │ ├── ScrSendUserInfoComposer.cs
│ │ └── HabboUserBadgesComposer.cs
│ └── Incoming
│ ├── Misc
│ ├── EventTrackerEvent.cs
│ ├── MemoryPerformanceEvent.cs
│ ├── DisconnectEvent.cs
│ ├── LatencyTestEvent.cs
│ ├── ClientVariablesEvent.cs
│ └── SetFriendBarStateEvent.cs
│ ├── GameCenter
│ ├── InitializeGameCenterEvent.cs
│ ├── GetGameListingEvent.cs
│ ├── Game2GetWeeklyLeaderboardEvent.cs
│ └── GetPlayableGamesEvent.cs
│ ├── Handshake
│ ├── PingEvent.cs
│ ├── GetClientVersionEvent.cs
│ ├── InfoRetrieveEvent.cs
│ ├── InitCryptoEvent.cs
│ ├── UniqueIDEvent.cs
│ └── SSOTicketEvent.cs
│ ├── Messenger
│ ├── FriendListUpdateEvent.cs
│ ├── GetBuddyRequestsEvent.cs
│ ├── RequestBuddyEvent.cs
│ └── DeclineBuddyEvent.cs
│ ├── Help
│ ├── OnBullyClickEvent.cs
│ ├── GetSanctionStatusEvent.cs
│ └── SendBullyReportEvent.cs
│ ├── Catalog
│ ├── GetCatalogModeEvent.cs
│ ├── GetClubGiftsEvent.cs
│ ├── GetRecyclerRewardsEvent.cs
│ ├── GetMarketplaceConfigurationEvent.cs
│ ├── GetGiftWrappingConfigurationEvent.cs
│ ├── GetGroupFurniConfigEvent.cs
│ ├── GetCatalogRoomPromotionEvent.cs
│ ├── GetCatalogIndexEvent.cs
│ ├── GetPromotableRoomsEvent.cs
│ └── GetSellablePetBreedsEvent.cs
│ ├── Quests
│ ├── GetQuestListEvent.cs
│ └── GetDailyQuestEvent.cs
│ ├── Sound
│ └── GetSongInfoEvent.cs
│ ├── Inventory
│ ├── Purse
│ │ ├── GetHabboClubWindowEvent.cs
│ │ └── GetCreditsInfoEvent.cs
│ ├── Badges
│ │ └── GetBadgesEvent.cs
│ ├── Achievements
│ │ └── GetAchievementsEvent.cs
│ ├── Pets
│ │ └── GetPetInventoryEvent.cs
│ └── Bots
│ │ └── GetBotInventoryEvent.cs
│ ├── Users
│ ├── ScrGetUserInfoEvent.cs
│ ├── GetUserTagsEvent.cs
│ ├── GetSelectedBadgesEvent.cs
│ └── GetRelationshipsEvent.cs
│ ├── Moderation
│ ├── CloseIssueDefaultActionEvent.cs
│ ├── OpenHelpToolEvent.cs
│ └── ModerationMsgEvent.cs
│ ├── Rooms
│ ├── Polls
│ │ └── PollStartEvent.cs
│ ├── Engine
│ │ └── GetFurnitureAliasesEvent.cs
│ ├── FloorPlan
│ │ └── InitializeFloorPlanSessionEvent.cs
│ ├── Furni
│ │ ├── RentableSpaces
│ │ │ └── GetRentableSpaceEvent.cs
│ │ ├── YouTubeTelevisions
│ │ │ └── ToggleYouTubeVideoEvent.cs
│ │ ├── DiceOffEvent.cs
│ │ └── ThrowDiceEvent.cs
│ ├── Connection
│ │ ├── GoToFlatEvent.cs
│ │ └── OpenFlatConnectionEvent.cs
│ ├── Settings
│ │ ├── GetRoomSettingsEvent.cs
│ │ ├── GetRoomRightsEvent.cs
│ │ └── GetRoomBannedUsersEvent.cs
│ ├── Avatar
│ │ └── DropHandItemEvent.cs
│ └── Chat
│ │ ├── StartTypingEvent.cs
│ │ └── CancelTypingEvent.cs
│ ├── Avatar
│ └── GetWardrobeEvent.cs
│ ├── Navigator
│ ├── CanCreateRoomEvent.cs
│ ├── FindRandomFriendingRoomEvent.cs
│ ├── GetNavigatorFlatsEvent.cs
│ ├── GetUserFlatCatsEvent.cs
│ ├── GetGuestRoomEvent.cs
│ ├── UpdateNavigatorSettingsEvent.cs
│ ├── GoToHotelViewEvent.cs
│ └── InitializeNewNavigatorEvent.cs
│ ├── Marketplace
│ ├── GetOwnOffersEvent.cs
│ └── GetMarketplaceCanMakeOfferEvent.cs
│ ├── LandingView
│ └── GetPromoArticlesEvent.cs
│ ├── Talents
│ └── GetTalentTrackEvent.cs
│ └── Groups
│ ├── GetGroupInfoEvent.cs
│ ├── GetGroupCreationWindowEvent.cs
│ ├── GetBadgeEditorPartsEvent.cs
│ └── ManageGroupEvent.cs
├── HabboHotel
├── Talents
│ ├── TalentType.cs
│ └── TalentTrackSubLevel.cs
├── Catalog
│ ├── Vouchers
│ │ ├── VoucherType.cs
│ │ └── VoucherUtility.cs
│ ├── CatalogBot.cs
│ ├── CatalogPromotion.cs
│ └── Marketplace
│ │ └── MarketOffer.cs
├── Navigator
│ ├── NavigatorViewMode.cs
│ ├── NavigatorSearchAllowance.cs
│ ├── NavigatorCategoryType.cs
│ ├── NavigatorViewModeUtility.cs
│ └── FeaturedRoom.cs
├── Groups
│ ├── GroupType.cs
│ ├── GroupColours.cs
│ ├── GroupBadgeParts.cs
│ ├── GroupMember.cs
│ └── BadgePartUtility.cs
├── Users
│ ├── Messenger
│ │ ├── FriendBar
│ │ │ ├── FriendBarState.cs
│ │ │ └── FriendBarStateUtility.cs
│ │ ├── MessengerEventTypes.cs
│ │ ├── MessengerMessageErrors.cs
│ │ ├── SearchResult.cs
│ │ └── MessengerRequest.cs
│ ├── Authenticator
│ │ └── IncorrectLoginException.cs
│ ├── Badges
│ │ └── Badge.cs
│ ├── Relationships
│ │ └── Relationship.cs
│ ├── Clothing
│ │ └── Parts
│ │ │ └── ClothingParts.cs
│ └── Navigator
│ │ └── SavedSearches
│ │ └── SavedSearch.cs
├── Moderation
│ ├── ModerationBanType.cs
│ └── ModerationBan.cs
├── Rooms
│ ├── AI
│ │ ├── BotAIType.cs
│ │ ├── DatabaseUpdateState.cs
│ │ └── Speech
│ │ │ └── RandomSpeech.cs
│ ├── RoomAccess.cs
│ ├── SquareState.cs
│ ├── Games
│ │ ├── Teams
│ │ │ └── Team.cs
│ │ └── Freeze
│ │ │ └── FreezePowerUp.cs
│ ├── Chat
│ │ ├── Emotions
│ │ │ └── ChatEmotions.cs
│ │ ├── Pets
│ │ │ └── Commands
│ │ │ │ └── PetCommand.cs
│ │ └── Commands
│ │ │ ├── IChatCommand.cs
│ │ │ └── User
│ │ │ └── UnloadCommand.cs
│ ├── ItemEffectType.cs
│ └── ByteToItemEffectEnum.cs
├── Rewards
│ ├── RewardType.cs
│ └── RewardTypeUtility.cs
├── Items
│ ├── Wired
│ │ ├── IWiredCycle.cs
│ │ └── IWiredItem.cs
│ ├── Interactor
│ │ └── IFurniInteractor.cs
│ └── Data
│ │ └── Moodlight
│ │ └── MoodlightPreset.cs
├── Badges
│ └── BadgeDefinition.cs
├── Permissions
│ ├── Permission.cs
│ ├── PermissionGroup.cs
│ └── PermissionCommand.cs
├── Achievements
│ ├── UserAchievement.cs
│ ├── AchievementLevel.cs
│ └── Achievement.cs
├── Subscriptions
│ └── SubscriptionData.cs
└── Cache
│ └── Type
│ └── UserCache.cs
├── Properties
└── Settings.settings
├── Database
├── Interfaces
│ ├── IQueryAdapter.cs
│ ├── IDatabaseClient.cs
│ └── IRegularQueryAdapter.cs
└── Adapter
│ └── NormalQueryReactor.cs
├── Utilities
├── TextHandling.cs
├── Enclosure
│ └── Algorithm
│ │ └── FieldUpdate.cs
└── Converter.cs
├── Core
└── FigureData
│ └── Types
│ ├── SetType.cs
│ ├── Palette.cs
│ ├── FigureSet.cs
│ ├── Color.cs
│ └── Part.cs
├── README.md
├── packages.config
└── Config
└── config.ini
/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sledmore/PlusEMU/HEAD/icon.ico
--------------------------------------------------------------------------------
/GlobalSuppressions.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sledmore/PlusEMU/HEAD/GlobalSuppressions.cs
--------------------------------------------------------------------------------
/Resources/libs/AStar.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sledmore/PlusEMU/HEAD/Resources/libs/AStar.dll
--------------------------------------------------------------------------------
/Resources/libs/MoreLinq.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sledmore/PlusEMU/HEAD/Resources/libs/MoreLinq.dll
--------------------------------------------------------------------------------
/Resources/libs/HabboEncryption.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Sledmore/PlusEMU/HEAD/Resources/libs/HabboEncryption.dll
--------------------------------------------------------------------------------
/Communication/Interfaces/IServerPacket.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Interfaces
2 | {
3 | public interface IServerPacket
4 | {
5 | byte[] GetBytes();
6 | }
7 | }
--------------------------------------------------------------------------------
/HabboHotel/Talents/TalentType.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Talents
2 | {
3 | public enum TalentType
4 | {
5 | Helper,
6 | Citizenship
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/HabboHotel/Catalog/Vouchers/VoucherType.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Catalog.Vouchers
2 | {
3 | public enum VoucherType
4 | {
5 | Credit,
6 | Ducket,
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/HabboHotel/Navigator/NavigatorViewMode.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Navigator
2 | {
3 | public enum NavigatorViewMode
4 | {
5 | Regular,
6 | Thumbnail
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/HabboHotel/Groups/GroupType.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Groups
2 | {
3 | public enum GroupType
4 | {
5 | Open = 0,
6 | Locked = 1,
7 | Private = 2
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/HabboHotel/Users/Messenger/FriendBar/FriendBarState.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Users.Messenger.FriendBar
2 | {
3 | public enum FriendBarState
4 | {
5 | Open,
6 | Closed
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/Communication/Encryption/Crypto/RSA/Pkcs1PadType.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Encryption.Crypto.RSA
2 | {
3 | public enum Pkcs1PadType
4 | {
5 | FullByte = 1,
6 | RandomByte = 2
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/HabboHotel/Moderation/ModerationBanType.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Moderation
2 | {
3 | public enum ModerationBanType
4 | {
5 | IP,
6 | Machine,
7 | Username
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/HabboHotel/Rooms/AI/BotAIType.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Rooms.AI
2 | {
3 | public enum BotAIType
4 | {
5 | Pet,
6 | Generic,
7 | Bartender,
8 | CasinoBot
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/HabboHotel/Rooms/AI/DatabaseUpdateState.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Rooms.AI
2 | {
3 | public enum PetDatabaseUpdateState
4 | {
5 | Updated,
6 | NeedsUpdate,
7 | NeedsInsert
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/HabboHotel/Rooms/RoomAccess.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Rooms
2 | {
3 | public enum RoomAccess
4 | {
5 | Open,
6 | Doorbell,
7 | Password,
8 | Invisible
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/HabboHotel/Navigator/NavigatorSearchAllowance.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Navigator
2 | {
3 | public enum NavigatorSearchAllowance
4 | {
5 | Nothing,
6 | ShowMore,
7 | GoBack
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Communication/ConnectionManager/ConnectionState.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.ConnectionManager
2 | {
3 | public enum ConnectionState
4 | {
5 | Open = 0,
6 | Closed = 1,
7 | MalfunctioningPacket = 2
8 | }
9 | }
--------------------------------------------------------------------------------
/HabboHotel/Rewards/RewardType.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Rewards
2 | {
3 | public enum RewardType
4 | {
5 | Badge,
6 | Credits,
7 | Duckets,
8 | Diamonds,
9 | None
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/HabboHotel/Rooms/SquareState.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Rooms
2 | {
3 | public enum SquareState
4 | {
5 | Open = 0,
6 | Blocked = 1,
7 | Seat = 2,
8 | Pool = 3,
9 | VIP = 4
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/ConnectionManager/IDataParser.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Plus.Communication.ConnectionManager
4 | {
5 | public interface IDataParser : IDisposable, ICloneable
6 | {
7 | void HandlePacketData(byte[] packet);
8 | }
9 | }
--------------------------------------------------------------------------------
/HabboHotel/Items/Wired/IWiredCycle.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Items.Wired
2 | {
3 | interface IWiredCycle
4 | {
5 | int Delay { get; set; }
6 | int TickCount { get; set; }
7 | bool OnCycle();
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/HabboHotel/Rooms/Games/Teams/Team.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Rooms.Games.Teams
2 | {
3 | public enum Team
4 | {
5 | None = 0,
6 | Red = 1,
7 | Green = 2,
8 | Blue = 3,
9 | Yellow = 4
10 | }
11 | }
--------------------------------------------------------------------------------
/HabboHotel/Rooms/Chat/Emotions/ChatEmotions.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Rooms.Chat.Emotions
2 | {
3 | enum ChatEmotions
4 | {
5 | Smile,
6 | Angry,
7 | Sad,
8 | Shocked,
9 | None
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Database/Interfaces/IQueryAdapter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Plus.Database.Interfaces
4 | {
5 | public interface IQueryAdapter : IRegularQueryAdapter, IDisposable
6 | {
7 | long InsertQuery();
8 | void RunQuery();
9 | }
10 | }
--------------------------------------------------------------------------------
/HabboHotel/Rooms/ItemEffectType.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Rooms
2 | {
3 | public enum ItemEffectType
4 | {
5 | None,
6 | Swim,
7 | SwimLow,
8 | SwimHalloween,
9 | Iceskates,
10 | Normalskates
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Utilities/TextHandling.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Utilities
2 | {
3 | public static class TextHandling
4 | {
5 | public static string GetString(double k)
6 | {
7 | return k.ToString(PlusEnvironment.CultureInfo);
8 | }
9 | }
10 | }
--------------------------------------------------------------------------------
/Communication/RCON/Commands/IRCONCommand.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Rcon.Commands
2 | {
3 | public interface IRconCommand
4 | {
5 | string Parameters { get; }
6 | string Description { get; }
7 | bool TryExecute(string[] parameters);
8 | }
9 | }
--------------------------------------------------------------------------------
/Communication/Packets/IPacketEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Incoming;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets
5 | {
6 | public interface IPacketEvent
7 | {
8 | void Parse(GameClient session, ClientPacket packet);
9 | }
10 | }
--------------------------------------------------------------------------------
/Communication/ConnectionManager/GameSocketManagerStatics.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.ConnectionManager
2 | {
3 | public static class GameSocketManagerStatics
4 | {
5 | public static readonly int BufferSize = 8192;
6 | public static readonly int MaxPacketSize = BufferSize - 4;
7 | }
8 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Handshake/PongComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Handshake
2 | {
3 | class PongComposer :ServerPacket
4 | {
5 | public PongComposer()
6 | : base(ServerPacketHeader.PongMessageComposer)
7 | {
8 |
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/HabboHotel/Users/Messenger/MessengerEventTypes.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Users.Messenger
2 | {
3 | public enum MessengerEventTypes
4 | {
5 | EventStarted,
6 | AchievementUnlocked,
7 | QuestCompleted,
8 | PlayingGame,
9 | FinishedGame,
10 | GameInvite
11 | }
12 | }
--------------------------------------------------------------------------------
/HabboHotel/Users/Messenger/MessengerMessageErrors.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Users.Messenger
2 | {
3 | public enum MessengerMessageErrors
4 | {
5 | FriendMuted,
6 | yourMuted,
7 | FriendOffline,
8 | NotFriends,
9 | FriendBusy,
10 | OfflineFailed
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Misc/EventTrackerEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Misc
4 | {
5 | class EventTrackerEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 |
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/HabboHotel/Rooms/Games/Freeze/FreezePowerUp.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Rooms.Games.Freeze
2 | {
3 | public enum FreezePowerUp
4 | {
5 | None = 0,
6 | BlueArrow = 1,
7 | GreenArrow = 2,
8 | Shield = 3,
9 | Heart = 4,
10 | OrangeSnowball = 5,
11 | Snowballs = 6
12 | }
13 | }
--------------------------------------------------------------------------------
/HabboHotel/Users/Authenticator/IncorrectLoginException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Plus.HabboHotel.Users.Authenticator
4 | {
5 | [Serializable]
6 | public class IncorrectLoginException : Exception
7 | {
8 | public IncorrectLoginException(string Reason) : base(Reason)
9 | {
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/HabboHotel/Users/Badges/Badge.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Users.Badges
2 | {
3 | public class Badge
4 | {
5 | public string Code;
6 | public int Slot;
7 |
8 | public Badge(string Code, int Slot)
9 | {
10 | this.Code = Code;
11 | this.Slot = Slot;
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Misc/MemoryPerformanceEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Misc
4 | {
5 | class MemoryPerformanceEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 |
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/GameCenter/InitializeGameCenterEvent.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Incoming.GameCenter
2 | {
3 | class InitializeGameCenterEvent : IPacketEvent
4 | {
5 | public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
6 | {
7 |
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Quests/QuestCompletedCompser.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Quests
2 | {
3 | class QuestCompletedCompser : ServerPacket
4 | {
5 | public QuestCompletedCompser()
6 | : base(ServerPacketHeader.QuestCompletedMessageComposer)
7 | {
8 |
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Permissions/YouAreOwnerComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Permissions
2 | {
3 | class YouAreOwnerComposer : ServerPacket
4 | {
5 | public YouAreOwnerComposer()
6 | : base(ServerPacketHeader.YouAreOwnerMessageComposer)
7 | {
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Core/FigureData/Types/SetType.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Core.FigureData.Types
2 | {
3 | public enum SetType
4 | {
5 | HR,
6 | HD,
7 | CH,
8 | LG,
9 | SH,
10 | HA,
11 | HE,
12 | EA,
13 | FA,
14 | CA,
15 | WA,
16 | CC,
17 | CP
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Handshake/AuthenticationOKComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Handshake
2 | {
3 | public class AuthenticationOKComposer : ServerPacket
4 | {
5 | public AuthenticationOKComposer()
6 | : base(ServerPacketHeader.AuthenticationOKMessageComposer)
7 | {
8 | }
9 | }
10 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/Trading/TradingFinishComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Inventory.Trading
2 | {
3 | class TradingFinishComposer : ServerPacket
4 | {
5 | public TradingFinishComposer()
6 | : base(ServerPacketHeader.TradingFinishMessageComposer)
7 | {
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/HabboHotel/Groups/GroupColours.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Groups
2 | {
3 | public class GroupColours
4 | {
5 | public int Id { get; }
6 | public string Colour { get; }
7 |
8 | public GroupColours(int id, string colour)
9 | {
10 | Id = id;
11 | Colour = colour;
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Handshake/PingEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Handshake
4 | {
5 | class PingEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 | session.PingCount = 0;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Messenger/FriendListUpdateEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Messenger
4 | {
5 | class FriendListUpdateEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 |
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Misc/DisconnectEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Misc
4 | {
5 | class DisconnectEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 | session.Disconnect();
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Catalog/GiftWrappingErrorComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Catalog
2 | {
3 | class GiftWrappingErrorComposer : ServerPacket
4 | {
5 | public GiftWrappingErrorComposer()
6 | : base(ServerPacketHeader.GiftWrappingErrorMessageComposer)
7 | {
8 |
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Furni/Wired/HideWiredConfigComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Furni.Wired
2 | {
3 | class HideWiredConfigComposer : ServerPacket
4 | {
5 | public HideWiredConfigComposer()
6 | : base(ServerPacketHeader.HideWiredConfigMessageComposer)
7 | {
8 | }
9 | }
10 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Session/OpenConnectionComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Session
2 | {
3 | class OpenConnectionComposer : ServerPacket
4 | {
5 | public OpenConnectionComposer()
6 | : base(ServerPacketHeader.OpenConnectionMessageComposer)
7 | {
8 |
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Database/Interfaces/IDatabaseClient.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using MySql.Data.MySqlClient;
3 |
4 | namespace Plus.Database.Interfaces
5 | {
6 | public interface IDatabaseClient : IDisposable
7 | {
8 | void Connect();
9 | void Disconnect();
10 | IQueryAdapter GetQueryReactor();
11 | MySqlCommand CreateNewCommand();
12 | }
13 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/Trading/TradingCompleteComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Inventory.Trading
2 | {
3 | class TradingCompleteComposer : ServerPacket
4 | {
5 | public TradingCompleteComposer()
6 | : base(ServerPacketHeader.TradingCompleteMessageComposer)
7 | {
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Session/CloseConnectionComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Session
2 | {
3 | class CloseConnectionComposer : ServerPacket
4 | {
5 | public CloseConnectionComposer()
6 | : base(ServerPacketHeader.CloseConnectionMessageComposer)
7 | {
8 |
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Help/OnBullyClickEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Help
4 | {
5 | class OnBullyClickEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 | //I am a very boring packet.
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/Furni/FurniListUpdateComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Inventory.Furni
2 | {
3 | class FurniListUpdateComposer : ServerPacket
4 | {
5 | public FurniListUpdateComposer()
6 | : base(ServerPacketHeader.FurniListUpdateMessageComposer)
7 | {
8 |
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Quests/QuestAbortedComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Quests
2 | {
3 | class QuestAbortedComposer : ServerPacket
4 | {
5 | public QuestAbortedComposer()
6 | : base(ServerPacketHeader.QuestAbortedMessageComposer)
7 | {
8 | WriteBoolean(false);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Sound/TraxSongInfoComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Sound
2 | {
3 | class TraxSongInfoComposer : ServerPacket
4 | {
5 | public TraxSongInfoComposer()
6 | : base(ServerPacketHeader.TraxSongInfoMessageComposer)
7 | {
8 | WriteInteger(0);//Count
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/GameCenter/JoinQueueComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.GameCenter
2 | {
3 | class JoinQueueComposer : ServerPacket
4 | {
5 | public JoinQueueComposer(int GameId)
6 | : base(ServerPacketHeader.JoinQueueMessageComposer)
7 | {
8 | WriteInteger(GameId);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Handshake/SetUniqueIdComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Handshake
2 | {
3 | class SetUniqueIdComposer : ServerPacket
4 | {
5 | public SetUniqueIdComposer(string Id)
6 | : base(ServerPacketHeader.SetUniqueIdMessageComposer)
7 | {
8 | WriteString(Id);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Moderation/OpenHelpToolComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Moderation
2 | {
3 | class OpenHelpToolComposer : ServerPacket
4 | {
5 | public OpenHelpToolComposer()
6 | : base(ServerPacketHeader.OpenHelpToolMessageComposer)
7 | {
8 | WriteInteger(0);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Navigator/DoorbellComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Navigator
2 | {
3 | class DoorbellComposer : ServerPacket
4 | {
5 | public DoorbellComposer(string username)
6 | : base(ServerPacketHeader.DoorbellMessageComposer)
7 | {
8 | WriteString(username);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Furni/GnomeBoxComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Furni
2 | {
3 | class GnomeBoxComposer : ServerPacket
4 | {
5 | public GnomeBoxComposer(int ItemId)
6 | : base(ServerPacketHeader.GnomeBoxMessageComposer)
7 | {
8 | WriteInteger(ItemId);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/ConnectionManager/Socket Exceptions/SocketInitializationException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Plus.Communication.ConnectionManager.Socket_Exceptions
4 | {
5 | public class SocketInitializationException : Exception
6 | {
7 | public SocketInitializationException(string message)
8 | : base(message)
9 | {
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Catalog/CatalogUpdatedComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Catalog
2 | {
3 | class CatalogUpdatedComposer : ServerPacket
4 | {
5 | public CatalogUpdatedComposer()
6 | : base(ServerPacketHeader.CatalogUpdatedMessageComposer)
7 | {
8 | WriteBoolean(false);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Handshake/SecretKeyComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Handshake
2 | {
3 | public class SecretKeyComposer : ServerPacket
4 | {
5 | public SecretKeyComposer(string publicKey)
6 | : base(ServerPacketHeader.SecretKeyMessageComposer)
7 | {
8 | WriteString(publicKey);
9 | }
10 | }
11 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Permissions/YouAreNotControllerComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Permissions
2 | {
3 | class YouAreNotControllerComposer : ServerPacket
4 | {
5 | public YouAreNotControllerComposer()
6 | : base(ServerPacketHeader.YouAreNotControllerMessageComposer)
7 | {
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/HabboHotel/Rooms/AI/Speech/RandomSpeech.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Rooms.AI.Speech
2 | {
3 | public class RandomSpeech
4 | {
5 | public int BotID;
6 | public string Message;
7 |
8 | public RandomSpeech(string Message, int BotID)
9 | {
10 | this.BotID = BotID;
11 | this.Message = Message;
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Engine/UserRemoveComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Engine
2 | {
3 | class UserRemoveComposer : ServerPacket
4 | {
5 | public UserRemoveComposer(int Id)
6 | : base(ServerPacketHeader.UserRemoveMessageComposer)
7 | {
8 | WriteString(Id.ToString());
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Catalog/GetCatalogModeEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Catalog
4 | {
5 | class GetCatalogModeEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 | // string mode = packet.PopString();
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/BuildersClub/BCBorrowedItemsComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.BuildersClub
2 | {
3 | class BCBorrowedItemsComposer : ServerPacket
4 | {
5 | public BCBorrowedItemsComposer()
6 | : base(ServerPacketHeader.BCBorrowedItemsMessageComposer)
7 | {
8 | WriteInteger(0);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Handshake/GenericErrorComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Handshake
2 | {
3 | class GenericErrorComposer : ServerPacket
4 | {
5 | public GenericErrorComposer(int errorId)
6 | : base(ServerPacketHeader.GenericErrorMessageComposer)
7 | {
8 | WriteInteger(errorId);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Misc/LatencyTestComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Misc
2 | {
3 | class LatencyTestComposer : ServerPacket
4 | {
5 | public LatencyTestComposer(int testResponce)
6 | : base(ServerPacketHeader.LatencyResponseMessageComposer)
7 | {
8 | WriteInteger(testResponce);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Session/CantConnectComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Session
2 | {
3 | class CantConnectComposer : ServerPacket
4 | {
5 | public CantConnectComposer(int Error)
6 | : base(ServerPacketHeader.CantConnectMessageComposer)
7 | {
8 | WriteInteger(Error);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Session/RoomForwardComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Session
2 | {
3 | public class RoomForwardComposer : ServerPacket
4 | {
5 | public RoomForwardComposer(int RoomId)
6 | : base(ServerPacketHeader.RoomForwardMessageComposer)
7 | {
8 | WriteInteger(RoomId);
9 | }
10 | }
11 | }
--------------------------------------------------------------------------------
/HabboHotel/Rooms/Chat/Pets/Commands/PetCommand.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Rooms.Chat.Pets.Commands
2 | {
3 | public class PetCommand
4 | {
5 | public int Id;
6 | public string Input;
7 |
8 | public PetCommand(int CommandId, string CommandInput)
9 | {
10 | Id = CommandId;
11 | Input = CommandInput;
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Catalog/PurchaseErrorComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Catalog
2 | {
3 | class PurchaseErrorComposer : ServerPacket
4 | {
5 | public PurchaseErrorComposer(int ErrorCode)
6 | : base(ServerPacketHeader.PurchaseErrorMessageComposer)
7 | {
8 | WriteInteger(ErrorCode);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Catalog/RecyclerRewardsComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Catalog
2 | {
3 | public class RecyclerRewardsComposer : ServerPacket
4 | {
5 | public RecyclerRewardsComposer()
6 | : base(ServerPacketHeader.RecyclerRewardsMessageComposer)
7 | {
8 | WriteInteger(0);// Count of items
9 | }
10 | }
11 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Help/SubmitBullyReportComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Help
2 | {
3 | class SubmitBullyReportComposer : ServerPacket
4 | {
5 | public SubmitBullyReportComposer(int Result)
6 | : base(ServerPacketHeader.SubmitBullyReportMessageComposer)
7 | {
8 | WriteInteger(Result);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Chat/FloodControlComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Chat
2 | {
3 | public class FloodControlComposer : ServerPacket
4 | {
5 | public FloodControlComposer(int floodTime)
6 | : base(ServerPacketHeader.FloodControlMessageComposer)
7 | {
8 | WriteInteger(floodTime);
9 | }
10 | }
11 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Navigator/RoomInfoUpdatedComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Navigator
2 | {
3 | class RoomInfoUpdatedComposer : ServerPacket
4 | {
5 | public RoomInfoUpdatedComposer(int roomId)
6 | : base(ServerPacketHeader.RoomInfoUpdatedMessageComposer)
7 | {
8 | WriteInteger(roomId);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/HabboHotel/Badges/BadgeDefinition.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Badges
2 | {
3 | public class BadgeDefinition
4 | {
5 | public string Code { get; }
6 | public string RequiredRight { get; }
7 |
8 | public BadgeDefinition(string code, string requiredRight)
9 | {
10 | Code = code;
11 | RequiredRight = requiredRight;
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Help/GetSanctionStatusEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Help
4 | {
5 | class GetSanctionStatusEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 | //Session.SendMessage(new SanctionStatusComposer());
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Misc/LatencyTestEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Misc
4 | {
5 | class LatencyTestEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 | //Session.SendMessage(new LatencyTestComposer(Packet.PopInt()));
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/Furni/FurniListRemoveComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Inventory.Furni
2 | {
3 | class FurniListRemoveComposer : ServerPacket
4 | {
5 | public FurniListRemoveComposer(int Id)
6 | : base(ServerPacketHeader.FurniListRemoveMessageComposer)
7 | {
8 | WriteInteger(Id);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Engine/FurnitureAliasesComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Engine
2 | {
3 | class FurnitureAliasesComposer : ServerPacket
4 | {
5 | public FurnitureAliasesComposer()
6 | : base(ServerPacketHeader.FurnitureAliasesMessageComposer)
7 | {
8 | WriteInteger(0);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Settings/RoomMuteSettingsComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Settings
2 | {
3 | class RoomMuteSettingsComposer : ServerPacket
4 | {
5 | public RoomMuteSettingsComposer(bool Status)
6 | : base(ServerPacketHeader.RoomMuteSettingsMessageComposer)
7 | {
8 | WriteBoolean(Status);
9 | }
10 | }
11 | }
--------------------------------------------------------------------------------
/HabboHotel/Rooms/Chat/Commands/IChatCommand.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.HabboHotel.Rooms.Chat.Commands
4 | {
5 | public interface IChatCommand
6 | {
7 | string PermissionRequired { get; }
8 | string Parameters { get; }
9 | string Description { get; }
10 | void Execute(GameClient Session, Room Room, string[] Params);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Catalog/VoucherRedeemErrorComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Catalog
2 | {
3 | public class VoucherRedeemErrorComposer : ServerPacket
4 | {
5 | public VoucherRedeemErrorComposer(int Type)
6 | : base(ServerPacketHeader.VoucherRedeemErrorMessageComposer)
7 | {
8 | WriteString(Type.ToString());
9 | }
10 | }
11 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Groups/RefreshFavouriteGroupComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Groups
2 | {
3 | class RefreshFavouriteGroupComposer : ServerPacket
4 | {
5 | public RefreshFavouriteGroupComposer(int Id)
6 | : base(ServerPacketHeader.RefreshFavouriteGroupMessageComposer)
7 | {
8 | WriteInteger(Id);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Navigator/FlatAccessDeniedComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Navigator
2 | {
3 | class FlatAccessDeniedComposer : ServerPacket
4 | {
5 | public FlatAccessDeniedComposer(string username)
6 | : base(ServerPacketHeader.FlatAccessDeniedMessageComposer)
7 | {
8 | WriteString(username);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Session/FlatAccessibleComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Session
2 | {
3 | class FlatAccessibleComposer : ServerPacket
4 | {
5 | public FlatAccessibleComposer(string Username)
6 | : base(ServerPacketHeader.FlatAccessibleMessageComposer)
7 | {
8 | WriteString(Username);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Settings/RoomSettingsSavedComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Settings
2 | {
3 | class RoomSettingsSavedComposer : ServerPacket
4 | {
5 | public RoomSettingsSavedComposer(int roomID)
6 | : base(ServerPacketHeader.RoomSettingsSavedMessageComposer)
7 | {
8 | WriteInteger(roomID);
9 | }
10 | }
11 | }
--------------------------------------------------------------------------------
/Utilities/Enclosure/Algorithm/FieldUpdate.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Utilities.Enclosure.Algorithm
2 | {
3 | public class FieldUpdate
4 | {
5 | public FieldUpdate(int x, int y, byte value)
6 | {
7 | X = x;
8 | Y = y;
9 | Value = value;
10 | }
11 |
12 | public byte Value { get; }
13 | public int Y { get; }
14 | public int X { get; }
15 | }
16 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Quests/GetQuestListEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Quests
4 | {
5 | public class GetQuestListEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 | PlusEnvironment.GetGame().GetQuestManager().GetList(session, null);
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Help/SendBullyReportComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Help
2 | {
3 | class SendBullyReportComposer : ServerPacket
4 | {
5 | public SendBullyReportComposer()
6 | : base(ServerPacketHeader.SendBullyReportMessageComposer)
7 | {
8 | WriteInteger(0);//0-3, sends 0 on Habbo for this purpose.
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Messenger/FollowFriendFailedComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Messenger
2 | {
3 | class FollowFriendFailedComposer : ServerPacket
4 | {
5 | public FollowFriendFailedComposer(int ErrorCode)
6 | : base(ServerPacketHeader.FollowFriendFailedMessageComposer)
7 | {
8 | WriteInteger(ErrorCode);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Moderation/MutedComposer.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Moderation
4 | {
5 | class MutedComposer : ServerPacket
6 | {
7 | public MutedComposer(double TimeMuted)
8 | : base(ServerPacketHeader.MutedMessageComposer)
9 | {
10 | WriteInteger(Convert.ToInt32(TimeMuted));
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Notifications/RoomErrorNotifComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Notifications
2 | {
3 | class RoomErrorNotifComposer : ServerPacket
4 | {
5 | public RoomErrorNotifComposer(int Error)
6 | : base(ServerPacketHeader.RoomErrorNotifMessageComposer)
7 | {
8 | WriteInteger(Error);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/Purse/CreditBalanceComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Inventory.Purse
2 | {
3 | class CreditBalanceComposer : ServerPacket
4 | {
5 | public CreditBalanceComposer(int creditsBalance)
6 | : base(ServerPacketHeader.CreditBalanceMessageComposer)
7 | {
8 | WriteString(creditsBalance + ".0");
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Messenger/FindFriendsProcessResultComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Messenger
2 | {
3 | class FindFriendsProcessResultComposer : ServerPacket
4 | {
5 | public FindFriendsProcessResultComposer(bool Found)
6 | : base(ServerPacketHeader.FindFriendsProcessResultMessageComposer)
7 | {
8 | WriteBoolean(Found);
9 | }
10 | }
11 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Avatar/ActionComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Avatar
2 | {
3 | public class ActionComposer : ServerPacket
4 | {
5 | public ActionComposer(int VirtualId, int Action)
6 | : base(ServerPacketHeader.ActionMessageComposer)
7 | {
8 | WriteInteger(VirtualId);
9 | WriteInteger(Action);
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/GameCenter/PlayableGamesComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.GameCenter
2 | {
3 | class PlayableGamesComposer : ServerPacket
4 | {
5 | public PlayableGamesComposer(int GameID)
6 | : base(ServerPacketHeader.PlayableGamesMessageComposer)
7 | {
8 | WriteInteger(GameID);
9 | WriteInteger(0);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Groups/UnknownGroupComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Groups
2 | {
3 | class UnknownGroupComposer : ServerPacket
4 | {
5 | public UnknownGroupComposer(int GroupId, int HabboId)
6 | : base(ServerPacketHeader.UnknownGroupMessageComposer)
7 | {
8 | WriteInteger(GroupId);
9 | WriteInteger(HabboId);
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Messenger/RoomInviteComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Messenger
2 | {
3 | class RoomInviteComposer : ServerPacket
4 | {
5 | public RoomInviteComposer(int SenderId, string Text)
6 | : base(ServerPacketHeader.RoomInviteMessageComposer)
7 | {
8 | WriteInteger(SenderId);
9 | WriteString(Text);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Navigator/RoomRatingComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Navigator
2 | {
3 | class RoomRatingComposer : ServerPacket
4 | {
5 | public RoomRatingComposer(int score, bool canVote)
6 | : base(ServerPacketHeader.RoomRatingMessageComposer)
7 | {
8 | WriteInteger(score);
9 | WriteBoolean(canVote);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Permissions/YouAreControllerMessageComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Permissions
2 | {
3 | class YouAreControllerComposer : ServerPacket
4 | {
5 | public YouAreControllerComposer(int Setting)
6 | : base(ServerPacketHeader.YouAreControllerMessageComposer)
7 | {
8 | WriteInteger(Setting);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/HabboHotel/Users/Relationships/Relationship.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Users.Relationships
2 | {
3 | public class Relationship
4 | {
5 | public int Id;
6 | public int Type;
7 | public int UserId;
8 |
9 | public Relationship(int Id, int User, int Type)
10 | {
11 | this.Id = Id;
12 | UserId = User;
13 | this.Type = Type;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Groups/NewGroupInfoComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Groups
2 | {
3 | class NewGroupInfoComposer : ServerPacket
4 | {
5 | public NewGroupInfoComposer(int RoomId, int GroupId)
6 | : base(ServerPacketHeader.NewGroupInfoMessageComposer)
7 | {
8 | WriteInteger(RoomId);
9 | WriteInteger(GroupId);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Handshake/InitCryptoComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Handshake
2 | {
3 | public class InitCryptoComposer : ServerPacket
4 | {
5 | public InitCryptoComposer(string Prime, string Generator)
6 | : base(ServerPacketHeader.InitCryptoMessageComposer)
7 | {
8 | WriteString(Prime);
9 | WriteString(Generator);
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/Achievements/AchievementScoreComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Inventory.Achievements
2 | {
3 | class AchievementScoreComposer : ServerPacket
4 | {
5 | public AchievementScoreComposer(int achScore)
6 | : base(ServerPacketHeader.AchievementScoreMessageComposer)
7 | {
8 | WriteInteger(achScore);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Engine/RoomPropertyComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Engine
2 | {
3 | class RoomPropertyComposer : ServerPacket
4 | {
5 | public RoomPropertyComposer(string name, string val)
6 | : base(ServerPacketHeader.RoomPropertyMessageComposer)
7 | {
8 | WriteString(name);
9 | WriteString(val);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Session/RoomReadyComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Session
2 | {
3 | class RoomReadyComposer : ServerPacket
4 | {
5 | public RoomReadyComposer(int RoomId, string Model)
6 | : base(ServerPacketHeader.RoomReadyMessageComposer)
7 | {
8 | WriteString(Model);
9 | WriteInteger(RoomId);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Core/FigureData/Types/Palette.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace Plus.Core.FigureData.Types
4 | {
5 | public class Palette
6 | {
7 | public int Id { get; set; }
8 | public Dictionary Colors { get; set; }
9 |
10 | public Palette(int id)
11 | {
12 | Id = id;
13 | Colors = new Dictionary();
14 | }
15 |
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/Trading/TradingClosedComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Inventory.Trading
2 | {
3 | class TradingClosedComposer : ServerPacket
4 | {
5 | public TradingClosedComposer(int UserId)
6 | : base(ServerPacketHeader.TradingClosedMessageComposer)
7 | {
8 | WriteInteger(UserId);
9 | WriteInteger(0);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Navigator/FlatCreatedComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Navigator
2 | {
3 | class FlatCreatedComposer : ServerPacket
4 | {
5 | public FlatCreatedComposer(int roomId, string roomName)
6 | : base(ServerPacketHeader.FlatCreatedMessageComposer)
7 | {
8 | WriteInteger(roomId);
9 | WriteString(roomName);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Sound/GetSongInfoEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Sound;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Sound
5 | {
6 | class GetSongInfoEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new TraxSongInfoComposer());
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Catalog/VoucherRedeemOkComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Catalog
2 | {
3 | public class VoucherRedeemOkComposer : ServerPacket
4 | {
5 | public VoucherRedeemOkComposer()
6 | : base(ServerPacketHeader.VoucherRedeemOkMessageComposer)
7 | {
8 | WriteString("");//productName
9 | WriteString("");//productDescription
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Navigator/New/NavigatorCollapsedCategoriesComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Navigator.New
2 | {
3 | class NavigatorCollapsedCategoriesComposer : ServerPacket
4 | {
5 | public NavigatorCollapsedCategoriesComposer()
6 | : base(ServerPacketHeader.NavigatorCollapsedCategoriesMessageComposer)
7 | {
8 | WriteInteger(0);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Avatar/CarryObjectComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Avatar
2 | {
3 | class CarryObjectComposer : ServerPacket
4 | {
5 | public CarryObjectComposer(int virtualID, int itemID)
6 | : base(ServerPacketHeader.CarryObjectMessageComposer)
7 | {
8 | WriteInteger(virtualID);
9 | WriteInteger(itemID);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/HabboHotel/Items/Interactor/IFurniInteractor.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.HabboHotel.Items.Interactor
4 | {
5 | public interface IFurniInteractor
6 | {
7 | void OnPlace(GameClient session, Item item);
8 | void OnRemove(GameClient session, Item item);
9 | void OnTrigger(GameClient session, Item item, int request, bool hasRights);
10 | void OnWiredTrigger(Item item);
11 | }
12 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Catalog/GetClubGiftsEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 | using Plus.Communication.Packets.Outgoing.Catalog;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Catalog
5 | {
6 | class GetClubGiftsEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new ClubGiftsComposer());
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Inventory/Purse/GetHabboClubWindowEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Inventory.Purse
4 | {
5 | class GetHabboClubWindowEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 | // Session.SendNotification("Habbo Club is free for all members, enjoy!");
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Marketplace/MarketplaceMakeOfferResultComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Marketplace
2 | {
3 | class MarketplaceMakeOfferResultComposer : ServerPacket
4 | {
5 | public MarketplaceMakeOfferResultComposer(int Success)
6 | : base(ServerPacketHeader.MarketplaceMakeOfferResultMessageComposer)
7 | {
8 | WriteInteger(Success);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Notifications/MOTDNotificationComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Notifications
2 | {
3 | class MotdNotificationComposer : ServerPacket
4 | {
5 | public MotdNotificationComposer(string message)
6 | : base(ServerPacketHeader.MOTDNotificationMessageComposer)
7 | {
8 | WriteInteger(1);
9 | WriteString(message);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Action/IgnoreStatusComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Action
2 | {
3 | class IgnoreStatusComposer : ServerPacket
4 | {
5 | public IgnoreStatusComposer(int Status, string Username)
6 | : base(ServerPacketHeader.IgnoreStatusMessageComposer)
7 | {
8 | WriteInteger(Status);
9 | WriteString(Username);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Chat/UserTypingComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Chat
2 | {
3 | public class UserTypingComposer : ServerPacket
4 | {
5 | public UserTypingComposer(int VirtualId, bool Typing)
6 | : base(ServerPacketHeader.UserTypingMessageComposer)
7 | {
8 | WriteInteger(VirtualId);
9 | WriteInteger(Typing ? 1 : 0);
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Help/SendBullyReportEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Help;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Help
5 | {
6 | class SendBullyReportEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new SendBullyReportComposer());
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Misc/ClientVariablesEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Misc
4 | {
5 | class ClientVariablesEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 | string gordanPath = packet.PopString();
10 | string externalVariables = packet.PopString();
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Users/ScrGetUserInfoEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 | using Plus.Communication.Packets.Outgoing.Users;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Users
5 | {
6 | class ScrGetUserInfoEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new ScrSendUserInfoComposer());
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/LandingView/CampaignComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.LandingView
2 | {
3 | class CampaignComposer : ServerPacket
4 | {
5 | public CampaignComposer(string campaignString, string campaignName)
6 | : base(ServerPacketHeader.CampaignMessageComposer)
7 | {
8 | WriteString(campaignString);
9 | WriteString(campaignName);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Navigator/NavigatorSettingsComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Navigator
2 | {
3 | class NavigatorSettingsComposer : ServerPacket
4 | {
5 | public NavigatorSettingsComposer(int homeroom)
6 | : base(ServerPacketHeader.NavigatorSettingsMessageComposer)
7 | {
8 | WriteInteger(homeroom);
9 | WriteInteger(homeroom);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Users/UpdateUsernameComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Users
2 | {
3 | class UpdateUsernameComposer : ServerPacket
4 | {
5 | public UpdateUsernameComposer(string username)
6 | : base(ServerPacketHeader.UpdateUsernameMessageComposer)
7 | {
8 | WriteInteger(0);
9 | WriteString(username);
10 | WriteInteger(0);
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Moderation/CloseIssueDefaultActionEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Moderation
4 | {
5 | class CloseIssueDefaultActionEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 | if (session == null || session.GetHabbo() == null)
10 | return;
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Rooms/Polls/PollStartEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Rooms.Polls;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Rooms.Polls
5 | {
6 | class PollStartEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new PollContentsComposer());
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/Trading/TradingErrorComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Inventory.Trading
2 | {
3 | class TradingErrorComposer : ServerPacket
4 | {
5 | public TradingErrorComposer(int Error, string Username)
6 | : base(ServerPacketHeader.TradingErrorMessageComposer)
7 | {
8 | WriteInteger(Error);
9 | WriteString(Username);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Engine/RoomEntryInfoComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Engine
2 | {
3 |
4 | class RoomEntryInfoComposer : ServerPacket
5 | {
6 | public RoomEntryInfoComposer(int roomID, bool isOwner)
7 | : base(ServerPacketHeader.RoomEntryInfoMessageComposer)
8 | {
9 | WriteInteger(roomID);
10 | WriteBoolean(isOwner);
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Furni/Stickys/StickyNoteComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Furni.Stickys
2 | {
3 | class StickyNoteComposer : ServerPacket
4 | {
5 | public StickyNoteComposer(string ItemId, string Extradata)
6 | : base(ServerPacketHeader.StickyNoteMessageComposer)
7 | {
8 | WriteString(ItemId);
9 | WriteString(Extradata);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Users/RespectNotificationComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Users
2 | {
3 | class RespectNotificationComposer : ServerPacket
4 | {
5 | public RespectNotificationComposer(int userId, int respect)
6 | : base(ServerPacketHeader.RespectNotificationMessageComposer)
7 | {
8 | WriteInteger(userId);
9 | WriteInteger(respect);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Avatar/GetWardrobeEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Avatar;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Avatar
5 | {
6 | class GetWardrobeEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new WardrobeComposer(session.GetHabbo().Id));
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Moderation/OpenHelpToolEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Moderation;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Moderation
5 | {
6 | class OpenHelpToolEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new OpenHelpToolComposer());
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Messenger/MessengerErrorComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Messenger
2 | {
3 | class MessengerErrorComposer : ServerPacket
4 | {
5 | public MessengerErrorComposer(int ErrorCode1, int ErrorCode2)
6 | : base(ServerPacketHeader.MessengerErrorMessageComposer)
7 | {
8 | WriteInteger(ErrorCode1);
9 | WriteInteger(ErrorCode2);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Navigator/UpdateFavouriteRoomComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Navigator
2 | {
3 | public class UpdateFavouriteRoomComposer : ServerPacket
4 | {
5 | public UpdateFavouriteRoomComposer(int roomId, bool added)
6 | : base(ServerPacketHeader.UpdateFavouriteRoomMessageComposer)
7 | {
8 | WriteInteger(roomId);
9 | WriteBoolean(added);
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Avatar/DanceComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Rooms;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Rooms.Avatar
4 | {
5 | class DanceComposer : ServerPacket
6 | {
7 | public DanceComposer(RoomUser Avatar, int Dance)
8 | : base(ServerPacketHeader.DanceMessageComposer)
9 | {
10 | WriteInteger(Avatar.VirtualId);
11 | WriteInteger(Dance);
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Catalog/GetRecyclerRewardsEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Catalog;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Catalog
5 | {
6 | public class GetRecyclerRewardsEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new RecyclerRewardsComposer());
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/Trading/TradingAcceptComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Inventory.Trading
2 | {
3 | class TradingAcceptComposer : ServerPacket
4 | {
5 | public TradingAcceptComposer(int UserId, bool Accept)
6 | : base(ServerPacketHeader.TradingAcceptMessageComposer)
7 | {
8 | WriteInteger(UserId);
9 | WriteInteger(Accept ? 1 : 0);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Navigator/CanCreateRoomComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Navigator
2 | {
3 | class CanCreateRoomComposer : ServerPacket
4 | {
5 | public CanCreateRoomComposer(bool error, int maxRoomsPerUser)
6 | : base(ServerPacketHeader.CanCreateRoomMessageComposer)
7 | {
8 | WriteInteger(error ? 1 : 0);
9 | WriteInteger(maxRoomsPerUser);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Furni/LoveLocks/LoveLockDialogueCloseMessageComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Furni.LoveLocks
2 | {
3 | class LoveLockDialogueCloseMessageComposer : ServerPacket
4 | {
5 | public LoveLockDialogueCloseMessageComposer(int ItemId)
6 | : base(ServerPacketHeader.LoveLockDialogueCloseMessageComposer)
7 | {
8 | WriteInteger(ItemId);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Settings/UnbanUserFromRoomComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Settings
2 | {
3 | class UnbanUserFromRoomComposer : ServerPacket
4 | {
5 | public UnbanUserFromRoomComposer(int RoomId, int UserId)
6 | : base(ServerPacketHeader.UnbanUserFromRoomMessageComposer)
7 | {
8 | WriteInteger(RoomId);
9 | WriteInteger(UserId);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Inventory/Badges/GetBadgesEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Inventory.Badges;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Inventory.Badges
5 | {
6 | class GetBadgesEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new BadgesComposer(session));
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Navigator/CanCreateRoomEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Navigator;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Navigator
5 | {
6 | class CanCreateRoomEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new CanCreateRoomComposer(false, 150));
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Handshake/AvailabilityStatusComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Handshake
2 | {
3 | class AvailabilityStatusComposer : ServerPacket
4 | {
5 | public AvailabilityStatusComposer()
6 | : base(ServerPacketHeader.AvailabilityStatusMessageComposer)
7 | {
8 | WriteBoolean(true);
9 | WriteBoolean(false);
10 | WriteBoolean(true);
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Avatar/AvatarAspectUpdateComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Avatar
2 | {
3 | class AvatarAspectUpdateComposer : ServerPacket
4 | {
5 | public AvatarAspectUpdateComposer(string Figure, string Gender)
6 | : base(ServerPacketHeader.AvatarAspectUpdateMessageComposer)
7 | {
8 | WriteString(Figure);
9 | WriteString(Gender);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Freeze/UpdateFreezeLivesComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Freeze
2 | {
3 | class UpdateFreezeLivesComposer : ServerPacket
4 | {
5 | public UpdateFreezeLivesComposer(int UserId, int FreezeLives)
6 | : base(ServerPacketHeader.UpdateFreezeLivesMessageComposer)
7 | {
8 | WriteInteger(UserId);
9 | WriteInteger(FreezeLives);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/HabboHotel/Groups/GroupBadgeParts.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Groups
2 | {
3 | public class GroupBadgeParts
4 | {
5 | public int Id { get; }
6 | public string AssetOne { get; }
7 | public string AssetTwo { get; }
8 |
9 | public GroupBadgeParts(int id, string assetOne, string assetTwo)
10 | {
11 | Id = id;
12 | AssetOne = assetOne;
13 | AssetTwo = assetTwo;
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Handshake/UserRightsComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Handshake
2 | {
3 | public class UserRightsComposer : ServerPacket
4 | {
5 | public UserRightsComposer(int Rank)
6 | : base(ServerPacketHeader.UserRightsMessageComposer)
7 | {
8 | WriteInteger(2);//Club level
9 | WriteInteger(Rank);
10 | WriteBoolean(false);//Is an ambassador
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Avatar/AvatarEffectComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Avatar
2 | {
3 | class AvatarEffectComposer : ServerPacket
4 | {
5 | public AvatarEffectComposer(int playerID, int effectID)
6 | : base(ServerPacketHeader.AvatarEffectMessageComposer)
7 | {
8 | WriteInteger(playerID);
9 | WriteInteger(effectID);
10 | WriteInteger(0);
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Avatar/SleepComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Rooms;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Rooms.Avatar
4 | {
5 | public class SleepComposer : ServerPacket
6 | {
7 | public SleepComposer(RoomUser User, bool IsSleeping)
8 | : base(ServerPacketHeader.SleepMessageComposer)
9 | {
10 | WriteInteger(User.VirtualId);
11 | WriteBoolean(IsSleeping);
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/Database/Interfaces/IRegularQueryAdapter.cs:
--------------------------------------------------------------------------------
1 | using System.Data;
2 |
3 | namespace Plus.Database.Interfaces
4 | {
5 | public interface IRegularQueryAdapter
6 | {
7 | void AddParameter(string name, object query);
8 | bool FindsResult();
9 | int GetInteger();
10 | DataRow GetRow();
11 | string GetString();
12 | DataTable GetTable();
13 | void RunQuery(string query);
14 | void SetQuery(string query);
15 | }
16 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Rooms/Engine/GetFurnitureAliasesEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 | using Plus.Communication.Packets.Outgoing.Rooms.Engine;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Rooms.Engine
5 | {
6 | class GetFurnitureAliasesEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new FurnitureAliasesComposer());
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Catalog/CheckGnomeNameComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Catalog
2 | {
3 | class CheckGnomeNameComposer : ServerPacket
4 | {
5 | public CheckGnomeNameComposer(string PetName, int ErrorId)
6 | : base(ServerPacketHeader.CheckGnomeNameMessageComposer)
7 | {
8 | WriteInteger(0);
9 | WriteInteger(ErrorId);
10 | WriteString(PetName);
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/Trading/TradingConfirmedComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Inventory.Trading
2 | {
3 | class TradingConfirmedComposer : ServerPacket
4 | {
5 | public TradingConfirmedComposer(int UserId, bool Confirmed)
6 | : base(ServerPacketHeader.TradingConfirmedMessageComposer)
7 | {
8 | WriteInteger(UserId);
9 | WriteInteger(Confirmed ? 1 : 0);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Moderation/BroadcastMessageAlertComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Moderation
2 | {
3 | class BroadcastMessageAlertComposer : ServerPacket
4 | {
5 | public BroadcastMessageAlertComposer(string Message, string URL = "")
6 | : base(ServerPacketHeader.BroadcastMessageAlertMessageComposer)
7 | {
8 | WriteString(Message);
9 | WriteString(URL);
10 | }
11 | }
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Furni/LoveLocks/LoveLockDialogueMessageComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Furni.LoveLocks
2 | {
3 | class LoveLockDialogueMessageComposer : ServerPacket
4 | {
5 | public LoveLockDialogueMessageComposer(int ItemId)
6 | : base(ServerPacketHeader.LoveLockDialogueMessageComposer)
7 | {
8 | WriteInteger(ItemId);
9 | WriteBoolean(true);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Furni/LoveLocks/LoveLockDialogueSetLockedMessageComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Furni.LoveLocks
2 | {
3 | class LoveLockDialogueSetLockedMessageComposer : ServerPacket
4 | {
5 | public LoveLockDialogueSetLockedMessageComposer(int ItemId)
6 | : base(ServerPacketHeader.LoveLockDialogueSetLockedMessageComposer)
7 | {
8 | WriteInteger(ItemId);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Moderation/ModeratorSupportTicketResponseComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Moderation
2 | {
3 | class ModeratorSupportTicketResponseComposer : ServerPacket
4 | {
5 | public ModeratorSupportTicketResponseComposer(int result)
6 | : base(ServerPacketHeader.ModeratorSupportTicketResponseMessageComposer)
7 | {
8 | WriteInteger(result);
9 | WriteString("");
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # PlusEMU
2 | Continuing to work on Plus Emulator, on and off.
3 |
4 | This is technically revision 3, I am working from Revision #2. SQLs etc, should all be uptodate. The goals of this project are as follows:
5 |
6 | * Basic refactor (correcting naming conventions).
7 | * Improve the complexity in methods.
8 | * Improve emulator code.
9 | * Keep the emulator up to date.
10 | * Finish missing features.
11 |
12 | Lots of work to be done, mostly will be refactoring for a while.
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Catalog/GetMarketplaceConfigurationEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Catalog;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Catalog
5 | {
6 | public class GetMarketplaceConfigurationEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new MarketplaceConfigurationComposer());
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Marketplace/GetOwnOffersEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Marketplace;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Marketplace
5 | {
6 | class GetOwnOffersEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new MarketPlaceOwnOffersComposer(session.GetHabbo().Id));
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/GameCenter/GameAccountStatusComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.GameCenter
2 | {
3 | class GameAccountStatusComposer : ServerPacket
4 | {
5 | public GameAccountStatusComposer(int GameID)
6 | : base(ServerPacketHeader.GameAccountStatusMessageComposer)
7 | {
8 | WriteInteger(GameID);
9 | WriteInteger(-1); // Games Left
10 | WriteInteger(0);//Was 16?
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Marketplace/MarketplaceCanMakeOfferResultComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Marketplace
2 | {
3 | class MarketplaceCanMakeOfferResultComposer : ServerPacket
4 | {
5 | public MarketplaceCanMakeOfferResultComposer(int Result)
6 | : base(ServerPacketHeader.MarketplaceCanMakeOfferResultMessageComposer)
7 | {
8 | WriteInteger(Result);
9 | WriteInteger(0);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Engine/FloorHeightMapComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Engine
2 | {
3 | class FloorHeightMapComposer : ServerPacket
4 | {
5 | public FloorHeightMapComposer(string Map, int WallHeight)
6 | : base(ServerPacketHeader.FloorHeightMapMessageComposer)
7 | {
8 | WriteBoolean(false);
9 | WriteInteger(WallHeight);
10 | WriteString(Map);
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/HabboHotel/Permissions/Permission.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Permissions
2 | {
3 | class Permission
4 | {
5 | public int Id { get; set; }
6 | public string PermissionName { get; set; }
7 | public string Description { get; set; }
8 |
9 | public Permission(int id, string name, string description)
10 | {
11 | Id = id;
12 | PermissionName = name;
13 | Description = description;
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Catalog/GetGiftWrappingConfigurationEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Catalog;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Catalog
5 | {
6 | public class GetGiftWrappingConfigurationEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new GiftWrappingConfigurationComposer());
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Furni/UpdateMagicTileComposer.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Rooms.Furni
4 | {
5 | class UpdateMagicTileComposer : ServerPacket
6 | {
7 | public UpdateMagicTileComposer(int ItemId, int Decimal)
8 | : base(ServerPacketHeader.UpdateMagicTileMessageComposer)
9 | {
10 | WriteInteger(Convert.ToInt32(ItemId));
11 | WriteInteger(Decimal);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Polls/PollOfferComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Polls
2 | {
3 | class PollOfferComposer : ServerPacket
4 | {
5 | public PollOfferComposer()
6 | : base(1074)
7 | {
8 | WriteInteger(111141);//Room Id
9 | WriteString("CLIENT_NPS");
10 | WriteString("Customer Satisfaction Poll");
11 | WriteString("Give us your opinion!");
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Users/UserTagsComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Users
2 | {
3 | class UserTagsComposer : ServerPacket
4 | {
5 | public UserTagsComposer(int userId)
6 | : base(ServerPacketHeader.UserTagsMessageComposer)
7 | {
8 | WriteInteger(userId);
9 | WriteInteger(0);//Count of the tags.
10 | {
11 | //Append a string.
12 | }
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Users/GetUserTagsEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Users;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Users
5 | {
6 | class GetUserTagsEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | int userId = packet.PopInt();
11 |
12 | session.SendPacket(new UserTagsComposer(userId));
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Catalog/CheckPetNameComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Catalog
2 | {
3 | public class CheckPetNameComposer : ServerPacket
4 | {
5 | public CheckPetNameComposer(int Error, string ExtraData)
6 | : base(ServerPacketHeader.CheckPetNameMessageComposer)
7 | {
8 | WriteInteger(Error);//0 = nothing, 1 = too long, 2 = too short, 3 = invalid characters
9 | WriteString(ExtraData);
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/Resources/RELEASE NOTES.txt:
--------------------------------------------------------------------------------
1 | Thanks for downloading PlusEMU.
2 |
3 | If you're starting a hotel from scratch please run 'Original Database', no other SQL files are needed to be ran.
4 |
5 | For other downloads you can visit our website at https://projectplus.io/ alternatively visit https://devbest.com
6 |
7 | - For future releases please visit https://devbest.com/threads/81595/
8 | - To follow the development please visit https://devbest.com/threads/81566/
9 | - For help and support please visit https://devbest.com/threads/81596/
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/AvatarEffects/AvatarEffectExpiredComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Users.Effects;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Inventory.AvatarEffects
4 | {
5 | class AvatarEffectExpiredComposer : ServerPacket
6 | {
7 | public AvatarEffectExpiredComposer(AvatarEffect Effect)
8 | : base(ServerPacketHeader.AvatarEffectExpiredMessageComposer)
9 | {
10 | WriteInteger(Effect.SpriteId);
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Marketplace/MarketplaceCancelOfferResultComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Marketplace
2 | {
3 | class MarketplaceCancelOfferResultComposer : ServerPacket
4 | {
5 | public MarketplaceCancelOfferResultComposer(int OfferId, bool Success)
6 | : base(ServerPacketHeader.MarketplaceCancelOfferResultMessageComposer)
7 | {
8 | WriteInteger(OfferId);
9 | WriteBoolean(Success);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/HabboHotel/Navigator/NavigatorCategoryType.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Navigator
2 | {
3 | public enum NavigatorCategoryType
4 | {
5 | Category,
6 | Featured,
7 | Popular,
8 | Recommended,
9 | Query,
10 | MyRooms,
11 | MyFavourites,
12 | MyGroups,
13 | MyHistory,
14 | MyFriendsRooms,
15 | MyFrequentHistory,
16 | TopPromotions,
17 | PromotionCategory,
18 | MyRights
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Messenger/NewConsoleMessageComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Messenger
2 | {
3 | class NewConsoleMessageComposer : ServerPacket
4 | {
5 | public NewConsoleMessageComposer(int Sender, string Message, int Time = 0)
6 | : base(ServerPacketHeader.NewConsoleMessageMessageComposer)
7 | {
8 | WriteInteger(Sender);
9 | WriteString(Message);
10 | WriteInteger(Time);
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Engine/UserNameChangeComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Engine
2 | {
3 | class UserNameChangeComposer : ServerPacket
4 | {
5 | public UserNameChangeComposer(int RoomId, int VirtualId, string Username)
6 | : base(ServerPacketHeader.UserNameChangeMessageComposer)
7 | {
8 | WriteInteger(RoomId);
9 | WriteInteger(VirtualId);
10 | WriteString(Username);
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Handshake/GetClientVersionEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Handshake
4 | {
5 | public class GetClientVersionEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 | string build = packet.PopString();
10 |
11 | if (PlusEnvironment.SWFRevision != build)
12 | PlusEnvironment.SWFRevision = build;
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Rooms/FloorPlan/InitializeFloorPlanSessionEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Rooms.FloorPlan
4 | {
5 | class InitializeFloorPlanSessionEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 | //Session.SendNotif("WARNING - THIS TOOL IS IN BETA, IT COULD CORRUPT YOUR ROOM IF YOU CONFIGURE THE MAP WRONG OR DISCONNECT YOU.");
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/AI/Pets/AddExperiencePointsComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.AI.Pets
2 | {
3 | class AddExperiencePointsComposer : ServerPacket
4 | {
5 | public AddExperiencePointsComposer(int PetId, int VirtualId, int Amount)
6 | : base(ServerPacketHeader.AddExperiencePointsMessageComposer)
7 | {
8 | WriteInteger(PetId);
9 | WriteInteger(VirtualId);
10 | WriteInteger(Amount);
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/Trading/TradingStartComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Inventory.Trading
2 | {
3 | class TradingStartComposer : ServerPacket
4 | {
5 | public TradingStartComposer(int User1Id, int User2Id)
6 | : base(ServerPacketHeader.TradingStartMessageComposer)
7 | {
8 | WriteInteger(User1Id);
9 | WriteInteger(1);
10 | WriteInteger(User2Id);
11 | WriteInteger(1);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Engine/ItemRemoveComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Items;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Rooms.Engine
4 | {
5 | class ItemRemoveComposer : ServerPacket
6 | {
7 | public ItemRemoveComposer(Item Item, int UserId)
8 | : base(ServerPacketHeader.ItemRemoveMessageComposer)
9 | {
10 | WriteString(Item.Id.ToString());
11 | WriteBoolean(false);
12 | WriteInteger(UserId);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/HabboHotel/Achievements/UserAchievement.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Achievements
2 | {
3 | public class UserAchievement
4 | {
5 | public string AchievementGroup { get; }
6 | public int Level { get; set; }
7 | public int Progress { get; set; }
8 |
9 | public UserAchievement(string achievementGroup, int level, int progress)
10 | {
11 | AchievementGroup = achievementGroup;
12 | Level = level;
13 | Progress = progress;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/HabboHotel/Permissions/PermissionGroup.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Permissions
2 | {
3 | public class PermissionGroup
4 | {
5 | public string Name { get; set; }
6 | public string Description { get; set; }
7 | public string Badge { get; set; }
8 |
9 | public PermissionGroup(string Name, string Description, string Badge)
10 | {
11 | this.Name = Name;
12 | this.Description = Description;
13 | this.Badge = Badge;
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/FloorPlan/FloorPlanSendDoorComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.FloorPlan
2 | {
3 | class FloorPlanSendDoorComposer : ServerPacket
4 | {
5 | public FloorPlanSendDoorComposer(int DoorX, int DoorY, int DoorDirection)
6 | : base(ServerPacketHeader.FloorPlanSendDoorMessageComposer)
7 | {
8 | WriteInteger(DoorX);
9 | WriteInteger(DoorY);
10 | WriteInteger(DoorDirection);
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Settings/FlatControllerAddedComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Settings
2 | {
3 | class FlatControllerAddedComposer : ServerPacket
4 | {
5 | public FlatControllerAddedComposer(int RoomId, int UserId, string Username)
6 | : base(ServerPacketHeader.FlatControllerAddedMessageComposer)
7 | {
8 | WriteInteger(RoomId);
9 | WriteInteger(UserId);
10 | WriteString(Username);
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Settings/FlatControllerRemovedComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Rooms;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Rooms.Settings
4 | {
5 | class FlatControllerRemovedComposer : ServerPacket
6 | {
7 | public FlatControllerRemovedComposer(Room Instance, int UserId)
8 | : base(ServerPacketHeader.FlatControllerRemovedMessageComposer)
9 | {
10 | WriteInteger(Instance.Id);
11 | WriteInteger(UserId);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/Furni/FurniListNotificationComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Inventory.Furni
2 | {
3 | class FurniListNotificationComposer : ServerPacket
4 | {
5 | public FurniListNotificationComposer(int Id, int Type)
6 | : base(ServerPacketHeader.FurniListNotificationMessageComposer)
7 | {
8 | WriteInteger(1);
9 | WriteInteger(Type);
10 | WriteInteger(1);
11 | WriteInteger(Id);
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Messenger/NewBuddyRequestComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Cache.Type;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Messenger
4 | {
5 | class NewBuddyRequestComposer : ServerPacket
6 | {
7 | public NewBuddyRequestComposer(UserCache Habbo)
8 | : base(ServerPacketHeader.NewBuddyRequestMessageComposer)
9 | {
10 | WriteInteger(Habbo.Id);
11 | WriteString(Habbo.Username);
12 | WriteString(Habbo.Look);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Misc/VideoOffersRewardsComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Misc
2 | {
3 | class VideoOffersRewardsComposer : ServerPacket
4 | {
5 | public VideoOffersRewardsComposer(int Id, string Type, string Message)
6 | : base(ServerPacketHeader.VideoOffersRewardsMessageComposer)
7 | {
8 | WriteString(Type);
9 | WriteInteger(Id);
10 | WriteString(Message);
11 | WriteString("");
12 | }
13 | }
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/Core/FigureData/Types/FigureSet.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace Plus.Core.FigureData.Types
4 | {
5 | class FigureSet
6 | {
7 | public SetType Type { get; set; }
8 | public int PalletId { get; set; }
9 | public Dictionary Sets { get; set; }
10 |
11 | public FigureSet(SetType type, int palletId)
12 | {
13 | Type = type;
14 | PalletId = palletId;
15 |
16 | Sets = new Dictionary();
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/BuildersClub/BuildersClubMembershipComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.BuildersClub
2 | {
3 | class BuildersClubMembershipComposer : ServerPacket
4 | {
5 | public BuildersClubMembershipComposer()
6 | : base(ServerPacketHeader.BuildersClubMembershipMessageComposer)
7 | {
8 | WriteInteger(int.MaxValue);
9 | WriteInteger(100);
10 | WriteInteger(0);
11 | WriteInteger(int.MaxValue);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Engine/RoomVisualizationSettingsComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Engine
2 | {
3 | class RoomVisualizationSettingsComposer : ServerPacket
4 | {
5 | public RoomVisualizationSettingsComposer(int Walls, int Floor, bool HideWalls)
6 | : base(ServerPacketHeader.RoomVisualizationSettingsMessageComposer)
7 | {
8 | WriteBoolean(HideWalls);
9 | WriteInteger(Walls);
10 | WriteInteger(Floor);
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/HabboHotel/Talents/TalentTrackSubLevel.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Talents
2 | {
3 | public class TalentTrackSubLevel
4 | {
5 | public int Level { get; set; }
6 | public string Badge { get; set; }
7 | public int RequiredProgress { get; set; }
8 |
9 | public TalentTrackSubLevel(int Level, string Badge, int RequiredProgress)
10 | {
11 | this.Level = Level;
12 | this.Badge = Badge;
13 | this.RequiredProgress = RequiredProgress;
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/HabboHotel/Permissions/PermissionCommand.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Permissions
2 | {
3 | class PermissionCommand
4 | {
5 | public string Command { get; private set; }
6 | public int GroupId { get; private set; }
7 | public int SubscriptionId { get; private set; }
8 |
9 | public PermissionCommand(string command, int groupId, int subscriptionId)
10 | {
11 | Command = command;
12 | GroupId = groupId;
13 | SubscriptionId = subscriptionId;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Catalog/GetGroupFurniConfigEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Catalog;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Catalog
5 | {
6 | class GetGroupFurniConfigEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new GroupFurniConfigComposer(PlusEnvironment.GetGame().GetGroupManager().GetGroupsForUser(session.GetHabbo().Id)));
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Handshake/InfoRetrieveEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 | using Plus.Communication.Packets.Outgoing.Handshake;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Handshake
5 | {
6 | public class InfoRetrieveEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new UserObjectComposer(session.GetHabbo()));
11 | session.SendPacket(new UserPerksComposer(session.GetHabbo()));
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Catalog/PresentDeliverErrorMessageComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Catalog
2 | {
3 | class PresentDeliverErrorMessageComposer : ServerPacket
4 | {
5 | public PresentDeliverErrorMessageComposer(bool CreditError, bool DucketError)
6 | : base(ServerPacketHeader.PresentDeliverErrorMessageComposer)
7 | {
8 | WriteBoolean(CreditError);//Do we have enough credits?
9 | WriteBoolean(DucketError);//Do we have enough duckets?
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Engine/ObjectRemoveComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Items;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Rooms.Engine
4 | {
5 | class ObjectRemoveComposer : ServerPacket
6 | {
7 | public ObjectRemoveComposer(Item Item, int UserId)
8 | : base(ServerPacketHeader.ObjectRemoveMessageComposer)
9 | {
10 | WriteString(Item.Id.ToString());
11 | WriteBoolean(false);
12 | WriteInteger(UserId);
13 | WriteInteger(0);
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/HabboHotel/Items/Data/Moodlight/MoodlightPreset.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Items.Data.Moodlight
2 | {
3 | public class MoodlightPreset
4 | {
5 | public bool BackgroundOnly;
6 | public string ColorCode;
7 | public int ColorIntensity;
8 |
9 | public MoodlightPreset(string ColorCode, int ColorIntensity, bool BackgroundOnly)
10 | {
11 | this.ColorCode = ColorCode;
12 | this.ColorIntensity = ColorIntensity;
13 | this.BackgroundOnly = BackgroundOnly;
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Rooms/Furni/RentableSpaces/GetRentableSpaceEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Rooms.Furni.RentableSpaces;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Rooms.Furni.RentableSpaces
5 | {
6 | class GetRentableSpaceEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | packet.PopInt(); //unknown
11 |
12 | session.SendPacket(new RentableSpaceComposer());
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/Purse/HabboActivityPointNotificationComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Inventory.Purse
2 | {
3 | class HabboActivityPointNotificationComposer : ServerPacket
4 | {
5 | public HabboActivityPointNotificationComposer(int balance, int notify, int type = 0)
6 | : base(ServerPacketHeader.HabboActivityPointNotificationMessageComposer)
7 | {
8 | WriteInteger(balance);
9 | WriteInteger(notify);
10 | WriteInteger(type);
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Quests/GetDailyQuestEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 | using Plus.Communication.Packets.Outgoing.LandingView;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Quests
5 | {
6 | class GetDailyQuestEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | int usersOnline = PlusEnvironment.GetGame().GetClientManager().Count;
11 |
12 | session.SendPacket(new ConcurrentUsersGoalProgressComposer(usersOnline));
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/LandingView/ConcurrentUsersGoalProgressComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.LandingView
2 | {
3 | class ConcurrentUsersGoalProgressComposer : ServerPacket
4 | {
5 | public ConcurrentUsersGoalProgressComposer(int UsersNow)
6 | : base(ServerPacketHeader.ConcurrentUsersGoalProgressMessageComposer)
7 | {
8 | WriteInteger(0);//0/1 = Not done, 2 = Done & can claim, 3 = claimed.
9 | WriteInteger(UsersNow);
10 | WriteInteger(1000);
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/HabboHotel/Navigator/NavigatorViewModeUtility.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Navigator
2 | {
3 | public static class NavigatorViewModeUtility
4 | {
5 | public static NavigatorViewMode GetViewModeByString(string mode)
6 | {
7 | switch (mode.ToUpper())
8 | {
9 | default:
10 | case "REGULAR":
11 | return NavigatorViewMode.Regular;
12 | case "THUMBNAIL":
13 | return NavigatorViewMode.Thumbnail;
14 | }
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/AvatarEffects/AvatarEffectAddedComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Inventory.AvatarEffects
2 | {
3 | class AvatarEffectAddedComposer : ServerPacket
4 | {
5 | public AvatarEffectAddedComposer(int SpriteId, int Duration)
6 | : base(ServerPacketHeader.AvatarEffectAddedMessageComposer)
7 | {
8 | WriteInteger(SpriteId);
9 | WriteInteger(0);//Types
10 | WriteInteger(Duration);
11 | WriteBoolean(false);//Permanent
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Handshake/InitCryptoEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Encryption;
2 | using Plus.Communication.Packets.Outgoing.Handshake;
3 | using Plus.HabboHotel.GameClients;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Handshake
6 | {
7 | public class InitCryptoEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | session.SendPacket(new InitCryptoComposer(HabboEncryptionV2.GetRsaDiffieHellmanPrimeKey(), HabboEncryptionV2.GetRsaDiffieHellmanGeneratorKey()));
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Chat/ChatComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Chat
2 | {
3 | public class ChatComposer : ServerPacket
4 | {
5 | public ChatComposer(int VirtualId, string Message, int Emotion, int Colour)
6 | : base(ServerPacketHeader.ChatMessageComposer)
7 | {
8 | WriteInteger(VirtualId);
9 | WriteString(Message);
10 | WriteInteger(Emotion);
11 | WriteInteger(Colour);
12 | WriteInteger(0);
13 | WriteInteger(-1);
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Chat/ShoutComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Chat
2 | {
3 | public class ShoutComposer : ServerPacket
4 | {
5 | public ShoutComposer(int VirtualId, string Message, int Emotion, int Colour)
6 | : base(ServerPacketHeader.ShoutMessageComposer)
7 | {
8 | WriteInteger(VirtualId);
9 | WriteString(Message);
10 | WriteInteger(Emotion);
11 | WriteInteger(Colour);
12 | WriteInteger(0);
13 | WriteInteger(-1);
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/Database/Adapter/NormalQueryReactor.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | using Plus.Database.Interfaces;
4 |
5 | namespace Plus.Database.Adapter
6 | {
7 | public class NormalQueryReactor : QueryAdapter, IQueryAdapter
8 | {
9 | public NormalQueryReactor(IDatabaseClient client)
10 | : base(client)
11 | {
12 | Command = client.CreateNewCommand();
13 | }
14 |
15 | public void Dispose()
16 | {
17 | Command.Dispose();
18 | Client.Dispose();
19 | GC.SuppressFinalize(this);
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Marketplace/GetMarketplaceCanMakeOfferEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Marketplace;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Marketplace
5 | {
6 | class GetMarketplaceCanMakeOfferEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | int errorCode = session.GetHabbo().TradingLockExpiry > 0 ? 6 : 1;
11 |
12 | session.SendPacket(new MarketplaceCanMakeOfferResultComposer(errorCode));
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Chat/WhisperComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Chat
2 | {
3 | public class WhisperComposer : ServerPacket
4 | {
5 | public WhisperComposer(int VirtualId, string Text, int Emotion, int Colour)
6 | : base(ServerPacketHeader.WhisperMessageComposer)
7 | {
8 | WriteInteger(VirtualId);
9 | WriteString(Text);
10 | WriteInteger(Emotion);
11 | WriteInteger(Colour);
12 |
13 | WriteInteger(0);
14 | WriteInteger(-1);
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Inventory/Achievements/GetAchievementsEvent.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using Plus.Communication.Packets.Outgoing.Inventory.Achievements;
3 | using Plus.HabboHotel.GameClients;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Inventory.Achievements
6 | {
7 | class GetAchievementsEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | session.SendPacket(new AchievementsComposer(session, PlusEnvironment.GetGame().GetAchievementManager().Achievements.Values.ToList()));
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/AvatarEffects/AvatarEffectActivatedComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Users.Effects;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Inventory.AvatarEffects
4 | {
5 | class AvatarEffectActivatedComposer : ServerPacket
6 | {
7 | public AvatarEffectActivatedComposer(AvatarEffect Effect)
8 | : base(ServerPacketHeader.AvatarEffectActivatedMessageComposer)
9 | {
10 | WriteInteger(Effect.SpriteId);
11 | WriteInteger((int)Effect.Duration);
12 | WriteBoolean(false);//Permanent
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Handshake/UniqueIDEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 | using Plus.Communication.Packets.Outgoing.Handshake;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Handshake
5 | {
6 | public class UniqueIdEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | packet.PopString();
11 | string machineId = packet.PopString();
12 |
13 | session.MachineId = machineId;
14 |
15 | session.SendPacket(new SetUniqueIdComposer(machineId));
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Users/IgnoredUsersComposer.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Users
4 | {
5 | public class IgnoredUsersComposer : ServerPacket
6 | {
7 | public IgnoredUsersComposer(IReadOnlyCollection ignoredUsers)
8 | : base(ServerPacketHeader.IgnoredUsersMessageComposer)
9 | {
10 | WriteInteger(ignoredUsers.Count);
11 | foreach (string username in ignoredUsers)
12 | {
13 | WriteString(username);
14 | }
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Messenger/InstantMessageErrorComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Users.Messenger;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Messenger
4 | {
5 | class InstantMessageErrorComposer : ServerPacket
6 | {
7 | public InstantMessageErrorComposer(MessengerMessageErrors Error, int Target)
8 | : base(ServerPacketHeader.InstantMessageErrorMessageComposer)
9 | {
10 | WriteInteger(MessengerMessageErrorsUtility.GetMessageErrorPacketNum(Error));
11 | WriteInteger(Target);
12 | WriteString("");
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Navigator/FavouritesComposer.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Navigator
4 | {
5 | class FavouritesComposer : ServerPacket
6 | {
7 | public FavouritesComposer(ArrayList favouriteIds)
8 | : base(ServerPacketHeader.FavouritesMessageComposer)
9 | {
10 | WriteInteger(50);
11 | WriteInteger(favouriteIds.Count);
12 |
13 | foreach (int id in favouriteIds.ToArray())
14 | {
15 | WriteInteger(id);
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/HabboHotel/Achievements/AchievementLevel.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Achievements
2 | {
3 | public struct AchievementLevel
4 | {
5 | public int Level { get; }
6 | public int Requirement { get; }
7 | public int RewardPixels { get; }
8 | public int RewardPoints { get; }
9 |
10 | public AchievementLevel(int level, int rewardPixels, int rewardPoints, int requirement)
11 | {
12 | Level = level;
13 | RewardPixels = rewardPixels;
14 | RewardPoints = rewardPoints;
15 | Requirement = requirement;
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Settings/GetRoomFilterListComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Rooms;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Rooms.Settings
4 | {
5 | class GetRoomFilterListComposer : ServerPacket
6 | {
7 | public GetRoomFilterListComposer(Room Instance)
8 | : base(ServerPacketHeader.GetRoomFilterListMessageComposer)
9 | {
10 | WriteInteger(Instance.WordFilterList.Count);
11 | foreach (string Word in Instance.WordFilterList)
12 | {
13 | WriteString(Word);
14 | }
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/HabboHotel/Groups/GroupMember.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace Plus.HabboHotel.Groups
8 | {
9 | public class GroupMember
10 | {
11 | public int Id { get; set; }
12 | public string Username { get; set; }
13 | public string Look { get; set; }
14 |
15 | public GroupMember(int Id, string Username, string Look)
16 | {
17 | this.Id = Id;
18 | this.Username = Username;
19 | this.Look = Look;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Messenger/FriendNotificationComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Users.Messenger;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Messenger
4 | {
5 | class FriendNotificationComposer : ServerPacket
6 | {
7 | public FriendNotificationComposer(int UserId, MessengerEventTypes type, string data)
8 | : base(ServerPacketHeader.FriendNotificationMessageComposer)
9 | {
10 | WriteString(UserId.ToString());
11 | WriteInteger(MessengerEventTypesUtility.GetEventTypePacketNum(type));
12 | WriteString(data);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Messenger/MessengerInitComposer.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Messenger
4 | {
5 | class MessengerInitComposer : ServerPacket
6 | {
7 | public MessengerInitComposer()
8 | : base(ServerPacketHeader.MessengerInitMessageComposer)
9 | {
10 | WriteInteger(Convert.ToInt32(PlusEnvironment.GetSettingsManager().TryGetValue("messenger.buddy_limit")));//Friends max.
11 | WriteInteger(300);
12 | WriteInteger(800);
13 | WriteInteger(0); // category count
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Communication/RCON/Commands/Hotel/ReloadItemsCommand.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Rcon.Commands.Hotel
2 | {
3 | class ReloadItemsCommand : IRconCommand
4 | {
5 | public string Description
6 | {
7 | get { return "This command is used to reload the game items."; }
8 | }
9 |
10 | public string Parameters
11 | {
12 | get { return ""; }
13 | }
14 |
15 | public bool TryExecute(string[] parameters)
16 | {
17 | PlusEnvironment.GetGame().GetItemManager().Init();
18 |
19 | return true;
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/HabboHotel/Navigator/FeaturedRoom.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Navigator
2 | {
3 | public class FeaturedRoom
4 | {
5 | public int RoomId { get; private set; }
6 | public string Caption { get; private set; }
7 | public string Description { get; private set; }
8 | public string Image { get; private set; }
9 |
10 | public FeaturedRoom(int roomId, string caption, string description, string images)
11 | {
12 | RoomId = roomId;
13 | Caption = caption;
14 | Description = description;
15 | Image = images;
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/Communication/RCON/Commands/Hotel/ReloadNavigatorCommand.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Rcon.Commands.Hotel
2 | {
3 | class ReloadNavigatorCommand : IRconCommand
4 | {
5 | public string Description
6 | {
7 | get { return "This command is used to reload the navigator."; }
8 | }
9 |
10 | public string Parameters
11 | {
12 | get { return ""; }
13 | }
14 |
15 | public bool TryExecute(string[] parameters)
16 | {
17 | PlusEnvironment.GetGame().GetNavigator().Init();
18 |
19 | return true;
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/GameCenter/GetGameListingEvent.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | using Plus.HabboHotel.Games;
4 | using Plus.Communication.Packets.Outgoing.GameCenter;
5 |
6 | namespace Plus.Communication.Packets.Incoming.GameCenter
7 | {
8 | class GetGameListingEvent : IPacketEvent
9 | {
10 | public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
11 | {
12 | ICollection Games = PlusEnvironment.GetGame().GetGameDataManager().GameData;
13 |
14 | Session.SendPacket(new GameListComposer(Games));
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Communication/RCON/Commands/Hotel/ReloadBansCommand.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Rcon.Commands.Hotel
2 | {
3 | class ReloadBansCommand : IRconCommand
4 | {
5 | public string Description
6 | {
7 | get { return "This command is used to re-cache the bans."; }
8 | }
9 |
10 | public string Parameters
11 | {
12 | get { return ""; }
13 | }
14 |
15 | public bool TryExecute(string[] parameters)
16 | {
17 | PlusEnvironment.GetGame().GetModerationManager().ReCacheBans();
18 |
19 | return true;
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/Communication/RCON/Commands/Hotel/ReloadQuestsCommand.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Rcon.Commands.Hotel
2 | {
3 | class ReloadQuestsCommand : IRconCommand
4 | {
5 | public string Description
6 | {
7 | get { return "This command is used to reload the quests manager."; }
8 | }
9 |
10 | public string Parameters
11 | {
12 | get { return ""; }
13 | }
14 |
15 | public bool TryExecute(string[] parameters)
16 | {
17 | PlusEnvironment.GetGame().GetQuestManager().Init();
18 |
19 | return true;
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/Communication/RCON/Commands/Hotel/ReloadServerSettingsCommand.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Rcon.Commands.Hotel
2 | {
3 | class ReloadServerSettingsCommand : IRconCommand
4 | {
5 | public string Description
6 | {
7 | get { return "This command is used to reload the server settings."; }
8 | }
9 |
10 | public string Parameters
11 | {
12 | get { return ""; }
13 | }
14 |
15 | public bool TryExecute(string[] parameters)
16 | {
17 | PlusEnvironment.GetSettingsManager().Init();
18 | return true;
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/GameCenter/Game2GetWeeklyLeaderboardEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Games;
2 |
3 | namespace Plus.Communication.Packets.Incoming.GameCenter
4 | {
5 | class Game2GetWeeklyLeaderboardEvent : IPacketEvent
6 | {
7 | public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
8 | {
9 | int GameId = Packet.PopInt();
10 |
11 | GameData GameData = null;
12 | if (PlusEnvironment.GetGame().GetGameDataManager().TryGetGame(GameId, out GameData))
13 | {
14 | //Code
15 | }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Rooms/Connection/GoToFlatEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 | using Plus.Communication.Packets.Outgoing.Rooms.Session;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Rooms.Connection
5 | {
6 | class GoToFlatEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | if (!session.GetHabbo().InRoom)
11 | return;
12 |
13 | if (!session.GetHabbo().EnterRoom(session.GetHabbo().CurrentRoom))
14 | session.SendPacket(new CloseConnectionComposer());
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Rooms/Connection/OpenFlatConnectionEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Rooms.Connection
4 | {
5 | public class OpenFlatConnectionEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 | if (session == null || session.GetHabbo() == null)
10 | return;
11 |
12 | int roomId = packet.PopInt();
13 | string password = packet.PopString();
14 |
15 | session.GetHabbo().PrepareRoom(roomId, password);
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/Communication/RCON/Commands/Hotel/ReloadFilterCommand.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Rcon.Commands.Hotel
2 | {
3 | class ReloadFilterCommand : IRconCommand
4 | {
5 | public string Description
6 | {
7 | get { return "This command is used to reload the chatting filter manager."; }
8 | }
9 |
10 | public string Parameters
11 | {
12 | get { return ""; }
13 | }
14 |
15 | public bool TryExecute(string[] parameters)
16 | {
17 | PlusEnvironment.GetGame().GetChatManager().GetFilter().Init();
18 | return true;
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/Core/FigureData/Types/Color.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Core.FigureData.Types
2 | {
3 | public class Color
4 | {
5 | public int Id { get; set; }
6 | public int Index { get; set; }
7 | public int ClubLevel { get; set; }
8 | public bool Selectable { get; set; }
9 | public string Value { get; set; }
10 |
11 | public Color(int id, int index, int clubLevel, bool selectable, string value)
12 | {
13 | Id = id;
14 | Index = index;
15 | ClubLevel = clubLevel;
16 | Selectable = selectable;
17 | Value = value;
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Core/FigureData/Types/Part.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Core.FigureData.Types
2 | {
3 | class Part
4 | {
5 | public int Id { get; set; }
6 | public SetType SetType { get; set; }
7 | public bool Colorable { get; set; }
8 | public int Index { get; set; }
9 | public int ColorIndex { get; set; }
10 |
11 |
12 | public Part(int id, SetType setType, bool colorable, int index, int colorIndex)
13 | {
14 | Id = id;
15 | SetType = setType;
16 | Colorable = colorable;
17 | Index = index;
18 | ColorIndex = colorIndex;
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Inventory/Purse/GetCreditsInfoEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 | using Plus.Communication.Packets.Outgoing.Inventory.Purse;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Inventory.Purse
5 | {
6 | class GetCreditsInfoEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new CreditBalanceComposer(session.GetHabbo().Credits));
11 | session.SendPacket(new ActivityPointsComposer(session.GetHabbo().Duckets, session.GetHabbo().Diamonds, session.GetHabbo().GOTWPoints));
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Groups/UpdateFavouriteGroupComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Groups;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Groups
4 | {
5 | class UpdateFavouriteGroupComposer : ServerPacket
6 | {
7 | public UpdateFavouriteGroupComposer(Group Group, int VirtualId)
8 | : base(ServerPacketHeader.UpdateFavouriteGroupMessageComposer)
9 | {
10 | WriteInteger(VirtualId);//Sends 0 on .COM
11 | WriteInteger(Group != null ? Group.Id : 0);
12 | WriteInteger(3);
13 | WriteString(Group != null ? Group.Name : string.Empty);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Furni/YouTubeTelevisions/GetYouTubeVideoComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Furni.YouTubeTelevisions
2 | {
3 | class GetYouTubeVideoComposer : ServerPacket
4 | {
5 | public GetYouTubeVideoComposer(int ItemId, string YouTubeVideo)
6 | : base(ServerPacketHeader.GetYouTubeVideoMessageComposer)
7 | {
8 | WriteInteger(ItemId);
9 | WriteString(YouTubeVideo);//"9Ht5RZpzPqw");
10 | WriteInteger(0);//Start seconds
11 | WriteInteger(0);//End seconds
12 | WriteInteger(0);//State
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Communication/RCON/Commands/Hotel/ReloadVouchersCommand.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Rcon.Commands.Hotel
2 | {
3 | class ReloadVouchersCommand : IRconCommand
4 | {
5 | public string Description
6 | {
7 | get { return "This command is used to reload the voucher manager."; }
8 | }
9 |
10 | public string Parameters
11 | {
12 | get { return ""; }
13 | }
14 |
15 | public bool TryExecute(string[] parameters)
16 | {
17 | PlusEnvironment.GetGame().GetCatalog().GetVoucherManager().Init();
18 |
19 | return true;
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Handshake/SSOTicketEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Handshake
4 | {
5 | public class SsoTicketEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 | if (session == null || session.Rc4Client == null || session.GetHabbo() != null)
10 | return;
11 |
12 | string sso = packet.PopString();
13 | if (string.IsNullOrEmpty(sso) || sso.Length < 15)
14 | return;
15 |
16 | session.TryAuthenticate(sso);
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Navigator/New/NavigatorLiftedRoomsComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Navigator.New
2 | {
3 | class NavigatorLiftedRoomsComposer : ServerPacket
4 | {
5 | public NavigatorLiftedRoomsComposer()
6 | : base(ServerPacketHeader.NavigatorLiftedRoomsMessageComposer)
7 | {
8 | WriteInteger(0); //Count
9 | {
10 | WriteInteger(1); //Flat Id
11 | WriteInteger(0); //Unknown
12 | WriteString(string.Empty); //Image
13 | WriteString("Caption"); //Caption.
14 | }
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/HabboHotel/Users/Messenger/SearchResult.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Users.Messenger
2 | {
3 | public struct SearchResult
4 | {
5 | public int UserId;
6 | public string Username;
7 | public string Motto;
8 | public string Figure;
9 | public string LastOnline;
10 |
11 | public SearchResult(int UserId, string Username, string Motto, string Figure, string LastOnline)
12 | {
13 | this.UserId = UserId;
14 | this.Username = Username;
15 | this.Motto = Motto;
16 | this.Figure = Figure;
17 | this.LastOnline = LastOnline;
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Rooms/Furni/YouTubeTelevisions/ToggleYouTubeVideoEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Rooms.Furni.YouTubeTelevisions;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Rooms.Furni.YouTubeTelevisions
5 | {
6 | class ToggleYouTubeVideoEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | int itemId = packet.PopInt();//Item Id
11 | string videoId = packet.PopString(); //Video ID
12 |
13 | session.SendPacket(new GetYouTubeVideoComposer(itemId, videoId));
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Catalog/CatalogItemDiscountComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Catalog
2 | {
3 | class CatalogItemDiscountComposer : ServerPacket
4 | {
5 | public CatalogItemDiscountComposer()
6 | : base(ServerPacketHeader.CatalogItemDiscountMessageComposer)
7 | {
8 | WriteInteger(100);//Most you can get.
9 | WriteInteger(6);
10 | WriteInteger(1);
11 | WriteInteger(1);
12 | WriteInteger(2);//Count
13 | {
14 | WriteInteger(40);
15 | WriteInteger(99);
16 | }
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Navigator/FindRandomFriendingRoomEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Rooms.Session;
2 | using Plus.HabboHotel.GameClients;
3 | using Plus.HabboHotel.Rooms;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Navigator
6 | {
7 | class FindRandomFriendingRoomEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | Room instance = PlusEnvironment.GetGame().GetRoomManager().TryGetRandomLoadedRoom();
12 |
13 | if (instance != null)
14 | session.SendPacket(new RoomForwardComposer(instance.Id));
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Users/GetSelectedBadgesEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Users;
2 | using Plus.Communication.Packets.Outgoing.Users;
3 | using Plus.HabboHotel.GameClients;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Users
6 | {
7 | class GetSelectedBadgesEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | int userId = packet.PopInt();
12 | Habbo habbo = PlusEnvironment.GetHabboById(userId);
13 | if (habbo == null)
14 | return;
15 |
16 | session.SendPacket(new HabboUserBadgesComposer(habbo));
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Avatar/AvatarAspectUpdateMessageComposer.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using System.Text;
4 |
5 |
6 | using Plus.HabboHotel.Rooms;
7 | using Plus.HabboHotel.GameClients;
8 |
9 |
10 | namespace Plus.Communication.Packets.Outgoing.Rooms.Engine
11 | {
12 | class AvatarAspectUpdateMessageComposer : ServerPacket
13 | {
14 | public AvatarAspectUpdateMessageComposer(string Figure, string Gender)
15 | : base(ServerPacketHeader.AvatarAspectUpdateMessageComposer)
16 | {
17 | base.WriteString(Figure);
18 | base.WriteString(Gender);
19 |
20 |
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/Config/config.ini:
--------------------------------------------------------------------------------
1 | ## MySQL Configuration
2 | db.hostname=127.0.0.1
3 | db.port=3306
4 | db.username=root
5 | db.password=password
6 | db.name=plus
7 |
8 | ## MySQL pooling setup (controls amount of connections)
9 | db.pool.minsize=5
10 | db.pool.maxsize=65
11 |
12 | ## Game TCP/IP Configuration
13 | game.tcp.bindip=127.0.0.1
14 | game.tcp.port=1232
15 | game.tcp.conlimit=100000
16 | game.tcp.conperip=50000
17 | game.tcp.enablenagles=true
18 |
19 | ## MUS TCP/IP Configuration
20 | rcon.tcp.bindip=127.0.0.1
21 | rcon.tcp.port=30001
22 | rcon.tcp.allowedaddr=localhost;127.0.0.1
23 |
24 | ## Client configuration
25 | client.ping.enabled=1
26 | client.ping.interval=30000
27 | client.maxrequests=300
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Catalog/GetCatalogRoomPromotionEvent.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | using Plus.Communication.Packets.Outgoing.Catalog;
4 | using Plus.HabboHotel.GameClients;
5 | using Plus.HabboHotel.Rooms;
6 |
7 | namespace Plus.Communication.Packets.Incoming.Catalog
8 | {
9 | class GetCatalogRoomPromotionEvent : IPacketEvent
10 | {
11 | public void Parse(GameClient session, ClientPacket packet)
12 | {
13 | List rooms = RoomFactory.GetRoomsDataByOwnerSortByName(session.GetHabbo().Id);
14 |
15 | session.SendPacket(new GetCatalogRoomPromotionComposer(rooms));
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Navigator/GetNavigatorFlatsEvent.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using Plus.HabboHotel.GameClients;
3 | using Plus.Communication.Packets.Outgoing.Navigator;
4 | using Plus.HabboHotel.Navigator;
5 |
6 | namespace Plus.Communication.Packets.Incoming.Navigator
7 | {
8 | class GetNavigatorFlatsEvent : IPacketEvent
9 | {
10 | public void Parse(GameClient session, ClientPacket packet)
11 | {
12 | ICollection categories = PlusEnvironment.GetGame().GetNavigator().GetEventCategories();
13 |
14 | session.SendPacket(new NavigatorFlatCatsComposer(categories));
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/Resources/README.txt:
--------------------------------------------------------------------------------
1 | Hi,
2 |
3 | Before running all of the SQLs, please make sure you read this.
4 |
5 | SQLs.sql
6 | - The first two queries may error, if they do just delete those and run the rest. Be warned that this query will drop your 'server_locale' and 'server_settings' table and replace them with the new data.
7 |
8 | Behaviour Changes.sql
9 | - If you're running the database from the first release, you should be fine to run this! This will update your exchangeable items to a new interaction type and give them a behaviour data. It will also do the same for pets.
10 | - If you're running a different database, make sure that these IDs match, or make the changes to the furni manually.
11 |
12 |
--------------------------------------------------------------------------------
/HabboHotel/Items/Wired/IWiredItem.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Concurrent;
2 |
3 | using Plus.Communication.Packets.Incoming;
4 | using Plus.HabboHotel.Rooms;
5 |
6 | namespace Plus.HabboHotel.Items.Wired
7 | {
8 | public interface IWiredItem
9 | {
10 | Room Instance { get; set; }
11 | Item Item { get; set; }
12 | WiredBoxType Type { get; }
13 | ConcurrentDictionary SetItems { get; set; }
14 | string StringData { get; set; }
15 | bool BoolData { get; set; }
16 | void HandleSave(ClientPacket Packet);
17 | bool Execute(params object[] Params);
18 | string ItemsData { get; set; }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Navigator/PopularRoomTagsResultComposer.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Navigator
4 | {
5 | class PopularRoomTagsResultComposer : ServerPacket
6 | {
7 | public PopularRoomTagsResultComposer(ICollection> tags)
8 | : base(ServerPacketHeader.PopularRoomTagsResultMessageComposer)
9 | {
10 | WriteInteger(tags.Count);
11 | foreach (KeyValuePair tag in tags)
12 | {
13 | WriteString(tag.Key);
14 | WriteInteger(tag.Value);
15 | }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Catalog/MarketplaceConfigurationComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Catalog
2 | {
3 | public class MarketplaceConfigurationComposer : ServerPacket
4 | {
5 | public MarketplaceConfigurationComposer()
6 | : base(ServerPacketHeader.MarketplaceConfigurationMessageComposer)
7 | {
8 | WriteBoolean(true);
9 | WriteInteger(1);//Min price.
10 | WriteInteger(0);//1?
11 | WriteInteger(0);//5?
12 | WriteInteger(1);
13 | WriteInteger(99999999);//Max price.
14 | WriteInteger(48);
15 | WriteInteger(7);//Days.
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/AI/Bots/OpenBotActionComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Rooms;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Rooms.AI.Bots
4 | {
5 | class OpenBotActionComposer : ServerPacket
6 | {
7 | public OpenBotActionComposer(RoomUser BotUser, int ActionId, string BotSpeech)
8 | : base(ServerPacketHeader.OpenBotActionMessageComposer)
9 | {
10 | WriteInteger(BotUser.BotData.Id);
11 | WriteInteger(ActionId);
12 | if (ActionId == 2)
13 | WriteString(BotSpeech);
14 | else if (ActionId == 5)
15 | WriteString(BotUser.BotData.Name);
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Furni/RentableSpaces/RentableSpaceComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Furni.RentableSpaces
2 | {
3 | public class RentableSpaceComposer : ServerPacket
4 | {
5 | public RentableSpaceComposer()
6 | : base(ServerPacketHeader.RentableSpaceMessageComposer)
7 | {
8 | WriteBoolean(true); //Is rented y/n
9 | WriteInteger(-1); //No fucking clue
10 | WriteInteger(-1); //No fucking clue
11 | WriteString("Tyler-Retros"); //Username of who owns.
12 | WriteInteger(360); //Time to expire.
13 | WriteInteger(-1); //No fucking clue
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Catalog/GetCatalogIndexEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 | using Plus.Communication.Packets.Outgoing.Catalog;
3 | using Plus.Communication.Packets.Outgoing.BuildersClub;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Catalog
6 | {
7 | public class GetCatalogIndexEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | session.SendPacket(new CatalogIndexComposer(session, PlusEnvironment.GetGame().GetCatalog().GetPages()));
12 | session.SendPacket(new CatalogItemDiscountComposer());
13 | session.SendPacket(new BCBorrowedItemsComposer());
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/LandingView/GetPromoArticlesEvent.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using Plus.HabboHotel.LandingView.Promotions;
3 | using Plus.Communication.Packets.Outgoing.LandingView;
4 | using Plus.HabboHotel.GameClients;
5 |
6 | namespace Plus.Communication.Packets.Incoming.LandingView
7 | {
8 | class GetPromoArticlesEvent : IPacketEvent
9 | {
10 | public void Parse(GameClient session, ClientPacket packet)
11 | {
12 | ICollection landingPromotions = PlusEnvironment.GetGame().GetLandingManager().GetPromotionItems();
13 |
14 | session.SendPacket(new PromoArticlesComposer(landingPromotions));
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Messenger/GetBuddyRequestsEvent.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using System.Collections.Generic;
3 |
4 | using Plus.HabboHotel.Users.Messenger;
5 | using Plus.Communication.Packets.Outgoing.Messenger;
6 | using Plus.HabboHotel.GameClients;
7 |
8 | namespace Plus.Communication.Packets.Incoming.Messenger
9 | {
10 | class GetBuddyRequestsEvent : IPacketEvent
11 | {
12 | public void Parse(GameClient session, ClientPacket packet)
13 | {
14 | ICollection requests = session.GetHabbo().GetMessenger().GetRequests().ToList();
15 |
16 | session.SendPacket(new BuddyRequestsComposer(requests));
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Messenger/RequestBuddyEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 | using Plus.HabboHotel.Quests;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Messenger
5 | {
6 | class RequestBuddyEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | if (session == null || session.GetHabbo() == null || session.GetHabbo().GetMessenger() == null)
11 | return;
12 |
13 | if (session.GetHabbo().GetMessenger().RequestBuddy(packet.PopString()))
14 | PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(session, QuestType.SocialFriend);
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Utilities/Converter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Plus.Utilities
4 | {
5 | public static class Converter
6 | {
7 | public static string BytesToHexString(byte[] bytes)
8 | {
9 | return BitConverter.ToString(bytes).Replace("-", string.Empty);
10 | }
11 |
12 | public static byte[] HexStringToBytes(string characters)
13 | {
14 | int length = characters.Length;
15 | byte[] bytes = new byte[length / 2];
16 | for (int i = 0; i < length; i += 2)
17 | {
18 | bytes[i / 2] = Convert.ToByte(characters.Substring(i, 2), 16);
19 | }
20 | return bytes;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Talents/GetTalentTrackEvent.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | using Plus.HabboHotel.Talents;
4 | using Plus.Communication.Packets.Outgoing.Talents;
5 | using Plus.HabboHotel.GameClients;
6 |
7 | namespace Plus.Communication.Packets.Incoming.Talents
8 | {
9 | class GetTalentTrackEvent : IPacketEvent
10 | {
11 | public void Parse(GameClient session, ClientPacket packet)
12 | {
13 | string type = packet.PopString();
14 |
15 | ICollection levels = PlusEnvironment.GetGame().GetTalentTrackManager().GetLevels();
16 |
17 | session.SendPacket(new TalentTrackComposer(levels, type));
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Engine/UserChangeComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Rooms;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Rooms.Engine
4 | {
5 | class UserChangeComposer : ServerPacket
6 | {
7 | public UserChangeComposer(RoomUser User, bool Self)
8 | : base(ServerPacketHeader.UserChangeMessageComposer)
9 | {
10 | WriteInteger((Self) ? -1 : User.VirtualId);
11 | WriteString(User.GetClient().GetHabbo().Look);
12 | WriteString(User.GetClient().GetHabbo().Gender);
13 | WriteString(User.GetClient().GetHabbo().Motto);
14 | WriteInteger(User.GetClient().GetHabbo().GetStats().AchievementPoints);
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/HabboHotel/Groups/BadgePartUtility.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Groups
2 | {
3 | public static class BadgePartUtility
4 | {
5 | public static string WorkBadgeParts(bool isBase, string partId, string colour, string position)
6 | {
7 | string parts = isBase ? "b" : "s";
8 | partId = (int.Parse(partId) < 10) ? "0" + partId : partId;
9 | colour = (int.Parse(colour) < 10) ? "0" + colour : colour;
10 | parts += partId + colour + position;
11 |
12 | if (!isBase && (parts == "s00000" || parts == "s000000"))
13 | {
14 | return string.Empty;
15 | }
16 |
17 | return parts;
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/GameCenter/GetPlayableGamesEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.GameCenter;
2 |
3 | namespace Plus.Communication.Packets.Incoming.GameCenter
4 | {
5 | class GetPlayableGamesEvent : IPacketEvent
6 | {
7 | public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
8 | {
9 | int GameId = Packet.PopInt();
10 |
11 | Session.SendPacket(new GameAccountStatusComposer(GameId));
12 | Session.SendPacket(new PlayableGamesComposer(GameId));
13 | Session.SendPacket(new GameAchievementListComposer(Session, PlusEnvironment.GetGame().GetAchievementManager().GetGameAchievements(GameId), GameId));
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/Communication/Encryption/Keys/RSAKeys.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Encryption.Keys
2 | {
3 | public class RSAKeys
4 | {
5 | public string N = "5DE90F8BEB8B72DE3DEA30CD1A8D5BC589CD4DD5FC67761BB2C4F1A3DA94CA3B61F92637A3B52AA5000E9FCB1A3FC390972418BEEB068A81CBABEE844D0879B467F4826F50D91E61B8EB9D8D5BA149073E2DEFD79DF6B023FD3DE358777350D3A8E43A18F6D5B7BD513A11C1961AA95461B32D0B95D03C07449E59F02AAB7E93";
6 | public string D = "3E9B5FB29D07A1E97E9C2088BC5E3D2E5BDE33E3FD9A4EBD21D8A117E70DDC2796A6197A6D2371C3555F1532117FD7B5BA18107F4759B1ABDD1D49AD88B051221E14045BA0CF694117AD2CF6285C4622CC0CF3A9311C6F56B42E9B5CB82AFF2456223BC5C3B04CB397DD82693B9A30831E180257F5FBCA7968B462181ADE211B";
7 | public string E = "3";
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Groups/GroupFurniSettingsComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Groups;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Groups
4 | {
5 | class GroupFurniSettingsComposer : ServerPacket
6 | {
7 | public GroupFurniSettingsComposer(Group Group, int ItemId, int UserId)
8 | : base(ServerPacketHeader.GroupFurniSettingsMessageComposer)
9 | {
10 | WriteInteger(ItemId);//Item Id
11 | WriteInteger(Group.Id);//Group Id?
12 | WriteString(Group.Name);
13 | WriteInteger(Group.RoomId);//RoomId
14 | WriteBoolean(Group.IsMember(UserId));//Member?
15 | WriteBoolean(Group.ForumEnabled);//Has a forum
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Users/ScrSendUserInfoComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Users
2 | {
3 | class ScrSendUserInfoComposer : ServerPacket
4 | {
5 | public ScrSendUserInfoComposer()
6 | : base(ServerPacketHeader.ScrSendUserInfoMessageComposer)
7 | {
8 | WriteString("habbo_club");
9 | WriteInteger(0); //display days
10 | WriteInteger(2);
11 | WriteInteger(0); //display months
12 | WriteInteger(1);
13 | WriteBoolean(true); // hc
14 | WriteBoolean(true); // vip
15 | WriteInteger(0);
16 | WriteInteger(0);
17 | WriteInteger(495);
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Catalog/PromotableRoomsComposer.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using Plus.HabboHotel.Rooms;
3 | namespace Plus.Communication.Packets.Outgoing.Catalog
4 | {
5 | class PromotableRoomsComposer : ServerPacket
6 | {
7 | public PromotableRoomsComposer(ICollection Rooms)
8 | : base(ServerPacketHeader.PromotableRoomsMessageComposer)
9 | {
10 | WriteBoolean(true);
11 | WriteInteger(Rooms.Count);//Count
12 |
13 | foreach (RoomData Data in Rooms)
14 | {
15 | WriteInteger(Data.Id);
16 | WriteString(Data.Name);
17 | WriteBoolean(false);
18 | }
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Furni/OpenGiftComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Items;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Rooms.Furni
4 | {
5 | class OpenGiftComposer : ServerPacket
6 | {
7 | public OpenGiftComposer(ItemData Data, string Text, Item Item, bool ItemIsInRoom)
8 | : base(ServerPacketHeader.OpenGiftMessageComposer)
9 | {
10 | WriteString(Data.Type.ToString());
11 | WriteInteger(Data.SpriteId);
12 | WriteString(Data.ItemName);
13 | WriteInteger(Item.Id);
14 | WriteString(Data.Type.ToString());
15 | WriteBoolean(ItemIsInRoom);//Is it in the room?
16 | WriteString(Text);
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Groups/GroupMemberUpdatedComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Users;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Groups
4 | {
5 | class GroupMemberUpdatedComposer : ServerPacket
6 | {
7 | public GroupMemberUpdatedComposer(int GroupId, Habbo Habbo, int Type)
8 | : base(ServerPacketHeader.GroupMemberUpdatedMessageComposer)
9 | {
10 | WriteInteger(GroupId);//GroupId
11 | WriteInteger(Type);//Type?
12 | {
13 | WriteInteger(Habbo.Id);//UserId
14 | WriteString(Habbo.Username);
15 | WriteString(Habbo.Look);
16 | WriteString(string.Empty);
17 | }
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Groups/GetGroupInfoEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Groups;
2 | using Plus.Communication.Packets.Outgoing.Groups;
3 | using Plus.HabboHotel.GameClients;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Groups
6 | {
7 | class GetGroupInfoEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | int groupId = packet.PopInt();
12 | bool newWindow = packet.PopBoolean();
13 |
14 | if (!PlusEnvironment.GetGame().GetGroupManager().TryGetGroup(groupId, out Group group))
15 | return;
16 |
17 | session.SendPacket(new GroupInfoComposer(group, session, newWindow));
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Inventory/Pets/GetPetInventoryEvent.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | using Plus.HabboHotel.Rooms.AI;
4 | using Plus.Communication.Packets.Outgoing.Inventory.Pets;
5 | using Plus.HabboHotel.GameClients;
6 |
7 | namespace Plus.Communication.Packets.Incoming.Inventory.Pets
8 | {
9 | class GetPetInventoryEvent : IPacketEvent
10 | {
11 | public void Parse(GameClient session, ClientPacket packet)
12 | {
13 | if (session.GetHabbo().GetInventoryComponent() == null)
14 | return;
15 |
16 | ICollection pets = session.GetHabbo().GetInventoryComponent().GetPets();
17 | session.SendPacket(new PetInventoryComposer(pets));
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Navigator/GetUserFlatCatsEvent.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using Plus.HabboHotel.Navigator;
3 | using Plus.HabboHotel.GameClients;
4 | using Plus.Communication.Packets.Outgoing.Navigator;
5 |
6 | namespace Plus.Communication.Packets.Incoming.Navigator
7 | {
8 | public class GetUserFlatCatsEvent : IPacketEvent
9 | {
10 | public void Parse(GameClient session, ClientPacket packet)
11 | {
12 | if (session == null)
13 | return;
14 |
15 | ICollection categories = PlusEnvironment.GetGame().GetNavigator().GetFlatCategories();
16 |
17 | session.SendPacket(new UserFlatCatsComposer(categories, session.GetHabbo().Rank));
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Marketplace/MarketplaceItemStatsComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Marketplace
2 | {
3 | class MarketplaceItemStatsComposer : ServerPacket
4 | {
5 | public MarketplaceItemStatsComposer(int ItemId, int SpriteId, int AveragePrice)
6 | : base(ServerPacketHeader.MarketplaceItemStatsMessageComposer)
7 | {
8 | WriteInteger(AveragePrice);//Avg price in last 7 days.
9 | WriteInteger(PlusEnvironment.GetGame().GetCatalog().GetMarketplace().OfferCountForSprite(SpriteId));
10 |
11 | WriteInteger(0);//No idea.
12 | WriteInteger(0);//No idea.
13 |
14 | WriteInteger(ItemId);
15 | WriteInteger(SpriteId);
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/HabboHotel/Catalog/CatalogBot.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Catalog
2 | {
3 | public class CatalogBot
4 | {
5 | public int Id { get; private set; }
6 | public string Figure { get; private set; }
7 | public string Gender { get; private set; }
8 | public string Motto { get; private set; }
9 | public string Name { get; private set; }
10 | public string AIType { get; private set; }
11 |
12 | public CatalogBot(int id, string name, string figure, string motto, string gender, string type)
13 | {
14 | Id = id;
15 | Name = name;
16 | Figure = figure;
17 | Motto = motto;
18 | Gender = gender;
19 | AIType = type;
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Inventory/Bots/GetBotInventoryEvent.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | using Plus.HabboHotel.Users.Inventory.Bots;
4 | using Plus.Communication.Packets.Outgoing.Inventory.Bots;
5 | using Plus.HabboHotel.GameClients;
6 |
7 | namespace Plus.Communication.Packets.Incoming.Inventory.Bots
8 | {
9 | class GetBotInventoryEvent : IPacketEvent
10 | {
11 | public void Parse(GameClient session, ClientPacket packet)
12 | {
13 | if (session.GetHabbo().GetInventoryComponent() == null)
14 | return;
15 |
16 | ICollection bots = session.GetHabbo().GetInventoryComponent().GetBots();
17 | session.SendPacket(new BotInventoryComposer(bots));
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Groups/GroupMembershipRequestedComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Users;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Groups
4 | {
5 | class GroupMembershipRequestedComposer : ServerPacket
6 | {
7 | public GroupMembershipRequestedComposer(int GroupId, Habbo Habbo, int Type)
8 | : base(ServerPacketHeader.GroupMembershipRequestedMessageComposer)
9 | {
10 | WriteInteger(GroupId);//GroupId
11 | WriteInteger(Type);//Type?
12 | {
13 | WriteInteger(Habbo.Id);//UserId
14 | WriteString(Habbo.Username);
15 | WriteString(Habbo.Look);
16 | WriteString(string.Empty);
17 | }
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Navigator/GetGuestRoomEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Navigator;
2 | using Plus.HabboHotel.Rooms;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Navigator
5 | {
6 | class GetGuestRoomEvent : IPacketEvent
7 | {
8 | public void Parse(HabboHotel.GameClients.GameClient session, ClientPacket packet)
9 | {
10 | int roomId = packet.PopInt();
11 |
12 | if (!RoomFactory.TryGetData(roomId, out RoomData data))
13 | return;
14 |
15 | bool enter = packet.PopInt() == 1;
16 | bool forward = packet.PopInt() == 1;
17 |
18 | session.SendPacket(new GetGuestRoomResultComposer(session, data, enter, forward));
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Navigator/UpdateNavigatorSettingsEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Rooms;
2 | using Plus.Communication.Packets.Outgoing.Navigator;
3 | using Plus.HabboHotel.GameClients;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Navigator
6 | {
7 | class UpdateNavigatorSettingsEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | int roomId = packet.PopInt();
12 | if (roomId == 0)
13 | return;
14 |
15 | if (!RoomFactory.TryGetData(roomId, out RoomData _))
16 | return;
17 |
18 | session.GetHabbo().HomeRoom = roomId;
19 | session.SendPacket(new NavigatorSettingsComposer(roomId));
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Rooms/Settings/GetRoomSettingsEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Rooms;
2 | using Plus.Communication.Packets.Outgoing.Rooms.Settings;
3 | using Plus.HabboHotel.GameClients;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Rooms.Settings
6 | {
7 | class GetRoomSettingsEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | int roomId = packet.PopInt();
12 |
13 | if (!PlusEnvironment.GetGame().GetRoomManager().TryLoadRoom(roomId, out Room room))
14 | return;
15 |
16 | if (!room.CheckRights(session, true))
17 | return;
18 |
19 | session.SendPacket(new RoomSettingsDataComposer(room));
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Groups/GetGroupCreationWindowEvent.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using System.Collections.Generic;
3 |
4 | using Plus.HabboHotel.Rooms;
5 | using Plus.Communication.Packets.Outgoing.Groups;
6 | using Plus.HabboHotel.GameClients;
7 |
8 | namespace Plus.Communication.Packets.Incoming.Groups
9 | {
10 | class GetGroupCreationWindowEvent : IPacketEvent
11 | {
12 | public void Parse(GameClient session, ClientPacket packet)
13 | {
14 | if (session == null)
15 | return;
16 |
17 | List rooms = RoomFactory.GetRoomsDataByOwnerSortByName(session.GetHabbo().Id).Where(x => x.Group == null).ToList();
18 |
19 | session.SendPacket(new GroupCreationWindowComposer(rooms));
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/HabboHotel/Rewards/RewardTypeUtility.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Rewards
2 | {
3 | public static class RewardTypeUtility
4 | {
5 | public static RewardType GetType(string type)
6 | {
7 | switch (type.ToLower())
8 | {
9 | case "badge":
10 | return RewardType.Badge;
11 |
12 | case "credits":
13 | return RewardType.Credits;
14 |
15 | case "duckets":
16 | return RewardType.Duckets;
17 |
18 | case "diamonds":
19 | return RewardType.Diamonds;
20 |
21 | default:
22 | case "none":
23 | return RewardType.None;
24 | }
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Catalog/GetCatalogRoomPromotionComposer.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | using Plus.HabboHotel.Rooms;
4 |
5 | namespace Plus.Communication.Packets.Outgoing.Catalog
6 | {
7 | class GetCatalogRoomPromotionComposer : ServerPacket
8 | {
9 | public GetCatalogRoomPromotionComposer(List UsersRooms)
10 | : base(ServerPacketHeader.PromotableRoomsMessageComposer)
11 | {
12 | WriteBoolean(true);//wat
13 | WriteInteger(UsersRooms.Count);//Count of rooms?
14 | foreach (RoomData Room in UsersRooms)
15 | {
16 | WriteInteger(Room.Id);
17 | WriteString(Room.Name);
18 | WriteBoolean(true);
19 | }
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Moderation/CallForHelpPendingCallsComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Moderation;
2 | using Plus.Utilities;
3 |
4 | namespace Plus.Communication.Packets.Outgoing.Moderation
5 | {
6 | class CallForHelpPendingCallsComposer :ServerPacket
7 | {
8 | public CallForHelpPendingCallsComposer(ModerationTicket ticket)
9 | : base(ServerPacketHeader.CallForHelpPendingCallsMessageComposer)
10 | {
11 | WriteInteger(1);// Count for whatever reason?
12 | {
13 | WriteString(ticket.Id.ToString());
14 | WriteString(UnixTimestamp.FromUnixTimestamp(ticket.Timestamp).ToShortTimeString());// "11-02-2017 04:07:05";
15 | WriteString(ticket.Issue);
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Navigator/NavigatorFlatCatsComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Navigator;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 |
5 | namespace Plus.Communication.Packets.Outgoing.Navigator
6 | {
7 | class NavigatorFlatCatsComposer : ServerPacket
8 | {
9 | public NavigatorFlatCatsComposer(ICollection categories)
10 | : base(ServerPacketHeader.NavigatorFlatCatsMessageComposer)
11 | {
12 | WriteInteger(categories.Count);
13 | foreach (SearchResultList category in categories.ToList())
14 | {
15 | WriteInteger(category.Id);
16 | WriteString(category.PublicName);
17 | WriteBoolean(true); // TODO
18 | }
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Navigator/New/NavigatorPreferencesComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Navigator.New
2 | {
3 | class NavigatorPreferencesComposer : ServerPacket
4 | {
5 | public NavigatorPreferencesComposer()
6 | : base(ServerPacketHeader.NavigatorPreferencesMessageComposer)
7 | {
8 | // TODO: To Sleddy: Shouldn't we make this savable at some point?
9 | // TODO: HMU if you want it to be saved to the database
10 | WriteInteger(68);//X
11 | WriteInteger(42);//Y
12 | WriteInteger(425);//Width
13 | WriteInteger(592);//Height
14 | WriteBoolean(false);//Show or hide saved searches.
15 | WriteInteger(0);//No idea?
16 | }
17 | }
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/HabboHotel/Catalog/CatalogPromotion.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Catalog
2 | {
3 | public class CatalogPromotion
4 | {
5 | public int Id { get; private set; }
6 | public string Title { get; private set; }
7 | public string Image { get; private set; }
8 | public int Unknown { get; private set; }
9 | public string PageLink { get; private set; }
10 | public int ParentId { get; private set; }
11 |
12 | public CatalogPromotion(int id, string title, string image, int unknown, string pageLink, int parentId)
13 | {
14 | Id = id;
15 | Title = title;
16 | Image = image;
17 | Unknown = unknown;
18 | PageLink = pageLink;
19 | ParentId = parentId;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/HabboHotel/Subscriptions/SubscriptionData.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Subscriptions
2 | {
3 | public class SubscriptionData
4 | {
5 | public int Id { get; private set; }
6 | public string Name { get; private set; }
7 | public string Badge { get; private set; }
8 | public int Credits { get; private set; }
9 | public int Duckets { get; private set; }
10 | public int Respects { get; private set; }
11 |
12 | public SubscriptionData(int id, string name, string badge, int credits, int duckets, int respects)
13 | {
14 | Id = id;
15 | Name = name;
16 | Badge = badge;
17 | Credits = credits;
18 | Duckets = duckets;
19 | Respects = respects;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/HabboHotel/Users/Messenger/MessengerRequest.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Users.Messenger
2 | {
3 | public class MessengerRequest
4 | {
5 | private int _toUser;
6 | private int _fromUser;
7 | private string _username;
8 |
9 | public MessengerRequest(int ToUser, int FromUser, string Username)
10 | {
11 | _toUser = ToUser;
12 | _fromUser = FromUser;
13 | _username = Username;
14 | }
15 |
16 | public string Username
17 | {
18 | get { return _username; }
19 | }
20 |
21 | public int To
22 | {
23 | get { return _toUser; }
24 | }
25 |
26 | public int From
27 | {
28 | get { return _fromUser; }
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Rooms/Furni/DiceOffEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 | using Plus.HabboHotel.Rooms;
3 | using Plus.HabboHotel.Items;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Rooms.Furni
6 | {
7 | class DiceOffEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | Room room = session.GetHabbo().CurrentRoom;
12 | if (room == null)
13 | return;
14 |
15 | Item item = room.GetRoomItemHandler().GetItem(packet.PopInt());
16 | if (item == null)
17 | return;
18 |
19 | bool hasRights = room.CheckRights(session);
20 |
21 | item.Interactor.OnTrigger(session, item, -1, hasRights);
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/FloorPlan/FloorPlanFloorMapComposer.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using System.Collections.Generic;
3 |
4 | using Plus.HabboHotel.Items;
5 |
6 | namespace Plus.Communication.Packets.Outgoing.Rooms.FloorPlan
7 | {
8 | class FloorPlanFloorMapComposer : ServerPacket
9 | {
10 | public FloorPlanFloorMapComposer(ICollection- Items)
11 | : base(ServerPacketHeader.FloorPlanFloorMapMessageComposer)
12 | {
13 | WriteInteger(Items.Count);//TODO: Figure this out, it pushes the room coords, but it iterates them, x,y|x,y|x,y|and so on.
14 | foreach (Item Item in Items.ToList())
15 | {
16 | WriteInteger(Item.GetX);
17 | WriteInteger(Item.GetY);
18 | }
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Users/HabboUserBadgesComposer.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 |
3 | using Plus.HabboHotel.Users;
4 | using Plus.HabboHotel.Users.Badges;
5 |
6 | namespace Plus.Communication.Packets.Outgoing.Users
7 | {
8 | class HabboUserBadgesComposer : ServerPacket
9 | {
10 | public HabboUserBadgesComposer(Habbo habbo)
11 | : base(ServerPacketHeader.HabboUserBadgesMessageComposer)
12 | {
13 | WriteInteger(habbo.Id);
14 | WriteInteger(habbo.GetBadgeComponent().EquippedCount);
15 |
16 | foreach (Badge badge in habbo.GetBadgeComponent().GetBadges().Where(b => b.Slot > 0).ToList())
17 | {
18 | WriteInteger(badge.Slot);
19 | WriteString(badge.Code);
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Communication/RCON/Commands/Hotel/ReloadCatalogCommand.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Catalog;
2 |
3 | namespace Plus.Communication.Rcon.Commands.Hotel
4 | {
5 | class ReloadCatalogCommand : IRconCommand
6 | {
7 | public string Description
8 | {
9 | get { return "This command is used to reload the catalog."; }
10 | }
11 |
12 | public string Parameters
13 | {
14 | get { return ""; }
15 | }
16 |
17 | public bool TryExecute(string[] parameters)
18 | {
19 | PlusEnvironment.GetGame().GetCatalog().Init(PlusEnvironment.GetGame().GetItemManager());
20 | PlusEnvironment.GetGame().GetClientManager().SendPacket(new CatalogUpdatedComposer());
21 | return true;
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Inventory/Bots/BotInventoryComposer.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using System.Collections.Generic;
3 | using Plus.HabboHotel.Users.Inventory.Bots;
4 |
5 | namespace Plus.Communication.Packets.Outgoing.Inventory.Bots
6 | {
7 | class BotInventoryComposer : ServerPacket
8 | {
9 | public BotInventoryComposer(ICollection Bots)
10 | : base(ServerPacketHeader.BotInventoryMessageComposer)
11 | {
12 | WriteInteger(Bots.Count);
13 | foreach (Bot Bot in Bots.ToList())
14 | {
15 | WriteInteger(Bot.Id);
16 | WriteString(Bot.Name);
17 | WriteString(Bot.Motto);
18 | WriteString(Bot.Gender);
19 | WriteString(Bot.Figure);
20 | }
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Rooms/Settings/GetRoomRightsEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Rooms;
2 | using Plus.Communication.Packets.Outgoing.Rooms.Settings;
3 | using Plus.HabboHotel.GameClients;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Rooms.Settings
6 | {
7 | class GetRoomRightsEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | if (!session.GetHabbo().InRoom)
12 | return;
13 |
14 | Room instance = session.GetHabbo().CurrentRoom;
15 | if (instance == null)
16 | return;
17 |
18 | if (!instance.CheckRights(session))
19 | return;
20 |
21 |
22 | session.SendPacket(new RoomRightsListComposer(instance));
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Moderation/ModerationMsgEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 |
3 | namespace Plus.Communication.Packets.Incoming.Moderation
4 | {
5 | class ModerationMsgEvent : IPacketEvent
6 | {
7 | public void Parse(GameClient session, ClientPacket packet)
8 | {
9 | if (session == null || session.GetHabbo() == null || !session.GetHabbo().GetPermissions().HasRight("mod_alert"))
10 | return;
11 |
12 | int userId = packet.PopInt();
13 | string message = packet.PopString();
14 |
15 | GameClient client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserId(userId);
16 | if (client == null)
17 | return;
18 |
19 | client.SendNotification(message);
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Polls/Questions/QuestionParserComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Rooms.Polls.Questions
2 | {
3 | class QuestionParserComposer : ServerPacket
4 | {
5 | public QuestionParserComposer()
6 | : base(ServerPacketHeader.QuestionParserMessageComposer)
7 | {
8 | WriteString("MATCHING_POLL");
9 | WriteInteger(2686);//??
10 | WriteInteger(10016);//???
11 | WriteInteger(60);//Duration
12 | WriteInteger(10016);
13 | WriteInteger(9);
14 | WriteInteger(6);
15 | WriteString("MAFIA WARS: WEAPONS VOTE");
16 | WriteInteger(0);
17 | WriteInteger(6);
18 | WriteInteger(0);
19 | WriteInteger(0);
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Catalog/GetPromotableRoomsEvent.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using System.Collections.Generic;
3 |
4 | using Plus.HabboHotel.Rooms;
5 | using Plus.HabboHotel.GameClients;
6 | using Plus.Communication.Packets.Outgoing.Catalog;
7 | using Plus.Utilities;
8 |
9 | namespace Plus.Communication.Packets.Incoming.Catalog
10 | {
11 | class GetPromotableRoomsEvent : IPacketEvent
12 | {
13 | public void Parse(GameClient session, ClientPacket packet)
14 | {
15 | List rooms = RoomFactory.GetRoomsDataByOwnerSortByName(session.GetHabbo().Id);
16 |
17 | rooms = rooms.Where(x => x.Promotion == null || x.Promotion.TimestampExpires < UnixTimestamp.GetNow()).ToList();
18 |
19 | session.SendPacket(new PromotableRoomsComposer(rooms));
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/HabboHotel/Cache/Type/UserCache.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Plus.HabboHotel.Cache.Type
4 | {
5 | public class UserCache
6 | {
7 | public int Id { get; set; }
8 | public string Username { get; set; }
9 | public string Motto { get; set; }
10 | public string Look { get; set; }
11 | public DateTime AddedTime { get; set; }
12 | public UserCache(int id, string username, string motto, string look)
13 | {
14 | Id = id;
15 | Username = username;
16 | Motto = motto;
17 | Look = look;
18 | AddedTime = DateTime.Now;
19 | }
20 | public bool IsExpired()
21 | {
22 | TimeSpan cacheTime = DateTime.Now - AddedTime;
23 | return cacheTime.TotalMinutes >= 30;
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Rooms/Settings/GetRoomBannedUsersEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Rooms;
2 | using Plus.Communication.Packets.Outgoing.Rooms.Settings;
3 | using Plus.HabboHotel.GameClients;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Rooms.Settings
6 | {
7 | class GetRoomBannedUsersEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | if (!session.GetHabbo().InRoom)
12 | return;
13 |
14 | Room instance = session.GetHabbo().CurrentRoom;
15 | if (instance == null || !instance.CheckRights(session, true))
16 | return;
17 |
18 | if (instance.GetBans().BannedUsers().Count > 0)
19 | session.SendPacket(new GetRoomBannedUsersComposer(instance));
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Groups/GetBadgeEditorPartsEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.Communication.Packets.Outgoing.Groups;
2 | using Plus.HabboHotel.GameClients;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Groups
5 | {
6 | class GetBadgeEditorPartsEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | session.SendPacket(new BadgeEditorPartsComposer(
11 | PlusEnvironment.GetGame().GetGroupManager().BadgeBases,
12 | PlusEnvironment.GetGame().GetGroupManager().BadgeSymbols,
13 | PlusEnvironment.GetGame().GetGroupManager().BadgeBaseColours,
14 | PlusEnvironment.GetGame().GetGroupManager().BadgeSymbolColours,
15 | PlusEnvironment.GetGame().GetGroupManager().BadgeBackColours));
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Rooms/Engine/ItemAddComposer.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Items;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Rooms.Engine
4 | {
5 | class ItemAddComposer : ServerPacket
6 | {
7 | public ItemAddComposer(Item Item)
8 | : base(ServerPacketHeader.ItemAddMessageComposer)
9 | {
10 | WriteString(Item.Id.ToString());
11 | WriteInteger(Item.GetBaseItem().SpriteId);
12 | WriteString(Item.wallCoord != null ? Item.wallCoord : string.Empty);
13 |
14 | ItemBehaviourUtility.GenerateWallExtradata(Item, this);
15 |
16 | WriteInteger(-1);
17 | WriteInteger((Item.GetBaseItem().Modes > 1) ? 1 : 0); // Type New R63 ('use bottom')
18 | WriteInteger(Item.UserID);
19 | WriteString(Item.Username);
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Sound/SoundSettingsComposer.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace Plus.Communication.Packets.Outgoing.Sound
4 | {
5 | class SoundSettingsComposer : ServerPacket
6 | {
7 | public SoundSettingsComposer(IEnumerable volumes, bool chatPreference, bool invitesStatus, bool focusPreference, int friendBarState)
8 | : base(ServerPacketHeader.SoundSettingsMessageComposer)
9 | {
10 | foreach (int volume in volumes)
11 | {
12 | WriteInteger(volume);
13 | }
14 |
15 | WriteBoolean(chatPreference);
16 | WriteBoolean(invitesStatus);
17 | WriteBoolean(focusPreference);
18 | WriteInteger(friendBarState);
19 | WriteInteger(0);
20 | WriteInteger(0);
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/HabboHotel/Moderation/ModerationBan.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Moderation
2 | {
3 | public class ModerationBan
4 | {
5 | public string Value { get; set; }
6 | public double Expire { get; set; }
7 | public string Reason { get; set; }
8 | public ModerationBanType Type { get; set; }
9 |
10 | public ModerationBan(ModerationBanType type, string value, string reason, double expire)
11 | {
12 | Type = type;
13 | Value = value;
14 | Reason = reason;
15 | Expire = expire;
16 | }
17 |
18 | public bool Expired
19 | {
20 | get
21 | {
22 | if (PlusEnvironment.GetUnixTimestamp() >= Expire)
23 | return true;
24 | return false;
25 | }
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/Help/SanctionStatusComposer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Outgoing.Help
2 | {
3 | class SanctionStatusComposer : ServerPacket
4 | {
5 | public SanctionStatusComposer()
6 | : base(ServerPacketHeader.SanctionStatusMessageComposer)
7 | {
8 | WriteBoolean(false);
9 | WriteBoolean(false);
10 | WriteString("aaaaaaaaaaaaa");
11 | WriteInteger(1);//Hours
12 | WriteInteger(10);
13 | WriteString("ccccc");
14 | WriteString("bbb");
15 | WriteInteger(0);
16 | WriteString("abb");
17 | WriteInteger(0);
18 | WriteInteger(0);
19 | WriteBoolean(true);//if true and second boolean is false it does something. - if false, we got banned, so true is mute
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Catalog/GetSellablePetBreedsEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 | using Plus.HabboHotel.Items;
3 | using Plus.Communication.Packets.Outgoing.Catalog;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Catalog
6 | {
7 | public class GetSellablePetBreedsEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | string type = packet.PopString();
12 |
13 | ItemData item = PlusEnvironment.GetGame().GetItemManager().GetItemByName(type);
14 | if (item == null)
15 | return;
16 |
17 | int petId = item.BehaviourData;
18 |
19 | session.SendPacket(new SellablePetBreedsComposer(type, petId, PlusEnvironment.GetGame().GetCatalog().GetPetRaceManager().GetRacesForRaceId(petId)));
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Users/GetRelationshipsEvent.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 |
4 | using Plus.HabboHotel.Users;
5 | using Plus.Communication.Packets.Outgoing.Users;
6 | using Plus.HabboHotel.GameClients;
7 |
8 | namespace Plus.Communication.Packets.Incoming.Users
9 | {
10 | class GetRelationshipsEvent : IPacketEvent
11 | {
12 | public void Parse(GameClient session, ClientPacket packet)
13 | {
14 | Habbo habbo = PlusEnvironment.GetHabboById(packet.PopInt());
15 | if (habbo == null)
16 | return;
17 |
18 | var rand = new Random();
19 | habbo.Relationships = habbo.Relationships.OrderBy(x => rand.Next()).ToDictionary(item => item.Key, item => item.Value);
20 |
21 | session.SendPacket(new GetRelationshipsComposer(habbo));
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/HabboHotel/Achievements/Achievement.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace Plus.HabboHotel.Achievements
4 | {
5 | public class Achievement
6 | {
7 | public int Id { get; }
8 | public string Category { get; }
9 | public string GroupName { get; }
10 | public int GameId { get; }
11 |
12 | public Dictionary Levels;
13 |
14 | public Achievement(int id, string groupName, string category, int gameId)
15 | {
16 | Id = id;
17 | GroupName = groupName;
18 | Category = category;
19 | GameId = gameId;
20 | Levels = new Dictionary();
21 | }
22 |
23 | public void AddLevel(AchievementLevel level)
24 | {
25 | Levels.Add(level.Level, level);
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/HabboHotel/Rooms/ByteToItemEffectEnum.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Rooms
2 | {
3 | public static class ByteToItemEffectEnum
4 | {
5 | public static ItemEffectType Parse(byte number)
6 | {
7 | switch (number)
8 | {
9 | case 0:
10 | return ItemEffectType.None;
11 | case 1:
12 | return ItemEffectType.Swim;
13 | case 2:
14 | return ItemEffectType.Normalskates;
15 | case 3:
16 | return ItemEffectType.Iceskates;
17 | case 4:
18 | return ItemEffectType.SwimLow;
19 | case 5:
20 | return ItemEffectType.SwimHalloween;
21 | default:
22 | return ItemEffectType.None;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Messenger/DeclineBuddyEvent.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.Communication.Packets.Incoming.Messenger
2 | {
3 | class DeclineBuddyEvent : IPacketEvent
4 | {
5 | public void Parse(HabboHotel.GameClients.GameClient session, ClientPacket packet)
6 | {
7 | if (session == null || session.GetHabbo() == null || session.GetHabbo().GetMessenger() == null)
8 | return;
9 |
10 | bool declineAll = packet.PopBoolean();
11 | packet.PopInt(); //amount
12 |
13 | if (!declineAll)
14 | {
15 | int requestId = packet.PopInt();
16 | session.GetHabbo().GetMessenger().HandleRequest(requestId);
17 | }
18 | else
19 | session.GetHabbo().GetMessenger().HandleAllRequests();
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Navigator/GoToHotelViewEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 | using Plus.HabboHotel.Rooms;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Navigator
5 | {
6 | class GoToHotelViewEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | if (session == null || session.GetHabbo() == null)
11 | return;
12 |
13 |
14 | if (session.GetHabbo().InRoom)
15 | {
16 | if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(session.GetHabbo().CurrentRoomId, out Room oldRoom))
17 | return;
18 |
19 | if (oldRoom.GetRoomUserManager() != null)
20 | oldRoom.GetRoomUserManager().RemoveUserFromRoom(session, true);
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/HabboHotel/Users/Clothing/Parts/ClothingParts.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Users.Clothing.Parts
2 | {
3 | public sealed class ClothingParts
4 | {
5 | private int _id;
6 | private int _partId;
7 | private string _part;
8 |
9 | public ClothingParts(int Id, int PartId, string Part)
10 | {
11 | _id = Id;
12 | _partId = PartId;
13 | _part = Part;
14 | }
15 |
16 | public int Id
17 | {
18 | get { return _id; }
19 | set { _id = value; }
20 | }
21 |
22 | public int PartId
23 | {
24 | get { return _partId; }
25 | set { _partId = value; }
26 | }
27 |
28 | public string Part
29 | {
30 | get { return _part; }
31 | set { _part = value; }
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Groups/ManageGroupEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Groups;
2 | using Plus.Communication.Packets.Outgoing.Groups;
3 | using Plus.HabboHotel.GameClients;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Groups
6 | {
7 | class ManageGroupEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | int groupId = packet.PopInt();
12 |
13 | if (!PlusEnvironment.GetGame().GetGroupManager().TryGetGroup(groupId, out Group group))
14 | return;
15 |
16 | if (group.CreatorId != session.GetHabbo().Id && !session.GetHabbo().GetPermissions().HasRight("group_management_override"))
17 | return;
18 |
19 | session.SendPacket(new ManageGroupComposer(group, group.Badge.Replace("b", "").Split('s')));
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Rooms/Avatar/DropHandItemEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 | using Plus.HabboHotel.Rooms;
3 |
4 | namespace Plus.Communication.Packets.Incoming.Rooms.Avatar
5 | {
6 | class DropHandItemEvent : IPacketEvent
7 | {
8 | public void Parse(GameClient session, ClientPacket packet)
9 | {
10 | if (!session.GetHabbo().InRoom)
11 | return;
12 |
13 | if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(session.GetHabbo().CurrentRoomId, out Room room))
14 | return;
15 |
16 | RoomUser user = room.GetRoomUserManager().GetRoomUserByHabbo(session.GetHabbo().Id);
17 | if (user == null)
18 | return;
19 |
20 | if (user.CarryItemId > 0 && user.CarryTimer > 0)
21 | user.CarryItem(0);
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Rooms/Furni/ThrowDiceEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.GameClients;
2 | using Plus.HabboHotel.Rooms;
3 | using Plus.HabboHotel.Items;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Rooms.Furni
6 | {
7 | class ThrowDiceEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | Room room = session.GetHabbo().CurrentRoom;
12 | if (room == null)
13 | return;
14 |
15 | Item item = room.GetRoomItemHandler().GetItem(packet.PopInt());
16 | if (item == null)
17 | return;
18 |
19 | bool hasRights = room.CheckRights(session, false, true);
20 |
21 | int request = packet.PopInt();
22 |
23 | item.Interactor.OnTrigger(session, item, request, hasRights);
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/HabboHotel/Catalog/Marketplace/MarketOffer.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Catalog.Marketplace
2 | {
3 | public class MarketOffer
4 | {
5 | public int OfferID { get; private set; }
6 | public int ItemType { get; private set; }
7 | public int SpriteId { get; private set; }
8 | public int TotalPrice { get; private set; }
9 | public int LimitedNumber { get; private set; }
10 | public int LimitedStack { get; private set; }
11 |
12 | public MarketOffer(int offerId, int spriteId, int totalPrice, int itemType, int limitedNumber, int limitedStack)
13 | {
14 | OfferID = offerId;
15 | SpriteId = spriteId;
16 | ItemType = itemType;
17 | TotalPrice = totalPrice;
18 | LimitedNumber = limitedNumber;
19 | LimitedStack = limitedStack;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/HabboHotel/Catalog/Vouchers/VoucherUtility.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Catalog.Vouchers
2 | {
3 | public static class VoucherUtility
4 | {
5 | public static VoucherType GetType(string type)
6 | {
7 | switch (type)
8 | {
9 | default:
10 | case "credit":
11 | return VoucherType.Credit;
12 | case "ducket":
13 | return VoucherType.Ducket;
14 | }
15 | }
16 |
17 | public static string FromType(VoucherType type)
18 | {
19 | switch (type)
20 | {
21 | default:
22 | case VoucherType.Credit:
23 | return "credit";
24 | case VoucherType.Ducket:
25 | return "ducket";
26 | }
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Misc/SetFriendBarStateEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Users.Messenger.FriendBar;
2 | using Plus.Communication.Packets.Outgoing.Sound;
3 | using Plus.HabboHotel.GameClients;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Misc
6 | {
7 | class SetFriendBarStateEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | if (session == null || session.GetHabbo() == null)
12 | return;
13 |
14 | session.GetHabbo().FriendbarState = FriendBarStateUtility.GetEnum(packet.PopInt());
15 | session.SendPacket(new SoundSettingsComposer(session.GetHabbo().ClientVolume, session.GetHabbo().ChatPreference, session.GetHabbo().AllowMessengerInvites, session.GetHabbo().FocusPreference, FriendBarStateUtility.GetInt(session.GetHabbo().FriendbarState)));
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Communication/Packets/Outgoing/GameCenter/GameListComposer.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | using Plus.HabboHotel.Games;
4 |
5 | namespace Plus.Communication.Packets.Outgoing.GameCenter
6 | {
7 | class GameListComposer : ServerPacket
8 | {
9 | public GameListComposer(ICollection Games)
10 | : base(ServerPacketHeader.GameListMessageComposer)
11 | {
12 | WriteInteger(PlusEnvironment.GetGame().GetGameDataManager().GetCount());//Game count
13 | foreach (GameData Game in Games)
14 | {
15 | WriteInteger(Game.Id);
16 | WriteString(Game.Name);
17 | WriteString(Game.ColourOne);
18 | WriteString(Game.ColourTwo);
19 | WriteString(Game.ResourcePath);
20 | WriteString(Game.StringThree);
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/HabboHotel/Rooms/Chat/Commands/User/UnloadCommand.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Rooms.Chat.Commands.User
2 | {
3 | class UnloadCommand : IChatCommand
4 | {
5 | public string PermissionRequired
6 | {
7 | get { return "command_unload"; }
8 | }
9 |
10 | public string Parameters
11 | {
12 | get { return "%id%"; }
13 | }
14 |
15 | public string Description
16 | {
17 | get { return "Unload the current room."; }
18 | }
19 |
20 | public void Execute(GameClients.GameClient session, Room room, string[] Params)
21 | {
22 | if (room.CheckRights(session, true) || session.GetHabbo().GetPermissions().HasRight("room_unload_any"))
23 | {
24 | PlusEnvironment.GetGame().GetRoomManager().UnloadRoom(room.Id);
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/HabboHotel/Users/Messenger/FriendBar/FriendBarStateUtility.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Users.Messenger.FriendBar
2 | {
3 | public static class FriendBarStateUtility
4 | {
5 | public static FriendBarState GetEnum(int state)
6 | {
7 | switch (state)
8 | {
9 | default:
10 | case 0:
11 | return FriendBarState.Closed;
12 |
13 | case 1:
14 | return FriendBarState.Open;
15 | }
16 | }
17 |
18 | public static int GetInt(FriendBarState state)
19 | {
20 | switch (state)
21 | {
22 | default:
23 | case FriendBarState.Closed:
24 | return 0;
25 |
26 | case FriendBarState.Open:
27 | return 1;
28 | }
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Rooms/Chat/StartTypingEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Rooms;
2 | using Plus.HabboHotel.GameClients;
3 | using Plus.Communication.Packets.Outgoing.Rooms.Chat;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Rooms.Chat
6 | {
7 | public class StartTypingEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | if (!session.GetHabbo().InRoom)
12 | return;
13 |
14 | Room room = session.GetHabbo().CurrentRoom;
15 | if (room == null)
16 | return;
17 |
18 | RoomUser user = room.GetRoomUserManager().GetRoomUserByHabbo(session.GetHabbo().Username);
19 | if (user == null)
20 | return;
21 |
22 | session.GetHabbo().CurrentRoom.SendPacket(new UserTypingComposer(user.VirtualId, true));
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/HabboHotel/Users/Navigator/SavedSearches/SavedSearch.cs:
--------------------------------------------------------------------------------
1 | namespace Plus.HabboHotel.Users.Navigator.SavedSearches
2 | {
3 | public class SavedSearch
4 | {
5 | private int _id;
6 | private string _filter;
7 | private string _search;
8 |
9 | public SavedSearch(int id, string filter, string search)
10 | {
11 | _id = id;
12 | _filter = filter;
13 | _search = search;
14 | }
15 |
16 | public int Id
17 | {
18 | get { return _id; }
19 | set { _id = value; }
20 | }
21 |
22 | public string Filter
23 | {
24 | get { return _filter; }
25 | set { _filter = value; }
26 | }
27 |
28 | public string Search
29 | {
30 | get { return _search; }
31 | set { _search = value; }
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Navigator/InitializeNewNavigatorEvent.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using Plus.Communication.Packets.Outgoing.Navigator.New;
3 | using Plus.HabboHotel.GameClients;
4 | using Plus.HabboHotel.Navigator;
5 |
6 | namespace Plus.Communication.Packets.Incoming.Navigator
7 | {
8 | class InitializeNewNavigatorEvent : IPacketEvent
9 | {
10 | public void Parse(GameClient session, ClientPacket packet)
11 | {
12 | ICollection topLevelItems = PlusEnvironment.GetGame().GetNavigator().GetTopLevelItems();
13 |
14 | session.SendPacket(new NavigatorMetaDataParserComposer(topLevelItems));
15 | session.SendPacket(new NavigatorLiftedRoomsComposer());
16 | session.SendPacket(new NavigatorCollapsedCategoriesComposer());
17 | session.SendPacket(new NavigatorPreferencesComposer());
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Communication/Packets/Incoming/Rooms/Chat/CancelTypingEvent.cs:
--------------------------------------------------------------------------------
1 | using Plus.HabboHotel.Rooms;
2 | using Plus.HabboHotel.GameClients;
3 | using Plus.Communication.Packets.Outgoing.Rooms.Chat;
4 |
5 | namespace Plus.Communication.Packets.Incoming.Rooms.Chat
6 | {
7 | public class CancelTypingEvent : IPacketEvent
8 | {
9 | public void Parse(GameClient session, ClientPacket packet)
10 | {
11 | if (!session.GetHabbo().InRoom)
12 | return;
13 |
14 | Room room = session.GetHabbo().CurrentRoom;
15 | if (room == null)
16 | return;
17 |
18 | RoomUser user = room.GetRoomUserManager().GetRoomUserByHabbo(session.GetHabbo().Username);
19 | if (user == null)
20 | return;
21 |
22 | session.GetHabbo().CurrentRoom.SendPacket(new UserTypingComposer(user.VirtualId, false));
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------