diff --git a/README.md b/README.md index e4c447c..e590979 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # DesertWell [![Discord](https://img.shields.io/discord/818135932103557162?color=7289da&logo=discord)](https://discord.gg/tVYhJfyDWG) -[![](https://jitpack.io/v/net.william278/DesertWell.svg)](https://jitpack.io/#net.william278/DesertWell) +[![JitPack](https://jitpack.io/v/net.william278/DesertWell.svg)](https://jitpack.io/#net.william278/DesertWell) -DesertWell is a simple library providing various utilities to aid Minecraft plugin development. Requires Java 11+. +**DesertWell** is a simple library providing various utilities to aid Minecraft plugin development on Adventure platforms. Requires Java 11+. ![Example of an about menu](images/about-menu-screenshot.png) @@ -10,33 +10,36 @@ DesertWell is a simple library providing various utilities to aid Minecraft plug ### About menus `AboutMenu.class` allows for the generation of plugin about menus, as seen above. -To create an about menu, use `AboutMenu#create(title)` with the resource name, then use the various builder methods to -build out the menu. +To create an about menu, use `AboutMenu#create(title)` with the resource name, then use the various builder methods to build out the menu.
-Code snippet +Displaying an AboutMenu ```java public class ExamplePlugin extends JavaPlugin { - + // Displays the about menu to the player and logs it to console public void showAboutMenu(Player player) { - final AboutMenu menu = AboutMenu.create("Example") - .withDescription("A powerful, intuitive and flexible teleportation suite") - .withVersion(Version.fromString(plugin.getDescription().getVersion())) - .addAttribution("Author", - AboutMenu.Credit.of("William278").withDescription("Click to visit website").withUrl("https://william278.net")) - .addAttribution("Contributors", - AboutMenu.Credit.of("Contributor 1").withDescription("Code, refactoring") - .addAttribution("Translators", - AboutMenu.Credit.of("Translator 1").withDescription("Spanish (es-es)"), - AboutMenu.Credit.of("Translator 2").withDescription("Italian (it-it)") - .addButtons( - AboutMenu.Link.of("https://william278.net/").withText("Wesbite").withIcon("⛏"), - AboutMenu.Link.of("https://discord.gg/tVYhJfyDWG").withText("Discord").withIcon("⭐").withColor("#6773f5")))); - - // Display the menu to the player - player.spigot().sendMessage(menu.toMineDown().toComponents()); + + final AboutMenu menu = AboutMenu.builder() + .title(Component.text("Example")) + .description(Component.text("An example plugin")) + .version(plugin.getVersion()) + .credits("Author", + AboutMenu.Credit.of("William278").description("Click to visit website").url("https://william278.net")) + .credits("Contributors", + AboutMenu.Credit.of("Contributor 1").description("Code, refactoring")) + .credits("Translators", + AboutMenu.Credit.of("FreeMonoid").description("Italian (it-it)"), + AboutMenu.Credit.of("4drian3d").description("Coding")) + .buttons( + AboutMenu.Link.of("https://william278.net/docs/velocitab").text("Docs").icon("⛏"), + AboutMenu.Link.of("https://discord.gg/tVYhJfyDWG").text("Discord").icon("⭐").color(TextColor.color(0x6773f5))) + .build(); + + + // Display the menu to the player (Depending on your platform, you may need to get the adventure audience for the Player here instead) + player.sendMessage(menu.toComponent()); // Use #toString to get a console-friendly version of the menu getLogger().info(AboutMenu.toString()); @@ -47,25 +50,24 @@ public class ExamplePlugin extends JavaPlugin {
### Version -`Version.class` provides a simple way to compare semantic plugin and Minecraft versions. `VersionChecker.class` provides -a utility for querying Spigot resources for the latest version of a plugin and comparing with the current version in -order to check for updates. +`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.
-Code snippet +Checking for updates ```java public class ExamplePlugin extends JavaPlugin { // Checks for updates and logs to console public void checkForUpdates() { - final int spigotResourceId = 97144; - final UpdateChecker updateChecker = UpdateChecker.create(Version.fromString("1.0.0"), spigotResourceId); - updateChecker.isUpToDate().thenAccept(upToDate -> { - if (upToDate) { - getLogger().info("Running the latest version (" + updateChecker.getCurrentVersion() + ")."); - } else { - getLogger().info("An update is available! Download from: https://www.spigotmc.org/resources/" + spigotResourceId); + final UpdateChecker checker = UpdateChecker.builder() + .currentVersion(getVersion()) + .endpoint(UpdateChecker.Endpoint.MODRINTH) + .resource("velocitab") + .build(); + checker.check().thenAccept(checked => { + if (!checked.isUpToDate()) { + getLogger().info("A new update is available: " + checked.getLatestVersion()); } }); } @@ -74,36 +76,28 @@ public class ExamplePlugin extends JavaPlugin { ```
-## Installation -DesertWell is available on JitPack. You can browse the Javadocs [here](https://javadoc.jitpack.io/net/william278/DesertWell/latest/javadoc/). - -Note that your plugin will also need to shade (or shade a library that includes) [MineDown](https://github.com/Phoenix616/MineDown). +## Usage +DesertWell is available on JitPack and requires Adventure. You can browse the Javadocs [here](https://javadoc.jitpack.io/net/william278/DesertWell/latest/javadoc/).
-Maven - -To include the library with Maven, in your `pom.xml` file, first add the JitPack repository: -```xml - - - jitpack.io - https://jitpack.io - - +Adding the library to your project + +First, add the JitPack repository to your `build.gradle`: +```groovy +repositories { + maven { url 'https://jitpack.io' } +} ``` -Then, add the dependency in your `` section. Remember to replace `Tag` with the current DesertWell version. -```xml - - net.william278 - DesertWell - Tag - compile - +Then add the dependency: +```groovy +dependencies { + implementation 'net.william278:PAPIProxyBridge:1.2' +} ```
-### Gradle & others +### Maven & others JitPack has a [handy guide](https://jitpack.io/#net.william278/DesertWell/#How_to) for how to use the dependency with other build platforms. ## License