LoginBonus icon

LoginBonus -----

ログインボーナスシステムを実装します。プレイヤーが累積ログイン時間を蓄積し、設定された目標時間に達すると報酬が支給されます。ストリークボーナス、ボスバーディスプレイ、各種管理者コマンドが含まれます。



Minecraft Bukkitプラグインで、ログインボーナスシステムを実装します。プレイヤーが累積ログイン時間を蓄積し、設定された目標時間に達すると報酬を与えます

このプラグインの詳細や要望/サポートなどは全てGitHubへお願いします
以下はREADMEを少し省略した写しです

機能

コア機能
  • 累積ログイン時間追跡: 各プレイヤーの累積ログイン時間を分単位で追跡します。ログイン中にリアルタイムで更新されます。
  • 報酬システム: プレイヤーが設定された目標プレイ時間に達すると、自動で報酬を付与します。インベントリが満杯の場合は地面にドロップされます。
  • ボスバーディスプレイ: 報酬が利用可能になるまでの残り時間をリアルタイムでカスタマイズ可能なボスバーで表示します。目標達成で自動的に非表示になります。
  • サーバー停止時のデータ保存: サーバー停止時にオンラインのプレイヤーのセッション時間を自動保存します。
ストリークシステム
  • デイリーストリーク: 報酬請求の連続日数を追跡します。
  • ストリークボーナス: ストリークを維持するための追加報酬(基本報酬にストリーク分加算)。
  • 特別ストリーク報酬: 特定のストリーク日数(例: 7日目、30日目)に対する設定可能な特別報酬。
  • 特別倍数報酬: ストリーク日数の倍数(例: 5日ごと、10日ごと)に対する報酬。
ストレージと同期
  • 複数のストレージオプション: YAMLファイル、SQLiteデータベース、MySQLデータベースから選択可能。
  • プレイヤーデータ同期: MySQLストレージを使用する場合、複数のサーバー間でプレイヤーデータを同期。/rewardsync コマンドで手動同期、またはプレイヤーログイン時に自動同期。
  • データ移行: /rewardmigrate コマンドでストレージタイプ間(YAML、SQLite、MySQL)のデータ移行が可能。
  • MySQLテーブル名のカスタマイズ: config.ymlでMySQLのテーブル名を変更可能。
データ管理
  • プレイヤーデータ削除:特定のプレイヤーまたは全プレイヤーのデータを削除可能。
  • 自動日付変更検知:ログイン中にリセット時刻が過ぎた場合、自動的に新しい日のトラッキングを開始。
  • 一括操作:everyone キーワードで全オンラインプレイヤーに対して一括でコマンドを実行可能。
高度な時間設定
  • カスタマイズ可能なリセット時刻:デフォルトの0時ではなく、任意の時刻(例: 朝6時、正午など)にリセット可能。
  • 設定可能なチェック間隔:リセット時刻の確認間隔を設定可能(デフォルト: 30秒)。
    • 重要: 安全のため、チェック間隔は5秒〜3600秒(1時間)の範囲に自動制限されます。
    • 5秒未満に設定した場合は自動的に5秒に調整されます。
    • 3600秒を超える場合は自動的に3600秒に調整されます。
設定
  • 設定可能な報酬: config.ymlで報酬アイテム、数量、メッセージを定義します。
  • メッセージカスタマイズ: message.ymlで全てのプラグインメッセージをカスタマイズします(50以上のメッセージ、プレースホルダーサポート付き)。
  • ボスバーカスタマイズ: ボスバーの色、スタイル、タイトルを設定します。
  • 時間設定: 目標プレイ時間、リセット時刻、チェック間隔などを設定します。
  • ストレージタイプ: config.ymlでデータストレージをYAML、SQLite、またはMySQLから選択できます。
  • MySQLテーブル名: MySQLストレージのテーブル名をカスタマイズ可能。
コマンド

プレイヤーコマンド
  • /rewardstreak
    現在のストリーク日数を確認します。
