SMP but like better
Find a file
2024-01-18 10:28:26 -03:00
.vscode lots of minor changes 2024-01-11 16:00:34 -03:00
script Better Transpilation 2024-01-18 10:28:18 -03:00
src Better Logging 2024-01-18 10:28:26 -03:00
.editorconfig Funny Files 2024-01-05 18:46:44 -03:00
.eslintrc.json MVP / PoC 2024-01-07 05:26:32 -03:00
.gitattributes Initial commit 2024-01-05 17:40:51 -03:00
.gitignore Initial commit 2024-01-05 17:40:51 -03:00
.swcrc Better Transpilation 2024-01-18 10:28:18 -03:00
LICENSE Initial commit 2024-01-05 17:40:51 -03:00
package-lock.json lots of minor changes 2024-01-11 16:00:34 -03:00
package.json lots of minor changes 2024-01-11 16:00:34 -03:00
README.md Funny Files 2024-01-05 18:46:44 -03:00
tsconfig.json Funny Files 2024-01-05 18:46:44 -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.

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.