SMP but like better
Find a file
2024-09-11 20:48:17 -03:00
script refactor 2024-08-30 17:34:35 -03:00
src m3 install 2024-09-11 20:48:17 -03:00
.editorconfig Funny Files 2024-01-05 18:46:44 -03:00
.gitattributes Initial commit 2024-01-05 17:40:51 -03:00
.gitignore Initial commit 2024-01-05 17:40:51 -03:00
.prettierrc refactor 2024-08-30 17:34:35 -03:00
.swcrc refactor 2024-08-30 17:34:35 -03:00
eslint.config.mjs minimal m3 init 2024-09-10 17:40:45 -03:00
package-lock.json minimal m3 init 2024-09-10 17:40:45 -03:00
package.json minimal m3 init 2024-09-10 17:40:45 -03:00
README.md refactor 2024-08-30 17:34:35 -03:00
TODO.md refactor 2024-08-30 17:34:35 -03:00
tsconfig.json refactor 2024-08-30 17:34:35 -03:00

MMP

  • Modular Minecraft Proxy

How does this differ from other proxies (such as SMP)?

Type Safety

Instead of JavaScript, TypeScript is used which allows for type checking of the code and less bugs.

No more cleint, sever or posiotin!

Multi-Threading

For every client that connects a new thread is created.

While also offering minimal performance gains (as there probably isn't (and shouldn't) be ever more then one client) makes it so that program instances client-based instead of being shared between all clients.

This makes a Singleton-like architecture possible without needing to worry about multiple instances of the same plugin and explicit declaration of dependencies.

Data can be sent between instances via IPC.

Modularity

Other proxies came pre-installed with plugins which most time were private meaning that you couldn't share the project with the public.

They also had a monolithic boilerplate-y settings file with many placeholders.

This repo is only the loader which has only the responsibility of proxy-ing the connection, manipulating packets, managing threads and loading modules.

Installation, Development and Distribution

The dynamic nature of the project will make it very easy to install, develop and distribute modules.

To install simply cd into to the modules directory create add the module(s) there (via git clone or similar).

To develop simply create a sub-directory under the modules directory, you can test your module by running the loader.

To distribute simply create a repository in the modules directory and then share it via something like github.