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

Protection

フラグとリージョンイベントを備えた非推奨のリージョンエンジン。新規プロジェクトでは公式の Region 拡張機能を使用してください。

無料非推奨v1.3ワールドと建築
この拡張機能は非推奨で、今後新機能は追加されません。代わりに Region (official TypeWriter extension) を使用してください。

概要​

非推奨

Protection は非推奨です。新機能は追加されず、v1.3 が最後の互換性リリースです。新しいプロジェクトでは、TypeWriter の公式 Region 拡張機能を使ってください。ドキュメントは docs.typewritermc.com にあります。このページは、すでに Protection を運用しているサーバーのために残されています。

Protection を使うと、TypeWriter の Web パネルでリージョンを定義し、フラグと呼ばれるルールを与えられます。リージョンは、アーティファクトに保存された直方体またはポリゴンの角柱で、優先度、オーナー、メンバー、任意の親リージョン、そして build、pvp、mob-spawning などのフラグのリストを持ちます。プレイヤーがリージョン内で行動すると、拡張機能はフラグに従って、その行動をキャンセルまたは変更します。

リージョンは TypeWriter のオブジェクトでもあります。プレイヤーがリージョンに入ったとき、または出たときにシーケンスを開始したり、リージョンでオーディエンスを絞り込んだり、リージョンでプレイヤーをグルーピングしたり、プレイヤーが内部にいるかを示すファクトを読み取ったり、BlueMap のマップ上にリージョンを表示したりできます。

機能​

  • 直方体とポリゴンのリージョン — ゲーム内でツールバーを使ってリージョンを描くか、WorldEdit の選択範囲をインポートします。
  • ワールド全体のリージョン — グローバルアーティファクトで、2 つの高さの間のワールド全体をカバーします。
  • 重なりと優先度 — リージョンは重なることができ、優先度が高いものから順に評価されます。
  • 親リージョン — 子リージョンは、親のフラグ、オーナー、メンバーを継承します。
  • 豊富なフラグ — 建築、戦闘、爆発、環境、移動、チャットをカバーする 99 個のフラグキー。
  • オーナーとメンバー — これらのプレイヤーは、自分のリージョン内で制限されることがありません。
  • リージョンイベント — 出入りのイベント、オーディエンスフィルター、グループ、ファクト。
  • 調査ツール — /typewriter protection inspect、info、flags で、今立っている場所に適用されているフラグを確認できます。
  • BlueMap のマーカー — 独自の色で、BlueMap 上にリージョンを表示します。
  • PlaceholderAPI — プレイヤーの周囲のリージョンとそのフラグの値を読み取ります。

インストール​

  1. TypeWriter がすでに必要としている PacketEvents をインストールします。
  2. 任意: /typewriter protection import-we で選択範囲をインポートするには、WorldEdit または FastAsyncWorldEdit をインストールします。
  3. 任意: mob-spawning フラグを Mythic のモブにも適用するために MythicMobs を、リージョンをマップ上に表示するために BlueMap をインストールします。
  4. 任意: プレースホルダーのために PlaceholderAPI をインストールします。
  5. Protection の JAR を plugins/Typewriter/extensions/ に置き、サーバーを再起動します。

はじめに​

スポーン地点のエリアを、建築と PvP から保護する手順です。

  1. TypeWriter の Web パネルで manifest ページを開き、Protection Region Artifact を追加します。artifactId は生成されたままにしておきます。リージョンの形状が保存されます。
  2. Protection Region Definition を追加し、artifact にアーティファクトをリンクします。priority(例: 10)を設定します。
  3. flags に、キーが build で、真偽値が false のフラグを追加します。pvp も同じように追加します。false の真偽値フラグは、その行動を拒否します。
  4. ページをパブリッシュします。
  5. ゲーム内で /typewriter protection edit <definition> を実行します。ホットバーにツールバーが現れます。ブレイズロッドは見ているブロックに点を追加し、レッドストーンは最後の点を削除し、コンパスは直方体モードとポリゴンモードを切り替え、ライムの染料は選択を適用し、バリアはキャンセルします。直方体の場合は、対角の 2 つの角を追加して適用します。
  6. そのエリアに入って、ブロックを壊してみます。/typewriter protection inspect で、何が適用されているかを確認できます。
