Sprache

MiaoMenu

MiaoMenu

Modrinth

The optimal menu solution for multi-environments (probably lol)

17 Downloads 3 Follower aktualisiert 2mo ago
neueste v2.5 Modrinth
Bukkit Folia Paper Purpur 1.21.8 – 26.1

🐱 MiaoMenu — The menu plugin that actually gets it right

Do what suits you best, make the difficult simple. That's the idea.

Bukkit API
Maven
Java
Folia Supported
License: GPL v3


Sound familiar?

| Frustrating stuff | Other plugins | MiaoMenu |
|---|---|---|
| Bedrock players can't see menus | Need a separate plugin | Auto-detected, native support |
| Every config change means a reload | /reload over and over | Save the file, you're done — 0.5-second hot-reload |
| Cross-server menus are a pain | Complex setups required | BungeeCord / Velocity built in |
| Players lose the menu item | No protection | NBT-tagged clock, survives death |
| Folia breaks everything | Console spam | Runs natively on Folia |


What it does

🎯 One config, both editions

MiaoMenu checks whether a player is on Java or Bedrock and serves the right UI automatically:

  • Java players get the classic chest inventory (1–6 rows, up to 54 slots)
  • Bedrock players get a native form UI designed for touch screens(need Floodgate)

You write the menu logic once. The plugin handles the rest.

Preview
Preview

⚡ Hot-reload that actually works

Powered by Java's WatchService with a 0.5-second debounce. Edit a YAML file, hit save — the changes go live immediately. No commands needed.

(There's still a /dgm reload command if you prefer doing things manually.
Moreover, tested with over 10 reloads, no memory leaks detected.)

🕰️ The Time Mirror (menu clock)

Every player receives a clock item tagged with NBT data:

  • Checked on login — if it's missing from their inventory, it gets replaced automatically. No duplicates.
  • Protected on death — the clock never drops, and it reappears after respawn.
  • Right-click to open the default menu instantly.
  • Uniquely identified via NBT, so it won't clash with other items.

🔗 Cross-server teleportation

Built-in support for BungeeCord and Velocity proxy setups. The plugin detects which one you're running and configures itself.

# config.yml — one line to enable
settings:
  velocity-network: true

Pair it with a server-selector menu and players can hop between servers in one click:

# server-selector.yml
survival:
  slot: 12
  material: DIAMOND_SWORD
  display_name: "&c&lSurvival"
  left_click_commands:
    - "[player] server survival"
    - "[message] &aConnecting to survival..."
    - "[close]"

🎨 Flexible menu configuration

Java Edition — straightforward YAML:

menu_title: "&6&lMain Menu &7| &fServer Name"
rows: 6

items:
  server_info:
    slot: 10
    material: KNOWLEDGE_BOOK
    display_name: "&e&lServer Info"
    lore:
      - "&7Click to view server information"
      - "&fOnline: &a%server_online%&f/&a%server_max_players%"
    left_click_commands:
      - "[message] &6=== Server Info ==="
      - "[player] list"
      - "[close]"

Bedrock Edition — native forms:

menu:
  title: "§6§lMain Menu"
  items:
    - text: "§e§lServer Info\n§7Click for details"
      icon: "textures/items/book_enchanted"
      icon_type: "path"
      command: "dgeysermenu open info"
      execute_as: "player"

🛠 Action system

Five built-in action types cover the usual interactions:

| Action | Syntax | What it does |
|---|---|---|
| Run as player | [player] spawn | The player executes the command |
| Run as console | [cmd] give %player% diamond 1 | Console executes the command |
| Send a message | [message] &aWelcome back! | Sends chat text to the player |
| Close the menu | [close] | Closes the current menu |
| Open another menu | [menu] shop | Opens a different menu (nesting supported) |

You can bind separate actions to left-click and right-click:

left_click_commands:
  - "[player] spawn"
right_click_commands:
  - "[close]"

🧩 Plugin integrations

