Streaker
PluginMIT

Streaker

A plugin that will get players to join your server

41
Downloads
1
Followers
1 months ago
Updated
📦
1
Versions

📖About Streaker

Streaker banner

Streaker

Java
Paper
Gradle
License

Streaker is a production-ready Paper/Purpur plugin that adds daily login streaks, milestone rewards, animated inventory GUI, PlaceholderAPI placeholders, async SQL persistence, Caffeine caching, and HikariCP pooling.

Features

  • Daily streak claims based on the server timezone.
  • Configurable reset grace for missed days.
  • Reward milestones such as 7, 14, 30, 60, and 100 days.
  • Multiple reward commands, chance, multipliers, messages, and conditions.
  • SQLite, MySQL, and MariaDB support.
  • Async database operations with prepared statements.
  • Caffeine cache and debounced batched profile saves.
  • Animated configurable GUI designs.
  • PlaceholderAPI expansion.
  • JUnit 5 and MockBukkit test setup.

Commands

Command Permission Description
/streak streaker.command.menu Opens the main streak menu.
/streak menu streaker.command.menu Opens the main streak menu.
/streak stats streaker.command.stats Shows personal stats.
/streak rewards streaker.command.rewards Opens rewards view.
/streak top streaker.command.top Shows leaderboard.
/streak reload streaker.admin.reload Reloads configuration asynchronously.
/streak reset <player> streaker.admin.reset Resets current streak.
/streak set <player> <value> streaker.admin.set Sets current streak.
/streak add <player> <value> streaker.admin.add Adds streak days.
/streak remove <player> <value> streaker.admin.remove Removes streak days.

Placeholders

Placeholder Value
%streak_current% Current streak.
%streak_best% Best streak.
%streak_next_reward% Next configured reward.
%streak_days_until_reward% Days until next reward.
%streak_total_rewards% Total granted rewards.
%streak_last_claim% Last claim date.

Installation

  1. Build with ./gradlew build.
  2. Put build/libs/Streaker-1.0.0.jar into the server plugins folder.
  3. Start the server once to generate configs.
  4. Edit config.yml, database.yml, rewards.yml, messages.yml, and menus.yml.
  5. Run /streak reload or restart the server.

Configuration

Primary files:

  • config.yml controls timezone, claim behavior, cache, write-behind, notifications, and leaderboard size.
  • database.yml selects SQLite, MySQL, or MariaDB and tunes HikariCP.
  • rewards.yml defines milestone rewards.
  • menus.yml defines GUI layouts.
  • messages.yml defines MiniMessage output.

Example reward:

rewards:
  30:
    name: "<gradient:#ff512f:#f09819>Monthly Inferno</gradient>"
    icon: "CHEST"
    chance: 100.0
    multiplier: 1.0
    commands:
      - "crate key give %player% legendary 1"

API

RuntimeContext implements StreakerApi:

CompletableFuture<StreakProfile> profile(UUID uuid, String playerName);
CompletableFuture<ClaimResult> claim(Player player);
CompletableFuture<StreakProfile> setStreak(UUID uuid, String playerName, int value);

Documentation

FAQ

Does Streaker block the main thread?
No. SQL and config IO run asynchronously. Bukkit-only work is returned to the main thread.

Can rewards run more than once for the same milestone?
No. Reward history has a unique key per player, reward, and streak day.

Can I use PlaceholderAPI in commands?
Yes. Install PlaceholderAPI and keep rewards.placeholderapi enabled.

Roadmap

  • Redis sync for multi-server networks.
  • Web dashboard.
  • Seasonal reward campaigns.
  • In-game GUI editor.

Support

Open an issue with your Paper version, Streaker version, database type, config snippet, and relevant logs.