WorldEdit の選択範囲をインポートする

WorldEdit で選択範囲を作り、/typewriter protection import-we <definition> を実行します。選択範囲が点に変換され、それを適用できます。

オーナーとメンバー

リージョンのオーナーとメンバー、そして typewriter.protection.bypass を持つプレイヤーは、そのリージョンのすべてのフラグを無視します。リストに載っていないプレイヤー、かつバイパス権限を持つオペレーターではないプレイヤーでテストしてください。

仕組み​

リージョンは、その定義エントリが存在し、パブリッシュされている間だけ存在します。形状はアーティファクトに保存され、それ以外のすべては定義が保持します。

重なり。 複数のリージョンが同じ点を含むことがあります。それらは、priority が高いものから低いものへと順にチェックされます。真偽値フラグでは、1 つの false フラグだけで行動が拒否されます。build が true のリージョンは、優先度の低いリージョンによる拒否を取り消しません。何かを変更するフラグ(メッセージ、アクション、テレポート)は、それを定義した最初のリージョンによって適用されます。

継承。 parentRegion を持つリージョンは、その親のフラグも評価します。親のオーナーとメンバーは、子に追加されます。子は自身の priority を使い、自身の値が 0 の場合は親の値を使います。

リージョンの境界。 出入りは、プレイヤーが別のブロックに移動したとき、またはテレポートしたときに検出されます。リージョンの内部で参加したプレイヤーは、最初に動いたブロックで入場イベントを発生させます。

設定​

メッセージと調査。 Protection Settings エントリを 1 つ追加すると、拒否された行動の表示方法を変更できます。チャット、アクションバー、ボスバー、MiniMessage のテンプレート({reason}、{reason_line}、{region}、{flag})、調査モードの更新間隔(inspectRefreshTicks、最低 5 ティック)、そして messages のコマンドメッセージの文章です。このエントリがない場合は、デフォルトが使われます。最初に見つかったエントリだけが読み取られます。

BlueMap。 リージョン定義で bluemapSettings.enabled をオンにすると、BlueMap にリージョンが描画されます。マーカーセット、線と塗りの色、ラベル({name}、{id}、{priority})、マーカーを押し出すか平面にするかを選べます。リージョンは、BlueMap の起動時と、リージョンが変更されるたびに同期されます。

オーナーとメンバー。 owners と members には、プレイヤーの UUID が入ります。addowner と addmember コマンドは、プレイヤー名を受け付け、そのプレイヤーがサーバーに認識されている場合は UUID を保存します。

フラグ​

フラグは、リージョン定義の flags リストに追加します。各フラグは、キーと型付きの値を持ちます。ほとんどのフラグは真偽値で、false の値はその行動を拒否します。以下のフラグキーは、Web パネルとコマンドで使われるものです。

建築とインタラクション​

フラグfalse の値の効果
buildブロックの破壊と設置をキャンセルします。block-break と block-place より先にチェックされます。
block-break, block-placeブロックの破壊または設置をキャンセルします。
useドア、ボタン、レバー、フェンスゲート、トラップドア、看板、チェスト、樽、シュルカーボックス、かまど、金床、作業台などのステーション、レッドストーン部品、その他同様のブロックに対する右クリックをキャンセルします。
interact空中でのクリックを含む、すべてのプレイヤーのインタラクションをキャンセルします。注意して使ってください。
chest-accessコンテナ(チェスト、樽、シュルカーボックス、ホッパー、ディスペンサー、ドロッパー、かまど、醸造台)を開くことをキャンセルします。
sleepベッドの使用をキャンセルします。
lighter火打石と打ち金、火の玉の使用をキャンセルします。
vehicle-place, vehicle-destroyトロッコとボートの設置、またはプレイヤーが乗り物を破壊することをキャンセルします。
entity-painting-destroyプレイヤーが絵画と額縁を壊すことをキャンセルします。
crop-trampling農地が踏み荒らされることをキャンセルします。
pistonsピストンがブロックをリージョンの内外へ動かすことをキャンセルします。
item-pickup, item-dropアイテムの拾得またはドロップをキャンセルします。

戦闘とモブ​

