{"id":16378662,"url":"https://github.com/wiiiiam278/desertwell","last_synced_at":"2026-05-03T18:04:57.033Z","repository":{"id":103262484,"uuid":"528406975","full_name":"WiIIiam278/DesertWell","owner":"WiIIiam278","description":"General utility library for my Minecraft projects","archived":false,"fork":false,"pushed_at":"2024-03-31T20:04:59.000Z","size":385,"stargazers_count":5,"open_issues_count":4,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-18T17:14:31.887Z","etag":null,"topics":["adventure","library","minecraft"],"latest_commit_sha":null,"homepage":"http://william278.net/project/desertwell","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":"2022-08-24T12:09:40.000Z","updated_at":"2025-03-15T23:17:43.000Z","dependencies_parsed_at":"2024-03-31T21:20:50.817Z","dependency_job_id":"daaf62ea-9669-46b7-ad28-65e9141ddd1f","html_url":"https://github.com/WiIIiam278/DesertWell","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WiIIiam278%2FDesertWell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WiIIiam278%2FDesertWell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WiIIiam278%2FDesertWell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WiIIiam278%2FDesertWell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WiIIiam278","download_url":"https://codeload.github.com/WiIIiam278/DesertWell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245052639,"owners_count":20553162,"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":["adventure","library","minecraft"],"created_at":"2024-10-11T03:46:09.750Z","updated_at":"2026-05-03T18:04:56.930Z","avatar_url":"https://github.com/WiIIiam278.png","language":"Java","funding_links":["https://github.com/sponsors/WiIIiam278","https://buymeacoff.ee/william278"],"categories":[],"sub_categories":[],"readme":"# DesertWell\n![CI](https://img.shields.io/github/actions/workflow/status/WiIIiam278/DesertWell/ci.yml?branch=master\u0026logo=github)\n[![Discord](https://img.shields.io/discord/818135932103557162?color=7289da\u0026logo=discord)](https://discord.gg/tVYhJfyDWG)\n[![JitPack](https://jitpack.io/v/net.william278/DesertWell.svg)](https://jitpack.io/#net.william278/DesertWell)\n\n**DesertWell** is a simple library providing various utilities to aid Minecraft plugin development on Adventure platforms. Requires Java 11+.\n\n![Example of an about menu](images/about-menu-screenshot.png)\n\n## Features\n### About menus\n`AboutMenu.class` allows for the generation of plugin about menus, as seen above.\n\nTo create an about menu, use `AboutMenu#create(title)` with the resource name, then use the various builder methods to build out the menu.\n\n\u003cdetails\u003e\n\u003csummary\u003eDisplaying an AboutMenu\u003c/summary\u003e\n\n```java\npublic class ExamplePlugin extends JavaPlugin {\n    \n    // Displays the about menu to the player and logs it to console\n    public void showAboutMenu(Player player) {\n\n        final AboutMenu menu = AboutMenu.builder()\n            .title(Component.text(\"Example\"))\n            .description(Component.text(\"An example plugin\"))\n            .version(plugin.getVersion())\n            .credits(\"Author\",\n                    AboutMenu.Credit.of(\"William278\").description(\"Click to visit website\").url(\"https://william278.net\"))\n            .credits(\"Contributors\",\n                    AboutMenu.Credit.of(\"Contributor 1\").description(\"Code, refactoring\"))\n            .credits(\"Translators\",\n                    AboutMenu.Credit.of(\"FreeMonoid\").description(\"Italian (it-it)\"),\n                    AboutMenu.Credit.of(\"4drian3d\").description(\"Coding\"))\n            .buttons(\n                    AboutMenu.Link.of(\"https://william278.net/docs/velocitab\").text(\"Docs\").icon(\"⛏\"),\n                    AboutMenu.Link.of(\"https://discord.gg/tVYhJfyDWG\").text(\"Discord\").icon(\"⭐\").color(TextColor.color(0x6773f5)))\n            .build();\n\n\n        // Display the menu to the player (Depending on your platform, you may need to get the adventure audience for the Player here instead)\n        player.sendMessage(menu.toComponent());\n        \n        // Use #toString to get a console-friendly version of the menu\n        getLogger().info(AboutMenu.toString());\n    }\n\n}\n```\n\u003c/details\u003e\n\n### Version\n`Version.class` provides a simple way to compare semantic plugin and Minecraft versions. `VersionChecker.class` provides a utility for querying resources on different marketplaces (`SPIGOT`, `MODRINTH`, `POLYMART` and `GITHUB`) for the latest version of a plugin and comparing with the current version in order to check for updates.\n\n\u003cdetails\u003e\n\u003csummary\u003eChecking for updates\u003c/summary\u003e\n\n```java\npublic class ExamplePlugin extends JavaPlugin {\n\n    // Checks for updates and logs to console\n    public void checkForUpdates() {\n        final UpdateChecker checker = UpdateChecker.builder()\n                .currentVersion(getVersion())\n                .endpoint(UpdateChecker.Endpoint.MODRINTH)\n                .resource(\"velocitab\")\n                .build();\n        checker.check().thenAccept(checked =\u003e {\n            if (!checked.isUpToDate()) {\n                getLogger().info(\"A new update is available: \" + checked.getLatestVersion());\n            }\n        });\n    }\n\n}\n```\n\u003c/details\u003e\n\n## Usage\nDesertWell is available on JitPack and requires Adventure. You can browse the Javadocs [here](https://javadoc.jitpack.io/net/william278/DesertWell/latest/javadoc/).\n\n\u003cdetails\u003e\n\u003csummary\u003eAdding the library to your project\u003c/summary\u003e\n\nFirst, add the JitPack repository to your `build.gradle`:\n```groovy\nrepositories {\n    maven { url 'https://repo.william278.net/snapshots/' }\n}\n```\n\nThen add the dependency:\n```groovy\ndependencies {\n    implementation 'net.william278:desertwell:2.0.4-SNAPSHOT'\n}\n```\n\u003c/details\u003e\n\n### Maven \u0026 others\nJitPack has a [handy guide](https://jitpack.io/#net.william278/DesertWell/#How_to) for how to use the dependency with other build platforms.\n\n## License\nDesertWell is licensed under Apache-2.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwiiiiam278%2Fdesertwell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwiiiiam278%2Fdesertwell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwiiiiam278%2Fdesertwell/lists"}