メインコンテンツまでスキップ

Profiles

プレイヤーごとに複数のキャラクタープロフィール。それぞれ独自のインベントリ、エンダーチェスト、XP、TypeWriter ファクトを持ちます。

プライベートv0.2.0RPG と成長
必要TypeWriter0.9.0-beta-177 (BTC build)Basic (TypeWriter extension)GUI (TypeWriter extension)MySQL (TypeWriter extension)任意Party (TypeWriter extension)任意

BornToCraft ネットワーク向けに作られた拡張機能です。参照用にドキュメント化されており、配布されていません。

概要​

Profiles は、同じアカウントで、各プレイヤーに複数の独立したキャラクターを提供します。プロファイルを切り替えると、プレイヤーのインベントリ、エンダーチェスト、経験値、体力、満腹度に加えて、TypeWriter のファクトも入れ替わるため、クエストの進行状況、アンロック、カウンターは、キャラクターごとに別々になります。BTC Sky などの他の BTC エクステンションは、独自のデータを有効なプロファイルに紐付けます。

プロファイルは、Web パネルで設計するメニューから作成し、選択します。サーバーは、プレイヤーが移動、建築、戦闘、チャットをする前に、プロファイルの選択を強制できます。データは、MySQL ブリッジが有効な場合はデータベースに保存され、ネットワーク内のすべてのサーバーでプロファイルを利用できるようになります。そうでない場合は、ファイルに保存されます。

このシステムは、サーバーのゲームモード(mysql.game-mode.current)に紐付いています。プレイヤーは、ゲームモードごとに別々のプロファイルのリストを持ちます。

機能​

  • 別々のキャラクター — プロファイルごとの、インベントリ、防具、オフハンド、エンダーチェスト、レベル、経験値、体力、満腹度、隠し満腹度。
  • 別々のストーリー状態 — TypeWriter のファクトは、切り替え時に保存され、プロファイルに対して復元されます。
  • プロファイルメニュー — プロファイルごとに 1 スロットを持つ GUI。有効、無効、空き、ロック済みのスロット用のテンプレートがあります。
  • 強制選択 — プロファイルが有効になるまで、プレイヤーは、移動、インタラクト、破壊、設置、ドロップ、戦闘、チャットができません。
  • ソロとコープ — プロファイルは、ソロまたはコープ(BTC Sky の共有アイランド)として作成され、コープのないゲームモードでは、この質問はスキップされます。
  • 上限 — デフォルトの最大数と、パーミッションごとのより高い上限。
  • 切り替えの保護 — 切り替え間のクールダウンと、他のエクステンションがキャンセルできるイベント。
  • エントリー — メニューを開く、作成、切り替え、名前の変更、削除、保存のアクション、プロファイルの状態に関するファクト、イベント。
  • サーバー間 — プロファイルとそのデータは、MySQL ブリッジを通じて共有されます。
  • プレースホルダー — メニューと HUD 用の、名前、ID、数、上限、プロファイルごとの詳細。

インストール​

  1. メニューを描画する GUI エクステンションをインストールします。Basic エクステンションは、依存関係として宣言されています。
  2. 推奨: MySQL エクステンションをインストールして、有効にします(mysql.enabled: true)。ない場合、プロファイルはファイルに保存され、サーバー間では共有されません。
  3. Profiles の JAR を plugins/Typewriter/extensions/ に配置し、サーバーを再起動します。
  4. plugins/Typewriter/mysql/config.yml の profiles セクションを編集します。設定を参照してください。Profiles は、データベースを使用しない場合でも、MySQL エクステンションの設定ファイルから設定を読み取ります。
  5. はじめにで説明しているメニューエントリーを作成します。

はじめに​

新規プレイヤーが完了しなければならない、プロファイル選択を設定します。

  1. TypeWriter の Web パネルでページを開き、Profile Menu Config エントリーを追加します。/profile は、最初に見つかったものを開き、存在しない場合は何もしません。
  2. inventoryTitle、inventoryRows、guiType を設定します。layoutPool でレイアウトを構築し、mainLayoutId を設定します。GUI ガイドを参照してください。
  3. プロファイルを表示したい場所に、buttonPrefix が profile_button:、buttonType が PROFILE_SLOT のアイテムを配置します。各マーカーは 1 つのプロファイルを表示し、左から右、上から下の順に読み取られます。プレイヤーの上限内でプロファイルがないスロットには createProfileTemplate が、上限を超えるスロットには maxProfilesTemplate が表示されます。
  4. defaultMaxProfiles を設定し、必要に応じて permissionLimits も設定します。
  5. 作成に使用する 2 つの GUI ページを、Open GUI エントリーとして、ID profile_create_chooser(ソロまたはコープの選択)と、コープのないゲームモード用の profile_create_solo で作成します。これらのページのボタンは、profile create solo または profile create coop を実行し、ソロ専用のモードでは profile create だけを実行します。
  6. plugins/Typewriter/mysql/config.yml で、profiles.force-profile-selection(デフォルトは true)と profiles.coop-supported を確認します。
  7. Publish してサーバーに参加し、プロファイルを選択または作成します。

NPC やアイテムからは、Switch Profile Action または Open Profile Menu Action を使用します。切り替えアクションや、入力したコマンドによる切り替えに反応するには、Profile Switched Event を使用します。

プロファイルでコンテンツを制限する

クライテリアで、Profile Count Fact と Is Profile Active Fact ファクトを使用します。たとえば、Can Create Profile Fact が 1 の間だけ、「プロファイルを作成」ボタンを表示します。

仕組み​

切り替え時に、エクステンションはクールダウンを確認し、その後、キャンセル可能な切り替え前イベントを発火して、ゲームモードが拒否できるようにします(たとえば、戦争中やミニゲーム中)。次に、プレイヤーの現在の状態をキャプチャしてリポジトリに書き込み、プレイヤーの TypeWriter のファクトとインベントリをクリアして、対象のプロファイルのデータを復元します。有効なプロファイルの状態は、プレイヤーが退出するときにも保存されます。

保存される内容は、設定によって決まります。インベントリとエンダーチェスト(save-inventory、save-ender-chest)と、Minecraft の統計(save-statistics、サイズが大きいためデフォルトではオフ)です。レベル、経験値、体力、満腹度、TypeWriter のファクトは、常に保存されます。

ファクトが入れ替わるため、ファクトに保存されたものはすべて、プロファイルに属します。他のエクステンションのデータは、MySQL の設定にある、それぞれの profile-mode に従います。per-profile のデータはプロファイルごとに別々に保持され、shared のデータはすべてのプロファイルで共通です。

設定​

Profiles には、独自の設定ファイルはありません。設定は、MySQL エクステンションが作成する plugins/Typewriter/mysql/config.yml の、profiles セクションにあります。

キー同梱ファイルでのデフォルト意味
profiles.enabledtrueプロファイルシステムをオンにします。
profiles.max-profiles2Profile Menu Config エントリーがない場合の、プレイヤーごとの最大プロファイル数。エントリーの defaultMaxProfiles がこれを置き換えます。
profiles.default-profile-namePrincipal自動作成されるプロファイルの名前。
profiles.save-statisticstrueMinecraft の統計をプロファイルごとに保存します。大量のストレージを使用します。
profiles.save-inventorytrueインベントリをプロファイルごとに入れ替えます。
profiles.save-ender-chesttrueエンダーチェストをプロファイルごとに入れ替えます。
profiles.require-permissionfalseプロファイルの作成に typewriter.profiles.create を必須にします。
profiles.auto-create-defaulttrue最初の参加時に、デフォルトのプロファイルを作成します。coop-supported が false の場合にのみ機能します。
profiles.force-profile-selectiontrueプロファイルが有効になるまで、プレイヤーをブロックします。
profiles.switch-cooldown-seconds60プレイヤーの 2 回の切り替えの間の最小遅延。0 で無効になります。
profiles.coop-supportedtrueこのゲームモードにコープのプロファイルがあるかどうか。false の場合、ソロかコープかの質問はスキップされ、すべてのプロファイルがソロになります。
profiles.creation-menu-entry-id空プロファイルを作成するために開かれる GUI ページの ID。空の場合は、コープが対応しているときは profile_create_chooser、そうでなければ profile_create_solo になります。