フラグfalse の値の効果
pvpプレイヤー同士のダメージをキャンセルします。
mob-damageプレイヤー以外のエンティティによる、プレイヤーへのダメージをキャンセルします。
damage-animalsプレイヤーが動物を攻撃することをキャンセルします。
tnt-damage, firework-damageTNT と爆発性のトロッコ、または花火によるダメージをキャンセルします。
mob-spawning理由を問わず、生物のスポーンをキャンセルします。MythicMobs がインストールされている場合は、MythicMobs にも適用されます。
btcmob-spawning, btcmob-damageBTC Mobs がインストールされている場合の、BTC Mobs の生物に対する同様の効果。
exp-dropsリージョン内で倒されたモブは、経験値をドロップしません。
potion-splashスプラッシュポーションがリージョンに着弾することをキャンセルします。

爆発と環境​

フラグfalse の値の効果
creeper-explosion, tntクリーパーの爆発、または TNT、TNT 付きトロッコ、リスポーンアンカーの爆発をキャンセルします。
ghast-fireball火の玉、ウィザースカル、ドラゴンの火の玉、ウィンドチャージの爆発をキャンセルします。
fire-spread火の延焼、ブロックの燃焼、溶岩や雷以外による着火をキャンセルします。
lava-fire, lightning溶岩による着火、および落雷と、それによる着火をキャンセルします。
lava-flow, water-flow溶岩または水がリージョンに流れ込むことをキャンセルします。
ice-melt, snow-melt氷または雪が溶けることをキャンセルします。
ice-form, snow-fall氷または雪が形成されることをキャンセルします。
frostwalker氷渡りによる氷の生成をキャンセルします。
leaf-decay, grass-growth, vine-growth葉の枯れ、草・菌糸・土の道・キノコの拡散、ツタの成長をキャンセルします。
enderman-grief, ravager-griefエンダーマンとラヴェジャーによるブロックの変更をキャンセルします。
chunk-unloadtrue の値は、リージョンのチャンクを強制ロードしたままにします。

移動​

フラグ値効果
entry, exit真偽値false の値は、リージョンへの出入りをブロックします。ブロックされたプレイヤーには、deniedEntry メッセージが表示されます。
entry-deny-action, exit-deny-actionアクションプレイヤーが出入りしたとき、および出入りが拒否されたときに、プレイヤーに対して実行される TypeWriter のアクション。通常のロジックには、入場と退場のイベントエントリを使ってください。
ender-pearl真偽値false の値は、リージョンへのエンダーパールによるテレポートをキャンセルします。
fall-damage真偽値false の値は、落下ダメージをキャンセルします。
fly真偽値false の値は、リージョン内のプレイヤーの飛行をオフにします。
walk-speed, fly-speed数値内部にいるプレイヤーの歩行速度または飛行速度を、0 から 1 の間で設定します。Bukkit のスケールで、0.2 が通常の歩行速度、0.1 が通常の飛行速度です。外に出るとデフォルトに戻ります。
glideテキストdeny はエリトラでの滑空と飛行の切り替えを止めます。allow と default は何もしません。
join-location位置リージョン内でログインまたはリスポーンしたプレイヤーは、この位置に移動されます。

プレイヤーの状態、チャット、コマンド​

フラグ値効果
hunger真偽値false の値は、空腹度の減少を止めます。
heal-amount, heal-min-health, heal-max-health数値最小体力と最大体力の間で、リージョン内のプレイヤーを、毎秒 heal-amount 体力ポイントずつ回復します。ダメージを受けると、回復は 5 秒間停止します。
item-durability真偽値true の値は、ツール、武器、防具の耐久値の減少を止めます。
send-chat, receive-chat真偽値false の値は、リージョンから送信されるメッセージ、またはリージョン内で受信するメッセージをブロックします。
chat-prefix, chat-suffixテキストリージョンから送信されるチャットメッセージの前後に、テキストを追加します。
blocked-cmds, allowed-cmdsリストブロックされる、または常に許可されるコマンド名(スラッシュなし)。* はすべてのコマンドをブロックします。allowed-cmds が優先されます。
worldedit真偽値true の値は、リージョン内のプレイヤーに対する WorldEdit のコマンドをブロックします。

この拡張機能では適用されないもの​

