Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/silvercory/viscosity
An alternate Minecraft proxy<->server communication solution
https://github.com/silvercory/viscosity
bukkit bungeecord library minecraft plugin spigot
Last synced: about 1 month ago
JSON representation
An alternate Minecraft proxy<->server communication solution
- Host: GitHub
- URL: https://github.com/silvercory/viscosity
- Owner: SilverCory
- Created: 2020-11-06T13:30:39.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2021-04-05T16:14:43.000Z (almost 4 years ago)
- Last Synced: 2024-12-19T23:55:25.403Z (about 1 month ago)
- Topics: bukkit, bungeecord, library, minecraft, plugin, spigot
- Language: Java
- Homepage:
- Size: 105 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Viscosity
### WTF is this?
Solving the issue of proxy <---> server communication.
Intended to be a drop in, no configuration replacement for socket communication.#### The current solutions:
##### Sockets
- Requires a new port to be opened
- Can be messy and difficult to maintain/setup.
- (GOOD) Allows for more refined firewalling/access control.##### PluginMessages
- (KEY ISSUE) Requires a player connection to communicate
- (GOOD) it's an already established protocol inside Minecraft itself.##### Some sort of message queue/database
- Requires additional services to carry out what should be a simple task.
- Potential abuse of services to perform tasks that they're not intended for.#### Viscosity's solution:
- Requires little to no setup.
- No additional services/ports required.
- Doesn't need a player connection.How?
Viscosity uses websockets on the already open and configured port of the minecraft server.
This allows for a minimal configuration, and the avoidance of several issues outlined above.
### Setup
(Yet to be implemented)
1. Install all bukkit plugins (Viscosity and ProtocolLib).
2. Install all bungee plugins (Viscosity).
3. Join the proxy and server you wish to configure.
- Multiple proxies can be configured by carrying out these steps on each proxy.
4. Type `/viscosity configure`
- This will automatically exchange the security tokens required for the proxy and server to communicate.
- You'll need the permission (on bukkit) `viscosity.configure`
5. To configure all servers in your network you can type `/viscosity configure all`.
- Ensure you have the `viscosity.configure` permission on all servers.
6. Voila! Any plugins that rely on Viscosity### TODO
- Allow proxy <---> proxy communication
- This will be move involved since these details aren't already used.
- WebSocket binary data.
- Currently all data is turned into JSON.