Notifications
Notifications
Section titled “Notifications”Bazaar’s notification stack now spans three bundled configs under config/bazaar/:
messages.conffor string overridessounds.conffor in-game cue sequencesdiscord-webhooks.conffor event-driven Discord delivery
messages.conf
Section titled “messages.conf”messages.conf ships empty on purpose. Bazaar now keeps its default player-facing copy in code, and this file exists only for targeted overrides.
strings = { "notification.ui.toast.itemSoldTitle" = "Sold" "notification.ui.toast.purchaseCompleteBody" = "Paid {symbol}{price}"}Guidelines from the bundled config:
- Override only the keys you actually want to change.
- Keep existing placeholder tokens intact unless you know the target format.
- Do not copy the whole message table unless you want to own future merge work across updates.
Newer Bazaar builds also use built-in chat.announcement.* keys for optional listing announcements. Those only fire when config.conf -> chatAnnouncements.enabled = true.
Common chat-announcement keys:
chat.announcement.gts.binchat.announcement.gts.auctionchat.announcement.ah.binchat.announcement.ah.auctionchat.announcement.openchat.announcement.openLabelchat.announcement.openHover
sounds.conf
Section titled “sounds.conf”sounds.conf controls Bazaar’s in-game audio. Each cue is a short Ceremony-style sequence with one or more timed steps.
masterVolume = 1.0masterPitch = 1.0
notifications { itemSold { enabled = true steps = [ { tick = 0, event = "minecraft:entity.experience_orb.pickup", volume = 0.85, pitch = 1.0 } { tick = 6, event = "minecraft:entity.player.levelup", volume = 0.30, pitch = 1.62 } ] }}| Cue path | Purpose |
|---|---|
notifications.itemSold, notifications.outbid, notifications.auctionWon, notifications.auctionLost, notifications.listingExpired, notifications.buyOrderFilled, notifications.collectionReady, notifications.auctionEndingSoon | Player-facing event cues |
market.purchaseComplete, market.listingCreated, market.bidPlaced, market.buyOrderCreated, market.claimCollection, market.claimAll, market.listingCancelled, market.buyOrderCancelled, market.fillBuyOrder | Confirmation and transaction cues |
ui.pageOpen, ui.pageBack, ui.error, ui.pickerSelect, ui.pickerCancel, ui.sourceSwitch, ui.filterAdjust, ui.filterToggle, ui.filterReset, ui.filterContinue, ui.textConfirm, ui.cancelPrimed | GUI and picker feedback |
Set enabled = false on any cue to disable it. Lower masterVolume before muting dozens of individual steps.
Chat Announcements
Section titled “Chat Announcements”Bazaar can also broadcast concise chat messages when new listings are created:
chatAnnouncements { enabled = false gtsListings = true auctionHouseListings = true}When enabled:
- GTS announcements go to players who can browse GTS.
- AH announcements go to players who can browse the relevant channel.
- Bazaar includes a clickable Open chip that runs the matching market command.
The line format itself lives in the chat.announcement.* message keys described above, so you can reskin the announcements without touching code.
discord-webhooks.conf
Section titled “discord-webhooks.conf”discord-webhooks.conf is Bazaar’s event-driven Discord integration. It can post new listings, completed sales, buy-order activity, cancellations, expiries, collection claims, and fee or tax events.
Top-level structure:
enabled = falsesenderMode = "ORCHESTRATOR"
endpoints = [ { id = "market" enabled = true url = "" defaultUsername = "Bazaar" defaultAvatarUrl = null }]
rules = [ { id = "new-listings" enabled = true eventTypes = [ "ITEM_LISTED" ] endpointIds = [ "market" ] }]Sender modes:
| Mode | Behaviour |
|---|---|
ORCHESTRATOR | Only the orchestrator emits webhooks. Recommended for clustered setups. |
EVENT_SOURCE | The server that handled the event emits the webhook. |
ALL_SERVERS | Every server can emit. Usually not recommended. |
Useful operational commands called out in the bundled config:
/bazaar admin reload discord-webhooks/bazaar admin discord-webhooks test endpoint <id>/bazaar admin discord-webhooks test rule <id>
The placeholder system uses {{...}} tokens in string fields. Common examples from the bundled config include {{event.label}}, {{server.id}}, {{channel.name}}, {{target.name}}, {{money.price_display}}, and {{listing.id}}.