---
# System prepended metadata

title: '福舞鯖試験 #11'

---

# 福舞鯖試験 #11

## 1. 開発環境
### Java 17
JDKは以下の中から選択してください
- Adopt OpenJDK
- Amazon Corretto
- Azul Zulu
- BellSoft Liberica JDK
- Eclipse Temurin
- Microsoft Build of OpenJDK
- Oracle JDK
- Oracle OpenJDK
- Red Hat OpenJDK
- SapMachine

### その他
Jetbrains IntelliJ IDEA 2023.3以降
Paper 1.20.4
(JVM言語以外の言語を使用する場合には指定はございませんが、使用する旨をお伝えください)


## 2. プログラムを書く上での注意事項

1. コメント・JavaDoc書くこと。
2. デバッグをしっかり行うこと。


## 3. 提出方法
GitHubにプライベートでアップロードし、コラボレーターとして当方の運営を追加してください。

## 4.注意事項

1. 本試験で作成したプログラムの仕様書・著作権は福舞鯖が所有します。
2. プラグインの提出が早いほど評価はあがりますが、バグが多い場合は評価が下がります。そのため、デバッグは慎重に行ってください。
3. 質問等はお気軽にどうぞ！質問をたくさんしたからと言って評価が下がることはありません。
4. 完成させられない場合は出来る限り開発を行い残りの部分はどのような処理を書けば良いのかを纏めたドキュメントを作成し、提出してください。


## 5.仕様
今回はWebで動画を視聴し、視聴が完了したらサーバー内でアイテムを受け取るシステムを構築していただきます。
Webのフロントエンド・バックエンドの処理には何を使用していただいても構いません。
また、Webページの配信サーバーはApacheやnginxなどを使用しても構いません。
Spigot/Paper以外のソフトウェアを起動させる場合は全てdocker-composeによって起動できるように構築してください。

詳しい仕様は以下の通りです。
### コマンド
/reward ad
→動画を見ることのできるURLを表示する

/reward stats
→今までの受け取った報酬の記録を表示

### 動画URL
動画を見ることのできるURLを開くと3秒後にYouTube動画の再生が開始されます。
なお、ここで表示される動画はその日(JSTで0時～24時)に見る回数によって異なります。

1~5回目：動画A(https://youtu.be/q4MEEIxq9o4)
それ以降：動画B(https://youtu.be/1Rf_p8ETgJM)

動画Aの視聴が終わったことを検知したらSpigot/Paperプラグインへ信号が送られ、視聴したプレイヤーにアイテムが渡されます。(動画Bの場合はアイテムは渡されません。)
ここで渡されるアイテムはコンフィグで設定可能なものとし、デフォルトではダイアモンド5個とします。

### 報酬の記録
/reward statsコマンドで表示される内容は以下のものです。
1. 今日動画を見た回数
2. 今までに動画を見た回数(動画Aのみ)
3. 連続で何日見たか

以上