{"id":23107421,"url":"https://github.com/sineware/minesine-server","last_synced_at":"2025-04-03T22:43:20.291Z","repository":{"id":156841806,"uuid":"461935225","full_name":"Sineware/minesine-server","owner":"Sineware","description":"Sineware Labs - Minesine Metaserver. A Minecraft server proxy for public/online-mode servers.","archived":false,"fork":false,"pushed_at":"2023-06-25T21:18:20.000Z","size":806,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-09T10:31:28.401Z","etag":null,"topics":["minecraft","proxy"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sineware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-02-21T16:07:24.000Z","updated_at":"2025-01-13T12:05:09.000Z","dependencies_parsed_at":"2023-06-29T14:00:44.274Z","dependency_job_id":null,"html_url":"https://github.com/Sineware/minesine-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sineware%2Fminesine-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sineware%2Fminesine-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sineware%2Fminesine-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sineware%2Fminesine-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sineware","download_url":"https://codeload.github.com/Sineware/minesine-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247092374,"owners_count":20882217,"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":["minecraft","proxy"],"created_at":"2024-12-17T01:13:59.195Z","updated_at":"2025-04-03T22:43:20.283Z","avatar_url":"https://github.com/Sineware.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sineware Labs *Minesine Metaserver*\n![Minesine Logo](docs/logo.png)\nMinesine is a \"metaserver\". It is designed to let you connect to any public Minecraft through it.\n\n## **The public Minesine instance is available at: `mc.sineware.ca`** (1.18.2 and 1.19, 1.19.x unsupported)\n![Minesine in the Minecraft Server list](docs/mc-list.png)\n\nThis allows for useful features, for example, quickly hopping between servers, being able to create a party of players and have the \nparty move between otherwise separate servers, DM messaging between players on different servers, etc. Minesine works by\nparsing and proxing game packets between the user and target server, by utilizing a virtual client connection. Minesine intercepts \ncertain packets on the fly to implement its features.\n\nFuture goals include features such as server fast-switching (spawning multiple virtual clients). Minesine allows users to have modded/tweaked experiences \nwithout requiring any custom software. **Current tweaks include unlocking render distance limits, faking the client OP level (ex. allows F3+N/F3+F4 gammeode switching if the player has gamemode command permissions), and simple sign content cloning.**\n\n\n\u003e Minesine is a Sineware Labs experiment designed to showcase Sineware Cloud Services technologies, such as network routing.\n\n## Player Usage\n![List of commands](docs/mc-cmds.png)\n\n## For Server Administrators\nMinesine is effectively a custom Minecraft client, and as such, players connected through Minesine may not behave like Vanilla/Notchian clients (especially when used tweaked experiences). In addtion:\n\n- Chat messages starting with the command \"/sw\" are caught and handled by Minesine, and are not passed through to the target server.\n- Users connected through Minesine will appear to be connected from the same few IP addresses. This is by design, and you should **not** use IP Bans. They are a weak security measure to begin with, and fail to address other real-world situations such as CGNAT.\n- Users connected through Minesine may be flagged by anti-VPN plugins (due to the same reason as above). We encourage you to whitelist \"mc.sineware.ca\" in your respective plugins.\n\n### BungeeCord Plugin Messaging Channel\nMinesine implements a subset of the [BungeeCord Plugin Messaging Channel specification](https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/) (plugin channel bungeecord:main). This allows you to send \nmessages to the Minesine Server through a player connection, and perform actions such as moving players between public servers, \nobtaining the real IP of a player, etc.\n\nSupported Subchannel Commands:\n- Connect (where server name is a hostname)\n\n## Development\nTerminology:\n\n- `client/user`: refers to the users real client and connection to the metaserver.\n- `client state`: JS Map of user UUIDs containing state information related to Minesine.\n- `server/metaserver`: The instance of Sineware Minesine.\n- `virtual client`: the instance of a node-minecraft-protocol client that connects to the target server (packets are then proxied between the client and virtual client)\n- `target server`: the minecraft server that a virtual client connects to (ex. Hypixel)\n\nMsa (Microsoft authentication) tokens are cached by node-minecraft-protocol in ~/.minecraft/nmp-cache/. (Passwords are never stored).\n\nCreate a .env file for the PostgreSQL details (see tables.sql for database tables):\n```text\nPGUSER=\nPGHOST=\nPGPASSWORD=\nPGDATABASE=\n```\n\n`npm start` will run src/index.ts with ts-node.\n\n## Todo\n- Test a TCP load balancer (ex. HAProxy)\n- Implement the accounts manager\n- Implement the window GUI\n- i18n messages\n- Discord integration\n- Handle modded clients\n- /sw profile USER\n- external monitoring/cleanup db service (online users)\n- Bookmarks\n- Velocity Modern Player Forwarding (login_plugin_request)\n- clean up debug logs\n- Multi-version support\n- Clear boss bars/titles/tab menu on server switch\n- dm reply (/sw dm r)\n- party chat toggle\n- cosmetics (particles, chat, etc)\n- command autocomplete\n- A lot more\n\n## License\n```text\nCopyright (C) 2022  Seshan Ravikumar\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as\npublished by the Free Software Foundation, either version 3 of the\nLicense, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with this program.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsineware%2Fminesine-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsineware%2Fminesine-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsineware%2Fminesine-server/lists"}