ADialogAPI
A flexible dialog API for Minecraft plugins with configurable buttons and actions.
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.