BIG UPDATE:
• Community goals with placeholders and 50%/100% milestone commands
• Discord webhooks for purchases, goal milestones, and goal completion
• Purchases below your minimum amount are tracked quietly without a chat announcement
• /perfdonation sync imports recent Tebex and CraftingStore payments into leaderboards
PLEASE RECREATE UR PERFDONATION CONFIG.YML!
New features:
• Donator NPC boards — place hologram NPCs for top donors with /perfdonationnpcs
• Donor leaderboards track spent totals and purchase counts for alltime, week, and today
• PlaceholderAPI placeholders for top donor rankings
• Donation amounts now use real Tebex and CraftingStore prices when the store sends them
Code:# plugins/PerfDonation/config.yml — merge (config-version: 25): donation-amounts: default-amount: 1.0 currency: EUR products: {} database: type: sqlite sqlite: file: perfdonation.db refresh: interval-hours: 3 run-on-startup: true startup-delay-ticks: 100 boards: default-spacing: 2.2 default-render-radius: -1 display: npc: type: skin skin-backend: auto # … see default config for full display / hologram / rank-lines blocks protection: cancel-npc-damage: true cancel-player-damage-near-npcs: true player-damage-radius: 4.0 placeholderapi: enabled: true top-cache-size: 25 # plugins/PerfDonation/messages.yml — add NPC admin keys (or replace from jar): usage-view: "<#EAB308>Use <white>/perfdonationnpcs list <#EAB308>to view top-spender NPC boards." admin-usage: "<#EAB308>Usage: <white>/perfdonationnpcs <create|setpos|remove|cleanup|list|refresh|reload|edit|help|stats>" create-usage: "<#EAB308>Usage: <white>/perfdonationnpcs create <id> <metric> <time> <rank>" # … remaining board-* / edit-* keys in default messages.yml
New features:
• Added a built-in update checker to all Perf plugins
Improvements:
• New config option:update-checker.enabled: true(enabled by default)
Improvements:
• Tebex/CraftingStore hooks load event classes from the store plugin’s classloader and can fall back to scanning the store JAR for purchase-related Bukkit events when the legacy class names are missing
•/perfdonation triggercan be restricted to in-game players only; setcommands.trigger-allow-consoletotrueto allow the console to run it
New features:
• Purchase consent prompts can be relayed over Redis so the backend where the buyer is online receives the Yes/No message on Velocity/multi-server setups
• Optional hooks into official Tebex and CraftingStore Bukkit plugins so purchases can trigger the same donation flow when packages are delivered on that server
• Optional Redis ingest channel for forwarding purchases from an external webhook worker (setredis.ingest-enabledand publish JSON withplayer,product, optionaldedupeKey)
• Configurable deduplication window so the same purchase is not announced twice when both a webhook and an official plugin (or multiple sources) report it; Tebextransaction_idand CraftingStore IDs are used when present
Bug fixes:
• Cross-server donation broadcasts now show on every server that shares the same Redis channel
Improvements:
• Donation layout simplified: 8×8 skin head full-width above, then text block (player, “Purchased:”, product lines, store link)
• Config and messages cleaned up: removed unused options and message keys
• GG wave winner announcement text is configurable separately for one winner vs. several via messages.yml