| Plugin | What you get |
|---|---|
| PlaceholderAPI | Full PAPI variable support — player stats, economy, online count, whatever you need |
| Floodgate / Geyser | Automatic Bedrock detection, no extra setup |
| CraftEngine | Use custom items as menu icons |
| bStats | Anonymous usage metrics, bundled in |

🎵 Menu sounds

Pick any Minecraft sound to play when a menu opens:

settings:
  open-menu-sound:
    enabled: true
    sound: "entity.experience_orb.pickup"
    volume: 1.0
    pitch: 1.0

🍃 Lightweight & Folia-ready

  • Minimal footprint — core features only, no bloat.
  • Detects Folia at startup and switches to the correct scheduler automatically.
  • Built on Paper 1.21.8+ API.

Getting started

Installation

  1. Drop the JAR into your server's plugins folder.
  2. Restart the server.
  3. Open plugins/MiaoMenu/ — sample menus are generated automatically.
  4. Edit configs to match your server; changes apply on save.

Commands

| Command | Description | Permission |
|---|---|---|
| /dgm open <menu> | Opens a menu | dgeysermenu.use |
| /dgm reload | Reloads configs (rarely needed) | dgeysermenu.reload |
| /dgm help | Shows help | dgeysermenu.use |
| /getmenuclock | Gives you a Time Mirror | dgeysermenu.admin |

Every command has Tab completion — no need to type the whole thing out.

Permissions

dgeysermenu.use      # Basic access (everyone by default)
dgeysermenu.admin    # Admin tools (OP by default)
dgeysermenu.reload   # Reload command (OP by default)
dgeysermenu.menu.*   # Per-menu access control

File layout

MiaoMenu/
├── java_menus/              # Java Edition menus
│   ├── test.yml             # Sample main menu
│   └── server-selector.yml  # Server selector
├── bedrock_menus/           # Bedrock Edition menus
│   └── test.yml             # Sample main menu
└── config.yml               # Plugin settings

Preview


Going further

PlaceholderAPI variables

items:
  player_stats:
    slot: 22
    material: PLAYER_HEAD
    display_name: "&b%player_name%"
    lore:
      - "&fLevel: &e%player_level%"
      - "&fBalance: &6%vault_eco_balance%"
      - "&fPlaytime: &b%player_time_hours% hours"

Nested menus

left_click_commands:
  - "[menu] shop"
  - "[message] &2Welcome to the shop!"

CraftEngine custom items

# config.yml
settings:
  craftengine:
    enabled: true
    fallback-material: STONE
# In a menu file
items:
  custom_sword:
    material: "my_pack:custom_sword"
    display_name: "&d&lLegendary Sword"

Why MiaoMenu?

| | MiaoMenu | Typical alternative |
|---|---|---|
| Java + Bedrock | Both, out of the box | One or the other |
| Hot-reload | 0.5s, automatic | Manual /reload |
| Menu item | Managed automatically | Hand it out yourself |
| Cross-server | BungeeCord + Velocity built in | Needs another plugin |
| Folia | Native support | Errors everywhere |
| Custom items | CraftEngine integration | Vanilla materials only |
| Performance | Lightweight | Heavy |
| Price | Free, GPL v3 | Some are paid |


Preview
Preview

Try it now

/dgm open test          # Open the sample menu
/getmenuclock           # Get a Time Mirror
/dgm help               # See what's available

Java + Bedrock. No reload headaches. Five minutes to set up.


If MiaoMenu saves you some time, a ⭐ on GitHub goes a long way.

GPL v3 · by MingLi

Versionen

Release
2.5
bukkit, folia, paper · 1.21.8, 1.21.9, 1.21.10 · 2mo ago
Make it yours. Simplify the hard. That is the purpose.
17

Kommentare 0

Noch keine Kommentare. Sei der Erste, der seine Meinung teilt.

Herunterladen MiaoMenu

Dateien werden direkt von der Originalquelle bereitgestellt. Modgrid hostet oder verändert sie nicht.