{"id":13292413,"url":"https://github.com/SilverCory/Viscosity","last_synced_at":"2025-03-10T07:33:06.506Z","repository":{"id":85854229,"uuid":"310605290","full_name":"SilverCory/Viscosity","owner":"SilverCory","description":"An alternate Minecraft proxy\u003c-\u003eserver communication solution","archived":false,"fork":false,"pushed_at":"2021-04-05T16:14:43.000Z","size":108,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-08T08:12:53.254Z","etag":null,"topics":["bukkit","bungeecord","library","minecraft","plugin","spigot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SilverCory.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-06T13:30:39.000Z","updated_at":"2024-08-17T01:17:12.000Z","dependencies_parsed_at":"2023-03-12T17:15:49.614Z","dependency_job_id":null,"html_url":"https://github.com/SilverCory/Viscosity","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SilverCory%2FViscosity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SilverCory%2FViscosity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SilverCory%2FViscosity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SilverCory%2FViscosity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SilverCory","download_url":"https://codeload.github.com/SilverCory/Viscosity/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242811982,"owners_count":20189167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bukkit","bungeecord","library","minecraft","plugin","spigot"],"created_at":"2024-07-29T17:08:01.670Z","updated_at":"2025-03-10T07:33:06.499Z","avatar_url":"https://github.com/SilverCory.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Viscosity\n\n### WTF is this?\nSolving the issue of proxy \u003c---\u003e server communication.\nIntended to be a drop in, no configuration replacement for socket communication. \n\n#### The current solutions:\n\n##### Sockets\n- Requires a new port to be opened\n- Can be messy and difficult to maintain/setup.\n- (GOOD) Allows for more refined firewalling/access control.\n\n##### PluginMessages\n- (KEY ISSUE) Requires a player connection to communicate\n- (GOOD) it's an already established protocol inside Minecraft itself.\n\n##### Some sort of message queue/database\n- Requires additional services to carry out what should be a simple task.\n- Potential abuse of services to perform tasks that they're not intended for.\n\n#### Viscosity's solution:\n- Requires little to no setup.\n- No additional services/ports required.\n- Doesn't need a player connection.\n\nHow?\n\nViscosity uses websockets on the already open and configured port of the minecraft server.\n\nThis allows for a minimal configuration, and the avoidance of several issues outlined above.\n\n### Setup\n\u003c!-- TODO --\u003e\u003csmall\u003e(Yet to be implemented)\u003c/small\u003e\n1. Install all bukkit plugins (Viscosity and ProtocolLib).\n2. Install all bungee plugins (Viscosity).\n3. Join the proxy and server you wish to configure.\n    - Multiple proxies can be configured by carrying out these steps on each proxy.\n4. Type `/viscosity configure`\n    - This will automatically exchange the security tokens required for the proxy and server to communicate.\n    - You'll need the permission (on bukkit) `viscosity.configure`\n5. To configure all servers in your network you can type `/viscosity configure all`.\n    - Ensure you have the `viscosity.configure` permission on all servers.\n6. Voila! Any plugins that rely on Viscosity\n\n### TODO\n- Allow proxy \u003c---\u003e proxy communication\n    - This will be move involved since these details aren't already used.\n- WebSocket binary data.\n    - Currently all data is turned into JSON.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSilverCory%2FViscosity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSilverCory%2FViscosity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSilverCory%2FViscosity/lists"}