次のフラグはリージョンに追加できますが、Protection 内にそれらに対して動作するものはありません。passthrough、teleport、godmode、nether-portals、entry-min-level、entry-max-level、permit-completely、mobtrap-use、blocked-effects、heal-delay、biome(バイオームは変更されません)、そして RPG 系のフラグ mana-regen、mana-drain、double-drop、grappling-hook、fishing、alchemy、enchanting-override、elytra-auto-switch、ground-item-glow、pistol、corruption、auction、backpack、wardrobe、profession、experience、gathering、resin です。

keep-inventory、keep-exp、invincible も、通常のプレイヤーには効果がありません。オーナー、メンバー、バイパス権限を持つプレイヤーにだけ作用します。

コマンド​

すべてのコマンドは /typewriter(エイリアス /tw)のサブコマンドです。たとえば /typewriter protection list です。プレイヤーだけが使用でき、typewriter.protection が必要です。admin と記されたコマンドには typewriter.protection.admin が必要です。

コマンド説明
/typewriter protection list読み込まれているリージョンを、優先度の高い順に一覧表示します。
/typewriter protection edit <definition>ホットバーのツールバーを使って、ゲーム内でリージョンの描画を開始します。グローバルアーティファクトの場合は、アーティファクトの値がすぐに適用されます。
/typewriter protection apply現在の選択範囲を保存します。
/typewriter protection cancel現在の選択範囲をキャンセルします。
/typewriter protection remove <1-16>現在の選択範囲の点を 1 つ削除します。
/typewriter protection import-we <definition>WorldEdit の選択範囲を、リージョンの点としてインポートします。
/typewriter protection info <region>リージョンの形状、優先度、オーナー、メンバー、フラグを表示します。
/typewriter protection flags <region>どのフラグが有効、継承、上書き、または継承によってブロックされているかを表示します。
/typewriter protection inspect今立っている場所のリージョンとフラグを、アクションバーとボスバーでライブ表示するかを切り替えます。
/typewriter protection teleport <region>リージョンの中心(グローバルリージョンの場合はワールドのスポーン地点)にテレポートします。
/typewriter protection wandProtection Wand という名前の棒を渡します。このリリースでは、これに反応するものはありません。
/typewriter protection setflag <region> <flag> <value>(admin)メモリ上のフラグを変更します。
/typewriter protection clearflag <region> <flag>(admin)メモリ上のフラグを消去します。
/typewriter protection addowner|removeowner|addmember|removemember <region> <player>(admin)メモリ上のオーナーまたはメンバーを変更します。
/typewriter protection delete <region>(admin)メモリからリージョンを削除します。
/typewriter protection reload(admin)パブリッシュ済みのエントリから、リージョンを再読み込みします。
/typewriter protection migrate-from-worldguard(admin)WorldGuard のリージョンの直方体の範囲を、試験的にインポートします。アーティファクトの識別と移行のページを参照してください。
メモリ上のコマンド

setflag、clearflag、addowner、removeowner、addmember、removemember、delete は、エントリには書き込まれません。読み込まれているコピーを変更するだけで、再読み込みや再起動で変更は失われます。ほとんどのフラグはリージョン定義エントリから適用されるため、setflag では、build、pvp、その他ほとんどのフラグの動作は変わりません。フラグは Web パネルで編集し、パブリッシュしてください。

権限​

権限許可される内容
typewriter.protectionadmin 専用ではない /typewriter protection コマンド。
typewriter.protection.adminadmin コマンド: フラグ、オーナー、メンバー、削除、再読み込み、WorldGuard からの移行。
typewriter.protection.bypassすべてのリージョンで、すべてのフラグを無視します。

プレースホルダー​

PlaceholderAPI のプレースホルダーは、%typewriter_regions:<path>% の形式です。プレイヤーの位置にあるリージョンを、優先度順に並べて読み取ります。primary は、その最初のものです。

