Перейти к содержимому
Mineforgian

Streaker

A plugin that will get players to join your server

Загрузки
44
Подписчики
1
Обновлён
4 июля 2026 г.
Лицензия
MIT

Опубликован 23 мая 2026 г.

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.

Ченджлог

2.2.0Релиз26.1.1, 26.1.2, 26.2 · 4 июля 2026 г.
  • Upgrade dependencies: HikariCP 7.1.0, Caffeine 3.2.4, sqlite-jdbc 3.53.2.0, mariadb 3.5.9, slf4j 2.0.18, JUnit BOM 6.1.1, Shadow Plugin 9.3.0
  • Fix Folia incompatibility in MenuService: replace BukkitScheduler.runTaskTimer with PlatformAdapter.scheduleRepeating() (GlobalRegionScheduler on Folia)
  • Fix StreakMenuHolder: remove BukkitTask dependency, use AtomicBoolean cancel flag
  • Add PlatformAdapter.scheduleRepeating() returning Runnable cancellation handle
  • Add HikariCP relocation in shadow JAR to prevent conflicts
  • Update plugin.yml with compatibility range comment (1.21.1 through 26.2)
  • Update README badges to show 1.21.1+ through 26.2 support
  • Update CHANGELOG with v2.2.0 entry

Platform support: Paper 1.21.1+ / Folia 1.21.1+ / Paper 26.1.x / Paper 26.2 Java: 21 | api-version: 1.21 (maximum backward compatibility)

Комментарии

Загружаем…