MineStamp

管理者向けドキュメント

管理者向けのコマンドと設定

はじめに

MineStamp が利用するライブラリ (Kotlin、AWS SDK など) はプラグインの JAR に同梱されておらず、初回起動時に Paper が Maven Central から自動でダウンロードします。 絵文字フォントも同様に初回起動時にダウンロードされるため、初回起動時はインターネットに接続できる必要があります。

サーバーで公開鍵と秘密鍵を生成します。
/stamp generate keyPair を実行します。

その後、複数サーバーの場合にはこれをコピーします。 また複数サーバーの場合S3を使用するため、各サーバーのconfig.jsonにてS3の設定を行います。

管理用コマンド一覧

command: /minestamp advance <abstract stamp> [time] [size] [particle size] [accuracy]
demo: /minestamp advance :cucumber: 1 3 1.5 32
description: より高度なスタンプを生成します

command: /minestamp generate keypair
description: 秘密鍵と公開鍵を生成します

command: /minestamp publish roulette
description: ルーレット用のチケットを生成します

command: /minestamp publish unique <stamp>
demo: /minestamp publish unique :cucumber:
description: 特定のスタンプを有効化するためのチケットを生成します

command: /minestamp reload
description: 設定を再読み込みします また、画像等を追加した場合もこのコマンドを実行することで反映されます

command: /minestamp purge
description: フォント更新で描画できなくなった絵文字を、全プレイヤーデータとrandom.jsonから完全に削除します 削除された項目は deleted <playerName>: <shortCode> の形式で表示されます

コンフィグ一覧

config.json

基本的な設定です。 これは必ず各サーバーに置かれることになります。 stamp セクションはスタンプ召喚時の描画パラメータ、font セクションは絵文字スタンプに使うフォントの設定です。

{
  "type": "S3",
  "s3Config": {
    "url": "http://minio.example.com:9000/",
    "bucket" : "test",
    "accessKey" : "minio",
    "secretKey" : "minio123"
  },
  "lang": "ja_JP",
  "stamp": {
    "second": 3,
    "size": 1.8,
    "particleSize": 1.0,
    "accuracy": 32,
    "waitSecond": 5.0
  },
  "font": {
    "file": "FluentEmojiColor-CBDT.ttf",
    "url": "https://github.com/morinoparty/MineStamp/releases/download/fonts-v1/FluentEmojiColor-CBDT.ttf",
    "sha256": null
  }
}

🔤 絵文字フォント (font)

絵文字スタンプの画像は、fonts/ ディレクトリに置かれた絵文字フォントから読み込まれます。 フォントはプラグインに同梱されておらず、fonts/ に file で指定したファイルが無い場合、初回起動時に url から自動でダウンロードされます。

キー説明
filefonts/ 配下のフォントのファイル名です。パス区切り文字は使用できません。
urlファイルが存在しない場合のダウンロード元です。null の場合はダウンロードを行いません。
sha256指定した場合、ダウンロードしたファイルの SHA-256 を検証します。

対応しているのは CBDT 形式 (カラービットマップ) の絵文字フォントのみです。COLRv1 や SVG 形式のフォントは使用できません。 既定では Microsoft の Fluent Emoji を使用します。例えば Noto Color Emoji に切り替える場合は、次のように設定して /minestamp reload を実行します。

"font": {
  "file": "NotoColorEmoji.ttf",
  "url": "https://raw.githubusercontent.com/googlefonts/noto-emoji/v2.051/fonts/NotoColorEmoji.ttf"
}

インターネットに接続できないサーバーでは、フォントファイルを手動で fonts/ に配置してください。 フォントを取得・読み込みできなかった場合、絵文字スタンプは無効になりますが、画像スタンプは引き続き利用できます。

random.json

ランダムチケットを使った際の設定です。 shortCodeとそれに対応する重みを設定します。

{
  ":last-track-button:": 1,
  ":hourglass-not-done:": 1,
  ":man-cook:-light-skin-tone:": 1,
  ":man-detective:-dark-skin-tone:": 1,
  ":person:-medium-skin-tone--blond-hair:": 1,
  ":clapping-hands:-light-skin-tone:": 1,
  ":cricket-game:": 1
}

player-default.json

全プレイヤーが最初から使える既定スタンプの一覧です。 描画パラメータ (second など) は config.json の stamp セクションに移動しました。 旧フォーマットのファイルは起動時に自動で移行されます。

{
  "defaultEmoji": [
    ":cucumber:",
    ":thinking-face:",
    ":angry-face:",
    ":sleeping-face:"
  ]
}

シングルサーバー用

└── EmojiStamp/
    ├── fonts/
    │   └── FluentEmojiColor-CBDT.ttf
    ├── image/
    │   ├── picture-1.png
    │   └── picture-2.jpg
    ├── player/
    │   ├── aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa.json
    │   └── ffffffff-ffff-ffff-ffff-ffffffffffff.json
    ├── config.json
    ├── player-default.json
    ├── random.json
    ├── privateKey
    └── publicKey

Proxy用

こちらは複数サーバー用の設定です

└── EmojiStamp/
    ├── fonts/
    │   └── FluentEmojiColor-CBDT.ttf
    ├── config.json
    ├── privateKey
    └── publicKey

minio側

├── image/
│   ├── picture-1.png
│   └── picture-2.jpg
├── player/
│   ├── aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa.json
│   └── ffffffff-ffff-ffff-ffff-ffffffffffff.json
├── random.json
└── player-default.json

On this page