プレースホルダー返す値
%typewriter_regions:count%プレイヤーを含むリージョンの数。
%typewriter_regions:list%, %typewriter_regions:list_names%それらのリージョンの ID または名前(カンマ区切り)。
%typewriter_regions:stack%各リージョンの優先度と名前(| 区切り)。
%typewriter_regions:has:<id1>,<id2>%プレイヤーが、列挙されたリージョンのいずれかにいれば true。
%typewriter_regions:primary%最も優先度の高いリージョンの名前。他のフィールドを得るには、:id、:name、:priority、:overlap_count、:parent、:parent_name、:owner_count、:member_count、:is_global、:depth、:path を追加します。
%typewriter_regions:active:<n>%スタックの n 番目(1 から開始)のリージョンの、同じフィールド。例: %typewriter_regions:active:2:id%。
%typewriter_regions:flag:<flag>%プライマリリージョンにおけるフラグの値。出所を知るには、:state、:source、:source_name を追加します。
%typewriter_regions:by_id:<region>:<field>%指定したリージョンのフィールド。例: %typewriter_regions:by_id:spawn:priority%。
%typewriter_regions:exists:<region>%リージョンが存在すれば true。
%typewriter_regions:nearest%最小の角がプレイヤーに最も近いリージョン。同じフィールドが利用できます。
%typewriter_regions:can_build%, %typewriter_regions:can_interact%優先度順で、build(または interact)を設定している最初のリージョンがそれを false にしている場合は false、それ以外は true。

Region への移行​

Protection には新機能が追加されないため、TypeWriter の公式 Region 拡張機能(ドキュメントは docs.typewritermc.com)への移行を計画してください。このページでは Region について説明しません。Region 自身のドキュメントに従ってください。

Protection には、リージョンを Region に変換するツールはありません。一般的な手順は次のとおりです。

  1. /typewriter protection list でリージョンを一覧表示し、それぞれについて、形状、優先度、親、オーナーとメンバー、フラグ(/typewriter protection info <region>)を控えます。
  2. 新しい拡張機能で各リージョンを再作成し、各フラグを、そちらの同等の設定に対応付けます。Protection のフラグには適用されないものもある(上記参照)ため、不要なものもあるかもしれません。
  3. サーバーのコピーで、オーナー、メンバー、バイパス権限の保持者ではないプレイヤーを使ってテストします。
  4. 新しいリージョンが期待どおりに動作したら、Protection のエントリと JAR を削除します。その前に、TypeWriter のページとアセットのバックアップを取ってください。

エントリ​

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

イベント2
ファクト1
オーディエンス1
グループ1
アーティファクト2
マニフェスト2

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

フラグが何もしない。 フラグでそのフラグを確認してください。適用されないキーもあります。また、リージョンが保存されパブリッシュされていること、プレイヤーがオーナー、メンバー、typewriter.protection.bypass の保持者のいずれでもないこと、拒否系のフラグでは値が false に設定された真偽値であることも確認してください。

リージョンは存在するが、プレイヤーがその内部にいない。 形状はアーティファクトから来ます。アーティファクトのない定義や、選択範囲を一度も適用していないアーティファクトは、何もカバーしません。/typewriter protection edit <definition> を実行して選択範囲を適用し、/typewriter protection info <region> で確認してください。すべての点が同じワールドにある必要があり、直方体には 2 点、ポリゴンには 3 点が必要です。

選択用のツールバーが表示されない。 edit には、アーティファクトにリンクされた、パブリッシュ済みのリージョン定義が必要です。定義がアーティファクトにリンクされていないというメッセージが出る場合は、リンクしてください。グローバルアーティファクトにはツールバーがありません。アーティファクトに worlds、minY、maxY を設定してください。

/typewriter protection import-we で、選択範囲がない、またはアダプターがないと表示される。 WorldEdit または FastAsyncWorldEdit がインストールされていて、今いるワールドで選択範囲を作っている必要があります。

setflag の変更が消える。 このコマンドはメモリ上だけを変更します。フラグをリージョン定義に設定して、パブリッシュしてください。

WorldGuard からの移行でリージョンが作成されなかった。 移行は、リージョン定義、フラグ、オーナー、メンバーを作成しません。各リージョンの直方体の範囲だけを扱い、WorldGuard のリージョンは、最初に読み込まれたワールドを通じて読み取ります。定義は Web パネルで作成してください。

entry でプレイヤーがテレポートされない、またはブロックされない。 チェックは、プレイヤーが別のブロックに移動したとき、またはテレポートしたときに行われます。移動イベントやテレポートイベントなしでプレイヤーを動かすプラグインによる進入は、検出されません。

関連する拡張機能​

  • MythicMobs — mob-spawning は、Mythic のモブにも適用されます。