{"id":14969505,"url":"https://github.com/a248/libertybans","last_synced_at":"2025-03-31T10:06:41.862Z","repository":{"id":37588239,"uuid":"222151998","full_name":"A248/LibertyBans","owner":"A248","description":"The be-all, end-all of discipline.","archived":false,"fork":false,"pushed_at":"2025-03-30T00:10:54.000Z","size":6415,"stargazers_count":175,"open_issues_count":43,"forks_count":43,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-30T01:23:08.378Z","etag":null,"topics":["bukkit","bungeecord","minecraft","minecraft-plugin","papermc","spigot","spigotmc","spongeapi","spongepowered","velocitypowered"],"latest_commit_sha":null,"homepage":"https://ci.hahota.net:8443/job/LibertyBans/","language":"Java","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/A248.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","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-11-16T19:55:55.000Z","updated_at":"2025-03-28T17:05:10.000Z","dependencies_parsed_at":"2023-11-09T11:57:03.432Z","dependency_job_id":"53327a7c-af4c-43ad-a1b2-b5c9297344f6","html_url":"https://github.com/A248/LibertyBans","commit_stats":{"total_commits":445,"total_committers":24,"mean_commits":"18.541666666666668","dds":0.503370786516854,"last_synced_commit":"b81f632f3ed1f4b085a942d2ff47eb98af2ad6e3"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/A248%2FLibertyBans","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/A248%2FLibertyBans/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/A248%2FLibertyBans/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/A248%2FLibertyBans/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/A248","download_url":"https://codeload.github.com/A248/LibertyBans/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246450466,"owners_count":20779408,"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","minecraft","minecraft-plugin","papermc","spigot","spigotmc","spongeapi","spongepowered","velocitypowered"],"created_at":"2024-09-24T13:41:57.470Z","updated_at":"2025-03-31T10:06:41.853Z","avatar_url":"https://github.com/A248.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--suppress HtmlDeprecatedAttribute --\u003e\n\u003cdiv align=\"center\"\u003e\n\u003cimg alt=\"LibertyBans\" src=\"./.github/banner.png\" /\u003e\n\n\u003c!-- Shields --\u003e\n[Homepage]:https://img.shields.io/badge/-Home_Page-blueviolet.svg?logo=StarTrek\u0026style=for-the-badge\u0026logoColor=white\n[Documentation]:https://img.shields.io/badge/-Documentation-blue.svg?logo=Wikipedia\u0026style=for-the-badge\u0026logoColor=black\n[Discord]:https://img.shields.io/badge/-Discord-5865F2.svg?logo=discord\u0026style=for-the-badge\u0026logoColor=white\n[Spigot]:https://img.shields.io/badge/-SpigotMC-ef9023.svg?logo=Accenture\u0026style=for-the-badge\u0026logoColor=grey\n\n[SpigotRating]:https://img.shields.io/spiget/rating/81063?style=flat-square\n[GitHubStar]:https://img.shields.io/github/stars/A248/LibertyBans\n[TestedVersion]: https://img.shields.io/spiget/tested-versions/81063?label=Tested%20on\u0026style=flat-square\n[License]:https://img.shields.io/github/license/A248/LibertyBans\n[CodeSize]:https://img.shields.io/github/languages/code-size/A248/LibertyBans\n\u003c!-- Shields --\u003e\n[![Homepage]](https://libertybans.org)\n\n[![Discord]](https://discord.gg/3C4qeG8XhE)\n[![Documentation]](https://docs.libertybans.org/#/Getting-Started)\n[![Spigot]](https://spigotmc.org/resources/81063)\n\u003cbr\u003e\u003cbr\u003e[![TestedVersion]](https://spigotmc.org/resources/81063) ![SpigotRating]\n\u003cbr\u003e![License] ![GitHubStar] ![CodeSize]\n\u003c/div\u003e\n\n## Table of Contents\n* [Introduction](#introduction)\n  * [Design](#design)\n  * [Features](#features)\n* [Basic Info](#basic-info)\n* [Developer API](#developer-api)\n\n## Introduction\n\nFree software and high quality, LibertyBans is the best-designed punishment plugin. It can efficiently scale to large networks and operate on single servers with minimal resources.\n\n### Design\n\n* Effective and lightweight. No complicated installation and avoids unnecessary features.\n* Option to use local file-based database (HyperSQL), or remote database (MariaDB, MySQL, PostgreSQL).\n* Enhanced database-oriented performance emphasising calculations in SQL. Low memory usage because punishments are stored almost completely in the database. Data is stored in minimal form as raw bytes instead of strings.\n* Best practices for asynchronous calculations are followed. The performance cost of context switching is understood and avoided; the plugin does not blindly fire async tasks.\n* Designed for high availability and concurrency. Minimal locking is employed while keeping state consistent; this is mostly realised through the fact that most plugin state is maintained in the database itself.\n* Well-structured API providing a framework for other plugins to work with the plugin.\n\n### Features\n\n* Add and remove punishments:\n    * /ban, /ipban, /unban, /unbanip - bans or unbans a player or IP address\n    * /mute, /ipmute, /unmute, /unmuteip - mutes or unmutes a player or IP address\n    * /warn, /ipwarn, /unwarn, /unwarnip - warns or unwarns a player or IP address\n    * /kick, /ipkick - kicks a player or IP address\n* Temporary versions of bans, mutes, and warns\n* All player data is stored using UUIDs. This isn't a silly plugin which stores data by player name.\n* List punishments:\n    * /banlist - shows all bans\n    * /mutelist - shows all mutes\n    * /history \u003cplayer\u003e - shows all punishments for a player\n    * /warns \u003cplayer\u003e - shows all warns for a player\n    * /blame \u003cplayer\u003e - shows all the punishments a staff member has enacted\n* Multiple means to block alt accounts:\n  * Automatic enforcement to block alt accounts. *By default, when using IP-bans, alts are automatically banned from joining if the main account is banned.* This behavior is configurable, and you can even increase the strictness of alt-checking.\n  * Manual /alts command - shows suspected alt accounts for a player.\n  * Alts notification on join - tells staff members when a player whose suspected alt is banned or muted.\n* Exemption. For example, trainees cannot ban admins; admins cannot ban owners.\n* Options and behaviour are fully configurable. You can even tweak your connection pool and statement cache settings to fine-tune performance.\n* Full multi-proxy and multi-instance support. You can place LibertyBans on the proxy if you use a single proxy, or on multiple backend servers.\n* All dependencies are automatically downloaded with secure SHA-512 hashes used to validate the downloads. Additionally, builds of LibertyBans are reproducible from the source code, meaning checksums can be personally verified.\n\n## Basic Info\n\n### Requirements\n\n* Java 17\n\nSupported platforms:\n\n* Spigot / Paper / Purpur (+Folia)\n* BungeeCord / Waterfall\n* Sponge\n* Velocity\n\nCompatibility with Geyser/Floodgate usernames. Platform forks supported where reasonable.\n\n### Installation\n\nLibertyBans will work out-of-the-box for most users.\n\n* When using a single proxy, it is recommended, but not required, to install LibertyBans on the proxy itself.\n* LibertyBans can also be installed on the backend servers if you are willing to configure multi-instance synchronization.\n\nFor installing on the backend servers and synchronizing punishments, see the wiki for additional information.\n\n### Developer API\n\nThe developer API is extensive. LibertyBans does not recommend developers mess with the database as a first recourse. [More information here](https://docs.libertybans.org/#/Developer-API)\n\n### License\n\nLibertyBans is licensed under the GNU AGPL v3. See the license file for more information.\n\n[![GNU AGPL Logo](https://www.gnu.org/graphics/agplv3-155x51.png)](https://www.gnu.org/licenses/agpl-3.0.en.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa248%2Flibertybans","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fa248%2Flibertybans","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa248%2Flibertybans/lists"}