{"id":15016311,"url":"https://github.com/seraphjack/simplelogin","last_synced_at":"2025-04-15T01:07:40.966Z","repository":{"id":41450561,"uuid":"165469223","full_name":"SeraphJACK/SimpleLogin","owner":"SeraphJACK","description":"Auth mod based on forge for Minecraft 1.12+","archived":false,"fork":false,"pushed_at":"2024-07-05T17:12:24.000Z","size":622,"stargazers_count":53,"open_issues_count":9,"forks_count":25,"subscribers_count":3,"default_branch":"mc-1.20.1","last_synced_at":"2025-04-15T01:07:34.155Z","etag":null,"topics":["minecraft-forge-mod"],"latest_commit_sha":null,"homepage":"https://www.curseforge.com/minecraft/mc-mods/simple-login","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SeraphJACK.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":"2019-01-13T05:25:02.000Z","updated_at":"2025-02-19T12:03:57.000Z","dependencies_parsed_at":"2024-01-06T11:22:01.526Z","dependency_job_id":"9167c44c-c6f2-4d81-a052-b3bb18a56b0c","html_url":"https://github.com/SeraphJACK/SimpleLogin","commit_stats":{"total_commits":284,"total_committers":7,"mean_commits":40.57142857142857,"dds":0.04929577464788737,"last_synced_commit":"afdda60e78af23889e0ed067fb84547a62cf4c41"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeraphJACK%2FSimpleLogin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeraphJACK%2FSimpleLogin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeraphJACK%2FSimpleLogin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SeraphJACK%2FSimpleLogin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SeraphJACK","download_url":"https://codeload.github.com/SeraphJACK/SimpleLogin/tar.gz/refs/heads/mc-1.20.1","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248986312,"owners_count":21194025,"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-forge-mod"],"created_at":"2024-09-24T19:48:41.118Z","updated_at":"2025-04-15T01:07:40.947Z","avatar_url":"https://github.com/SeraphJACK.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SimpleLogin\n\nSimpleLogin is a forge mod aimed to protect servers in offline mode.\n\n## Introduction\n\nSimpleLogin is similar to some auth plugins in bukkit like AuthMe: the mod will check player's password when they log\nin.\n\nHowever, there are some differences: instead of inputting the password using a command, passwords are stored in a specific\nfile at the client-side and automatically sent to the server when the player joins, so that players don't have to input the\npassword every time. Besides, the client will generate a random password during the first launch, so in most cases, players\nwon't even need to do anything.\n\n## Installation\n\nPut the `simplelogin-xxx.jar` into the `mods` directory on **both server-side and client-side**.\n\n## Getting started\n\n**You don't need to configure anything if you don't care much.**\n\nPlayers' password does not need to be inputted manually, instead, the client would ask for a password when opening Multiplayer\nfor the first time and save it in `.minecraft/.sl_password`, then send it to the server when joining.\n\nThe server will remember the player's password when he joins for the first time, and when he joins later the server will\ncheck if the password matches the first one.\n\n## FAQ\n\n_Is my password safe?_\n\nSure, the password is hashed using SHA256 at the client-side and hashed using BCrypt before storing at the server-side.\nHowever, the password is stored without any encryption **at the client-side**, so be careful don't\ncopy `.minecraft/.sl_password` file when sharing your client with others.\n\n_What should I do if I want to change the client?_\n\nYou should backup your `minecraft/.sl_password` file and copy it to your new client.\n\n## Storage providers\n\nThere are various ways to store the user data at the server-side and each has its benefits and shortcomings. Simple\nLogin provides an abstract layer to allow different storage implementations. Each implementation is called a \"storage\nprovider\".\n\nEach storage provider has its unique resource location (e.g. `simplelogin:file`) to identify itself.\n\nSimple Login itself provides two storage providers: `file` and `sqlite`.\n\n### File storage provider\n\nResourceLocation: `simplelogin:file`\n\nFile storage provider is the simplest implementation of the storage provider interface, which stores all the user data\nas JSON format at `world/sl_entries.dat`.\n\n### SQLite storage provider\n\nResourceLocation: `simplelogin:sqlite`\n\nSQLite storage provider might be more efficient than the file provider, but it needs an SQLite JDBC connector which has\nroughly 6 MB and I decided not to bundle it in Simple Login. Therefore, if you want to use this provider, you'll need to\ninstall a JDBC connector yourself. The simplest way to do that is to [download it][JDBC-Download] and copy `org/sqlite`\nand `META-INF/services` directories into Simple Login mod jar.\n\n[JDBC-Download]: https://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/3.8.9.1/sqlite-jdbc-3.8.9.1.jar\n\n### Custom storage providers\n\nIf you're familiar with Java and forge mods, it won't be very hard.\n\nYou need to implement the `top.seraphjack.simplelogin.server.storage.StorageProvider` interface, and register your own\nprovider before the server starts by\ncalling `top.seraphjack.simplelogin.server.SLRegistries.STORAGE_PROVIDERS::register`.\n\n## Simple Login plugins\n\nSimple Login plugins, or plugins for short, is an extension to how Simple Login handles when players join, log in and\nleave the server.\n\nJust like storage providers, each plugin has its unique resource location to identify itself.\n\nSome key functionalities of Simple Login are also implemented as built-in plugins, and here's a list of them.\n\n### AutoSave\n\nResourceLocation: `simplelogin:autosave`\n\nThis plugin will trigger the Storage provider to save all data every five minutes.\n\nThis plugin is enabled by default.\n\n### ProtectCoord\n\nResourceLocation: `simplelogin:protect_coord`\n\nThis plugin will teleport players back to the spawn point before they leave the server, and teleport them back when they\nsuccessfully logged in, thus prevents possible position leakage by unauthorized log-in attempts.\n\nThis plugin is disabled by default since its behavior will cause some problems when playing large modpacks.\n\n### ResendRequest\n\nResourceLocation: `simplelogin:resend_request`\n\nThis plugin will ask the client to log in every five seconds if by some mistakes their previous log in packet unable to\narrive the server.\n\nThis plugin is enabled by default.\n\n### RestrictGameType\n\nResourceLocation: `simplelogin:restrict_game_type`\n\nThis plugin will change the player's game type to spectator when they leave or join the server, and change their game\ntype to their default game type (stored in storage providers) when then log in successfully.\n\nThis plugin is enabled by default.\n\n### RestrictMovement\n\nResourceLocation: `simplelogin:restrict_movement`\n\nThis plugin will prevent players from moving around before login.\n\nThis plugin is enabled by default.\n\n### Timeout\n\nResourceLocation: `simplelogin:timeout`\n\nThis plugin will kick players who haven't authenticated after a while (default is 600 seconds, can be changed in Simple Login's\nconfiguration in `\u003cserver\u003e/\u003cworld\u003e/serverconfig/simplelogin-server.toml`).\nThe timeout value used to be 60 seconds but has been increased to 600 seconds after issues with large modpacks causing the synchronization upon login to take longer than a minute.\n\nThis plugin is enabled by default.\n\n## Commands\n\nAll commands have auto-complete support.\n\n- `/simplelogin unregister \u003cPlayerName\u003e`\n\n    - Unregister the player\n\n- `/simplelogin save`\n    - Save all player entries\n\n- `/simplelogin setDefaultGameType \u003cPlayerName\u003e \u003cGameType\u003e`\n\n    - Configure the after-login game type for the player\n\n- `/simplelogin about`\n    - Show the version information\n\n- `/simplelogin plugin available`\n    - Show the list of available plugins\n\n- `/simplelogin plugin loaded`\n    - Show the list of loaded plugins\n\n- `/simplelogin plugin load \u003cResourceLocation\u003e`\n    - Load the specified plugin\n\n- `/simplelogin plugin unload \u003cResourceLocation\u003e`\n    - Unload the specified plugin\n\n- `/simplelogin change_password \u003cNewPassword\u003e`\n    - Change password to NewPassword\n    - This command is implemented on client-side for security reasons\n\n## Configuration\n\n### Server Configuration\n\n- secs: Integer\n    - Time to wait for player to authenticate, if no successful authentication happened after this long the player will be disconnected.\n    - Default 600 seconds.\n    - Used to be 60 seconds but was increased to 10 minutes because of timeout issues with large modpacks.\n\n- plugins: String Array\n    - plugins to load by default.\n\n- commandNames: String Array\n    - Commands that are allowed to be executed by a player before they log in.\n    - Note that you need to specify full command without the heading `/`, such as `give @p minecraft:apple 16`\n\n- storageProvider: String\n    - The storage provider to use.\n\n- defaultGameType: Integer\n    - Default game type for newly registered users.\n    - 0, 1, 2, 3 represents survival, creative, adventure and spectator.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseraphjack%2Fsimplelogin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseraphjack%2Fsimplelogin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseraphjack%2Fsimplelogin/lists"}