{"id":15061913,"url":"https://github.com/dylhack/mcauth","last_synced_at":"2025-10-04T21:31:50.106Z","repository":{"id":55409897,"uuid":"279125967","full_name":"dylhack/mcauth","owner":"dylhack","description":"Link Discord and Minecraft accounts","archived":true,"fork":false,"pushed_at":"2022-01-09T03:06:15.000Z","size":449,"stargazers_count":8,"open_issues_count":0,"forks_count":6,"subscribers_count":3,"default_branch":"production","last_synced_at":"2024-09-25T23:26:25.119Z","etag":null,"topics":["auth","authenticator","discord","link","minecraft","minecraft-plugin","pewdiemc","pewdiepie","plugin","profile","spigot","spigot-plugin"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dylhack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-12T18:38:51.000Z","updated_at":"2024-01-05T17:07:37.000Z","dependencies_parsed_at":"2022-08-14T23:40:57.211Z","dependency_job_id":null,"html_url":"https://github.com/dylhack/mcauth","commit_stats":null,"previous_names":["dhghf/mcauth"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dylhack%2Fmcauth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dylhack%2Fmcauth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dylhack%2Fmcauth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dylhack%2Fmcauth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dylhack","download_url":"https://codeload.github.com/dylhack/mcauth/tar.gz/refs/heads/production","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219876787,"owners_count":16554787,"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":["auth","authenticator","discord","link","minecraft","minecraft-plugin","pewdiemc","pewdiepie","plugin","profile","spigot","spigot-plugin"],"created_at":"2024-09-24T23:26:50.347Z","updated_at":"2025-10-04T21:31:44.794Z","avatar_url":"https://github.com/dylhack.png","language":"Go","readme":"![Build](https://github.com/dylhack/mcauth/workflows/Build/badge.svg?branch=production)\n[![Go Report Card](https://goreportcard.com/badge/github.com/dylhack/mcauth)](https://goreportcard.com/report/github.com/dylhack/mcauth)\n\n# MCAuth\nFor linking your Minecraft and Discord account together. MCAuth is for \nMinecraft server owners to allow the right players in their Discord to play on\ntheir server. MCAuth uses authentication codes which allows players to link \ntheir accounts with ease.\n\nMCAuth is under the [GNU General Public License 3](./LICENSE)\n\n## Requirements\n * [PostgreSQL](https://www.postgresql.org/)\n * [Go 1.14 or above](https://golang.org/)\n * [Spigot Minecraft Server](https://www.spigotmc.org/)\n   * **Working Alternatives**\n   * [Paper MC](https://papermc.io/)\n * [The MCAuth Client Minecraft Plugin](https://github.com/dylhack/mcauth-client)\n\n\n## Setup\n\n### 1. Build\nFirst we need to compile the code this can be done like this\n```\n$ cd ./cmd/mcauth\n$ go build\n```\n\n### 2. Configure\nAn executable file will be created in the directory, run it once, and it will \ngenerate a default config file. Fill out the config file. A guide is provided \n[here](./docs/extra/Configuration.md)\n\n### 3. Setup the Plugin\n[Visit the plugin's README](https://github.com/dylhack/mcauth-client/blob/master/README.md)\n\n### 4. Setup Complete\nOnce the plug in has been setup and running it should now be protecting your\nMinecraft server and actively listening to the players joining and verifying\nthem.\n\n## Bot Usage\n__Regular Commands__\n\n * commands: Display these commands.\n * auth `code`: For linking your Minecraft account (this is given by the server on first time joining)\n * help: Display help message from config.yml\n * whoami: Displays the account you're linked with\n * whois `player name or @user`: Displays the account linked with a given player\n * status: MCAuth status\n\n__Admin Commands__\n * unlink `player name or @user`: To unlink another user\n\n## Under The Hood\n\n### Databasing\nWe use Postgres driver [github.com/lib/pq](https://github.com/lib/pq) and ORM\n[GORM](https://gorm.io)\n\n### Verifying\nWhen a new player joins the Minecraft server it first checks to see if they're\nlinked with an account.\n\n#### If they are linked\nIf they are linked then it will get their roles that are stored in memory, if\ntheir roles aren't already synced then the bot will reach out and stay\nup-to-date on their roles so that the bot won't have to request the guild\nmember's roles every time they join in the future.\n\n\n#### If they're not linked\nIf they aren't linked then it gets their already pending authentication code\nor it generates the new one.\n\n### Benchmarks\nLast tested `July 26th, 2020`\n\n__Notes__\n\nA \"sync\" is when the Discord bot fetchs a player's roles on Discord. It will\nkeep up-to-date on the player's roles so it will never have to fetch the roles\nagain in the future.\n * This is only using the same 50 player UUID's\n * The first post is the initial sync of those 50 players\n * The second post is the same 50 players after the initial sync\n * 50 concurrent transactions, 60 seconds\n * This is using GORM + Postgres\n\n***Before** Initial Role Sync*\n```\n** SIEGE 4.0.4\nTransactions:                277572 hits\nAvailability:                100.00 %\nElapsed time:                59.11 secs\nData transferred:            4.55 MB\nResponse time:               0.01 secs\nTransaction rate:            4695.85 trans/sec\nThroughput:                  0.08 MB/sec\nConcurrency:                 49.72\nSuccessful transactions:     277572\nFailed transactions:         0\nLongest transaction:         27.25\nShortest transaction:        0.00\n```\n\n***After** Initial Role Sync*\n```\n** SIEGE 4.0.4\nTransactions:                391772 hits\nAvailability:                100.00 %\nElapsed time:                59.76 secs\nData transferred:            6.43 MB\nResponse time:               0.01 secs\nTransaction rate:            6555.76 trans/sec\nThroughput:                  0.11 MB/sec\nConcurrency:                 49.52\nSuccessful transactions:     391772\nFailed transactions:         0\nLongest transaction:         0.21\nShortest transaction:        0.00\n```\n\n### Versioning\n`x.y.z`\n - `x` A major change, the plugin needs to update\n - `y` A minor change, an important server-only change was made\n - `z` A patch, an insignificant change\n\n### Further Developer Information\nSee [CONTRIBUTING.md](./CONTRIBUTING.md)\n\n## Bragging Rights\n * http://pewdiemc.com/\n * [Members Only Post](https://www.youtube.com/post/UgzspFhgKPuA9jw9LZZ4AaABCQ)\n\nGlad to be serving [PewDiePie](https://youtube.com/pewdiepie). Floor Gang AOH!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdylhack%2Fmcauth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdylhack%2Fmcauth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdylhack%2Fmcauth/lists"}