{"id":16374355,"url":"https://github.com/emilyy-dev/betterjails","last_synced_at":"2026-01-07T23:16:26.238Z","repository":{"id":38324756,"uuid":"246836957","full_name":"emilyy-dev/BetterJails","owner":"emilyy-dev","description":"A simple jails system plugin aimed for most Minecraft versions.","archived":false,"fork":false,"pushed_at":"2024-10-26T18:23:00.000Z","size":2222,"stargazers_count":8,"open_issues_count":3,"forks_count":4,"subscribers_count":1,"default_branch":"v1","last_synced_at":"2024-10-26T20:24:33.626Z","etag":null,"topics":["bukkit-plugin","jail","jailed-player","jails","paper-plugin","spigot-plugin"],"latest_commit_sha":null,"homepage":"https://www.spigotmc.org/resources/betterjails.76001","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/emilyy-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2020-03-12T13:08:17.000Z","updated_at":"2024-10-15T23:17:39.000Z","dependencies_parsed_at":"2024-02-13T05:28:45.535Z","dependency_job_id":"7cf49393-2e62-4a72-b66d-7ae3b9cedffc","html_url":"https://github.com/emilyy-dev/BetterJails","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emilyy-dev%2FBetterJails","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emilyy-dev%2FBetterJails/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emilyy-dev%2FBetterJails/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emilyy-dev%2FBetterJails/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emilyy-dev","download_url":"https://codeload.github.com/emilyy-dev/BetterJails/tar.gz/refs/heads/v1","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221811236,"owners_count":16884282,"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-plugin","jail","jailed-player","jails","paper-plugin","spigot-plugin"],"created_at":"2024-10-11T03:16:59.563Z","updated_at":"2026-01-07T23:16:26.233Z","avatar_url":"https://github.com/emilyy-dev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BetterJails\n\n\n#### Resource in [spigotmc.org](https://www.spigotmc.org/resources/betterjails.76001/) \u0026 [dev.bukkit.org](https://dev.bukkit.org/projects/betterjails)\n\nA simple jails system Bukkit plugin aimed for most Minecraft versions.\n\nIt lets you manage jails, jail offline players, and sentence time will be over when prisoners have\nbeen online for the required time.\n\n\n### Sections\n\n* [Commands and permissions](#Commands-and-permissions)\n* [Configuration](#Configuration)\n* [Sub-commands execution](#Sub-commands-execution)\n* [Developer API](#Developer-API)\n* [Compiling](#Compiling)\n\n\n## Commands and permissions\n\n\n### Commands\n\n* `/setjail \u003cjail name\u003e` / Adds a new jail location where the command is executed.\n* `/deljail \u003cjail name\u003e` / Removes a jail location from the jails list.\n* `/modjail \u003cjail name\u003e releaselocation set` / Sets the location where the command is executed to be the\n  \"release location\" of the jail. This is where players will be put when they are released from that\n  specific jail. This is optional. If not provided, the player will be released to wherever they were\n  before imprisonment.\n* `/modjail \u003cjail name\u003e releaselocation clear` / Clears the \"release location\" of the jail.\n* `/jails` / Prints a list of available jails.\n* `/jail \u003cplayer\u003e \u003cjail\u003e \u003ctime\u003e [reason]` / Sends a player to the provided jail, and won't be teleported back\n  until the time provided has passed. Time format matches inputs in the format of `2d15h7m12s`.\n  The command optionally takes an imprisonment reason.\n* `/jail info \u003cplayer\u003e` / Will print out in the chat some information about the jailed player stored\n  in the player data file.\n* `/unjail \u003cplayer\u003e [teleport]` / Releases an imprisoned player, (optionally) teleporting them back to the\n* location they were when jailed.\n* `/jailtime \u003cplayer\u003e (add|subtract|set) \u003ctime\u003e` / Increase, reduce, or set the sentence time of a prisoner.\n* `/betterjails` / Prints the version of the plugin.\n* `/betterjails reload` / Reloads files into memory.\n* `/betterjails save` / Saves files from memory.\n\n\n### Permissions\n\nAll permissions default to operators only unless otherwise noted.\n\n* `betterjails.jail` / Lets the user execute the `/jail` command.\n* `betterjails.jail.exempt` / The user with this permission cannot be jailed by others (unless\n  offline, but it runs check when joining).\n* `betterjails.jails` / Lets the user execute the `/jails` command.\n* `betterjails.unjail` / Lets the user execute the `/unjail` command.\n* `betterjails.setjail` / Lets the user execute the `/setjail` command.\n* `betterjails.modjail` / Lets the user execute the `/modjail` command.\n* `betterjails.deljail` / Lets the user execute the `/deljail` command.\n* `betterjails.jailtime` / Lets the user execute the `/jailtime` command.\n* `betterjails.receivebroadcast` / Prints in the user's chat when a player has been jailed/unjailed.\n* `betterjails.betterjails` / Lets the user execute the `/betterjails` command. Permission defaults\n  to true for all users.\n* `betterjails.betterjails.reload` / Lets the user execute the `/betterjails reload` command.\n* `betterjails.betterjails.save` / Lets the user execute the `/betterjails save` command.\n\n\n## Configuration\n\n**backupLocation:**\nCoordinates of an unjail backup location, just in case the prisoner's last location is found\ncorrupt.\n\n___\n\n**offlineTime:**\nWhether the prisoner has to be online for sentence time to count.\n\nValue: Boolean (`true` or `false`)\n\n___\n\n**changeGroup:**\nWhether the player's group should be changed **when jailed**.\n\n**Requires [Vault](https://dev.bukkit.org/projects/vault/files)!**\n\nValue: Boolean (`true` or `false`)\n\n___\n\n**prisonerGroup:**\nIf `changeGroup` is set to `true`, the group name to which the player should be moved when jailed.\n\nValue: String (group name)\n\n___\n\n**autoSaveTimeInMinutes:**\nThe time interval in minutes between each time when data files get saved. Set to 0 to disable the\nautosaving feature.\n\nValue: Integer (a whole number, c'mon...)\n\n___\n\n**messages:**\nVarious messages that pop up when doing commands.\n\n___\n\n\n## Sub-commands execution\n\n**This is pretty straight-forward.**\nAll of this is inside `subcommands.yml`.\n\nThe commands under `as-prisoner` will be executed as if the prisoner performed them, and the ones\nunder `as-console` will be executed as if they were sent from the console.\n\nAll the commands under `on-jail` will be executed when the player is sent to jail; and the ones\nunder `on-release` will be executed when the player gets released from jail.\n\n**All the commands will only be performed when the player is online. If they are jailed/released\nwhile offline, they will be executed when they get online.**\n\n\n## Developer API\n\nBetterJails now ships with a developer API! Plugin developers can now interact with B.J., listen to\nspecific events, create jails, release prisoners and much more.\n\nThe [`BetterJails` interface](https://github.com/emilyy-dev/BetterJails/blob/v1/api/src/main/java/com/github/fefo/betterjails/api/BetterJails.java) is the heart of the API, in there you can access all the other interfaces you need to work with B.J.:\n* A [`PrisonerManager`](https://github.com/emilyy-dev/BetterJails/blob/v1/api/src/main/java/com/github/fefo/betterjails/api/model/prisoner/PrisonerManager.java) in which you can retrieve prisoners, jail players and release prisoners\n* A [`JailManager`](https://github.com/emilyy-dev/BetterJails/blob/v1/api/src/main/java/com/github/fefo/betterjails/api/model/jail/JailManager.java) in which you can create and delete jails\n* An [`EventBus`](https://github.com/emilyy-dev/BetterJails/blob/v1/api/src/main/java/com/github/fefo/betterjails/api/event/EventBus.java) where you can subscribe (or \"listen\") to certain events dispatched throughout the functioning of the plugin.\n\nYou can get an instance of the `BetterJails` interface through the services manager as follows:\n\n````java\npublic class MyPlugin extends JavaPlugin {\n\n  private BetterJails betterJails;\n\n  public BetterJails getBetterJails() {\n    return this.betterJails;\n  }\n\n  @Override\n  public void onEnable() {\n    this.betterJails = getServer().getServicesManager().load(BetterJails.class);\n  }\n}\n````\n\nDon't forget to add `\"BetterJails\"` as `depend`/`softdepend` to your `plugin.yml` :)\n\nThe API is published in Maven Central Repository and snapshots are published to OSS Sonatype Snapshots repository.\nImporting the BetterJails API to your project depends on how you build your plugin.\n\n\n### Maven\n\nIf you are using Maven, all you have to do is add the dependency itself that will be pulled from Central\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.github.emilyy-dev\u003c/groupId\u003e\n    \u003cartifactId\u003ebetterjails-api\u003c/artifactId\u003e\n    \u003cversion\u003e1.6\u003c/version\u003e\n    \u003cscope\u003eprovided\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n\n\n### Gradle\n\nSame principle applies if you are using Gradle to build your plugin, but you need to specify the `mavenCentral()` repo:\n\n\n##### Groovy DSL\n\n```groovy\nrepositories {\n    mavenCentral()\n}\n\ndependencies {\n    compileOnly 'io.github.emilyy-dev:betterjails-api:1.6'\n}\n```\n\n\n##### Kotlin DSL\n\n```kotlin\nrepositories {\n    mavenCentral()\n}\n\ndependencies {\n    compileOnly(\"io.github.emilyy-dev:betterjails-api:1.6\")\n}\n```\n\n\n### Manually\n\nIf you want to manually add the API dependency to your classpath, you can obtain the jar by [downloading it from here](https://repo1.maven.org/maven2/io/github/emilyy-dev/betterjails-api/1.6/).\n\n\n## Compiling\n\nYou can compile this plugin by cloning the repository and running `./gradlew build` in the root\ndirectory of the project, you can find the final jar in `./betterjails/build/libs/betterjails-1.6.jar`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femilyy-dev%2Fbetterjails","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femilyy-dev%2Fbetterjails","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femilyy-dev%2Fbetterjails/lists"}