New features:
• Added hologram text shadow toggle (display.hologram.shadow)
• Leaderboard holograms and messages now support MiniMessage gradients, hex colors, and legacy & codes
• New PlaceholderAPI placeholders show how much the viewing player donated (all-time or last 7d/30d/etc.)
Improvements:
• Simplified config by removing internal-only sync, webhook path, and batch delay settings
Code:# plugins/PerfDonation/config.yml — merge under display.hologram: display: hologram: shadow: true # Safe to delete if still present (auto-removed on reload via config-version 38): # store.sync # webhook.tebex-path # webhook.craftingstore-path # purchase-batch # PlaceholderAPI examples for hologram lines: # %perfdonation_player_spent% # %perfdonation_player_spent_7d% # %perfdonation_player_donations_30d%
Bug fixes:
• Tebex purchase webhooks no longer fail when only the game-server API secret is configured
New features:
• Added /perfdonation setsecret tebex-webhook (key) for the Tebex webhook secret
Improvements:
• Console warns on startup and reload when store setup is incomplete or misconfigured
• Detects common mistakes such as webhook.port off, secrets in the wrong field, or missing live purchase ingest
• Prints a short setup summary showing how Tebex and CraftingStore purchases are received
Code:# plugins/PerfDonation/config.yml — add under webhook: webhook: tebex-secret: "" # Tebex Developers > Webhooks (not store.tebex-secret) # plugins/PerfDonation/messages.yml — updated keys (optional merge): usage: "... setsecret: tebex|tebex-webhook|craftingstore|custom (key)" setsecret-usage: "... tebex|tebex-webhook|craftingstore|custom (key)" setsecret-tebex: "... For live chat announcements also set webhook.port + tebex-webhook secret, or use a Tebex global command." setsecret-tebex-webhook: "Tebex webhook secret saved and webhook reloaded."
New features:
• /perfdonation goal reset lets admins restart internal community goal progress from now
• Store URL color and style in donation chat are configurable in messages.yml
Code:# plugins/PerfDonation/messages.yml — add/update: announcement-product-line: "<#F472B6>{product}" announcement-store-link-line: "<click:open_url:'{open_url}'><#7DD3FC><underlined>{store}</underlined></click>" announcement-store-plain-url: "<white>{store}" goal-usage: "<#FBBF24>Usage: <#E2E8F0>/perfdonation goal reset<#94A3B8> — restarts internal goal progress from now (donations stay in DB)" goal-reset-success: "<#4ADE80>Internal community goal reset — progress counts donations from now." goal-reset-disabled: "<#F87171>Community goals are disabled in goals.yml." goal-reset-tebex: "<#F87171>This server uses a Tebex community goal — reset it in your Tebex creator panel." goal-reset-no-database: "<#F87171>Goal database is not ready yet."
Bug fixes:
• /perfdonationnpcs cleanup no longer freezes or crashes the server
• FancyNpcs leaderboard NPCs no longer play the punch animation on refresh by default
Improvements:
• Donation amounts on NPCs and goal placeholders follow format.money in config
• Product name color in purchase announcements is editable in messages.yml
Code:# plugins/PerfDonation/config.yml — merge: format: numbers: dot money: dot money-decimals: 2 display: npc: animate-refresh: false fancy-skin-refresh-enabled: true # plugins/PerfDonation/messages.yml — merge: announcement-product-line: "<#F472B6>{product}" cleanup-usage: "<#EAB308>Usage: <white>/perfdonationnpcs cleanup all<#94A3B8> or <white>/perfdonationnpcs cleanup (radius)<#94A3B8> — <white>all<#94A3B8> clears board areas only, radius needs you in-game" cleanup-started: "<#94A3B8>Cleaning up PerfDonation NPC entities…"
• %perfdonation_goal_bar% now fills in line with goal progress instead of reaching full early
Code:# plugins/PerfDonation/goals.yml — merge (comments only; segment-percent removed): milestones: # Keys are percent of the goal target (50 = halfway, 100 = goal reached). bar: # goal_bar uses 25 segments; goal_bar_10 uses 10. Fill scales with goal_percent (0–100). full: "<green>|" empty: "<red>|"
• CraftingStore purchases now count toward community goals when your goal currency is USD or another non-EUR currency
• Purchase currency from CraftingStore and Tebex is used for goal progress instead of always defaulting to EUR
Code:# plugins/PerfDonation/config.yml — add under store: store: default-currency: ""
Bug fixes:
• Discord donation embeds now show the donor’s current skin on new purchases instead of a cached older look
• Purchase webhook community goal progress now includes the donation that triggered the message
Code:# plugins/PerfDonation/webhooks.yml — update purchase embed footer (optional): # footer: '<goal_name>: <goal_percent>% / 100%' # # Enable community goals in goals.yml when using goal placeholders: # enabled: true # internal: # name: "Community Goal" # target: 500.0 # currency: EUR
