> ## Documentation Index
> Fetch the complete documentation index at: https://pumpkings.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Announcement Types: Chat, BossBar, Title, and Sound

> PumpkinAnnouncer supports five delivery channels per announcement: Chat, ActionBar, BossBar, Title/Subtitle, and Sound. Learn how to configure each one.

Every announcement in PumpkinAnnouncer can deliver its message through up to five simultaneous channels. You can enable any combination of them within a single announcement entry — for example, a chat message paired with a sound and a depleting BossBar makes for a memorable server-wide alert. Each channel is configured as its own block within the announcement definition.

## The five delivery channels

### 1. Chat lines

The `lines` array defines a multi-line chat message sent to every targeted player. Each string in the list becomes one line in chat. Use an empty string (`""`) to insert a blank line for spacing.

Add the `[center]` prefix to any line to have PumpkinAnnouncer calculate the exact pixel width of the text (ignoring all color codes) and pad it with spaces so it appears centred in the default Minecraft chat window.

```yaml theme={null}
lines:
  - "[center]<gold><bold>⚔ SERVER EVENT ⚔</bold></gold>"
  - ""
  - "[center]<white>A PvP tournament starts in <yellow>10 minutes</yellow>!"
  - "[center]<click:open_url:'https://yourserver.com'><hover:show_text:'<green>Click to learn more!'><underlined><aqua>yourserver.com</aqua></underlined></hover></click>"
```

<Tip>
  MiniMessage `<click>` and `<hover>` tags work in chat lines, letting you create clickable URLs and tooltip messages.
</Tip>

### 2. ActionBar

The ActionBar channel displays a single line of text just above the player's hotbar. Because the client only holds the ActionBar for about one second, PumpkinAnnouncer re-sends the message every tick for the full `duration-seconds` you specify, keeping it visible for the entire period.

```yaml theme={null}
actionbar:
  enabled: true
  text: "<gradient:gold:yellow><bold>🔥 SALE — 50% OFF THIS WEEKEND! 🔥</bold></gradient>"
  duration-seconds: 10
```

| Option             | Type    | Description                                         |
| ------------------ | ------- | --------------------------------------------------- |
| `enabled`          | boolean | Whether to show the ActionBar for this announcement |
| `text`             | string  | The ActionBar content; supports all color formats   |
| `duration-seconds` | integer | How many seconds to keep the text visible           |

### 3. BossBar

The BossBar appears as a coloured progress bar at the top of the screen. You can configure its colour, style (solid or segmented), duration, and whether the bar depletes smoothly to empty over the display period. The BossBar also supports animated gradient text, cycling through a list of hex colours in real time.

```yaml theme={null}
bossbar:
  enabled: true
  text: "<bold>WEEKEND SALE IS LIVE!</bold>"
  color: "RED"
  style: "SEGMENTED_10"
  duration-seconds: 15
  deplete: true
  animated:
    enabled: true
    gradient-colors: ["#FF6B6B", "#FFD93D", "#FF6B6B"]
    frame-interval-ticks: 3
```

**Colour options:** `PINK`, `BLUE`, `RED`, `GREEN`, `YELLOW`, `PURPLE`, `WHITE`

**Style options:**

| Style          | Appearance                  |
| -------------- | --------------------------- |
| `PROGRESS`     | Solid bar (no segments)     |
| `SEGMENTED_6`  | Bar divided into 6 notches  |
| `SEGMENTED_10` | Bar divided into 10 notches |
| `SEGMENTED_12` | Bar divided into 12 notches |
| `SEGMENTED_20` | Bar divided into 20 notches |

Setting `deplete: true` causes the bar to drain from full to empty across the entire `duration-seconds`. Setting it to `false` keeps the bar at full the whole time.

<Note>
  The `animated` block inside `bossbar` only affects the text label on the BossBar, not the bar's colour itself. To animate the text, set `animated.enabled: true` and provide at least two hex values in `gradient-colors`.
</Note>

### 4. Title / Subtitle

The Title channel displays large on-screen text in the centre of the player's view, with an optional smaller subtitle line beneath it. You control the fade-in, display, and fade-out durations in ticks (20 ticks = 1 second). The title text also supports animated gradients.

```yaml theme={null}
title:
  enabled: true
  title: "DISCORD"
  subtitle: "<gray>Join the community!</gray>"
  fade-in-ticks: 10
  stay-ticks: 60
  fade-out-ticks: 10
  animated:
    enabled: true
    gradient-colors: ["#A0C4FF", "#BDB2FF", "#FFDAC1", "#A0C4FF"]
    frame-interval-ticks: 3
```

| Option           | Description                                   |
| ---------------- | --------------------------------------------- |
| `fade-in-ticks`  | Ticks to fade from invisible to fully visible |
| `stay-ticks`     | Ticks to hold the title at full opacity       |
| `fade-out-ticks` | Ticks to fade from fully visible to invisible |

<Note>
  The `animated` block inside `title` animates only the main `title` text. The `subtitle` is rendered as a static MiniMessage string.
</Note>

### 5. Sound

Set the `sound` key to any value from the [Bukkit Sound enum](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html) to play a sound for every targeted player when the announcement fires. Leave the value empty (`""`) to play no sound.

```yaml theme={null}
sound: "ENTITY_EXPERIENCE_ORB_PICKUP"
```

PumpkinAnnouncer automatically normalises the key format — underscores are converted to dots and the `minecraft:` namespace is prepended if absent, so both `ENTITY_PLAYER_LEVELUP` and `minecraft:entity.player.levelup` are accepted.

## Complete announcement using all five channels

The following example combines every channel into one announcement:

```yaml theme={null}
announcements:
  grand_opening:
    servers: ["global"]
    worlds: ["global"]
    sound: "ENTITY_PLAYER_LEVELUP"

    lines:
      - "[center]<gradient:gold:yellow><bold>🎉 GRAND OPENING 🎉</bold></gradient>"
      - ""
      - "[center]<white>The server is officially <green><bold>OPEN</bold></green>!"
      - "[center]<click:open_url:'https://yourserver.com'><hover:show_text:'<green>Visit the website'><underlined><aqua>yourserver.com</aqua></underlined></hover></click>"

    actionbar:
      enabled: true
      text: "<gradient:green:aqua><bold>Welcome to the Grand Opening!</bold></gradient>"
      duration-seconds: 8

    bossbar:
      enabled: true
      text: "GRAND OPENING"
      color: "GREEN"
      style: "PROGRESS"
      duration-seconds: 15
      deplete: true
      animated:
        enabled: true
        gradient-colors: ["#A8FF78", "#78FFD6", "#A8FF78"]
        frame-interval-ticks: 3

    title:
      enabled: true
      title: "GRAND OPENING"
      subtitle: "<gray>Welcome, adventurer!</gray>"
      fade-in-ticks: 10
      stay-ticks: 80
      fade-out-ticks: 20
      animated:
        enabled: true
        gradient-colors: ["#FFD700", "#FFA500", "#FFD700"]
        frame-interval-ticks: 4
```
