- Kotlin 100%
|
|
||
|---|---|---|
| .forgejo/workflows | ||
| gradle/wrapper | ||
| src | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE.txt | ||
| README.md | ||
| settings.gradle.kts | ||
FishPatreon
FishPatreon is a lightweight, purely server-side Fabric mod that connects your Patreon campaign directly to LuckPerms. When a player subscribes to one of your Patreon tiers and links their Minecraft account via OAuth2, they automatically receive their corresponding in-game role—and if their subscription expires or is canceled, the role is removed automatically.
100% Server-Side: Players do not need to install this mod on their clients to join and use its features.
Features
-
Secure In-Game OAuth2 Account Linking: Players simply run
/patreon link, click the generated button in chat, and authorize with Patreon in their browser to securely verify and link their account. -
Multi-Tier LuckPerms Sync: Maps your Patreon tiers (e.g.,
Premium&Premium+) to dedicated LuckPerms groups (premium,premium_plus, freely configurable) with priority support and fallback pledge-amount matching. -
Real-Time Webhooks & Periodic Polling: Combines periodic Patreon API v2 polling, automatic sync on server join, and an optional built-in HTTP webhook receiver (
members:pledge:create,members:pledge:update,members:pledge:delete) for instant rank updates and automatic removal on cancellation.
How It Works for Players
- Check Your Status: Type
/patreonto see your current Patreon link status and active tier. - Link Your Account: Run
/patreon linkand click the [Mit Patreon verbinden] button in chat to authenticate via Patreon OAuth2. - Automatic Role Assignment: As soon as your subscription is active, FishPatreon assigns your tier's LuckPerms group in-game. When a subscription ends, the group is removed automatically.
Commands & Permissions
Player commands are available to everyone, while administrative commands require the permission fish.patreon (configurable) or OP status (Level 3/4) if no permission plugin is installed.
For Everyone
/patreon//patreon status– Shows your current Patreon link status, active tier, and quick action buttons./patreon link– Generates a clickable Patreon OAuth2 verification link./patreon unlink– Unlinks your Patreon account and removes managed Patreon groups.
For Team Members (fish.patreon)
/patreon sync– Triggers an immediate full synchronization with the Patreon API v2./patreon list– Lists all linked Minecraft players and their current Patreon tier status./patreon setlink <Player> <Patreon-User-ID>– Manually links a player to a Patreon user ID./patreon removelink <Player>– Removes a player's Patreon link and resets their Patreon groups./patreon reload– Reloadsconfig.jsonand restarts the embedded OAuth/Webhook HTTP listener if needed.
⚙️ Configuration
All configuration and runtime files are automatically generated and stored in config/fishpatreon/:
config.json– Configure your Patreon API credentials (campaignId,creatorAccessToken,clientId,clientSecret,redirectUri,webhookSecret), HTTP server settings (httpHost,httpPort), sync intervals, and thetiersmapping list (tierId,tierName,luckPermsGroup,minAmountCents,priority).links.json– Stores verified player-to-Patreon account links and their last known subscription state.