{"id":29874591,"url":"https://github.com/enaium/fabric-mod-authenticate","last_synced_at":"2026-03-14T06:09:31.874Z","repository":{"id":306713089,"uuid":"1026785628","full_name":"Enaium/fabric-mod-Authenticate","owner":"Enaium","description":"A Minecraft Fabric mod that provides player authentication functionality for servers.","archived":false,"fork":false,"pushed_at":"2026-02-16T05:16:53.000Z","size":176,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-16T12:54:50.741Z","etag":null,"topics":["authentication","fabric","jimmer","minecraft"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Enaium.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-26T15:56:56.000Z","updated_at":"2026-02-16T05:16:57.000Z","dependencies_parsed_at":"2025-07-27T07:20:40.673Z","dependency_job_id":"1113019f-ac58-4911-9dc1-f983e9d80c1e","html_url":"https://github.com/Enaium/fabric-mod-Authenticate","commit_stats":null,"previous_names":["enaium/fabric-mod-authenticate"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/Enaium/fabric-mod-Authenticate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Enaium%2Ffabric-mod-Authenticate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Enaium%2Ffabric-mod-Authenticate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Enaium%2Ffabric-mod-Authenticate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Enaium%2Ffabric-mod-Authenticate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Enaium","download_url":"https://codeload.github.com/Enaium/fabric-mod-Authenticate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Enaium%2Ffabric-mod-Authenticate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29925857,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"online","status_checked_at":"2026-02-28T02:00:07.010Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["authentication","fabric","jimmer","minecraft"],"created_at":"2025-07-31T00:42:49.632Z","updated_at":"2026-02-28T05:57:37.768Z","avatar_url":"https://github.com/Enaium.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Authenticate\n\n![minecraft_title](https://s2.loli.net/2025/07/27/sn4ucxUqjRKFSWa.png)\n\n[English](README.md) | [中文](README_zh.md)\n\nA Minecraft Fabric mod that provides player authentication functionality for servers.\n\n[![Version](https://img.shields.io/github/v/tag/Enaium/fabric-mod-Authenticate?label=version\u0026style=flat-square\u0026logo=github)](https://github.com/Enaium/fabric-mod-Authenticate/releases)\n[![CurseForge Downloads](https://img.shields.io/curseforge/dt/1315021?style=flat-square\u0026logo=curseforge)](https://www.curseforge.com/minecraft/mc-mods/authenticate)\n[![Modrinth Downloads](https://img.shields.io/modrinth/dt/bsrcaiiY?style=flat-square\u0026logo=modrinth)](https://modrinth.com/mod/authenticate)\n\n## Description\n\nAuthenticate is a server-side authentication mod for Minecraft that allows players to register accounts with passwords\nand login to access the server. This mod helps protect your server from unauthorized access and provides basic account\nmanagement features.\n\n## Features\n\n- **Player Registration**: Players can register accounts with passwords\n- **Player Login**: Secure login system with password verification\n- **Player Logout**: Players can logout from their accounts\n- **Ban System**: Server administrators can ban players\n- **Database Storage**: Uses H2 database for persistent data storage\n- **Cross-version Support**: Supports multiple Minecraft versions\n\n## Requirements\n\n- **Fabric Language Kotlin**: Required for Kotlin support\n- **Fabric ORM Jimmer**: Required for database operations\n\n### Optional Dependencies\n\n- **Fabric Database H2**: For H2 database support\n\n## Usage\n\n### Commands\n\n- `/register \u003cpassword\u003e \u003cconfirm\u003e` - Register a new account\n- `/login \u003cpassword\u003e` - Login to your account\n- `/logout` - Logout from your account\n- `/auth ban \u003cplayer\u003e \u003cunit\u003e \u003camount\u003e` - Ban a player (admin only)\n\n### Registration Process\n\n1. When a new player joins the server, they will be prompted to register\n2. Use `/register \u003cpassword\u003e \u003cconfirm\u003e` to create an account\n3. Make sure both passwords match\n4. After successful registration, you can login with `/login \u003cpassword\u003e`\n\n### Login Process\n\n1. Use `/login \u003cpassword\u003e` to access your account\n2. You must be logged in to interact with the server\n3. Use `/logout` when you're done playing\n\n## Configuration\n\nThe mod creates configuration files in the `config` folder:\n\n- `Authenticate.json` - Main configuration file\n\n### Configuration File Location\n\nThe configuration file is automatically created at:\n\n```\n./config/Authenticate.json\n```\n\n### Configuration Options\n\nThe `Authenticate.json` file contains the following configuration options:\n\n#### `lang` (String)\n\n- **Default**: `\"en_us\"`\n- **Description**: Sets the language for the mod's messages\n- **Available Options**:\n    - `\"en_us\"` - English\n    - `\"zh_cn\"` - Chinese (Simplified)\n\n#### `jdbcUrl` (String)\n\n- **Default**: `\"jdbc:h2:file:./db/authenticate\"`\n- **Description**: The JDBC connection URL for the database\n- **Notes**:\n    - Uses H2 database by default\n    - Database file is stored in `./db/authenticate.mv.db`\n    - You can change this to use other databases (MySQL, PostgreSQL, etc.)\n\n#### `username` (String, Optional)\n\n- **Default**: `null`\n- **Description**: Database username (if required)\n- **Notes**: Leave as `null` for H2 database (no authentication required)\n\n#### `password` (String, Optional)\n\n- **Default**: `null`\n- **Description**: Database password (if required)\n- **Notes**: Leave as `null` for H2 database (no authentication required)\n\n#### `salt` (String)\n\n- **Default**: Auto-generated Base64 encoded UUID\n- **Description**: Salt used for password hashing\n- **Notes**:\n    - Automatically generated on first run\n    - Do not change this value after players have registered\n    - Changing the salt will invalidate all existing passwords\n\n#### `ddlStatement` (String)\n\n- **Default**: SQL DDL for creating the player table\n- **Description**: SQL statement to create the database table\n- **Notes**:\n    - Only modify if you understand database schema design\n\n#### `authExpire` (Long)\n\n- **Default**: `60000` (60 seconds)\n- **Description**: Time in milliseconds before a player is automatically logged out due to inactivity\n\n### Example Configuration\n\n```json\n{\n  \"lang\": \"en_us\",\n  \"jdbcUrl\": \"jdbc:h2:file:./db/authenticate\",\n  \"username\": null,\n  \"password\": null,\n  \"salt\": \"YXV0aGVudGljYXRlLXNhbHQ=\",\n  \"ddlStatement\": \"create table if not exists player_v0 (id uuid primary key not null, created_time timestamp not null, modified_time timestamp not null, uuid uuid unique not null, password varchar(255) not null, banned timestamp);\"\n}\n```\n\n## Database\n\nThe mod supports multiple database systems for storing player authentication data. The database connection is configured\nthrough the `jdbcUrl` parameter in the configuration file.\n\n### Supported Databases\n\n#### H2 Database (Default)\n\n- **Driver**: Built-in H2 driver\n- **Default URL**: `jdbc:h2:file:./db/authenticate`\n- **File Location**: `./db/authenticate.mv.db`\n- **Pros**:\n    - No additional setup required\n    - File-based, portable\n    - Good for small to medium servers\n- **Cons**:\n    - Limited concurrent connections\n    - Not suitable for large-scale deployments\n\n#### MySQL\n\n- **Driver**: MySQL Connector/J\n- **URL Format**: `jdbc:mysql://hostname:port/database_name`\n- **Example**: `jdbc:mysql://localhost:3306/authenticate`\n- **Pros**:\n    - High performance\n    - Excellent for large servers\n    - Robust and reliable\n- **Cons**:\n    - Requires separate MySQL server setup\n    - Additional dependency needed\n\n#### PostgreSQL\n\n- **Driver**: PostgreSQL JDBC Driver\n- **URL Format**: `jdbc:postgresql://hostname:port/database_name`\n- **Example**: `jdbc:postgresql://localhost:5432/authenticate`\n- **Pros**:\n    - ACID compliant\n    - Excellent data integrity\n    - Advanced features\n- **Cons**:\n    - Requires separate PostgreSQL server\n    - More complex setup\n\n#### Oracle Database\n\n- **Driver**: Oracle JDBC Driver\n- **URL Format**: `jdbc:oracle:thin:@hostname:port:service_name`\n- **Example**: `jdbc:oracle:thin:@localhost:1521:XE`\n- **Pros**:\n    - Enterprise-grade reliability\n    - Advanced features\n    - Excellent for large enterprises\n- **Cons**:\n    - Complex licensing\n    - Resource intensive\n    - Requires Oracle server setup\n\n#### SQLite\n\n- **Driver**: SQLite JDBC Driver\n- **URL Format**: `jdbc:sqlite:file_path`\n- **Example**: `jdbc:sqlite:./db/authenticate.db`\n- **Pros**:\n    - Lightweight and portable\n    - No server setup required\n    - Good for small servers\n- **Cons**:\n    - Limited concurrent access\n    - Not suitable for high-traffic servers\n\n### Database Configuration Examples\n\n#### H2 Database\n\n```json\n{\n  \"jdbcUrl\": \"jdbc:h2:file:./db/authenticate\",\n  \"username\": null,\n  \"password\": null\n}\n```\n\n#### MySQL Database\n\n```json\n{\n  \"jdbcUrl\": \"jdbc:mysql://localhost:3306/authenticate?useSSL=false\u0026serverTimezone=UTC\",\n  \"username\": \"authenticate_user\",\n  \"password\": \"your_password\"\n}\n```\n\n#### PostgreSQL Database\n\n```json\n{\n  \"jdbcUrl\": \"jdbc:postgresql://localhost:5432/authenticate\",\n  \"username\": \"authenticate_user\",\n  \"password\": \"your_password\"\n}\n```\n\n#### Oracle Database\n\n```json\n{\n  \"jdbcUrl\": \"jdbc:oracle:thin:@localhost:1521:XE\",\n  \"username\": \"authenticate_user\",\n  \"password\": \"your_password\"\n}\n```\n\n#### SQLite Database\n\n```json\n{\n  \"jdbcUrl\": \"jdbc:sqlite:./db/authenticate.db\",\n  \"username\": null,\n  \"password\": null\n}\n```\n\n### Database Setup Requirements\n\n#### For MySQL\n\n1. Install MySQL Server\n2. Create database: `CREATE DATABASE authenticate;`\n3. Create user: `CREATE USER 'authenticate_user'@'localhost' IDENTIFIED BY 'password';`\n4. Grant permissions: `GRANT ALL PRIVILEGES ON authenticate.* TO 'authenticate_user'@'localhost';`\n5. Add MySQL Connector/J to your mod dependencies\n\n#### For PostgreSQL\n\n1. Install PostgreSQL Server\n2. Create database: `CREATE DATABASE authenticate;`\n3. Create user: `CREATE USER authenticate_user WITH PASSWORD 'password';`\n4. Grant permissions: `GRANT ALL PRIVILEGES ON DATABASE authenticate TO authenticate_user;`\n5. Add PostgreSQL JDBC Driver to your mod dependencies\n\n#### For Oracle\n\n1. Install Oracle Database\n2. Create tablespace and user\n3. Grant necessary permissions\n4. Add Oracle JDBC Driver to your mod dependencies\n\n#### For SQLite\n\n1. No additional setup required\n2. Add SQLite JDBC Driver to your mod dependencies\n\n### Database Migration\n\nWhen switching between database systems:\n\n1. Backup your existing data\n2. Update the `jdbcUrl`, `username`, and `password` in configuration\n3. Restart the server\n4. The mod will automatically create the required table structure\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Issues\n\nIf you encounter any issues, please report them on\nthe [GitHub Issues page](https://github.com/Enaium/fabric-mod-Authenticate/issues).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenaium%2Ffabric-mod-authenticate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenaium%2Ffabric-mod-authenticate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenaium%2Ffabric-mod-authenticate/lists"}