HabboAPIs Future
** note: this is a development update, not a release. code mentioned here is not yet production ready! this is only the api for now, system will hopefully release as a housekeeping first **
Hey Guys!
Sorry for the lack of updates this past year. I lost interest for a while and had transitioned to video games, I've been back for a while working on the latest generation of HabboAPI and I am not playing games this time around. This new version will take HabboAPI to the next level and I hope the community and my fellow developers can appreciate what I’m trying to accomplish.
Whats new?
Well most importantly HabboAPI has been completely rewritten from the group up. The biggest change that I think even frightens some other developers is I have chosen to write the entire system in Typescript. What is Typescript? It’s simply strongly-typed JavaScript but also allows for some experimental JavaScript features that will hopefully come in the future, like decorators. Using Typescript has really sped up my development as it allows you to see *most* errors before compilation, meaning, before the system makes it to a production level. I compile the system to vanilla JavaScript and include Typescript declaration files before distributing to ensure the system runs without a hitch natively on NodeJS.
The NodeJS end of the system is written using a framework called NestJS which is basically Angular, but server side. This allows for a powerful dependency injection system that ties all of our modules, and plugins, together.
HabboAPI is distributed over 4 main packages
**
these packages are scoped with the @ symbol but RZ is using it as a tag
habboapi/common
habboapi/emulator
habboapi/habbo
habboapi/security
What do these packages do?
habboapi/common - The common module handles the configuration, mysql backups, console logging, and database connection. It also includes various helper functions.
habboapi/emulator - The emulator module handles anything directly related to the emulator. It keeps track of the online status by establishing a persistent socket connection to the server. This means we don’t have to keep pinging the emulator to check if its online, as we are just always connected. This does not affect your emulators performance nor does it change your online count.
habboapi/habbo - The Habbo module handles well, everything Habbo. Catalog, chatlogs, groups, items, moderation, rooms, & users. It also contains some miscellaneous services like hotel statistics.
habboapi/security - The security module handles authentication, sessions, permissions, and other security-related features.
Each module is designed independently but do depend on each other to bring it all together.
When you download the back-end portion, the API itself, you will be downloading a simple starter repository from my GitHub, it’s comprised of just a few files that can get you going in no time. No file editing for things like configuration is even required. I have finally built a setup/installer!
Due to how powerful the NestJS framework is I didn’t even need to code a plugin system as it’s already available. I will provide more information later on how this is done, but plugins can be distributed the same way I distribute HabboAPI, over the NPM package manager or of course as simply a download from a platform like GitHub.
Is HabboAPI still open source?
Of course! But due to how I have chosen to distribute HabboAPI, modifying core services is much more difficult unless you know what you’re doing. I will provide full documentation at a later date on how you could setup a proper development environment and start building plugins, or even complete overhauls that could make their way directly into the main HabboAPI source code.
That’s all I have for now! Please leave any positive, or negative feedback below. I would love to hear everyone’s opinions and comments on what I have planned for the future!
Here are some links where you can checkout what I have already published and see what all this even means, and how it comes together:
You must be registered to see links
You must be registered to see links
You must be registered to see links
You must be registered to see links
You must be registered to see links
You must be registered to see links