From 1a9f04b1d1491b5a8f6669f28967f8719ee9c8ec Mon Sep 17 00:00:00 2001 From: ez-plugins Date: Mon, 18 May 2026 01:15:14 +0200 Subject: [PATCH 1/3] docs: add Jekyll site, lint/coverage workflows, and Jaloquent-style badge updates - docs/_config.yml: Just the Docs remote theme, EzBoost title/description, GitHub Pages URL, aux_links, search, back-to-top, footer, kramdown config - docs/index.md: new landing page (layout: home) with features overview, quick-start steps, and full documentation table - .markdownlint.yml: markdownlint configuration matching Jaloquent style - .github/workflows/docs.yml: deploy Jekyll site to GitHub Pages on release - .github/workflows/lint.yml: markdownlint validation on docs PR changes - .github/workflows/coverage.yml: JaCoCo build + Codecov upload on push/PR - pom.xml: add jacoco-maven-plugin 0.8.12 (prepare-agent + verify report) - README.md: replace flat-square badges with Jaloquent-style badges; add CI, GitHub Packages, Coverage, and Docs badges; update Documentation section to link to GitHub Pages site - docs/*.md: add Jekyll front matter (title, nav_order, description) and Just the Docs TOC blocks to all 13 documentation pages --- .github/workflows/coverage.yml | 40 ++++++++++++++++++ .github/workflows/docs.yml | 46 +++++++++++++++++++++ .github/workflows/lint.yml | 21 ++++++++++ .markdownlint.yml | 34 +++++++++++++++ README.md | 37 +++++++++-------- docs/_config.yml | 62 ++++++++++++++++++++++++++++ docs/api.md | 16 ++++++++ docs/api/CustomBoostEffect.md | 16 ++++++++ docs/api/EzBoostAPI.md | 16 ++++++++ docs/boosts.md | 15 +++++++ docs/commands.md | 15 +++++++ docs/config.md | 15 +++++++ docs/events.md | 16 ++++++++ docs/events/BoostEndEvent.md | 16 ++++++++ docs/events/BoostStartEvent.md | 16 ++++++++ docs/gui.md | 15 +++++++ docs/index.md | 66 ++++++++++++++++++++++++++++++ docs/integration/PlaceholderAPI.md | 14 +++++++ docs/overrides.md | 15 +++++++ docs/permissions.md | 15 +++++++ pom.xml | 19 +++++++++ 21 files changed, 509 insertions(+), 16 deletions(-) create mode 100644 .github/workflows/coverage.yml create mode 100644 .github/workflows/docs.yml create mode 100644 .github/workflows/lint.yml create mode 100644 .markdownlint.yml create mode 100644 docs/_config.yml create mode 100644 docs/index.md diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 0000000..03abdd8 --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,40 @@ +name: Code Quality + +permissions: + contents: read + +on: + push: + branches: ["main", "master"] + pull_request: + branches: ["main", "master"] + +jobs: + coverage: + name: Coverage + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up JDK 25 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 25 + cache: maven + + - name: Build with coverage + run: mvn --batch-mode clean verify + + - name: Upload JaCoCo coverage report + uses: actions/upload-artifact@v4 + with: + name: jacoco-report + path: target/site/jacoco/ + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v5 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: target/site/jacoco/jacoco.xml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..659c55c --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,46 @@ +name: Documentation + +on: + release: + types: [published] + workflow_dispatch: + +# Required for GitHub Pages deployment via Actions +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment; skip in-progress runs +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build-and-deploy: + name: Build and Deploy + runs-on: ubuntu-latest + + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Configure GitHub Pages + uses: actions/configure-pages@v5 + + - name: Build Jekyll site + uses: actions/jekyll-build-pages@v1 + with: + source: ./docs + destination: ./_site + + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v3 + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..4c9fd3b --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,21 @@ +name: Lint + +on: + pull_request: + paths: + - "docs/**/*.md" + - ".markdownlint.yml" + +jobs: + markdown: + name: Validate Markdown + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Lint documentation Markdown + uses: DavidAnson/markdownlint-cli2-action@v16 + with: + globs: "docs/**/*.md" + config: ".markdownlint.yml" diff --git a/.markdownlint.yml b/.markdownlint.yml new file mode 100644 index 0000000..4cf26b5 --- /dev/null +++ b/.markdownlint.yml @@ -0,0 +1,34 @@ +# markdownlint configuration +# https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md + +default: true + +# MD013 — Line length: documentation lines are allowed to exceed 80 chars +MD013: false + +# MD022 — Blanks around headings: Kramdown attribute syntax ({: .no_toc }) +# must immediately follow a heading with no blank line +MD022: false + +# MD025 — Single H1: pages have both front-matter title: and an # H1 heading; +# disable front-matter title detection to avoid false positives +MD025: + front_matter_title: "" + +# MD033 — Inline HTML: needed for Jekyll/Liquid includes and badge images +MD033: false + +# MD036 — Emphasis as heading: API tables use bold labels that markdownlint +# mistakes for headings +MD036: false + +# MD041 — First line must be H1: front-matter pages don't start with a heading +MD041: false + +# MD024 — No duplicate headings: allow sibling duplicates across sections +MD024: + siblings_only: true + +# MD007 — Unordered list indentation: use 2-space indent under list items +MD007: + indent: 2 diff --git a/README.md b/README.md index 947fb15..d9bb941 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,11 @@ -[![Platform: Spigot | Paper | Bukkit](https://img.shields.io/badge/Platform-Spigot%20%7C%20Paper%20%7C%20Bukkit-blue?style=flat-square)](#) -[![Minecraft 1.7-1.21.*](https://img.shields.io/badge/Minecraft-1.7--1.21.*-brightgreen?style=flat-square)](#) -[![MIT License](https://img.shields.io/github/license/ez-plugins/ezboost?style=flat-square)](#) -[![Latest Release](https://img.shields.io/github/v/release/ez-plugins/ezboost?style=flat-square)](#) +[![CI](https://github.com/ez-plugins/ezboost/actions/workflows/smoke-test.yml/badge.svg)](https://github.com/ez-plugins/ezboost/actions/workflows/smoke-test.yml) +[![GitHub Packages](https://img.shields.io/badge/GitHub_Packages-2.0.0-blue?logo=github)](https://github.com/ez-plugins/ezboost/packages) +[![Coverage](https://img.shields.io/codecov/c/github/ez-plugins/ezboost)](https://codecov.io/github/ez-plugins/ezboost) +[![Docs](https://img.shields.io/badge/Docs-GitHub_Pages-blue?logo=github)](https://ez-plugins.github.io/ezboost) +[![Platform](https://img.shields.io/badge/Platform-Spigot%20%7C%20Paper%20%7C%20Bukkit-blue)](#) +[![Minecraft](https://img.shields.io/badge/Minecraft-1.7--1.21.*-brightgreen)](#) +[![License](https://img.shields.io/github/license/ez-plugins/ezboost)](LICENSE) +[![Release](https://img.shields.io/github/v/release/ez-plugins/ezboost)](https://github.com/ez-plugins/ezboost/releases) # EzBoost @@ -34,18 +38,19 @@ EzBoost is a modern, production-ready Minecraft plugin for Spigot, Paper, and Bu ## Documentation -- [Commands Reference](docs/commands.md) -- [Permissions Reference](docs/permissions.md) -- [Overrides Guide](docs/overrides.md) -- [GUI Guide](docs/gui.md) -- [Configuration Guide](docs/config.md) -- [Boosts Guide](docs/boosts.md) -- [API Overview](docs/api.md) - - [EzBoostAPI Reference](docs/api/EzBoostAPI.md) - - [CustomBoostEffect Reference](docs/api/CustomBoostEffect.md) - - [Events Overview](docs/events.md) - - [BoostStartEvent Reference](docs/events/BoostStartEvent.md) - - [BoostEndEvent Reference](docs/events/BoostEndEvent.md) +Full documentation is available at ****. + +| Page | What it covers | +|------|----------------| +| [Commands](https://ez-plugins.github.io/ezboost/commands) | All `/boost` and `/ezboost` commands | +| [Permissions](https://ez-plugins.github.io/ezboost/permissions) | Permissions reference and defaults | +| [Configuration](https://ez-plugins.github.io/ezboost/config) | `settings.yml`, `limits.yml`, `worlds.yml`, `economy.yml` | +| [Boosts](https://ez-plugins.github.io/ezboost/boosts) | `boosts.yml` schema — effects, durations, costs | +| [GUI](https://ez-plugins.github.io/ezboost/gui) | `gui.yml` — chest-based boost menu | +| [Overrides](https://ez-plugins.github.io/ezboost/overrides) | World, group, and region multiplier overrides | +| [Events](https://ez-plugins.github.io/ezboost/events) | Plugin lifecycle events | +| [API](https://ez-plugins.github.io/ezboost/api) | Developer API reference | +| [PlaceholderAPI](https://ez-plugins.github.io/ezboost/integration/PlaceholderAPI) | Available placeholders | --- diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 0000000..d61ead0 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,62 @@ +remote_theme: just-the-docs/just-the-docs + +title: EzBoost +description: >- + Modern, production-ready Minecraft boost plugin for Spigot, Paper, and Bukkit. + Configurable potion boosts, cooldowns, GUI, economy integration, and WorldGuard support. + +url: "https://ez-plugins.github.io" +baseurl: "/ezboost" + +# ── Appearance ──────────────────────────────────────────────────────────────── +heading_anchors: true + +# ── Header links ────────────────────────────────────────────────────────────── +aux_links: + "GitHub": + - "https://github.com/ez-plugins/ezboost" + "Releases": + - "https://github.com/ez-plugins/ezboost/releases" + +aux_links_new_tab: true + +# ── Navigation ──────────────────────────────────────────────────────────────── +nav_sort: case_insensitive +nav_external_links: + - title: Changelog + url: "https://github.com/ez-plugins/ezboost/releases" + hide_icon: false + +# ── Search ──────────────────────────────────────────────────────────────────── +search_enabled: true +search: + heading_level: 2 + previews: 3 + preview_words_before: 5 + preview_words_after: 10 + tokenizer_separator: /[\s/]+/ + +# ── Footer ──────────────────────────────────────────────────────────────────── +back_to_top: true +back_to_top_text: "Back to top" + +footer_content: >- + Copyright © 2024–2026 EzPlugins. + Distributed under the + MIT License. + +# ── Kramdown ────────────────────────────────────────────────────────────────── +kramdown: + syntax_highlighter_opts: + block: + line_numbers: false + +# ── Plugins ─────────────────────────────────────────────────────────────────── +plugins: + - jekyll-remote-theme + - jekyll-seo-tag + +# ── Build exclusions ────────────────────────────────────────────────────────── +exclude: + - Gemfile + - Gemfile.lock diff --git a/docs/api.md b/docs/api.md index 34d291c..fa508d8 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1,4 +1,20 @@ +--- +title: API +nav_order: 9 +has_children: true +description: "EzBoost developer API — integrating boost management into your own plugins" +--- + # EzBoost API Overview +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- EzBoost exposes a professional, extensible API for plugin developers and advanced users. The API allows you to register custom boost effects, manage player boosts, and integrate deeply with the boost system. diff --git a/docs/api/CustomBoostEffect.md b/docs/api/CustomBoostEffect.md index fe8d1e5..542286f 100644 --- a/docs/api/CustomBoostEffect.md +++ b/docs/api/CustomBoostEffect.md @@ -1,4 +1,20 @@ +--- +title: CustomBoostEffect +parent: API +nav_order: 2 +description: "CustomBoostEffect interface — implementing custom plugin-driven boost effects" +--- + # CustomBoostEffect Interface Reference +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- ## Overview `CustomBoostEffect` is an interface for defining custom boost effects that can be registered with EzBoost. Implement this interface in your plugin to add new effect types that will be executed when a boost is activated or deactivated. diff --git a/docs/api/EzBoostAPI.md b/docs/api/EzBoostAPI.md index e6a924f..d73b9bd 100644 --- a/docs/api/EzBoostAPI.md +++ b/docs/api/EzBoostAPI.md @@ -1,4 +1,20 @@ +--- +title: EzBoostAPI +parent: API +nav_order: 1 +description: "EzBoostAPI class reference — full public method tables" +--- + # EzBoostAPI Class Reference +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- ## Overview `EzBoostAPI` is the main static API class for interacting with the EzBoost plugin. It provides methods for registering custom boost effects, querying and managing player boosts, and integrating with the boost system from other plugins. diff --git a/docs/boosts.md b/docs/boosts.md index 656b46b..665730a 100644 --- a/docs/boosts.md +++ b/docs/boosts.md @@ -1,4 +1,19 @@ +--- +title: Boosts +nav_order: 5 +description: "boosts.yml schema — defining effects, durations, cooldowns, costs, and particles" +--- + # EzBoost – Default Boosts Reference +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- This document describes the default boosts provided in `boosts.yml` for EzBoost. Each boost can be customized or extended in your configuration. diff --git a/docs/commands.md b/docs/commands.md index 1d66682..2c327b4 100644 --- a/docs/commands.md +++ b/docs/commands.md @@ -1,4 +1,19 @@ +--- +title: Commands +nav_order: 2 +description: "All /boost and /ezboost commands with syntax, arguments, and permissions" +--- + # EzBoost Commands +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- This document details all commands provided by EzBoost, including syntax, arguments, permissions, and usage examples. diff --git a/docs/config.md b/docs/config.md index f3aec74..d36f95f 100644 --- a/docs/config.md +++ b/docs/config.md @@ -1,4 +1,19 @@ +--- +title: Configuration +nav_order: 4 +description: "settings.yml, limits.yml, worlds.yml, and economy.yml configuration reference" +--- + # EzBoost – Configuration Options Reference +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- This document provides a complete reference for all configuration files and options available in EzBoost. Use this guide to understand and customize every aspect of the plugin. diff --git a/docs/events.md b/docs/events.md index fdbed8b..e8437b5 100644 --- a/docs/events.md +++ b/docs/events.md @@ -1,4 +1,20 @@ +--- +title: Events +nav_order: 8 +has_children: true +description: "Plugin events emitted by EzBoost — overview and usage guide" +--- + # EzBoost Events Overview +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- EzBoost provides a robust event system to allow other plugins and advanced users to hook into boost lifecycle changes. This enables custom logic, integrations, and advanced control over boost activation and deactivation. diff --git a/docs/events/BoostEndEvent.md b/docs/events/BoostEndEvent.md index 04609af..d2161a6 100644 --- a/docs/events/BoostEndEvent.md +++ b/docs/events/BoostEndEvent.md @@ -1,4 +1,20 @@ +--- +title: BoostEndEvent +parent: Events +nav_order: 2 +description: "Event fired when a boost expires or is cancelled — fields and usage" +--- + # BoostEndEvent Class Reference +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- ## Overview `BoostEndEvent` is fired when a boost is about to end for a player. This event is cancellable, allowing plugins to prevent the boost from ending. It provides full context, including the player and the `BoostDefinition`. diff --git a/docs/events/BoostStartEvent.md b/docs/events/BoostStartEvent.md index 9c225f8..a2f7a3c 100644 --- a/docs/events/BoostStartEvent.md +++ b/docs/events/BoostStartEvent.md @@ -1,4 +1,20 @@ +--- +title: BoostStartEvent +parent: Events +nav_order: 1 +description: "Event fired when a boost is activated — fields, cancellation, and usage" +--- + # BoostStartEvent Class Reference +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- ## Overview `BoostStartEvent` is fired when a boost is about to start for a player. This event is cancellable, allowing plugins to prevent the boost from activating. It provides full context, including the player and the `BoostDefinition`. diff --git a/docs/gui.md b/docs/gui.md index 77ea4c6..ff270d4 100644 --- a/docs/gui.md +++ b/docs/gui.md @@ -1,4 +1,19 @@ +--- +title: GUI +nav_order: 6 +description: "gui.yml schema — configuring the interactive chest-based boost menu" +--- + # EzBoost – GUI Configuration Reference +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- This document explains all options available in `gui.yml` for EzBoost. Use this as a guide to customize the in-game boost selection menu. diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..4a6c808 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,66 @@ +--- +layout: home +title: EzBoost +nav_order: 1 +description: "Modern Minecraft boost plugin for Spigot, Paper, and Bukkit" +permalink: / +--- + +# EzBoost + +[![CI](https://github.com/ez-plugins/ezboost/actions/workflows/smoke-test.yml/badge.svg)](https://github.com/ez-plugins/ezboost/actions/workflows/smoke-test.yml) +[![GitHub Packages](https://img.shields.io/badge/GitHub_Packages-2.0.0-blue?logo=github)](https://github.com/ez-plugins/ezboost/packages) +[![Coverage](https://img.shields.io/codecov/c/github/ez-plugins/ezboost)](https://codecov.io/github/ez-plugins/ezboost) + +**EzBoost** is a modern, production-ready Minecraft plugin for Spigot, Paper, and Bukkit servers (1.7–1.21.*). +It gives server owners full control over configurable, time-limited potion boosts — complete with GUI, +cooldowns, economy integration, WorldGuard region support, and a developer API. + +--- + +## Features + +- **Flexible boost definitions** — configure any potion effect with duration, amplifier, cooldowns, limits, and particle effects via `boosts.yml` +- **Interactive GUI** — fully-customisable chest-based boost menu driven by `gui.yml`; fully disableable +- **Economy integration** — optional Vault economy support with per-boost pricing; gracefully skipped when Vault is absent +- **WorldGuard support** — restrict boost activation to specific WorldGuard regions +- **Per-player and global limits** — cap how many active boosts a player or the server can run simultaneously +- **Overrides** — server-wide event-driven multipliers layered on top of individual boosts +- **PlaceholderAPI** — exposes boost state and duration as placeholders for scoreboards, holograms, and more +- **MiniMessage formatting** — all messages use the Adventure MiniMessage format for rich, hex-colour text +- **Developer API** — clean Java API to start/stop boosts and listen to lifecycle events from other plugins + +--- + +## Quick start + +**1. Download the plugin:** + +Grab the latest `EzBoost-x.y.z.jar` from [Releases](https://github.com/ez-plugins/ezboost/releases) +and drop it into your server's `plugins/` directory. + +**2. Start your server once** to generate default configuration files in `plugins/EzBoost/`. + +**3. Edit `boosts.yml`** to define your server's boost types, then **edit `settings.yml`** to enable economy or WorldGuard if needed. + +**4. Reload with `/ezboost reload`** (requires `ezboost.admin`). + +--- + +## Documentation + +| Page | What it covers | +|------|----------------| +| [Commands](commands) | All `/boost` and `/ezboost` commands with syntax and permissions | +| [Permissions](permissions) | Full permissions reference and default values | +| [Configuration](config) | `settings.yml`, `limits.yml`, `worlds.yml`, `economy.yml` | +| [Boosts](boosts) | `boosts.yml` schema — effects, duration, cooldowns, costs | +| [GUI](gui) | `gui.yml` schema — slots, items, actions | +| [Overrides](overrides) | Server-wide boost multiplier overrides | +| [Events](events) | Plugin events overview | +|   [BoostStartEvent](events/BoostStartEvent) | Fired when a boost activates | +|   [BoostEndEvent](events/BoostEndEvent) | Fired when a boost expires or is cancelled | +| [API](api) | EzBoost developer API overview | +|   [EzBoostAPI](api/EzBoostAPI) | Full public-method reference | +|   [CustomBoostEffect](api/CustomBoostEffect) | Implementing custom boost effects | +| [PlaceholderAPI](integration/PlaceholderAPI) | Available placeholders and usage | diff --git a/docs/integration/PlaceholderAPI.md b/docs/integration/PlaceholderAPI.md index f569b9d..41f8813 100644 --- a/docs/integration/PlaceholderAPI.md +++ b/docs/integration/PlaceholderAPI.md @@ -1,5 +1,19 @@ +--- +title: PlaceholderAPI +nav_order: 10 +description: "PlaceholderAPI expansion for EzBoost — available placeholders and examples" +--- # PlaceholderAPI integration +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- This document describes the PlaceholderAPI expansion bundled with EzBoost and the placeholders it exposes. diff --git a/docs/overrides.md b/docs/overrides.md index a5d901e..32398c1 100644 --- a/docs/overrides.md +++ b/docs/overrides.md @@ -1,4 +1,19 @@ +--- +title: Overrides +nav_order: 7 +description: "Server-wide boost multiplier overrides by world, world group, and WorldGuard region" +--- + # Boost Overrides: Worlds, Groups, and Regions +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- EzBoost supports advanced configuration overrides for boosts based on world, world group, and WorldGuard region. This allows you to customize boost behavior for specific worlds or protected regions on your server. diff --git a/docs/permissions.md b/docs/permissions.md index 008f790..7727f2b 100644 --- a/docs/permissions.md +++ b/docs/permissions.md @@ -1,4 +1,19 @@ +--- +title: Permissions +nav_order: 3 +description: "Full permissions reference and default values for EzBoost" +--- + # Permissions +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- This page documents all permissions used by EzBoost, including their purposes, default assignments, and examples. diff --git a/pom.xml b/pom.xml index dc6ced5..fd5aaee 100644 --- a/pom.xml +++ b/pom.xml @@ -234,6 +234,25 @@ + + org.jacoco + jacoco-maven-plugin + 0.8.12 + + + + prepare-agent + + + + report + verify + + report + + + + org.apache.maven.plugins maven-shade-plugin From e9591df94674ee9802684047dff0e0c8bd475f65 Mon Sep 17 00:00:00 2001 From: ez-plugins Date: Mon, 18 May 2026 01:15:14 +0200 Subject: [PATCH 2/3] docs: add Jekyll site, lint/coverage workflows, and Jaloquent-style badge updates - docs/_config.yml: Just the Docs remote theme, EzBoost title/description, GitHub Pages URL, aux_links, search, back-to-top, footer, kramdown config - docs/index.md: new landing page (layout: home) with features overview, quick-start steps, and full documentation table - .markdownlint.yml: markdownlint configuration matching Jaloquent style - .github/workflows/docs.yml: deploy Jekyll site to GitHub Pages on release - .github/workflows/lint.yml: markdownlint validation on docs PR changes - .github/workflows/coverage.yml: JaCoCo build + Codecov upload on push/PR - pom.xml: add jacoco-maven-plugin 0.8.12 (prepare-agent + verify report) - README.md: replace flat-square badges with Jaloquent-style badges; add CI, GitHub Packages, Coverage, and Docs badges; update Documentation section to link to GitHub Pages site - docs/*.md: add Jekyll front matter (title, nav_order, description) and Just the Docs TOC blocks to all 13 documentation pages --- .github/workflows/coverage.yml | 40 ++++++++++++++++++ .github/workflows/docs.yml | 46 +++++++++++++++++++++ .github/workflows/lint.yml | 21 ++++++++++ .markdownlint.yml | 34 +++++++++++++++ README.md | 37 +++++++++-------- docs/_config.yml | 62 ++++++++++++++++++++++++++++ docs/api.md | 25 +++++++++-- docs/api/CustomBoostEffect.md | 24 +++++++++++ docs/api/EzBoostAPI.md | 24 +++++++++++ docs/boosts.md | 15 +++++++ docs/commands.md | 40 +++++++++++++++--- docs/config.md | 15 +++++++ docs/events.md | 16 ++++++++ docs/events/BoostEndEvent.md | 16 ++++++++ docs/events/BoostStartEvent.md | 16 ++++++++ docs/gui.md | 15 +++++++ docs/index.md | 66 ++++++++++++++++++++++++++++++ docs/integration/PlaceholderAPI.md | 14 +++++++ docs/overrides.md | 15 +++++++ docs/permissions.md | 15 +++++++ pom.xml | 19 +++++++++ 21 files changed, 550 insertions(+), 25 deletions(-) create mode 100644 .github/workflows/coverage.yml create mode 100644 .github/workflows/docs.yml create mode 100644 .github/workflows/lint.yml create mode 100644 .markdownlint.yml create mode 100644 docs/_config.yml create mode 100644 docs/index.md diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 0000000..03abdd8 --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,40 @@ +name: Code Quality + +permissions: + contents: read + +on: + push: + branches: ["main", "master"] + pull_request: + branches: ["main", "master"] + +jobs: + coverage: + name: Coverage + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up JDK 25 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 25 + cache: maven + + - name: Build with coverage + run: mvn --batch-mode clean verify + + - name: Upload JaCoCo coverage report + uses: actions/upload-artifact@v4 + with: + name: jacoco-report + path: target/site/jacoco/ + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v5 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: target/site/jacoco/jacoco.xml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..659c55c --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,46 @@ +name: Documentation + +on: + release: + types: [published] + workflow_dispatch: + +# Required for GitHub Pages deployment via Actions +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment; skip in-progress runs +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build-and-deploy: + name: Build and Deploy + runs-on: ubuntu-latest + + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Configure GitHub Pages + uses: actions/configure-pages@v5 + + - name: Build Jekyll site + uses: actions/jekyll-build-pages@v1 + with: + source: ./docs + destination: ./_site + + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v3 + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..4c9fd3b --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,21 @@ +name: Lint + +on: + pull_request: + paths: + - "docs/**/*.md" + - ".markdownlint.yml" + +jobs: + markdown: + name: Validate Markdown + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Lint documentation Markdown + uses: DavidAnson/markdownlint-cli2-action@v16 + with: + globs: "docs/**/*.md" + config: ".markdownlint.yml" diff --git a/.markdownlint.yml b/.markdownlint.yml new file mode 100644 index 0000000..4cf26b5 --- /dev/null +++ b/.markdownlint.yml @@ -0,0 +1,34 @@ +# markdownlint configuration +# https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md + +default: true + +# MD013 — Line length: documentation lines are allowed to exceed 80 chars +MD013: false + +# MD022 — Blanks around headings: Kramdown attribute syntax ({: .no_toc }) +# must immediately follow a heading with no blank line +MD022: false + +# MD025 — Single H1: pages have both front-matter title: and an # H1 heading; +# disable front-matter title detection to avoid false positives +MD025: + front_matter_title: "" + +# MD033 — Inline HTML: needed for Jekyll/Liquid includes and badge images +MD033: false + +# MD036 — Emphasis as heading: API tables use bold labels that markdownlint +# mistakes for headings +MD036: false + +# MD041 — First line must be H1: front-matter pages don't start with a heading +MD041: false + +# MD024 — No duplicate headings: allow sibling duplicates across sections +MD024: + siblings_only: true + +# MD007 — Unordered list indentation: use 2-space indent under list items +MD007: + indent: 2 diff --git a/README.md b/README.md index 947fb15..d9bb941 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,11 @@ -[![Platform: Spigot | Paper | Bukkit](https://img.shields.io/badge/Platform-Spigot%20%7C%20Paper%20%7C%20Bukkit-blue?style=flat-square)](#) -[![Minecraft 1.7-1.21.*](https://img.shields.io/badge/Minecraft-1.7--1.21.*-brightgreen?style=flat-square)](#) -[![MIT License](https://img.shields.io/github/license/ez-plugins/ezboost?style=flat-square)](#) -[![Latest Release](https://img.shields.io/github/v/release/ez-plugins/ezboost?style=flat-square)](#) +[![CI](https://github.com/ez-plugins/ezboost/actions/workflows/smoke-test.yml/badge.svg)](https://github.com/ez-plugins/ezboost/actions/workflows/smoke-test.yml) +[![GitHub Packages](https://img.shields.io/badge/GitHub_Packages-2.0.0-blue?logo=github)](https://github.com/ez-plugins/ezboost/packages) +[![Coverage](https://img.shields.io/codecov/c/github/ez-plugins/ezboost)](https://codecov.io/github/ez-plugins/ezboost) +[![Docs](https://img.shields.io/badge/Docs-GitHub_Pages-blue?logo=github)](https://ez-plugins.github.io/ezboost) +[![Platform](https://img.shields.io/badge/Platform-Spigot%20%7C%20Paper%20%7C%20Bukkit-blue)](#) +[![Minecraft](https://img.shields.io/badge/Minecraft-1.7--1.21.*-brightgreen)](#) +[![License](https://img.shields.io/github/license/ez-plugins/ezboost)](LICENSE) +[![Release](https://img.shields.io/github/v/release/ez-plugins/ezboost)](https://github.com/ez-plugins/ezboost/releases) # EzBoost @@ -34,18 +38,19 @@ EzBoost is a modern, production-ready Minecraft plugin for Spigot, Paper, and Bu ## Documentation -- [Commands Reference](docs/commands.md) -- [Permissions Reference](docs/permissions.md) -- [Overrides Guide](docs/overrides.md) -- [GUI Guide](docs/gui.md) -- [Configuration Guide](docs/config.md) -- [Boosts Guide](docs/boosts.md) -- [API Overview](docs/api.md) - - [EzBoostAPI Reference](docs/api/EzBoostAPI.md) - - [CustomBoostEffect Reference](docs/api/CustomBoostEffect.md) - - [Events Overview](docs/events.md) - - [BoostStartEvent Reference](docs/events/BoostStartEvent.md) - - [BoostEndEvent Reference](docs/events/BoostEndEvent.md) +Full documentation is available at ****. + +| Page | What it covers | +|------|----------------| +| [Commands](https://ez-plugins.github.io/ezboost/commands) | All `/boost` and `/ezboost` commands | +| [Permissions](https://ez-plugins.github.io/ezboost/permissions) | Permissions reference and defaults | +| [Configuration](https://ez-plugins.github.io/ezboost/config) | `settings.yml`, `limits.yml`, `worlds.yml`, `economy.yml` | +| [Boosts](https://ez-plugins.github.io/ezboost/boosts) | `boosts.yml` schema — effects, durations, costs | +| [GUI](https://ez-plugins.github.io/ezboost/gui) | `gui.yml` — chest-based boost menu | +| [Overrides](https://ez-plugins.github.io/ezboost/overrides) | World, group, and region multiplier overrides | +| [Events](https://ez-plugins.github.io/ezboost/events) | Plugin lifecycle events | +| [API](https://ez-plugins.github.io/ezboost/api) | Developer API reference | +| [PlaceholderAPI](https://ez-plugins.github.io/ezboost/integration/PlaceholderAPI) | Available placeholders | --- diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 0000000..d61ead0 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,62 @@ +remote_theme: just-the-docs/just-the-docs + +title: EzBoost +description: >- + Modern, production-ready Minecraft boost plugin for Spigot, Paper, and Bukkit. + Configurable potion boosts, cooldowns, GUI, economy integration, and WorldGuard support. + +url: "https://ez-plugins.github.io" +baseurl: "/ezboost" + +# ── Appearance ──────────────────────────────────────────────────────────────── +heading_anchors: true + +# ── Header links ────────────────────────────────────────────────────────────── +aux_links: + "GitHub": + - "https://github.com/ez-plugins/ezboost" + "Releases": + - "https://github.com/ez-plugins/ezboost/releases" + +aux_links_new_tab: true + +# ── Navigation ──────────────────────────────────────────────────────────────── +nav_sort: case_insensitive +nav_external_links: + - title: Changelog + url: "https://github.com/ez-plugins/ezboost/releases" + hide_icon: false + +# ── Search ──────────────────────────────────────────────────────────────────── +search_enabled: true +search: + heading_level: 2 + previews: 3 + preview_words_before: 5 + preview_words_after: 10 + tokenizer_separator: /[\s/]+/ + +# ── Footer ──────────────────────────────────────────────────────────────────── +back_to_top: true +back_to_top_text: "Back to top" + +footer_content: >- + Copyright © 2024–2026 EzPlugins. + Distributed under the + MIT License. + +# ── Kramdown ────────────────────────────────────────────────────────────────── +kramdown: + syntax_highlighter_opts: + block: + line_numbers: false + +# ── Plugins ─────────────────────────────────────────────────────────────────── +plugins: + - jekyll-remote-theme + - jekyll-seo-tag + +# ── Build exclusions ────────────────────────────────────────────────────────── +exclude: + - Gemfile + - Gemfile.lock diff --git a/docs/api.md b/docs/api.md index 34d291c..02b1405 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1,4 +1,20 @@ +--- +title: API +nav_order: 9 +has_children: true +description: "EzBoost developer API — integrating boost management into your own plugins" +--- + # EzBoost API Overview +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- EzBoost exposes a professional, extensible API for plugin developers and advanced users. The API allows you to register custom boost effects, manage player boosts, and integrate deeply with the boost system. @@ -7,7 +23,6 @@ EzBoost exposes a professional, extensible API for plugin developers and advance - [`EzBoostAPI`](api/EzBoostAPI.md): Main static API class for registering effects, querying and managing boosts. - [`CustomBoostEffect`](api/CustomBoostEffect.md): Interface for defining custom boost effects. - ## Configuring Custom Effects in YAML To use a custom effect in your boost configuration, reference its unique type string (as returned by `getType()`) in your `boosts.yml`: @@ -44,12 +59,14 @@ You can use JitPack to include the latest version directly from GitHub: ``` -### 2. Register your custom effect: +### 2. Register your custom effect + ```java EzBoostAPI.registerCustomEffect(new MyCustomEffect()); ``` -### 3. Query or manage player boosts: +### 3. Query or manage player boosts + ```java if (EzBoostAPI.isBoostActive(player)) { BoostDefinition boost = EzBoostAPI.getActiveBoost(player); @@ -69,4 +86,4 @@ if (EzBoostAPI.isBoostActive(player)) { - [CustomBoostEffect interface reference](api/CustomBoostEffect.md) - [Events documentation](../events.md) -For more details, see: [EzBoost on GitHub](https://github.com/ez-plugins/EzBoost) \ No newline at end of file +For more details, see: [EzBoost on GitHub](https://github.com/ez-plugins/EzBoost) diff --git a/docs/api/CustomBoostEffect.md b/docs/api/CustomBoostEffect.md index fe8d1e5..964f614 100644 --- a/docs/api/CustomBoostEffect.md +++ b/docs/api/CustomBoostEffect.md @@ -1,4 +1,20 @@ +--- +title: CustomBoostEffect +parent: API +nav_order: 2 +description: "CustomBoostEffect interface — implementing custom plugin-driven boost effects" +--- + # CustomBoostEffect Interface Reference +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- ## Overview `CustomBoostEffect` is an interface for defining custom boost effects that can be registered with EzBoost. Implement this interface in your plugin to add new effect types that will be executed when a boost is activated or deactivated. @@ -7,6 +23,7 @@ `com.skyblockexp.ezboost.boost` ## Interface Declaration + ```java public interface CustomBoostEffect { /** @@ -40,10 +57,12 @@ public interface CustomBoostEffect { ### `void apply(Player player, int amplifier)` Called when the boost's custom effect should be applied to a player. + - **player**: The player receiving the effect. - **amplifier**: The configured amplifier for this effect in the boost. **Usage Example:** + ```java @Override public void apply(Player player, int amplifier) { @@ -55,9 +74,11 @@ public void apply(Player player, int amplifier) { ### `void remove(Player player)` Called when the boost's custom effect should be removed from a player. + - **player**: The player losing the effect. **Usage Example:** + ```java @Override public void remove(Player player) { @@ -69,12 +90,14 @@ public void remove(Player player) { ### `String getName()` Returns the unique effect name used in boost configuration to identify the custom effect. + - **Returns**: The effect name (e.g., "mycustom"). ### `int getCooldownSeconds()` Returns the cooldown duration (in seconds) associated with this custom effect. When `settings.cooldown-per-effect` is enabled, this value is used to set per-effect cooldown timestamps after activation. Returning `0` means no cooldown. **Usage Example:** + ```java @Override public String getName() { @@ -119,6 +142,7 @@ public void onEnable() { ``` ## Notes + - Register your implementation with `EzBoostAPI.registerCustomEffect()` (see example above). - The effect type returned by `getType()` must be unique across all registered effects. - See also: [EzBoostAPI](../EzBoostAPI.md) diff --git a/docs/api/EzBoostAPI.md b/docs/api/EzBoostAPI.md index e6a924f..673dd1e 100644 --- a/docs/api/EzBoostAPI.md +++ b/docs/api/EzBoostAPI.md @@ -1,4 +1,20 @@ +--- +title: EzBoostAPI +parent: API +nav_order: 1 +description: "EzBoostAPI class reference — full public method tables" +--- + # EzBoostAPI Class Reference +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- ## Overview `EzBoostAPI` is the main static API class for interacting with the EzBoost plugin. It provides methods for registering custom boost effects, querying and managing player boosts, and integrating with the boost system from other plugins. @@ -7,6 +23,7 @@ `com.skyblockexp.ezboost.api` ## Class Declaration + ```java public final class EzBoostAPI { // Static utility class @@ -17,10 +34,12 @@ public final class EzBoostAPI { ### `static boolean registerCustomBoostEffect(CustomBoostEffect effect)` Register a custom boost effect implementation so other plugins can provide new effect types. + - **effect**: The `CustomBoostEffect` implementation to register. - **Returns**: `true` if registration succeeded; `false` if the API isn't initialized or the effect name is already registered. **Usage Example:** + ```java boolean ok = EzBoostAPI.registerCustomBoostEffect(new MyCustomEffect()); ``` @@ -31,6 +50,7 @@ boolean ok = EzBoostAPI.registerCustomBoostEffect(new MyCustomEffect()); Returns an unmodifiable map of all registered custom boost effects keyed by their normalized names. **Usage Example:** + ```java Map effects = EzBoostAPI.getCustomBoostEffects(); ``` @@ -41,6 +61,7 @@ Map effects = EzBoostAPI.getCustomBoostEffects(); Returns the internal `BoostManager` instance. This exposes advanced integration points but should be used carefully. **Usage Example:** + ```java BoostManager manager = EzBoostAPI.getBoostManager(); ``` @@ -51,10 +72,13 @@ BoostManager manager = EzBoostAPI.getBoostManager(); Convenience helper that returns remaining cooldown (in seconds) for a specific `BoostEffect` on a player. Returns `0` if no cooldown is present or the API is not initialized. **Usage Example:** + ```java long remaining = EzBoostAPI.getCooldownRemainingForEffect(player, myBoostEffect); ``` + ## Notes + - All methods are static for ease of use. - Designed for open-source extensibility and professional integrations. - Register custom effects before any boosts are activated. diff --git a/docs/boosts.md b/docs/boosts.md index 656b46b..665730a 100644 --- a/docs/boosts.md +++ b/docs/boosts.md @@ -1,4 +1,19 @@ +--- +title: Boosts +nav_order: 5 +description: "boosts.yml schema — defining effects, durations, cooldowns, costs, and particles" +--- + # EzBoost – Default Boosts Reference +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- This document describes the default boosts provided in `boosts.yml` for EzBoost. Each boost can be customized or extended in your configuration. diff --git a/docs/commands.md b/docs/commands.md index 1d66682..2784a05 100644 --- a/docs/commands.md +++ b/docs/commands.md @@ -1,52 +1,80 @@ +--- +title: Commands +nav_order: 2 +description: "All /boost and /ezboost commands with syntax, arguments, and permissions" +--- + # EzBoost Commands +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- This document details all commands provided by EzBoost, including syntax, arguments, permissions, and usage examples. ## Player Commands ### `/boost` + - **Description**: Opens the boosts GUI where players can browse and activate available boosts. If the GUI is disabled, displays usage information. - **Permission**: `ezboost.use` - **Usage**: `/boost` - **Example**: - ``` + + ```text /boost ``` + Opens the interactive boosts menu. ### `/boost ` + - **Description**: Directly activates a specific boost by its key, bypassing the GUI. - **Permission**: `ezboost.use` + `ezboost.boost.` (per-boost permission) - **Usage**: `/boost ` - **Example**: - ``` + + ```text /boost speed ``` + Activates the "speed" boost if available and permitted. ## Admin Commands ### `/ezboost create` + - **Description**: Opens the admin GUI for creating and managing boosts. Allows administrators to define new boosts with effects, durations, cooldowns, and more. - **Permission**: `ezboost.admin` - **Usage**: `/ezboost create` - **Example**: - ``` + + ```text /ezboost create ``` + Opens the boost creation interface. ### `/ezboost reload` + - **Description**: Reloads all configuration files and messages at runtime without restarting the server. - **Permission**: `ezboost.reload` - **Usage**: `/ezboost reload` - **Example**: - ``` + + ```text /ezboost reload ``` + Reloads boosts.yml, gui.yml, messages.yml, and other config files. ### `/ezboost give [amount]` + - **Description**: Gives boost token items to a player. Tokens can be redeemed by right-clicking them to activate the boost. - **Permission**: `ezboost.give` - **Usage**: `/ezboost give [amount]` @@ -55,9 +83,11 @@ This document details all commands provided by EzBoost, including syntax, argume - ``: The key of the boost to give tokens for - `[amount]`: Optional amount of tokens (default: 1) - **Example**: - ``` + + ```text /ezboost give Steve speed 5 ``` + Gives 5 speed boost tokens to player Steve. For detailed permissions documentation, see [docs/permissions.md](permissions.md). diff --git a/docs/config.md b/docs/config.md index f3aec74..d36f95f 100644 --- a/docs/config.md +++ b/docs/config.md @@ -1,4 +1,19 @@ +--- +title: Configuration +nav_order: 4 +description: "settings.yml, limits.yml, worlds.yml, and economy.yml configuration reference" +--- + # EzBoost – Configuration Options Reference +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- This document provides a complete reference for all configuration files and options available in EzBoost. Use this guide to understand and customize every aspect of the plugin. diff --git a/docs/events.md b/docs/events.md index fdbed8b..e8437b5 100644 --- a/docs/events.md +++ b/docs/events.md @@ -1,4 +1,20 @@ +--- +title: Events +nav_order: 8 +has_children: true +description: "Plugin events emitted by EzBoost — overview and usage guide" +--- + # EzBoost Events Overview +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- EzBoost provides a robust event system to allow other plugins and advanced users to hook into boost lifecycle changes. This enables custom logic, integrations, and advanced control over boost activation and deactivation. diff --git a/docs/events/BoostEndEvent.md b/docs/events/BoostEndEvent.md index 04609af..d2161a6 100644 --- a/docs/events/BoostEndEvent.md +++ b/docs/events/BoostEndEvent.md @@ -1,4 +1,20 @@ +--- +title: BoostEndEvent +parent: Events +nav_order: 2 +description: "Event fired when a boost expires or is cancelled — fields and usage" +--- + # BoostEndEvent Class Reference +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- ## Overview `BoostEndEvent` is fired when a boost is about to end for a player. This event is cancellable, allowing plugins to prevent the boost from ending. It provides full context, including the player and the `BoostDefinition`. diff --git a/docs/events/BoostStartEvent.md b/docs/events/BoostStartEvent.md index 9c225f8..a2f7a3c 100644 --- a/docs/events/BoostStartEvent.md +++ b/docs/events/BoostStartEvent.md @@ -1,4 +1,20 @@ +--- +title: BoostStartEvent +parent: Events +nav_order: 1 +description: "Event fired when a boost is activated — fields, cancellation, and usage" +--- + # BoostStartEvent Class Reference +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- ## Overview `BoostStartEvent` is fired when a boost is about to start for a player. This event is cancellable, allowing plugins to prevent the boost from activating. It provides full context, including the player and the `BoostDefinition`. diff --git a/docs/gui.md b/docs/gui.md index 77ea4c6..ff270d4 100644 --- a/docs/gui.md +++ b/docs/gui.md @@ -1,4 +1,19 @@ +--- +title: GUI +nav_order: 6 +description: "gui.yml schema — configuring the interactive chest-based boost menu" +--- + # EzBoost – GUI Configuration Reference +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- This document explains all options available in `gui.yml` for EzBoost. Use this as a guide to customize the in-game boost selection menu. diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..4a6c808 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,66 @@ +--- +layout: home +title: EzBoost +nav_order: 1 +description: "Modern Minecraft boost plugin for Spigot, Paper, and Bukkit" +permalink: / +--- + +# EzBoost + +[![CI](https://github.com/ez-plugins/ezboost/actions/workflows/smoke-test.yml/badge.svg)](https://github.com/ez-plugins/ezboost/actions/workflows/smoke-test.yml) +[![GitHub Packages](https://img.shields.io/badge/GitHub_Packages-2.0.0-blue?logo=github)](https://github.com/ez-plugins/ezboost/packages) +[![Coverage](https://img.shields.io/codecov/c/github/ez-plugins/ezboost)](https://codecov.io/github/ez-plugins/ezboost) + +**EzBoost** is a modern, production-ready Minecraft plugin for Spigot, Paper, and Bukkit servers (1.7–1.21.*). +It gives server owners full control over configurable, time-limited potion boosts — complete with GUI, +cooldowns, economy integration, WorldGuard region support, and a developer API. + +--- + +## Features + +- **Flexible boost definitions** — configure any potion effect with duration, amplifier, cooldowns, limits, and particle effects via `boosts.yml` +- **Interactive GUI** — fully-customisable chest-based boost menu driven by `gui.yml`; fully disableable +- **Economy integration** — optional Vault economy support with per-boost pricing; gracefully skipped when Vault is absent +- **WorldGuard support** — restrict boost activation to specific WorldGuard regions +- **Per-player and global limits** — cap how many active boosts a player or the server can run simultaneously +- **Overrides** — server-wide event-driven multipliers layered on top of individual boosts +- **PlaceholderAPI** — exposes boost state and duration as placeholders for scoreboards, holograms, and more +- **MiniMessage formatting** — all messages use the Adventure MiniMessage format for rich, hex-colour text +- **Developer API** — clean Java API to start/stop boosts and listen to lifecycle events from other plugins + +--- + +## Quick start + +**1. Download the plugin:** + +Grab the latest `EzBoost-x.y.z.jar` from [Releases](https://github.com/ez-plugins/ezboost/releases) +and drop it into your server's `plugins/` directory. + +**2. Start your server once** to generate default configuration files in `plugins/EzBoost/`. + +**3. Edit `boosts.yml`** to define your server's boost types, then **edit `settings.yml`** to enable economy or WorldGuard if needed. + +**4. Reload with `/ezboost reload`** (requires `ezboost.admin`). + +--- + +## Documentation + +| Page | What it covers | +|------|----------------| +| [Commands](commands) | All `/boost` and `/ezboost` commands with syntax and permissions | +| [Permissions](permissions) | Full permissions reference and default values | +| [Configuration](config) | `settings.yml`, `limits.yml`, `worlds.yml`, `economy.yml` | +| [Boosts](boosts) | `boosts.yml` schema — effects, duration, cooldowns, costs | +| [GUI](gui) | `gui.yml` schema — slots, items, actions | +| [Overrides](overrides) | Server-wide boost multiplier overrides | +| [Events](events) | Plugin events overview | +|   [BoostStartEvent](events/BoostStartEvent) | Fired when a boost activates | +|   [BoostEndEvent](events/BoostEndEvent) | Fired when a boost expires or is cancelled | +| [API](api) | EzBoost developer API overview | +|   [EzBoostAPI](api/EzBoostAPI) | Full public-method reference | +|   [CustomBoostEffect](api/CustomBoostEffect) | Implementing custom boost effects | +| [PlaceholderAPI](integration/PlaceholderAPI) | Available placeholders and usage | diff --git a/docs/integration/PlaceholderAPI.md b/docs/integration/PlaceholderAPI.md index f569b9d..41f8813 100644 --- a/docs/integration/PlaceholderAPI.md +++ b/docs/integration/PlaceholderAPI.md @@ -1,5 +1,19 @@ +--- +title: PlaceholderAPI +nav_order: 10 +description: "PlaceholderAPI expansion for EzBoost — available placeholders and examples" +--- # PlaceholderAPI integration +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- This document describes the PlaceholderAPI expansion bundled with EzBoost and the placeholders it exposes. diff --git a/docs/overrides.md b/docs/overrides.md index a5d901e..32398c1 100644 --- a/docs/overrides.md +++ b/docs/overrides.md @@ -1,4 +1,19 @@ +--- +title: Overrides +nav_order: 7 +description: "Server-wide boost multiplier overrides by world, world group, and WorldGuard region" +--- + # Boost Overrides: Worlds, Groups, and Regions +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- EzBoost supports advanced configuration overrides for boosts based on world, world group, and WorldGuard region. This allows you to customize boost behavior for specific worlds or protected regions on your server. diff --git a/docs/permissions.md b/docs/permissions.md index 008f790..7727f2b 100644 --- a/docs/permissions.md +++ b/docs/permissions.md @@ -1,4 +1,19 @@ +--- +title: Permissions +nav_order: 3 +description: "Full permissions reference and default values for EzBoost" +--- + # Permissions +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- This page documents all permissions used by EzBoost, including their purposes, default assignments, and examples. diff --git a/pom.xml b/pom.xml index dc6ced5..fd5aaee 100644 --- a/pom.xml +++ b/pom.xml @@ -234,6 +234,25 @@ + + org.jacoco + jacoco-maven-plugin + 0.8.12 + + + + prepare-agent + + + + report + verify + + report + + + + org.apache.maven.plugins maven-shade-plugin From 8fac65bf2c4132e99e6b5b720dac50585604aac3 Mon Sep 17 00:00:00 2001 From: ez-plugins Date: Mon, 18 May 2026 01:48:46 +0200 Subject: [PATCH 3/3] build: upgrade JaCoCo to 0.8.14 for Java 25 support JaCoCo 0.8.12 does not support Java 25 class files (major version 69), causing 'Unsupported class file major version 69' errors in CI during the report phase. JaCoCo 0.8.14 (released 2025-10-11) officially adds Java 25 support. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fd5aaee..a026ead 100644 --- a/pom.xml +++ b/pom.xml @@ -237,7 +237,7 @@ org.jacoco jacoco-maven-plugin - 0.8.12 + 0.8.14