管理者コマンド(OP権限または loginbonus.admin 権限が必要)
注意: 以下のコマンドは <player> の代わりに everyone を指定することで、全オンラインプレイヤーに一括適用できます。
  • /rewardreload
    サーバーを再起動せずに設定ファイル(config.yml、playerdata.yml、message.yml)をリロードします。

  • /rewardforcegive <player|everyone>
    指定されたプレイヤーまたは全オンラインプレイヤーにプレイ時間に関係なく強制的に報酬を付与します。テストや手動報酬に便利です。
    • 例: /rewardforcegive PlayerName - 特定プレイヤーに報酬付与
    • 例: /rewardforcegive everyone - 全オンラインプレイヤーに報酬付与
  • /rewardsetstreak <player|everyone> <days>
    指定されたプレイヤーまたは全オンラインプレイヤーのストリークカウントを指定された日数に設定します。最後のストリーク日付も現在の日付に更新されます。
    • 例: /rewardsetstreak PlayerName 7 - 特定プレイヤーのストリークを7日に設定
    • 例: /rewardsetstreak everyone 10 - 全オンラインプレイヤーのストリークを10日に設定
  • /rewardresetplaytime <player|everyone>
    指定されたプレイヤーまたは全オンラインプレイヤーの累積プレイ時間を0にリセットし、ボスバーを再開始します。
    • 例: /rewardresetplaytime PlayerName - 特定プレイヤーの累積時間をリセット
    • 例: /rewardresetplaytime everyone - 全オンラインプレイヤーの累積時間をリセット
  • /rewardsync [player|everyone]
    MySQLストレージを使用している場合、プレイヤーデータをデータベースから同期します。複数のサーバー間でデータを更新する際に使用。
    • 引数なし: 自分自身のデータを同期
    • [player]指定: 指定したプレイヤーのデータを同期
    • everyone指定: 全オンラインプレイヤーのデータを同期
  • /rewardmigrate <yaml|sqlite|mysql> <yaml|sqlite|mysql>
    プレイヤーデータをストレージタイプ間で移行します。全てのプレイヤーデータが移行されます。
    • 例: /rewardmigrate yaml mysql - YAMLからMySQLへ移行
    • 例: /rewardmigrate sqlite mysql - SQLiteからMySQLへ移行
    • 例: /rewardmigrate mysql yaml - MySQLからYAMLへ移行
  • /rewarddeleteplayer <player>
    指定されたプレイヤーのデータを完全に削除します(累積時間、ストリーク、最終報酬日など)。
    • オンラインの場合はトラッキングもキャンセルされます
  • /rewarddeleteall confirm
    全てのプレイヤーデータを削除します。この操作は取り消せません。
    • 安全のため、confirmパラメータの入力が必須です
    • オンラインの全プレイヤーのトラッキングがキャンセルされます
設定ファイル

config.yml
plugins/LoginBonus/config.ymlにあります。報酬、ボスバー設定、その他のプラグインオプションを定義します。

message.yml
plugins/LoginBonus/message.ymlにあります。プラグインの全てのメッセージをカスタマイズできます。
このファイルでは50以上のメッセージが設定可能で、以下のカテゴリに分類されています:
  • 報酬関連メッセージ
  • コマンド権限・使用法メッセージ
  • 一般的なエラーメッセージ
  • 各コマンド専用メッセージ
プレースホルダーのサポート: %player%, %streak%, %days%, %count%, %from%, %to%, %type%, %error%, %old%, %new%, %command%

playerdata.yml / playerdata.db / MySQLテーブル
YAMLストレージの場合: plugins/LoginBonus/playerdata.ymlにあります。プレイヤーデータ(累積時間、ストリーク、最後の報酬)を保存します。手動で編集しないでください。

SQLiteストレージの場合: plugins/LoginBonus/playerdata.dbにあります。データベース形式でプレイヤーデータを保存します。手動編集は推奨されません。

MySQLストレージの場合: 指定されたMySQLデータベースにplayerdataテーブルが作成され、プレイヤーデータが保存されます。テーブルスキーマはUUID(主キー)、cumulative(累積時間)、lastReward(最後の報酬日)、streak(ストリーク)、lastSync(最終同期タイムスタンプ)です。

インストール
  1. プラグインのJARファイルをダウンロードします。
  2. JARをサーバーのplugins/フォルダに配置します。
  3. サーバーを再起動するか、/reloadを使用します(本番環境では推奨されません)。
  4. 必要に応じてconfig.ymlとmessage.ymlを設定します。
  5. SQLiteストレージを使用する場合、SQLite JDBCドライバがサーバーに利用可能であることを確認してください(プラグインにバンドルされています)。
  6. MySQLストレージを使用する場合、MySQLサーバーをセットアップし、config.ymlに接続情報を設定してください。MySQL JDBCドライバが利用可能であることを確認(プラグインにバンドルされています)。
  7. 設定を変更した場合、/rewardreload コマンドを使用するか、再びサーバーを再起動します。

パーミッション
  • 報酬を受け取る: 権限不要(全プレイヤーが自動的に受け取れます)
  • /rewardstreak: 権限不要(全プレイヤーが使用可能)
  • 管理者コマンド: OP権限 または loginbonus.admin が必要
    • /rewardreload - loginbonus.reload
    • /rewardforcegive - loginbonus.admin
    • /rewardsetstreak - loginbonus.admin
    • /rewardresetplaytime - loginbonus.admin
    • /rewardsync - loginbonus.admin
    • /rewardmigrate - loginbonus.admin
    • /rewarddeleteplayer - loginbonus.admin
    • /rewarddeleteall - loginbonus.admin
注意: バージョン1.3.2以降、権限名が lgb01.* から loginbonus.* に変更されました。既存の権限設定を更新してください。

最後に

結構かぶりがち?なログインボーナスプラグインを人生で初めてアップロードしてみました!良かったら使ってください!
(SpigotMCにプラグインをアップロードするが夢だったので、今回アップしてみました!が、もしかしたら更新をさぼるかもしれないので一応GitHubものぞいてみてくださいね)
Resource Information
Author:
----------
Total Downloads: 14
First Release: Nov 25, 2025
Last Update: Dec 9, 2025
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings