▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/Daily Rewards
Daily Rewards

Daily Rewards

A dependency-free daily reward plugin. Players run /daily (or get it on login) to claim a weighted-random reward once per day. Rewards give items and/or run console commands, so money, keys and ranks route through your existing plugins. No Vault.

Оцените первым
17
0

DailyRewards

A dependency-FREE daily reward plugin. Players run /daily to claim, once per cooldown, a reward picked from a configured pool. Rewards grant items and/or run console commands, so money, crate keys, ranks, and anything else are handed out through whatever other plugin you already run - without DailyRewards depending on Vault or any economy library.

The point: an old daily-reward plugin died when a runtime dependency rotted. This one has zero external/runtime dependencies - it uses only the Bukkit API. Nothing to break.

What it does

  • /daily claims a reward once per cooldown (default 24 hours).
  • The reward is chosen by weighted-random (default), random, or all.
  • Each reward can give items, run console commands (with a {player} placeholder), and show a message - any combination.
  • Cooldowns persist per player UUID in cooldowns.yml across restarts.
  • If a player's inventory is full, overflow items are dropped at their feet (configurable to deny instead).

Why no economy dependency

Instead of calling Vault or an economy API at compile time, reward entries can list console commands. Want to pay 500 coins? Add "eco give {player} 500" to that reward's commands. Want to give a crate key? "crate give {player} vote 1". DailyRewards just dispatches the command as the console - it does not know or care which plugin handles it, and it will not fail to load if that plugin is missing (the command simply errors in console and is logged).

Commands

All under /daily (aliases: /dailyreward, /dailyrewards).

CommandDescription
/dailyClaim your daily reward.
/daily give <player> [--force]Make a player claim. Runnable from console and command blocks. --force bypasses the cooldown (and does NOT consume the player's real timer).
/daily reloadReload config.yml.
/daily reset <player>Clear a player's cooldown.

Tab-completion covers subcommands, online player names, and --force.

Console and automation

/daily give <player> is built to run from the server console and from command blocks, so a scheduler or a returning Geyser setup can hand out rewards. The target player must be online (items and {player} commands need a live player). --force skips the cooldown check.

Bedrock players via Geyser just run /daily like everyone else - there is no special handling.

Permissions

PermissionDefaultGrants
dailyrewards.usetrueClaim with /daily.
dailyrewards.adminopgive, reload, reset (includes dailyrewards.use).

The console always passes permission checks, so give/reload/reset work from console and command blocks out of the box.

Configuration (config.yml)

KeyDefaultMeaning
cooldown-seconds86400Seconds between claims per player.
reward-modeweighted-randomweighted-random, random, or all.
overflowdropdrop overflow at the player's feet, or deny (skip) it.
rewards(sample pool)The reward pool - see below.
messages.*(defaults)All player-facing strings.

A reward entry

rewards:
  - id: rare-gem          # identifier (used in logs)
    weight: 9             # selection weight for weighted-random (higher = likelier)
    items:                # optional list of items to give
      - material: DIAMOND # Bukkit material name; invalid names are logged + skipped
        amount: 2
        name: "&bLucky Diamond"   # optional, supports & colour codes
        lore:                     # optional
          - "&7A rare find."
    commands:             # optional console commands; {player} = claimer's name
      - "say {player} found a gem!"
    message: "&bDaily reward: a rare gem!"   # optional chat line

weight is only used by weighted-random. A single-entry pool always returns that entry; if all weights are 0 the plugin falls back to a uniform pick so the pool still pays out.

Messages

Supports & colour codes. Placeholders: {time} (human-readable remaining cooldown like 5h 12m 3s) and {player}.

prefix, cooldown, claimed, no-reward, overflow-dropped, overflow-denied.

Compatibility

Paper / Spigot / Bukkit / Purpur, Minecraft 1.21.1-1.21.11. One jar, built against the 1.21.1 API (Java 21, class 65), load-tested on Paper 1.21.11; no Paper-only classes, no NMS, no dependencies.

Known gaps / honesty

  • Not playtested in a live client/server - there is no Minecraft client in this build environment. The plugin compiles cleanly, the jar bundles a valid plugin.yml (version 1.0.0), and every class is Java-21 bytecode (class 65), but in-game behaviour has not been verified by hand.
  • /daily give and the item grant require the target to be online. There is no queued/offline delivery - an offline target is reported, not queued.
  • /daily reset resolves offline players via the server's offline-player cache, which only knows players who have joined before.
  • Reward console commands are fire-and-forget; DailyRewards does not check whether the downstream plugin actually succeeded (it only catches and logs exceptions). This is by design to keep it dependency-free.

Original concept by u/DiamondKing1437 on Reddit (r/Minecraft). Built by BeansNToast.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

1.21.x

Платформы

Поддерживаемые окружения

Сервер

Ссылки


Создатели

Детали

Лицензия:
Опубликован:2 недели назад
Обновлён:2 недели назад
Главная