上記の値は、同梱ファイルのものです。キーがない場合の組み込みのフォールバックは異なる(max-profiles は 5、save-statistics は true、auto-create-default は false)ため、ファイルにはキーを残してください。

ストレージ。 mysql.enabled: true かつ profiles.enabled: true の場合、プロファイルはテーブル typewriter_profiles に保存されます。そうでない場合は、アセットとして profiles/<game mode>/<player uuid>.json に保存されます。古い Profile Storage Artifact アーティファクトに保存されていたプロファイルは、起動時に自動的に新しいストレージにコピーされます。

メニュー​

Profile Menu Config エントリーが、メニューを記述します。プロファイルをクリックするとそのプロファイルに切り替わり、Shift + 左クリックで削除され(deleteConfirmation がオフでない限り、先に確認画面が開きます)、空きスロットをクリックすると作成ページが開きます。プロファイルを作成するときは、金床で名前を入力します。タイトル、名前、ロアでは、{profile_name}、{profile_id}、{created_date}、{last_used}、{level}、{exp}、{health}、{food}、{profile_count}、{max_profiles} を使用できます。

buttonPrefix が profile_button: のボタンアイテムは、PROFILE_SLOT(1 つのプロファイル)と、マーカーの INFO と CLOSE に対応します。後者は、それぞれ profile info と gui:close を実行します。

スロットは、クリックしたプレイヤーとして、profile open、profile select <id>、profile create solo|coop、profile delete <id> を実行できます。

言語

メニューのデフォルトのテキスト、メッセージ、クールダウンのメッセージは、フランス語です。メニューエントリーで変更してください。

コマンド​

すべてのコマンドに profiles.use が必要です。エイリアス: /profil、/profiles。

コマンド説明
/profileプロファイルメニューを開きます。
/profile menuプロファイルメニューを開きます。
/profile select <id>プロファイルに切り替えます。
/profile create solo または coopプロファイルを作成して有効にします。名前は金床で入力します。モードを指定しない場合は、コープのないゲームモードのみ。
/profile delete <id> [confirm]有効でないプロファイルを削除します。deleteConfirmation がオンの場合、confirm を付けない限り、先に確認画面が開きます。
/profile admin list <player>オンラインのプレイヤーのプロファイルを一覧表示します(profiles.admin が必要)。
/profile admin create <player> <name>プレイヤーのソロプロファイルを作成します。
/profile admin delete <player> <id>プレイヤーのプロファイルを削除します。
/profile admin switch <player> <id>プレイヤーをプロファイルに切り替えます。
/profile admin rename <player> <id> <name>プロファイルの名前を変更します。
/profile headless list, select <id>, create <name>メニューなしで、自分のプロファイルを管理します(profiles.headless が必要)。
ゲーム内でのコマンドの横取り

メニューリスナーは、プレイヤーが入力した /profile を、コマンドツリーより先に処理します。select、create、delete、メニューを開く操作に対応し、それ以外は無視します。そのため、/profile admin ... と /profile headless ... は、コンソールから、または /profil と /profiles のエイリアスを通じて、確実に動作します。

パーミッション​

パーミッションデフォルト許可される内容
profiles.use全員/profile コマンド。
profiles.adminオペレーター/profile admin。
profiles.headless誰にもなしテストボットのような、画面のないクライアント向けの /profile headless。
profiles.switch.bypasscooldown誰にもなしクールダウンなしで切り替えます。
typewriter.profiles.create誰にもなしprofiles.require-permission が true の場合に、プロファイルを作成します。
permissionLimits のパーミッション自分で決定プロファイルの上限を引き上げます。最も高い上限が優先されます。

