Menu
Forums
All threads
Latest threads
New posts
Trending threads
New posts
Search forums
Trending
What's new
New posts
New profile posts
Latest activity
Members
Current visitors
New profile posts
Search profile posts
Upgrades
Log in
Register
What's new
Search
Search
Search titles only
By:
All threads
Latest threads
New posts
Trending threads
New posts
Search forums
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
Server Development
Habbo Retros
Habbo Development
[Emulator + Nitro] Arceus Pack
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="djjinn" data-source="post: 481807" data-attributes="member: 97804"><p style="text-align: center"><span style="font-size: 26px"><strong><em>Arceus Pack</em></strong></span></p> <p style="text-align: center"></p><p><span style="font-size: 18px"><strong>What is it?</strong></span></p><p>The Arceus Pack consists of a clean and expandable code emulator, easy to edit, maintain, and update with enhancements in Nitro for the best possible habbo playing performance.</p><p></p><p>I don't aim to replicate Habbo 1:1; I don't think that's ever been the purpose of retros. Instead, everything I'd like to implement, whether it's in the emulator or client, or any suggestions from players, will be included in this project. The emulator's structure allows you to toggle features, use plugins, and configure how it operates without resorting to tricks like in other emulator codes.</p><p></p><p><span style="font-size: 18px"><strong>Currently implemented</strong></span></p><ul> <li data-xf-list-type="ul">Basic interactions (sitting, lying down, using rollers, teleporting).</li> <li data-xf-list-type="ul">Command manager (still needs implementation for all types of commands, but the structure is quite done).</li> <li data-xf-list-type="ul">Navigator.</li> <li data-xf-list-type="ul">Catalog.</li> <li data-xf-list-type="ul">Inventory & badges.</li> <li data-xf-list-type="ul">Plugin manager.</li> <li data-xf-list-type="ul">Event handler.</li> <li data-xf-list-type="ul">Configuration.</li> <li data-xf-list-type="ul">Localization by default.</li> </ul><p>[SPOILER="Techinal Details"]</p><ul> <li data-xf-list-type="ul">The project has been divided into multiple modules, sharing an API module to expose interfaces between themselves and plugins.</li> <li data-xf-list-type="ul">Built on injection using Guice. Each module injects its own bindings, and every plugin is a child of the emulator's root injector.</li> <li data-xf-list-type="ul">Cycling is managed by a "Task Handler"-like class, for example, rooms have their own handlers. Then, every component (such as entities, furniture, etc.) registers tasks in the handler to be executed within the game cycle interval.</li> <li data-xf-list-type="ul">Event handlers are scoped, meaning that if you want to subscribe to any room event, you must have a room instance and then subscribe to its event handler.</li> <li data-xf-list-type="ul">By default, rooms support custom components and integrate with their logic.</li> <li data-xf-list-type="ul">All wireds is done through its own plugin. I'm implementing wireds in a way that's quite different from the usual method, so if you receive it and don't like it, you can always switch back to the "original Habbo" way of wireds.</li> <li data-xf-list-type="ul">Pathfinder use pooled objects by default</li> <li data-xf-list-type="ul">Fixed extra data serialization, no more tricks to send it to client</li> <li data-xf-list-type="ul">WIP packet assertion & validation</li> <li data-xf-list-type="ul">WIP commands context & structure</li> </ul><p>[/SPOILER]</p><p>[SPOILER="Command Example"]</p><p>[CODE=java]public class AboutCommand implements ICommand {</p><p> private static final LocalizedString name = LocalizedString.of("command.about.name");</p><p> private static final LocalizedString[] alias = new LocalizedString[]{};</p><p> private static final LocalizedString description = LocalizedString.of("command.about.description");</p><p> private static final LocalizedString response = LocalizedString.of("command.about.response", "hello world!");</p><p></p><p> @Override</p><p> public void execute(final ICommandContext ctx) {</p><p> ctx.whisper(response);</p><p> }</p><p></p><p> @Override</p><p> public @NotNull LocalizedString getName() {</p><p> return name;</p><p> }</p><p></p><p> @Override</p><p> public @NotNull LocalizedString[] getAlias() {</p><p> return alias;</p><p> }</p><p></p><p> @Override</p><p> public @NotNull LocalizedString getDescription() {</p><p> return description;</p><p> }</p><p></p><p> @Override</p><p> public Object[] getParameters() {</p><p> return new Object[0];</p><p> }</p><p>}[/CODE]</p><p>[/SPOILER]</p><p>[SPOILER="Spoiler"]</p><p>[ATTACH=full]15856[/ATTACH]</p><p>[/SPOILER]</p><p></p><p><span style="font-size: 18px"><strong>Credits</strong></span></p><ul> <li data-xf-list-type="ul">Djinn (me)</li> <li data-xf-list-type="ul">Nicollas (helped in early stages, not longer as dev)</li> </ul><p></p><p><span style="font-size: 18px"><strong>Follow for more</strong></span>:</p><p><a href="https://discord.gg/DWzZT2sNAt" target="_blank">Discord Server</a></p></blockquote><p></p>
[QUOTE="djjinn, post: 481807, member: 97804"] [CENTER][SIZE=7][B][I]Arceus Pack[/I][/B][/SIZE] [/CENTER] [SIZE=5][B]What is it?[/B][/SIZE] The Arceus Pack consists of a clean and expandable code emulator, easy to edit, maintain, and update with enhancements in Nitro for the best possible habbo playing performance. I don't aim to replicate Habbo 1:1; I don't think that's ever been the purpose of retros. Instead, everything I'd like to implement, whether it's in the emulator or client, or any suggestions from players, will be included in this project. The emulator's structure allows you to toggle features, use plugins, and configure how it operates without resorting to tricks like in other emulator codes. [SIZE=5][B]Currently implemented[/B][/SIZE] [LIST] [*]Basic interactions (sitting, lying down, using rollers, teleporting). [*]Command manager (still needs implementation for all types of commands, but the structure is quite done). [*]Navigator. [*]Catalog. [*]Inventory & badges. [*]Plugin manager. [*]Event handler. [*]Configuration. [*]Localization by default. [/LIST] [SPOILER="Techinal Details"] [LIST] [*]The project has been divided into multiple modules, sharing an API module to expose interfaces between themselves and plugins. [*]Built on injection using Guice. Each module injects its own bindings, and every plugin is a child of the emulator's root injector. [*]Cycling is managed by a "Task Handler"-like class, for example, rooms have their own handlers. Then, every component (such as entities, furniture, etc.) registers tasks in the handler to be executed within the game cycle interval. [*]Event handlers are scoped, meaning that if you want to subscribe to any room event, you must have a room instance and then subscribe to its event handler. [*]By default, rooms support custom components and integrate with their logic. [*]All wireds is done through its own plugin. I'm implementing wireds in a way that's quite different from the usual method, so if you receive it and don't like it, you can always switch back to the "original Habbo" way of wireds. [*]Pathfinder use pooled objects by default [*]Fixed extra data serialization, no more tricks to send it to client [*]WIP packet assertion & validation [*]WIP commands context & structure [/LIST] [/SPOILER] [SPOILER="Command Example"] [CODE=java]public class AboutCommand implements ICommand { private static final LocalizedString name = LocalizedString.of("command.about.name"); private static final LocalizedString[] alias = new LocalizedString[]{}; private static final LocalizedString description = LocalizedString.of("command.about.description"); private static final LocalizedString response = LocalizedString.of("command.about.response", "hello world!"); @Override public void execute(final ICommandContext ctx) { ctx.whisper(response); } @Override public @NotNull LocalizedString getName() { return name; } @Override public @NotNull LocalizedString[] getAlias() { return alias; } @Override public @NotNull LocalizedString getDescription() { return description; } @Override public Object[] getParameters() { return new Object[0]; } }[/CODE] [/SPOILER] [SPOILER="Spoiler"] [ATTACH type="full"]15856[/ATTACH] [/SPOILER] [SIZE=5][B]Credits[/B][/SIZE] [LIST] [*]Djinn (me) [*]Nicollas (helped in early stages, not longer as dev) [/LIST] [SIZE=5][B]Follow for more[/B][/SIZE]: [URL='https://discord.gg/DWzZT2sNAt']Discord Server[/URL] [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
Server Development
Habbo Retros
Habbo Development
[Emulator + Nitro] Arceus Pack
Top