ADialogAPI
A flexible dialog API for Minecraft plugins with configurable buttons and actions.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
ADialogAPI
ADialogAPI
ADialogAPI is a modern, high-performance interactive dialog system for Minecraft servers. It allows you to create immersive RPG-like conversations, complex menus, and user-input forms using simple YAML or a powerful Java API.
---
✨ Features
* Developer API: Full support for modern formatting (RGB, gradients, hover/click events). * Developer API: Trigger commands, sounds, titles, potion effects, and inventory changes directly from dialog buttons. * Developer API: Capture player input through the dialog interface and use it in commands or messages. * Developer API: Prevent dialog spam with per-player cooldowns defined in config. * Developer API: Custom events for opening, clicking, and closing dialogs to build complex logic.
---
🚀 Quick Start (For Admins)
1. Installation
1. Download the latest `.jar` from Modrinth. 2. Place it in your server's `plugins` folder. 3. Restart the server.
2. Configuration Example
Dialogs are stored in the `dialogs/` folder.
Basic example of dialog yaml
```yaml
─────────────────────────────────────────────
Dialog: notice example
A simple informational window with a single OK button.
Recommended for announcements, tips, or welcome messages.
─────────────────────────────────────────────
Displayed at the top of the dialog window.
title: "<gold><bold>✦ Welcome to the Server!"
true - Player can press ESC to close the dialog.
false - Player must click the OK button to close.
can_close_with_escape: false
Cooldown in seconds before the same player can open this dialog again.
0 = no cooldown (default).
cooldown: 0
Dialog type:
- notice: single OK button
- confirmation: Yes / No buttons
type: notice
Optional: register a command that opens this dialog.
Leave empty ("") to skip.
open_command: "welcome"
Optional: permission required to use open_command.
Leave empty ("") to allow all players.
open_permission: ""
body:
Simple text line in the dialog.
- type: text content: "<gray>Hello, traveler! We're glad to see you here."
Empty text used as spacer.
- type: text content: ""
- type: text content: "<yellow>Explore, build, and have fun!" ```
---
🛠 Developer API (In Future)
Events
Listen to custom events to integrate ADialogAPI with your systems:
- `DialogOpenEvent`: Fired when a dialog is about to open (Cancellable). - `DialogButtonClickEvent`: Captures button clicks and any associated user inputs. - `DialogCloseEvent`: Fired when a dialog is closed (supports reasons like ESCAPE or PLUGIN).
Accessing the Manager
You can open dialogs via the `DialogManager`:
```java ADialogAPI.getApi().showDialog(player, "dialog_id"); ```
---
📜 Commands & Permissions
The main command is `/adialogapi` (aliases: `/adapi`).
| Command | Description | Permission | | --- | --- | --- | | `/adialogapi help` | View all available commands | `adialogapi.command.help` | `/adialogapi show <id> [player]` | Open a dialog for yourself or others | `adialogapi.command.show` | `/adialogapi list` | List all loaded dialogs | `adialogapi.command.list` | `/adialogapi reload [id]` | Reload all or a specific dialog | `adialogapi.command.reload` | `/adialogapi create <id>` | Create a new dialog template | `adialogapi.command.create` | `/adialogapi delete <id>` | Remove an existing dialog | `adialogapi.command.delete` | `/adialogapi info <id>` | View detailed info about a dialog | `adialogapi.command.info`
---
🤝 Support
- Discord server: Report bugs or request features via Discord server:. - Discord server: Ask questions and share your configs in the %%MD1%% tab. - Discord server: My official discord server for support, bug-reports and fun - %%MD2%%
---
⚖️ License
Distributed under the GNU GPL v3 License. See GNU GPL v3 License for details.