プレースホルダー​

MiniMessage テキスト用の MiniPlaceholders のタグです。参照は、リスト内の位置(数字、0 から)またはプロファイル ID です。

プレースホルダー戻り値
<profile_active_id>, <profile_active_name>有効なプロファイルの ID と名前。
<profile_active>プロファイルが有効な場合は 1。参照を付けた <profile_active:0> は、そのプロファイルが有効なものかどうかを示します。
<profile_count>プロファイルの数。
<profile_max>プレイヤーの最大プロファイル数。
<profile_can_create>プレイヤーがもう 1 つプロファイルを作成できる場合は 1。
<profile_remaining>作成可能な残りのプロファイル数。
<profile_friend_count>フレンドの数。Friend エクステンションがない場合は 0。
<profile_enabled>システムがオンの場合は 1。
<profile_name:ref>, <profile_id:ref>プロファイルの名前と ID。
<profile_created:ref>, <profile_last_used:ref>dd/MM/yyyy HH:mm 形式の日付。
<profile_created_timestamp:ref>, <profile_last_used_timestamp:ref>エポックミリ秒。
<profile_level:ref>, <profile_exp:ref>レベルと、パーセンテージで表した経験値の進行状況。
<profile_health:ref>, <profile_food:ref>保存された体力と満腹度。

エントリー​

20 件のエントリー(拡張機能のソースから生成)。

アクション6
イベント5
ファクト7
アーティファクト1
マニフェスト1

トラブルシューティング​

/profile が何も起こさない。 Profile Menu Config エントリーがありません。作成して Publish してください。

新規プレイヤーが動けず、チャットもできない。 profiles.force-profile-selection が true で、有効なプロファイルがありません。プレイヤーは参加後に作成ページへ移動されます。GUI エントリー profile_create_chooser(または profile_create_solo、あるいは creation-menu-entry-id)が存在することを確認してください。ロックを無効にするには、このオプションを false にします。

"Choisissez d'abord Solo ou Coop dans le menu des profils." 強制中のプレイヤーが、コマンドを試みました。プロファイルが有効になるまで、/profile ... と作成ページのコマンドだけが許可されます。

"Vous devez attendre N s avant de changer à nouveau de profil." 切り替えのクールダウンが進行中です。profiles.switch-cooldown-seconds を下げるか、profiles.switch.bypasscooldown を付与してください。

最初の参加時に、デフォルトのプロファイルが作成されない。 auto-create-default が機能するのは、coop-supported が false の場合のみです。コープがある場合、プレイヤーはソロかコープを選ぶ必要があり、ログに "No implicit profile was created; disable the setting." と表示されます。

サーバー間でプロファイルが異なる。 すべてのサーバーで、同じデータベースとゲームモードで、MySQL エクステンションが有効(mysql.enabled: true)になっている必要があります。ない場合、プロファイルはローカルのファイルにあります。MySQL が有効でもデータソースがない場合、ログに "MySQL enabled for profiles but DataSource not found. Falling back to JSON." と表示されます。

切り替え後にプレイヤーがアイテムを失う。 save-inventory と save-ender-chest を確認してください。これらが false の場合、インベントリは入れ替えられず、クリアもされないため、アイテムはプロファイル間で共有されます。

切り替えがメッセージ付きで拒否される。 たとえば戦闘中やミニゲーム中に、他のエクステンションが、切り替え前イベントを通じてキャンセルしました。メッセージは、そのエクステンションが出したものです。

関連エクステンション​

  • MySQL — Profiles が読み取る、ストレージ、ゲームモード、設定。
  • GUI — プロファイルメニューの、レイアウトとビュー。
  • BTC Sky — プロファイルに紐付く、コープアイランドとアイランドデータ。
  • Party と Friend — 有効なプロファイルに追従する、ソーシャル機能。