Share Lucera Interlude | PawnShop Auction House Announcer EXT.JAR (Listed / Purchased / Removed) + Flood Protection + Per-Language Strings

Joselito

Vassal
Customer
Overview This mod announces PawnShop Auction House events globally:

- When a player lists an item for sale
- When a player buys an item
- When a player removes/cancels an item from sale
Key points:

- No edits to Lucera core sources (installed as a Ext.Jar mod)
- Messages are sent per-player using Lucera’s StringHolder/CustomMessage (each player receives the message in their selected language)
- Built-in flood protection with optional grouped summary messages
- Configurable enable/disable + logs on/off
## Files included (mod)
Place these Java files into your "Gameserver" folder project:

- gameserver/AuctionAnnounce.ext.jar

## Installation (step-by-step)
### 1) Open "gameserver" folder
- Copy the mod files into your Lucera "gameserver" folder...
- gameserver/...

### 2) Add the config file
Create this file on the server (relative to server root):

- config/custom/pawnshop_auction_announce.properties
Example configuration:

Code:
# Enables/disables the whole mod (proxy + strings + announcements).
Enabled=true

# Enables/disables verbose mod logs (events, inventory diffs, flood grouping).
LogsEnabled=false

# Enables/disables flood protection (rate-limits how many announcements can be sent per time window).
FloodProtectionEnabled=true

# Flood protection window size (milliseconds).
# Example: 3000 = last 3 seconds.
FloodWindowMs=3000

# Maximum number of announcements allowed inside the window.
# If exceeded, extra announcements are suppressed (and may be summarized if enabled).
FloodMaxAnnouncesPerWindow=5

# When announcements are suppressed by flood protection, send a grouped summary message after a delay.
FloodSummaryEnabled=true

# Delay (milliseconds) before sending the grouped summary of suppressed announcements.
FloodSummaryDelayMs=3000

### 3) Strings (two options) Option A (recommended / easiest): No datapack edits
Nothing to do. The mod injects its string keys into StringHolder at runtime for common languages.
Option B (datapack-managed strings)
Add these keys to your datapack string files (example below is EN).
Keys used by the mod:

Event keys

- pawnshop.announce.item_listed
- pawnshop.announce.item_purchased
- pawnshop.announce.item_removed
Flood summary keys

- pawnshop.announce.flood_listed
- pawnshop.announce.flood_purchased
- pawnshop.announce.flood_removed
Placeholders:

- {0} = player name
- {1} = item name
- {2} = amount
- Flood summary uses {0} = grouped count
Example "gameserver\data\string\strings_en.properties" entries:

Code:
pawnshop.announce.item_listed={0} listed {2}x {1} on the Auction House.
pawnshop.announce.item_purchased={0} purchased {2}x {1} on the Auction House.
pawnshop.announce.item_removed={0} removed {2}x {1} from the Auction House.

pawnshop.announce.flood_listed=Auction House: {0} listings were grouped.
pawnshop.announce.flood_purchased=Auction House: {0} purchases were grouped.
pawnshop.announce.flood_removed=Auction House: {0} removals were grouped.

AuctionAnnounce.webp
 

Attachments

Back
Top