{"id":16378646,"url":"https://github.com/wiiiiam278/cloplib","last_synced_at":"2025-09-06T04:31:00.985Z","repository":{"id":209522827,"uuid":"724286469","full_name":"WiIIiam278/ClopLib","owner":"WiIIiam278","description":"Minecraft server library for handling events that take place in varying positions within game worlds","archived":false,"fork":false,"pushed_at":"2024-12-26T18:03:05.000Z","size":360,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-26T18:43:49.748Z","etag":null,"topics":["claims","minecraft-library"],"latest_commit_sha":null,"homepage":"https://william278.net/project/cloplib","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/WiIIiam278.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/funding.yml","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},"funding":{"github":"WiIIiam278","custom":"https://buymeacoff.ee/william278"}},"created_at":"2023-11-27T19:19:01.000Z","updated_at":"2024-12-26T18:02:17.000Z","dependencies_parsed_at":"2023-11-27T21:26:35.830Z","dependency_job_id":"0bc95d4d-6a3b-4c80-9ec4-66494f7bdb34","html_url":"https://github.com/WiIIiam278/ClopLib","commit_stats":null,"previous_names":["wiiiiam278/cloplib"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WiIIiam278%2FClopLib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WiIIiam278%2FClopLib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WiIIiam278%2FClopLib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WiIIiam278%2FClopLib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WiIIiam278","download_url":"https://codeload.github.com/WiIIiam278/ClopLib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232086346,"owners_count":18470635,"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":["claims","minecraft-library"],"created_at":"2024-10-11T03:46:04.349Z","updated_at":"2025-09-06T04:31:00.945Z","avatar_url":"https://github.com/WiIIiam278.png","language":"Java","funding_links":["https://github.com/sponsors/WiIIiam278","https://buymeacoff.ee/william278"],"categories":[],"sub_categories":[],"readme":"\u003c!--suppress ALL --\u003e\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"images/banner.png\" alt=\"Claim Operations Library\" /\u003e\n    \u003ca href=\"https://github.com/WiIIiam278/ClopLib/actions/workflows/ci.yml\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/WiIIiam278/ClopLib/ci.yml?branch=master\u0026logo=github\"/\u003e\n    \u003c/a\u003e \n    \u003ca href=\"https://repo.william278.net/#/releases/net/william278/cloplib/\"\u003e\n        \u003cimg src=\"https://repo.william278.net/api/badge/latest/releases/net/william278/cloplib/cloplib-common?color=00fb9a\u0026name=Maven\u0026prefix=v\"/\u003e\n    \u003c/a\u003e \n    \u003ca href=\"https://discord.gg/tVYhJfyDWG\"\u003e\n        \u003cimg src=\"https://img.shields.io/discord/818135932103557162.svg?label=\u0026logo=discord\u0026logoColor=fff\u0026color=7389D8\u0026labelColor=6A7EC2\" /\u003e\n    \u003c/a\u003e \n\u003c/p\u003e\n\u003cbr/\u003e\n\n**ClopLib** (_**Cl**aim **Op**erations **Lib**rary_) is a Minecraft server library for handling events that take place in varying positions within game worlds, to allow developers to contextually cancel or modify the outcome of operations such as block placement, block breaking, entity spawning, based on whether the type of operation was performed within a claimed region.\n\nCurrently, ClopLib targets `bukkit` servers running **Spigot/Paper 1.17.1+** (requires Java 17) and **Fabric 1.21.1/1.21.4/1.21.5** (requires Java 21).\n\n## Setup\nClopLib is available [on Maven](https://repo.william278.net/#/releases/net/william278/cloplib/). You can browse the Javadocs [here](https://repo.william278.net/javadoc/releases/net/william278/cloplib/latest).\n\n\u003cdetails\u003e\n\u003csummary\u003eGradle setup instructions\u003c/summary\u003e \n\nFirst, add the Maven repository to your `build.gradle` file:\n```groovy\nrepositories {\n    maven { url \"https://repo.william278.net/releases\" }\n}\n```\n\nThen, add the dependency itself. Replace `VERSION` with the latest release version. (e.g., `1.1`) and `PLATFORM` with the platform you are targeting (e.g., `bukkit`, `fabric`). If you want to target pre-release \"snapshot\" versions (not recommended), you should use the `/snapshots` repository instead.\n\nOn Fabric, you'll need to specify the targeted Minecraft version in the format `VERSION+MC_VERSION` (e.g. `net.william278.cloplib:cloplib-fabric:1.1+1.21.4`)\n\n```groovy\ndependencies {\n    implementation \"net.william278.cloplib:cloplib-PLATFORM:VERSION\"\n}\n```\n\u003c/details\u003e\n\nUsing Maven/something else? There's instructions on how to include ClopLib on [the repo browser](https://repo.william278.net/#/releases/net/william278/cloplib).\n\n## Using\n* ✅ This library IS intended for people developing land protection or plugins \u0026 mods that want an easy way of contextually handling when the world or players do stuff.\n* ❌ This library IS NOT intended for people wanting to develop hooks for HuskClaims or HuskTowns. Please see the API reference for [HuskClaims](https://william278.net/docs/huskclaims/api) and [HuskTowns](https://william278.net/docs/husktowns/api) respectively. You do not need to include this library or add it to your `/plugins` folder; ClopLib is shaded \u0026 relocated in the final jar for each plugin.\n\nDocumentation on using ClopLib in your projects is a WIP! At it's core, though, ClopLib exposes a:\n* The `Handler` interface, which you should implement in your plugin  \n* The `OperationUser` interface, which you should implement via your object representing online players\n* The `OperationPosition/World/Chunk` interfaces, which you should implement via your object(s) representing game world positions \n* The `OperationListener` interface, and platform-specific interfaces such as `BukkitOperationListener`, the latter of which you should extend to register ClopLib's handlers and supply your implementing `OperationUser/Position/World/Chunk` objects. \n\nA good place to start would be looking at how HuskClaims' code implements ClopLib in its [common module](https://github.com/WiIIiam278/HuskClaims/blob/master/common/src/main/java/net/william278/huskclaims/claim/ClaimHandler.java), and then implements the [platform operation handler on bukkit](https://github.com/WiIIiam278/HuskClaims/blob/master/bukkit/src/main/java/net/william278/huskclaims/listener/BukkitListener.java).\n\n## Building\nTo build ClopLib, run `clean build` in the root directory. The output JARs will be in `target/`.\n\n## License\nClopLib is licensed under Apache-2.0. See [LICENSE](https://github.com/WiIIiam278/ClopLib/raw/master/LICENSE) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwiiiiam278%2Fcloplib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwiiiiam278%2Fcloplib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwiiiiam278%2Fcloplib/lists"}