djjinn
New Member
- Dec 13, 2020
- 4
- 12
Arceus Pack
What is it?
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.
Currently implemented
- 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.
- 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
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];
}
}
You must be registered for see images attach
Credits
- Djinn (me)
- Nicollas (helped in early stages, not longer as dev)
Follow for more:
You must be registered for see links
Last edited: