Skip to content

Plugin Enhancement: Giveaways — role reqs, boost gates, multi-giveaways, bonus entries #34

Description

@DeadIndian

Plugin Enhancement: Giveaways — role requirements, server boost gates, multi-giveaways

Enhance adb-plugin-giveaways with entry requirements, role gates, scheduled multi-giveaways, and entry tracking.

Why

The current giveaways plugin works but lacks the advanced features users expect: restricting entries to certain roles, requiring invite counts, running multiple giveaways at once, and tracking entry history.

Spec

New Features:

1. Entry Requirements

  • /giveaway require-role <message-id> <role> — Restrict entry to a specific role
  • /giveaway require-level <message-id> <level> — Minimum level to enter (levels plugin integration)
  • /giveaway require-invites <message-id> <count> — Minimum invites (invite tracker integration)
  • /giveaway require-boost — Only server boosters can enter
  • /giveaway require-account-age <message-id> <days> — Min Discord account age
  • Combined requirements shown on giveaway embed

2. Multi-Winner Enhancements

  • /giveaway start ... winners:5 role:@winner — Each winner gets a different role reward
  • Tiered prizes: 1st place gets Role A, 2nd gets Role B, 3rd gets Role C
  • /giveaway start ... prize:"Role A, Role B, Role C" — Tiered prize list syntax

3. Scheduled Giveaways

  • /giveaway schedule <time> <prize> [duration] [winners] — Schedule a future giveaway
  • /giveaway schedule list — View scheduled giveaways
  • /giveaway schedule cancel <id> — Cancel a scheduled giveaway
  • Recurring giveaways: /giveaway schedule every <cron> <prize> [winners]
  • Uses Timer/Scheduler system for delayed execution

4. Entry Tracking & History

  • /giveaway entries <message-id> — Count of entries (staff only)
  • /giveaway history [user] — Giveaways won by a user
  • /giveaway stats — Server giveaway stats (total giveaways, prizes given, total entrants)
  • Entry audit log channel option

5. Bonus Entries

  • /giveaway bonus <message-id> <role> <extra-entries> — Members with a role get X extra entries
  • /giveaway bonus-boost <message-id> <extra-entries> — Boosters get extra entries
  • Display: "You have 3 entries (base: 1, booster bonus: 2)"

6. UI/UX Improvements

  • Live entry count on embed (updates every entry, not just on end)
  • Progress bar for entry requirements (e.g., "[==== ] 4/10 invites")
  • "Entered ✅" button state for users who already entered
  • Auto-thread on giveaway for discussion/tagging friends
  • Giveaway end countdown (editable embed with live timer)

Config Schema Additions:

{
  "defaultDuration": "1h",
  "maxWinners": 10,
  "maxActiveGiveaways": 5,
  "requireLevelIntegration": true,
  "requireInviteIntegration": true,
  "bonusEntriesEnabled": true,
  "entryLogChannel": null,
  "autoThreadOnStart": false,
  "maxBonusEntries": 10
}

Acceptance Criteria

  • Role, level, invite, and account-age entry requirements enforced
  • Tiered prize distribution per winner position
  • Scheduled giveaways with cron oversight
  • Bonus entries for boosters/roles
  • Entry history and stats command
  • Live entry count on embed

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    plugin-enhancementEnhancement to an existing plugin (add features, improve UX)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions