mirror of
https://github.com/DinheroDevelopmentGroup/modular-minecraft-proxy.git
synced 2024-11-27 09:35:49 -05:00
Dinhero21
cc9c274325
I actually wrote a package manager but then my shit got fucked and I lost motivation to do it again but now I have motivation again (thanks modern medicine)
39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
# 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](https://en.wikipedia.org/wiki/Inter-process_communication).
|
|
|
|
## 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](https://github.com/).
|