投票報酬の設定方法(Votifier、VotingPluginほか)
付属プラグインをインストールする、Votifierを設定して即時配布する、あるいはVotingPlugin・SuperVotes・SuperbVoteをこのサイトに接続する - このサイトが実際に必要とする値そのままで解説します。

どの報酬プラグインも、あなたに2つのことを求めます。投票があったことを知る手段と、投票があったときに実行するものです。この記事ではその両方を扱います - このサイトが公開している付属プラグイン、即時配布のためのVotifier、そしてすでにVotingPlugin、SuperVotes、他の報酬プラグインを使っている場合の対処法です。
オプションA: VoxelRankプラグイン(推奨)
付属プラグインはこのサイトのAPIと直接通信します。Votifierは不要です - 一定間隔で未受信の投票をポーリングする仕組みなので、NAT環境の裏でも動作し、サーバーが停止していた間に見逃した分も後から取りこぼしなく反映されます。Votifierも即時配布用のオプション追加機能として利用できます(オプションBを参照)。
- ダッシュボードからjarファイルをダウンロードします(ビルドが存在すれば、あなたのサーバーのカードにダウンロードボタンが表示されます)。または/download/pluginから直接ダウンロードできます。
plugins/に配置し、サーバーを一度起動します。これでplugins/VotingSite/config.ymlが生成されます。- サーバーの編集ページ→報酬と投票タブを開き、そこに表示されているAPIキーをコピーします。
config.ymlのsite.api-keyに貼り付けます(site.urlがこのサイトを指しているかも確認してください)。そのあと/votingsite reloadを実行します。config.ymlのmodeを設定して、投票をどう受け取るか決めます:poll(デフォルト) - プラグインが自分で未受信の投票を取得します。他に何もインストールする必要はありません。votifier- 投票が行われた瞬間にサイトが送信します。NuVotifierまたは他のVotifierリスナーが必要です(下記オプションB)。both- Votifierによるプッシュに加えてポーリングを保険として併用し、投票idにより重複は排除されます。
rewards.commands(必要ならmilestonesとvote-partyも)に、投票時に実行するコンソールコマンドを記入します。- テストします:
/votingsite testvote <player>は実際の投票を待たずに投票をシミュレートします。/votingsite statusはモード、APIキーが受け入れられているか、これまでに配布された投票数を表示します。
プレイヤーは自分の投票リンクと投票数を/voxelrank voteで取得します - /voteではありません。このプラグインは意図的にこのコマンドを一切占有しません(同じコマンドを取り合う2つのプラグインは、まさに報酬が気づかぬうちに壊れる典型的な原因です - config.yml内の該当する注記も参照してください)。
オプションB: NuVotifierによる即時配布
pollモードで十分満足できているなら、この節は読み飛ばしてかまいません - 必須ではありません。ポーリングによる数分の遅延が問題になる場合や、このサイト付属のものではなく専用の報酬プラグインを運用したい場合に導入してください。
NuVotifierはオリジナルVotifierの現在も活発にメンテナンスされているフォークです - オリジナルのプロジェクトは今日ではほぼメンテナンスされていないため、実質的に「Votifierをインストールする」とはNuVotifier(またはVotifierPlusのような互換フォーク)をインストールすることを意味します。
- NuVotifierのjarを
plugins/に配置し、サーバーを再起動します。Bukkit/Spigot/Paperサーバーでは後方互換性のため、従来通りのフォルダ名plugins/Votifier/が使われます - これはNuVotifier自身のフォルダであり、古いプラグインの名残ではありません - 初回起動時にその中にconfig.ymlとrsa/フォルダ内の鍵ペアを生成します。 plugins/Votifier/config.ymlから認証情報を取得します: v2トークン(推奨)はtokens:セクションのdefaultキーの下に自動生成されます - そのままコピーしてください。より古い方式を使いたい場合、v1公開鍵はplugins/Votifier/rsa/public.keyにあります。対応するprivate.keyはサーバー上の同じフォルダに保管し、決して共有しないでください。- NuVotifierが待ち受けている
port(デフォルトは8192)を確認し、ファイアウォールまたはホスティングパネルで開放されていることを確かめてください - これは通常のMinecraftポートとは別のポートで、ほとんどのホストは自動では開放しません。 - サーバーの編集ページ→報酬と投票タブで、Votifierのホスト(サーバーのアドレス)とそのポートを入力し、続いて手順2のv2トークンまたはv1公開鍵を貼り付けます。両方入力した場合は片方だけが使われます - v2が優先されます。
- そのタブ上で直接テスト投票を送信するをクリックします。これはフォームに現在入力されているホスト/ポート/鍵/トークンに実際のVotifierパケットを送信します - 事前に保存する必要はありません - そしてNuVotifierがそれを受け入れたかどうかをその場で表示します。失敗した場合は、NuVotifier自身のコンソールログ(デフォルトで
debug: true)を見れば、接続がそもそもプラグインに届いたかどうかがわかり、「鍵が間違っている」のか「ポートがブロックされている」のかを素早く切り分けられます。 - 保存したら、実際に投票して、次のポーリングを待たずに報酬がすぐに反映されることを確認します。
内部的には、v2トークンが設定されている場合、このサイトはHMAC署名付きJSONペイロードを含む標準的なVOTIFIER 2ハンドシェイクを送信し、そうでない場合は従来のRSA暗号化されたv1ブロックにフォールバックします - どのVotifier互換リスナーもすでに話している同じプロトコルであり、このサイト固有のものは何もありません。
すでにVotingPluginを使っていますか?
サーバーですでにVotingPluginが動いている場合、こちらのプラグインをインストールする必要はありません - そして、このサイトを手動で追加する必要もありません。VotingPluginにはこのサイト用にメンテナンスされているプリセットがあるからです。
ゲーム内でオペレーターとして(またはVotingPlugin.Commands.AdminVote.VotePresets権限で)以下を実行します:
/av VotePresets
VotingPluginは自身のVotingPlugin-Presetsリポジトリから最新のプリセット一覧をダウンロードし、その中から1つを選ばせてくれます - VoxelRankも含まれています - 続いてそのプリセットが必要とする値を尋ねます: 表示名、あなたの掲載ページの投票URL、投票間隔などです。あるいは、自分の投票リンクを使って直接進むこともできます:
/av VotePresets https://voxelrank.com/server/your-slug/vote
https://を含めてください。VotingPluginはホスト名から正しいプリセットを自動的に照合するので、一覧から探す必要はありません。
いずれの方法でも、VoteSites.ymlのVoteSites:の下に該当エントリを書き込むか更新します - ServiceSite、VoteURL、妥当なデフォルトの間隔、そしてサイトがまだ持っていない場合は仮の表示アイテムやお礼メッセージ - その後あなたの代わりに投票サイトを再読み込みします。ファイルにすでにある他の内容には手を加えません。既存の設定を変更する場合(新規追加ではなく)は、先にVoteSites.ymlのバックアップを取り、プレイヤーに告知する前に書き込まれた内容 - 特に報酬 - を確認してください。プリセットは出発点であって、完成した設定ではないからです。
VotingPluginは、実際に投票を受信するために独自のVotifier接続を依然として必要とします - 上記オプションBと同じNuVotifierの設定に向けてください。また、プリセットを取得するにはサーバーがGitHub(raw.githubusercontent.com)に到達できる必要があります。/av VotePresetsが利用可能なプリセットがないと報告する場合、それはサーバー側のネットワークやファイアウォールの問題であり、プリセットが欠けているわけではありません。フォールバックとして/av gui、またはVoteSites.ymlの直接編集も引き続き使えます - ServiceSiteは正確にVoxelRank.comである必要があり、実際の投票または管理者によるテスト投票のあとに/av servicesitesで確認できます。
その他の報酬プラグイン
VotingPluginより軽量なものを使っていますか? SuperVotesとSuperbVoteは、どちらも独自のvote-party機能と報酬コマンドシステムを持つ軽量なVotifierリスナーです。どちらもVotingPluginのようにサイトごとのプリセットは管理していません - 上記の報酬と投票タブにある同じVotifierホスト、ポート、v2トークン(またはv1鍵)をどちらかに設定し、他の投票と同じように報酬を設定してください。
トラブルシューティング
/votingsite testvoteで何も起こらない。 まず/votingsite statusを確認してください - APIキーが受け入れられていなければ、投票(実際もテストも)は行き場がありません。編集ページから再度コピーし、末尾に余分な空白がないか確認してください。- Votifierのプッシュが届かないが、ポーリングは機能している。 通常はAPIではなくVotifierのポートがブロックされています - ほとんどのホストはデフォルトで送信HTTP通信を許可していますが、任意の追加の受信ポートは許可していません。
mode: both(または別の報酬プラグインのリスナーを別途動かすこと)は、ファイアウォールと格闘するよりも合理的な恒久的フォールバックです。 - 報酬は発動するが、ゲーム内に何も表示されない。 報酬コマンドはコンソールで実行されるため、プレイヤーが入力したときにしか機能しないコマンド(権限なし、
opなし)は静かに失敗します。まずコンソールから正確なコマンドをテストしてください。 - VotingPluginが「invalid service site」とログに記録する、または投票が一致しない。
ServiceSiteの値は、大文字小文字を除いて1文字単位で一致していなければなりません。このサイトのドメイン名から推測するのではなく、/av servicesitesで確認してください。 /av VotePresetsが利用可能なプリセットがないと表示する、またはURLが何にも一致しない。 これは実行時にGitHubからプリセット一覧をダウンロードするため、ほぼ常にサーバー自身のネットワーク(ファイアウォール、プロキシ、DNS、またはGitHubの障害)がraw.githubusercontent.comをブロックしていることが原因であり、VoxelRankが一覧から外されたわけではありません。URLの一致にはhttps://を含む完全なアドレスも必要です。ホスト名だけでは認識されません。- 報酬と投票タブの設定が保存されていないように見える。 これは承認済み(claimed)の掲載にのみ適用されます - サーバー一覧の「承認済み」フィルターを確認してください。インポートされた未承認のスタブにはまだ所有者がいないため、報酬を設定する対象になりません。まず承認してください。
クイックアンサー
そもそもVotifierは必要ですか?
いいえ。pollモード(VoxelRankプラグインのデフォルト)は他に何もインストールせずに動作します - Votifierは投票と報酬の間の遅延を短縮するだけであり、代わりにVotingPlugin、SuperVotes、SuperbVoteを運用したい場合の唯一の入り口です。
私たちのプラグインとVotingPluginを同時に使えますか?
同じ報酬には使えません - どちらか一方だけが実際に報酬コマンドを実行するようにしてください。さもないと投票が二重に支払われる可能性があります。Votifier自体は複数のリスナーに通知できるので、これは技術的な制限ではなく「同じ報酬を二重に設定しない」というルールの問題です。
私のホストはVotifier用の追加ポートを開放させてくれません。
VoxelRankプラグインでpollモードを使ってください。これは送信リクエストしか行わないため、開放すべきものは何もありません。VotingPluginや類似の報酬プラグインにはポーリングモードに相当するものがなく、受信用のVotifierポートを必要とします。
ヘルプが必要ですか?
上記のいずれかの手順で行き詰まった、あるいはサーバーが実際に送信している内容と何かが一致しない場合は? お問い合わせください - 投票や報酬に関する質問への最も早い問い合わせ方法がそこに掲載されています。