ADFAY STREAMERS
Streamer Voting System with Coupons & Custom Rewards
Paper 1.21.4 | Java 21 | PlaceholderAPI Support | MySQL & SQLite
What is AdfayStreamers?
AdfayStreamers is a complete voting system where your players can vote for their favorite streamers and receive discount coupons or custom rewards. Perfect for servers that want to promote their content creators and reward their community at the same time!
Engage your community by letting them support their favorite streamers while earning exclusive rewards. Track streamer popularity with milestone celebrations and keep players coming back!
Interactive voting GUI with streamer selection
Main Features
Complete Voting System
A robust voting system with multiple protections to ensure fair voting:
- Per-User Vote Limits - Control how many times each player can vote
- IP-Based Restrictions - Prevent vote manipulation with IP tracking
- Velocity Support - Real IP forwarding for proxy networks
- Async Processing - All database operations run asynchronously with CompletableFuture
Vote validation and processing flow
Streamer Management
Complete CRUD system for managing streamers:
- Create Streamers - Add new streamers with custom names
- Edit Profiles - Update links and link Minecraft accounts
- Delete Streamers - Remove streamers when needed
- View Statistics - Track votes and milestones
- Link MC Accounts - Connect streamers to their Minecraft accounts
- Admin GUI - Visual interface for streamer management
Code:
/trend create StreamerName
/trend edit StreamerName | twitch.tv/link | youtube.com/link | MinecraftUsername
/trend delete StreamerName
/trend admin (opens Admin GUI)
Milestone Rewards System
Celebrate streamer achievements with automatic milestone detection:
- 1,000 Votes - First milestone reached!
- 10,000 Votes - Growing popularity!
- 100,000 Votes - Legendary status achieved!
Each milestone can trigger:
- Discord webhook notifications with reward value
- Custom rewards for the streamer
- Server-wide announcements
Milestone celebration when streamer reaches 10k votes
Tiered Coupon Rewards
Reward your players with discount coupons based on their voting activity:
- 1% Discount Coupons - Entry level rewards
- 3% Discount Coupons - Mid-tier rewards
- 5% Discount Coupons - Premium rewards
- Custom Percentages - Generate coupons with any discount!
Coupon Pool System:
- Pre-load coupons from YAML files
- Generate new coupons with custom prefixes
- Discord alerts when coupon stock is low or depleted
- Automatic delivery tracking
- Configurable vote thresholds for each tier
Code:
# Coupon Management Commands
/trend coupons generate <percentage> <amount> [prefix]
/trend coupons stats [percentage]
/trend coupons reload
Coupon reward notification with discount code
Custom Rewards System
Beyond coupons, create fully customizable command-based rewards!
- One-Time Rewards - Rewards that can only be claimed once per player
- Repeatable Rewards - Claim again every X votes (e.g., every 10 votes)
- Console Commands - Execute any command when claimed
- Visual Admin GUI - Create and edit rewards without touching config files
Reward Configuration:
YAML:
rewards:
vip_rank:
enabled: true
name: "&6VIP Rank"
icon: DIAMOND
description:
- "&7Get VIP rank for 7 days!"
required_votes: 25
one_time: true
commands:
- "lp user {player} parent addtemp vip 7d"
mystery_key:
enabled: true
name: "&dMystery Key"
icon: TRIPWIRE_HOOK
description:
- "&7Earn a key every 10 votes!"
required_votes: 10
one_time: false # Repeatable!
commands:
- "crates give {player} mystery 1"
Placeholders:
{player} and {uuid} are replaced with the player's data when commands execute.Interactive GUI System
Configuration-Driven GUIs
Fully customizable native Paper inventory GUIs:
- Voting GUI - Browse and vote for streamers
- Stats GUI - View personal and streamer statistics
- User Rewards GUI - Claim earned rewards
- Admin Streamer GUI - Manage streamers visually
- Admin Rewards GUI - Create, edit, and delete custom rewards
Flexible Slot Configuration:
- Single slots:
"5" - Lists:
"1,3,5,7" - Ranges:
"1-6" - Combined:
"1-3,7,9-11"
All GUI layouts are defined in
guis/*.yml files - no coding required!GUI configuration file with customizable items and slots
Complete Language System
Full multi-language support with automatic locale detection:
- lang/es_ES.yml - Spanish (included)
- lang/en_US.yml - English (included)
- lang/pt_BR.yml - Portuguese (included)
- Automatic fallback to Spanish if locale not found
- Easy to add any language by creating a new file
Smart Locale Detection:
The plugin automatically detects each player's client language and serves messages in their preferred language!
Multi-language support with automatic detection
Webhook Integration
Keep your team informed with Discord webhook notifications:
- Low Coupon Alerts - Get notified when coupon stock is running low
- Coupons Depleted - Alert when a coupon tier runs out
- Coupon Delivered - Track when coupons are given to players
- Milestone Celebrations - Announce when streamers reach milestones
- Streamer Created - Alert when new streamers are added
- Streamer Edited - Track changes to streamer profiles
- Streamer Deleted - Alert when streamers are removed
Test your webhooks:
Code:
/trend simulate coupons_low
/trend simulate coupons_depleted
/trend simulate coupon_delivered
/trend simulate milestone
/trend simulate streamer_created
/trend simulate streamer_edited
/trend simulate streamer_deleted
/trend simulate all
Webhook notification for streamer milestone
Database Support
MySQL & SQLite
Choose the database that fits your needs:
- SQLite - Perfect for single-server setups, no configuration needed
- MySQL - Ideal for networks and high-traffic servers
Powered by HikariCP - The fastest JDBC connection pool for optimal performance!
Database Tables:
streamers- Streamer profiles and vote totalsusers- Player data and vote countsvotes- Individual vote records (enforces unique user+streamer and IP+streamer)coupons_delivered- Coupon delivery trackingstreamer_rewards- Milestone reward historycustom_rewards_claimed- Custom reward claim tracking
PlaceholderAPI Integration
Full PlaceholderAPI support for scoreboards, holograms, TAB plugins, and more:
User Placeholders:
%adfaystreamers_user_votes%- Total votes cast by the player (formatted with commas)
Streamer Placeholders:
%adfaystreamers_streamer_votes_<name>%- Votes for a specific streamer%adfaystreamers_total_streamers%- Total registered streamers
Top Streamers:
%adfaystreamers_top_1%- Name of #1 streamer%adfaystreamers_top_2%- Name of #2 streamer%adfaystreamers_top_3%- Name of #3 streamer%adfaystreamers_top_1_votes%- Votes of #1 streamer%adfaystreamers_top_2_votes%- Votes of #2 streamer%adfaystreamers_top_3_votes%- Votes of #3 streamer
Coupon Statistics:
%adfaystreamers_coupons_1_remaining%- Remaining 1% coupons%adfaystreamers_coupons_3_remaining%- Remaining 3% coupons%adfaystreamers_coupons_5_remaining%- Remaining 5% coupons%adfaystreamers_coupons_1_delivered%- Delivered 1% coupons%adfaystreamers_coupons_3_delivered%- Delivered 3% coupons%adfaystreamers_coupons_5_delivered%- Delivered 5% coupons
Custom Rewards:
%adfaystreamers_reward_<id>_claimed%- Times a reward has been claimed (global)%adfaystreamers_reward_<id>_available%- If player can claim the reward (yes/no)
Showing streamer voting placeholders
Commands
Player Commands
- /trend - Opens the voting GUI (adfaystreamers.vote)
- /trend stats - View your statistics as a streamer (adfaystreamers.stats)
Admin Commands
- /trend create <name> - Create a new streamer (adfaystreamers.admin)
- /trend edit <name> | <link1> | <link2> | <mc_user> - Edit streamer info (adfaystreamers.admin)
- /trend delete <name> - Delete a streamer (adfaystreamers.admin)
- /trend top - Show top 5 streamers in chat (adfaystreamers.admin)
- /trend admin - Open the admin streamer GUI (adfaystreamers.admin)
- /trend rewards - Open the custom rewards admin GUI (adfaystreamers.admin)
- /trend reload - Reload all configuration files (adfaystreamers.admin)
Coupon Management
- /trend coupons generate <percentage> <amount> [prefix] - Generate coupons (adfaystreamers.admin)
- /trend coupons stats [percentage] - View coupon statistics (adfaystreamers.admin)
- /trend coupons reload - Reload coupon files (adfaystreamers.admin)
Webhook Testing
- /trend simulate <type> - Test Discord webhooks (adfaystreamers.admin)
Command Aliases:
/streamers, /votarCommand help output showing all available commands
Permissions
- adfaystreamers.vote - Allows voting for streamers Default: true
- adfaystreamers.stats - View own statistics (for streamers with linked MC account) Default: true
- adfaystreamers.admin - Administration commands (create, edit, delete, top, reload, coupons, simulate, admin, rewards) Default: op
- adfaystreamers.* - All permissions Default: op
Configuration Overview
YAML:
# Database Configuration
database:
type: sqlite # or mysql
mysql:
host: localhost
port: 3306
database: adfaystreamers
username: root
password: ""
# Language Settings
language:
default: es_ES
auto-detect: true
# Vote Restrictions
voting:
cooldown: 86400 # 24 hours in seconds
per-ip-limit: 3
# Coupon Thresholds
rewards:
votes-for-1-percent: 5
votes-for-3-percent: 15
votes-for-5-percent: 30
# Discord Webhooks
discord:
enabled: true
alerts:
streamer-created: true
streamer-edited: true
streamer-deleted: true
coupons-low: true
coupons-depleted: true
coupon-delivered: true
milestone: true
webhooks:
main: "https://discord.com/api/webhooks/..."
# Milestones
milestones:
- 1000
- 10000
- 100000
# Custom Rewards (rewards.yml)
# Create command-based rewards with vote thresholds
# One-time or repeatable rewards supported
Support
Need help? Have suggestions? Feel free to:
- Leave a message in the discussion section
- Contact me via private message
- Open a ticket for technical issues
Thank you for choosing AdfayStreamers!
Support your streamers, reward your community!
