DUXPLIMA Documentation

Discord announcements

Countdown, start and result embeds, posted by the built-in bot.

The plugin can post to Discord directly β€” a countdown before the event, an announcement when it starts, and a result when it ends. No second plugin is involved; the bot is embedded.

Configured in discord.yml, off by default.

enabled: false
token: ''
channel-id: ''
notify-times:
  - 30
  - 15
  - 5
  - 1

token is a bot token from the Discord Developer Portal; channel-id is the text channel it posts in. The bot needs View Channel, Send Messages and Embed Links there.

notify-times are minutes before the start. Each fires the timer embed once.

The three embeds

KeyWhen
timerAt each entry in notify-times
startWhen the event begins
endWhen it finishes

Each is the same shape:

embeds:
  start:
    message: '<@&roleid>'
    title: "πŸ”₯ Dragon Event Is Now LIVE!"
    url: "https://..."
    description: "The Ender Dragon has woken up!"
    color: "00e5ff"
    thumbnail: "https://..."
    image: "https://..."
    author:
      name: "βš”οΈ Dragon Event System"
      url: "https://..."
      icon-url: "https://..."
    footer:
      text: "Powered by uxmDragonEvent"
      icon-url: "https://..."
    fields:
      field1:
        name: "βš”οΈ Event Status"
        value: "🟒 ACTIVE / LIVE"
        inline: true
KeyNotes
messagePlain text above the embed β€” where a role ping goes
colorHex without a leading #
fieldsNamed field1, field2, …; inline: true puts up to three side by side

Note the colour format differs from most plugins: "00e5ff", not "#00e5ff".

Pinging a role

message: '<@&roleid>'

Replace roleid with the role's id β€” the full form is <@&123456789012345678>. Make the role mentionable in Discord, or give the bot Mention @everyone, @here and All Roles.

Ping on start and on the last notify-times entry. Pinging on all four is how a role gets muted.

Placeholders

The end embed can name the winner:

fields:
  field2:
    name: "πŸ‘‘ Top Slayer"
    value: "πŸ₯‡ %dragonevent_top_name_1%"

Any placeholder works, and timer supports Discord's own timestamp format:

description: "⏰ **Time Remaining:** <t:%timestamp%:R>"

%timestamp% is the event's start time as a Unix timestamp, and <t:...:R> makes Discord render it as a live relative countdown in each viewer's own timezone. That is better than a fixed time string for exactly that reason β€” an international community reads one message correctly.

Announcing without a bot

If you already run a Discord bridge, leave this off and use the commands.start and commands.end hooks in config.yml to trigger whatever your other plugin uses.