Welcome to Japan Minecraft PvP Documentation's documentation!

コンテンツ:

XML定義ファイルガイド

XML定義ファイルはゲームサーバにマップのスポーンポイントや、キットアイテム、保護領域などの情報を設定するための設定ファイルです。

Japan Minecraft PvPに提供していただく全てのマップにはXML定義ファイルが必要です。

既存マップのXML定義ファイルについては下記のURLから閲覧する事が出来ます。

https://maps.minecraft.jp/production/

マップ構造

全てのXML定義ファイルは一つの <map> ノードが存在していなければなりません。 また、ファイルの文字コードはUTF-8を使用してください。 現在のXML定義ファイルのバージョンは 1.3.5 です。

<?xml version="1.0" encoding="utf-8"?>
<map proto="1.3.5">
    <!-- マップ名 -->
    <name>マップ名</name>
    <!-- マップバージョン -->
    <version>1.0.0</version>
    <!-- マップの説明 -->
    <objective>コントロールポイントの制圧 / Capture the Control Point</objective>

    <!-- マップ作者 複数指定可能です。contribution=""属性でどのようにマップに貢献したかを設定する事が出来ます。 -->
    <authors>
        <author uuid="069a79f4-44e9-4726-a5be-fca90e38aaf5"/> <!-- Notch -->
        <author uuid="61699b2e-d327-4a01-9f1e-0ea8c3f06bc6" contribution="XML Coding"/> <!-- Dinnerbone -->
    </authors>

    <!-- マップ制作協力者 複数指定可能です。contribution=""属性でどのようにマップに貢献したかを設定する事が出来ます。-->
    <contributors>
        <contributor uuid="61699b2e-d327-4a01-9f1e-0ea8c3f06bc6" contribution="Map Tester"/> <!-- Dinnerbone -->
    </contributors>
   <!--
    ...
    ゲームモード設定やゲーム設定など
    ...
    -->
</map>

外部XMLファイル

マップ定義の各項目は別のXMLファイルに記載し、各マップのXMLファイルから読み込むことも出来ます。 各マップで共通のクラスやキットなどに使用可能です。

<include src="classes.xml"/>

マップスクリプト

マップスクリプトはゲームの進行中にサーバ側で実行されるJavaScriptです。 スクリプトを記述する事でゲーム内のワールドに任意のタイミングで干渉することでができます。 詳しくは マップスクリプトリファレンス をお読みください。

マップチュートリアル

XML内で定義する事によりそのマップを遊ぶ方法などのチュートリアルを作成する事が出来ます。

チュートリアル機能を使用する場合には、必ず tutorial.xml を読み込む必要があります。

<include src="tutorial.xml"/>

チュートリアルはいくつかのステージに分かれて進行し、各ステージ内で表示するメッセージ、テレポート座標などを定義します。

チュートリアル内でユーザに表示するメッセージは <line> ノードを使用し、1行ずつ定義します。 テレポートの使用については必須ではありません。

<message> 及び <title> ノードについては lang="" にRFC3066で規定されている国識別コードサブノードを含む言語コードを指定する事でクライアントの言語設定に合わせたチュートリアルを表示する事が出来ます。

ゲームモード

Team Death Match

Team Death Matchではチーム毎にキル数を競い合い、時間内でより多くのキル数、またはリミットに到達したチームが勝利になります。

<score>
    <!-- 制限時間 (秒) -->
    <time>600</time>
    <!-- キル数リミット (なくても構いません。) -->
    <limit>50</limit>
</score>

Capture the Wool

Capture the Woolゲームモードは相手チームの陣地から羊毛を奪い、自チームの台座に設置する事が勝利条件です。

各チームには1つ以上の <wool> ノードが必要です。 現時点では目標が多すぎる場合、スコアボードが表示されなくなるため目標を減らすなどの対応を行ってください。

<wools>
<wool team="green" color="cyan">
                <!-- 羊毛ブロックを設置する座標 -->
    <block>-9,24,73</block>
</wool>
<wool team="red" color="pink">
                <!-- 羊毛ブロックを設置する座標 -->
    <block>-9,24,-73</block>
</wool>
</wools>
<wool>ノードの属性
属性 説明
id XMLとスクリプトから指定する時の名前です。 文字列
team 羊毛を設置する側のチーム名です。 Chat Color
color 設置する羊毛の色です。羊毛の色はDyeColorをご覧ください。 Dye Color

Destroy the Monument

Destroy the Monumentゲームモードでは相手チームの破壊対象オブジェクトを破壊する事が勝利条件です。

各チームには一つ以上の <destroyable> ノードが必要です。

また、それぞれのチームの <destroyable> ノードは名前がお互い同じ名前として対応している必要があります。別々の名前は使用出来ません

オブジェクト名の左右(L/R)については、攻撃側から見た左右を基準とします。

また、オブジェクト名で目標の場所がはっきりする場合はLeft,Rightに統一する必要はありません。    (例: Adventure Island のocean,remains等。)

<destroyables materials="Gold Block" completion="80%">
        <destroyable owner="red" name="Monument">
                <!-- 破壊対象オブジェクトの範囲 -->
                <cuboid min="1603,78,-1548" max="1607,82,-1552"/>
        </destroyable>
        <destroyable owner="blue" name="Monument">
                <!-- 破壊対象オブジェクトの範囲 -->
                <cuboid min="1556,78,-1689" max="1552,82,-1693"/>
        </destroyable>
</destroyables>
<destroyables>ノードの属性
属性 説明
materials 必須 モニュメントのMaterialを指定します。 Material
completion 目標の達成に必要なパーセンテージを指定します。 Number
<destroyable>ノードの属性
属性 説明
id XMLとスクリプトから指定する時の名前です。 文字列
owner 必須 モニュメントのオーナーを指定します。 <team> ノードの color 属性に入力した値を指定してください。 Material
name モニュメントの名前を指定します。 文字列

Destroy the Core

Destroy the Coreゲームモードは相手チームのコアと呼ばれるオブジェクトから溶岩を流出させる事が勝利条件です。 コアの中には溶岩が入っており、コア領域の外まで一定以上溶岩が流れ出ると勝利判定になります。

各チームに一つ以上の <core> ノードが必要です。また、各チームの <core> ノードはお互いに対応している必要があります。

<cores material="obsidian" leak="3">
        <core id="blue-core" team="blue"><cuboid min="-5,73,45" max="-3,78,47"/></core>
        <core id="red-core" team="red"><cuboid min="60,73,45" max="62,78,47"/></core>
</cores>
属性 説明
material="" 時間経過によるブロック変化を起こすブロックを決めます。 Material
leak="" 溶岩の流す長さを指定します。指定した数字以上の流れが発生すると試合が終わります。 Number
注意事項
  • コアは material="" に指定した素材で完全に囲むようにしてください。
  • コアの範囲座標は外郭がすべて収まる範囲を指定してください。

Control Point

Control Pointゲームモードはコントロールポイントを制圧し、制圧数、スコア等の条件を満たすことが勝利条件です。

このゲームモードでは <controlpoints> タグに設定する属性によって勝者の決定方法を3種類から選ぶ事が出来ます。

勝利判定 属性 勝利条件
スコアベース score-limit コントロールポイントを制圧中のチームに10秒ごとに加算されるスコアがscore-limitに到達
制圧数(即時) capture-limit capture-limitに指定された数のコントロールポイントを制圧
制圧数(時間) time time属性に指定された時間を経過時に制圧数が多いチーム

各コントロールポイントは <controlpoint> タグにより定義します。 <controlpoint> タグ内の <capture> タグはコントロールポイントをキャプチャ可能な領域、 <flag> タグはキャプチャ状況を表す羊毛の領域になります。 <flag> タグについては必須ではありません。

<controlpoint> タグのscore属性によりスコアベースでの10秒毎に加算されるスコアを指定する事が出来ます。

<controlpoints>ノードの属性
属性 説明
score-limit チームのスコアが指定された値に達するとチームが勝利します。 整数
capture-limit チームのキャプチャしたコントロールポイントが指定された値に達するとチームが勝利します。 整数
time 指定された時間にコントロールポイントのキャプチャ数が多いチームが勝利します。 TimePeriod
<controlpoint>ノードの属性
属性 説明
id XMLとスクリプトから指定する時の名前です。 文字列
name 必須 コントロールポイントの名前です。 文字列
score コントロールポイントキャプチャ中に10秒ごとに加算されるスコアを指定します。 整数
capture-time コントロールポイントのキャプチャにかかる時間を指定します。 TimePeriod
<controlpoints score-limit="200">
    <!-- <controlpoints>タグの属性 -->
    <!-- score-limit="200" -->
    <!-- capture-limit="2" -->
    <!-- time="5m" (5分) -->
    <controlpoint id="tower-r" name="Tower R" score="5">
        <capture>
            <cuboid min="1603,76,-1552" max="1607,78,-1548"/>
        </capture>
        <flag>
            <cuboid min="1603,75,-1552" max="1607,75,-1548"/>
        </flag>
    </controlpoint>

    <controlpoint id="tower-b" name="Tower B">
        <capture>
            <cuboid min="1552,76,-1693" max="1556,78,-1689"/>
        </capture>
        <flag>
            <cuboid min="1552,75,-1693" max="1556,75,-1689"/>
        </flag>
    </controlpoint>
</controlpoints>
注意事項

コントロールポイント周辺は必ずフィルターで地形保護するようにしてください。特にTNTなどでコントロールポイントが消失するとゲームの進行が困難になる可能性があります。

The Walls

The Wallsゲームモードはチーム間を隔てる壁が存在し、一定時間経過後壁が消滅、両チーム間でリスポーンなしの戦闘が行われます。

このゲームモードでは最後まで生存者がいるチームが勝者となります。

<walls drop-time="600" materials="sand,gravel">
    <cuboid min="1603,76,-1552" max="1607,78,-1548"/>
    <cuboid min="1603,76,-1552" max="1607,78,-1548"/>
</walls>
<walls>ノードの属性
属性 説明
drop-time 壁が消滅するまでの時間です。秒で指定します。 整数
materials 壁の素材です。「 , 」区切りで複数指定する事が可能です。時間が来ると指定範囲内にある該当のブロックのみ消滅します。 Material

Blitz

Blitzゲームモードでは各プレイヤーが限られたリスポーン可能回数を持ち、リスポーン可能回数を超えると観戦者チームに移動されます。

このゲームモードでは最後まで生存者がいるチームが勝者となります。

<blitz>
        <!-- ゲームの制限時間 -->
        <time>600</time>

        <!-- リスポーン可能回数 -->
        <lives>1</lives>

        <!-- 生存者が減った時にアナウンス -->
        <broadcastLives>true</broadcastLives>

        <!-- ゲームタイトル -->
        <title>Blitz</title>
</blitz>

Paintball

PaintballゲームモードではSnowballを敵にヒットさせる事によって相手チームのライフが減少します。 ライフはチーム全体で共有されており、最後までライフが残っているチームの勝利となります。

注釈

アイテムスロットの0, 1及び8番はシステム側によって予約されています。

<paintball>
        <!-- 各チームのライフ数 -->
        <lives>60</lives>
</paintball>

TNTRun

TNT RunゲームモードではチームなしのDeathmatch形式で、最後まで生きのこった一人を勝者とします。 このゲームモードではプレイヤーの足下2ブロック分が一定時間で消えていきます。

注釈

TNTが上にある足場のみが消えるのではなくプレイヤーが踏んだ先が消える仕組みになります。

<tntrun/>

Bow Spleef

Bow SpleefゲームモードではチームなしのDeathmatch形式で、最後まで生きのこった一人を勝者とします。 TNTを敷き詰めた床とTNTを着火するためにFlame Bowをスポーンキットに指定してください。

<bowspleef/>

Splatt

Splattゲームモードは各チームの色でブロックを塗りつぶし、自チームのナワバリを増やす事が目標のイカしたゲームです。

このゲームモードでは必ず splatt.xml を読み込んでください。

<splatt materials="wool" hide-progress-time="1m">
        <!-- 制限時間 -->
        <time>5m</time>
</splatt>
<include src="splatt.xml"/>
<splatt>ノードの属性
属性 説明
materials インクを塗ることが出来るブロックを指定します。「;」区切りで複数指定する事が可能です。指定可能なブロックは WOOL , STAINED_CLAY , STAINED_GLASS です。未指定の場合は全ての指定可能なブロックが設定されます。 Material
hide-progress-time 指定時間になるとナワバリの範囲をサイドバーから非表示にします。 時間

その他のゲームモード

Ghost Squadron

Ghost Squadronモードはすべてのプレイヤーが常時透明化されます。

警告

Ghost Squadronモードは他のゲームモードと組み合わせる必要があります。

<ghostsquadron/>

<blitz>
        <time>600</time>
        <lives>1</lives>
        <title>Ghost Squadron</title>
</blitz>
Rage

Rageモードでは体力に関係なく攻撃が命中するとkillになります。プレイヤー以外のダメージはその限りではありません

警告

Rageモードは他のゲームモードと組み合わせる必要があります。

<rage/>

<blitz>
        <time>600</time>
        <lives>1</lives>
        <title>Blitz Rage</title>
</blitz>
Dummy

Dummyモードはシステム側からは勝利判定やゲーム内への干渉を行いません。マップスクリプトから全て制御したい場合に使用します。

<dummy/>

フィルター&リージョン

フィルター

フィルターはプレイヤーの移動やブロックを制限するために使用します。

<filters>
  <filter id="filter-name">
    <!-- 条件、修飾フィルターなど -->
  </filter>
</filters>
デフォルトフィルター

特定のイベントに対するフィルターを指定する事が出来ます。

フィルター名 説明
allow-all deny-all 全てをフィルター
allow-players deny-players プレイヤーのアクセスをフィルター
allow-blocks deny-blocks ブロックの設置・破壊をフィルター
allow-place deny-place ブロックの配置をフィルター
allow-break deny-break ブロックの破壊をフィルター
allow-world deny-world ワールドによるブロック変更をフィルター
allow-spawns deny-spawns スポーン理由でフィルター
allow-entities deny-entities Entityでフィルター
allow-mobs deny-mobs Mobでフィルター
条件フィルター

条件フィルターで実際にアクセスを許可、拒否する際の条件を定義する事が出来ます。

フィルター 説明
<filter id="otherfilter"/> 他のフィルターへの参照を名前で指定します。
<team>team name</team> チームで一致します。
<block>block name</block> ブロックタイプで一致します。指定可能なブロック名は Material をご覧ください。ダメージ値を指定する事も出来ます。例:<block>sand:2</block>
<spawn>spawn reason</spawn> スポーン理由で一致します。指定可能な値は SpawnReason をご覧ください。
<entity>entity type</entity> Entityのタイプで一致します。指定可能な値は EntityType をご覧ください。
<mob>creature type</mob> Mobのタイプで一致します。指定可能な値は EntityType のうちモンスターのみです。
<kill-streak count="5"/> 連続キル数が特定の数または範囲で一致します。
<class>class name</class> 特定のクラスを選択している時に一致します。
<crouching/> しゃがんでいる時に一致します。
<walking/> 歩いている時に一致します。
<sprinting/> 走っている時に一致します。
<carrying><item>item name</item></carrying> 特定のアイテムがインベントリに存在する時に一致します。
<wearing><item>item name</item></wearing> 特定のアイテムを装備している時に一致します。
<holding><item>item name</item></holding> 特定のアイテムを手に持っているときに一致します。
<random>[0.5, 0.7)</random> ランダムに設定される値が指定範囲内の場合に一致します。
<elapsed min="10m" max="15m"/> ゲーム経過時間が指定範囲内の場合に一致します。
<health min="1" max="5"/> 体力が指定範囲内の場合に一致します。
<level min="55" max="70"/> レベルが指定範囲内の場合に一致します。
<cause>cause</cause> ブロック変更の原因が特定の理由の場合に一致します。現時点で指定可能な値は PLAYER 及び EXPLOSION です。
<void/> Y=0 のブロックが AIR:0 の場合に一致します。
<if>flag id</if> スクリプトから Map.setFilterFlag() により設定されたフラグがtrueの場合に一致します。
<objective>objective id</objective> 指定のオブジェクティブが達成されている場合に一致します。
連続キルフィルター
属性 説明
count 連続キルがこの値になっている時に一致します。 min 及び max と組み合わせて使う事は出来ません。 整数
repeat trueの場合は連続キルが count の倍数毎に一致するようになります。 Boolean
min 連続キルがこの値以上になっている時に一致します。 整数
max 連続キルがこの値以下になっている時に一致します。 整数
ランダムフィルター

ランダムフィルターはイベント毎に生成されるランダムな0~1.0までの値が指定された条件を満たす時に一致します。 区間数での指定も可能です。

<!-- 50%の確率で一致 -->
<random>0.5</random>

<!-- 50%の確率で一致。この場合0.25を含み、0.75を含みません。 -->
<random>[0.25, 0.75)</random>
経過時間フィルター
属性 説明
min ゲーム経過時間がこの値以上になっている時に一致します。 TimePeriod
max ゲーム経過時間がこの値以下になっている時に一致します。 TimePeriod
Voidフィルター

Voidフィルターは Y=0 のブロックをチェックし、 AIR の場合に一致します。編集可能な領域の Y=0AIR 以外のブロックで埋めておくことで複雑な地形を簡単に保護する事が可能です。 プレイヤーに橋を作らせるエリアを作る場合は、 Y=0 にダメージ値が 1AIR を配置しておくことでVoidフィルターを通過させる事が出来ます。

<filters>
  <filter id="no-void">
    <not><void/></not>
  </filter>
</filters>

<regions>
  <apply block="no-void" message="You may not modify void.">
    <everywhere/>
  </apply>
</regions>
修飾フィルター
フィルター 説明
<all></all> AND条件です。全ての子要素のフィルターが一致した時に一致します。
<not></not> NOT条件です。全ての子要素のフィルターが一致しない場合に一致します。
<any></any> OR条件です。子要素が一つでも一致した場合に一致します。
<one></one> 子要素が一つだけ一致した場合に一致します。
サンプル
<map>
    <filters>
        <!-- 手にPortal Keyアイテムを持っている or 試合開始後15分経過で一致 -->
        <filter id="need-portal-key">
            <any>
                <holding><item name="`6Portal Key">blaze rod</item></holding>
                <elapsed min="15m"/>
            </any>
        </filter>
    </filters>

    <portals>
        <portal x="@-26" y="@70" z="@14" filter="need-portal-key">
            <cuboid min="26,70,-18" max="27,72,-18"/>
        </portal>

        <portal x="@26" y="@70" z="@-15" filter="need-portal-key">
            <cuboid min="-27,70,18" max="-26,72,18"/>
        </portal>
    </portals>

    <killreward>
        <!-- Portal Keyを所持していない状態でゲーム開始後1~1分20秒間の間は60%の確率または連続キル5回以上で50%の確率で一致 -->
        <filter>
            <all>
                <not>
                    <carrying><item name="`6Portal Key">blaze rod</item></carrying>
                </not>
                <any>
                   <all>
                       <elapsed min="1m" max="80s"/>
                       <random>0.6</random>
                   </all>
                   <all>
                       <kill-streak min="5"/>
                       <random>[0.5, 1)</random>
                    </all>
                </any>
            </all>
        </filter>
        <item name="`6Portal Key">blaze rod</item>
    </killreward>
</map>
旧バージョン互換フィルター

旧バージョンでは <allow><deny> ノードと parents="" 属性によりフィルターを行っていました。

<filters>
    <filter id="only-blue" parents="deny-players deny-world deny-blocks">
        <allow>
            <team>blue</team>
        </allow>
    </filter>
    <filter id="only-red" parents="deny-players deny-world deny-blocks">
        <allow>
            <team>red</team>
        </allow>
    </filter>
    <filter id="no-tnt" parents="deny-blocks">
        <deny>
            <block>tnt</block>
        </deny>
    </filter>
    <filter id="no-dispenser" parents="deny-blocks">
        <deny>
            <block>dispenser</block>
        </deny>
    </filter>
</filters>

リージョン

リージョンはフィルターの適用時や各種ゲームモードの設定、スポーンポイントなど、マップ内の領域を指定するために使用されます。

直方体リージョン

座標 X1,Y1,Z1 から座標 X1,Y1,Z1 までの直方体

<cuboid id="cuboid-region" min="X1,Y1,Z1" max="X2,Y2,Z2"/>
矩形リージョン

座標 X1,Z1 から座標 X1,Z1 までの矩形 Y座標はチェックされません。

<rectangle id="rectangle-region" min="X1,Z1" max="X2,Z2"/>
円柱リージョン

座標 X,Y,Z を基点とした半径 RADIUS 、高さ HEIGHT の円柱

<cylinder id="cylinder-region" base="X,Y,Z" radius="RADIUS" height="HEIGHT"/>
円形リージョン

座標 X,Z を基点とした半径 RADIUS の円形 Y座標はチェックされません。

<circle id="circle-region" center="X,Z" radius="RADIUS"/>
ブロックリージョン

座標 X,Y,Z の単体ブロック

<block id="foo">X,Y,Z</block>
belowリージョン

指定した座標軸以下の全ての座標にマッチするリージョンを作成します。

属性 説明
x X軸を指定します。 Double
y Y軸を指定します。 Double
z Z軸を指定します。 Double
<below x="60"/>
aboveリージョン

指定した座標軸以上の全ての座標にマッチするリージョンを作成します。

属性 説明
x X軸を指定します。 Double
y Y軸を指定します。 Double
z Z軸を指定します。 Double
<above x="60"/>
everywhereリージョン

全ての座標にマッチするリージョンです。

<everywhere/>
nowhereリージョン

全ての座標にマッチしないリージョンです。

<nowhere/>
参照リージョン

他リージョンへの参照

<regions>
  <cuboid id="region1" min="-20,60,-20" max="20,70,20"/>
</regions>

<region id="region1"/>
リージョンへのフィルターの適用

リージョンへのフィルターの適用には <apply> ノードを使用します。 applyノードには一つ以上のリージョンを含む事が出来ます。

<apply>
  <region id="region1"/>
  ...
</apply>
applyノードの属性
属性 説明
enter リージョンへの侵入時にフィルターを適用します。 Filter Name
leave リージョンからの離脱時にフィルターを適用します。 Filter Name
block リージョン内でのブロック破壊及び設置時にフィルターを適用します。 Filter Name
block-place リージョン内でのブロック設置時にフィルターを適用します。 Filter Name
block-break リージョン内でのブロック破壊時にフィルターを適用します。 Filter Name
use リージョン内での右クリック時にフィルターを適用します。 Filter Name
kit リージョンへのプレイヤー侵入時にキットを与えます。 Kit Name
velocity リージョンへのプレイヤー侵入時にVelocityを変更します。 X , Y , Z
filter kit使用時のフィルターです。 Filter Name
message フィルターが適用された場合にプレイヤーに表示するメッセージです。 文字列
リージョン修飾
リージョンを反転
<negative>
  <region id="region1"/>
</negative>
リージョンを結合
<union>
  <region id="region1"/>
  <region id="region2"/>
  ...
</union>
リージョンから除去

最初のリージョンから2番目以降のリージョンを取り除きます。

<complement>
  <region id="region1"/>
  <region id="region2"/>
  ...
</complement>
intersect

全てのリージョンが重複する範囲のリージョンです。

<intersect>
  <region id="region1"/>
  <region id="region2"/>
  ...
</intersect>
translateリージョン

元のリージョンから offset 属性で指定した分の座標をずらしたリージョンを作成します。

<!-- -10,50,0のブロックリージョン -->
<translate offset="-20,50,0">
    <block>10,0,0</block>
</translate>

ゲーム設定

チーム

各マップには最低2つ以上のチームが必要です。

多くのマップでは2つのチームが設定されていますが、2つ以上のチームを設定する事も可能です。

<teams>
  <team id="blue" color="blue" max="24">Blue Team</team>
  <team id="red" color="dark red" max="24">Red Team</team>
</teams>
<team>ノードの属性
属性 説明  
id チームをXMLとスクリプトから指定する時の名前です。 文字列
color チームの色です。指定可能な色は ChatColor をご覧ください。 ChatColor
max チームに参加可能な最大人数を指定します。 整数
<!-- 例:4チームに設定した場合 -->
<teams>
  <team color="blue" max="12">Blue Team</team>
  <team color="red" max="12">Red Team</team>
  <team color="green" max="12">Green Team</team>
  <team color="yellow" max="12">Yellow Team</team>
</teams>

警告

サーバーの接続上限以上のチーム設定をするとチームには空きがあるのにサーバーに入れない状態が起きます。

警告

サーバ毎に参加人数の下限を設定しております。 参加人数の下限は以下の通りとなります。以下の下限設定に満たないマップは却下されます。

サーバ名 全チーム合計最低人数
Sabatora / Sabatora 2 48
Chatora / Chatora 2 24
CTW 32
Hachiware 24
Blitz 12
Walls 16
Paintball 16
TNT 24

キット

キットは主にスポーン時などにアイテムやポーション効果を付与するために使用されます。アイテムの設定方法については items 、ポーション効果の設定方法については potions をご覧ください。

<kit> ノードは parents 属性に他のキットのIDを指定する事でアイテムやポーション効果を継承する事が出来ます。

<kits>
    <kit id="spawn">
        <item slot="0">iron sword</item>
        <item slot="1">bow</item>
        <item slot="2" amount="64">log</item>
        <item slot="3" amount="3">diamond</item>
        <item slot="9" amount="64">arrow</item>
    </kit>
    <kit id="red" parents="spawn">
        <chestplate color="cd0000" damage="-3000">leather chestplate</chestplate>
        <leggings color="cd0000" damage="-3000">leather leggings</leggings>
        <boots color="cd0000" damage="-3000">leather boots</boots>
    </kit>
    <kit id="blue" parents="spawn">
        <chestplate color="0066cc" damage="-3000">leather chestplate</chestplate>
        <leggings color="0066cc" damage="-3000">leather leggings</leggings>
        <boots color="0066cc" damage="-3000">leather boots</boots>
    </kit>
</kits>
<kit>ノードの属性
属性 説明
id 必須 キットをXMLやスクリプトから指定する時の名前です。 文字列
parents 継承元の親キットIDです。半角スペース区切りで複数指定出来ます。 文字列

クラス

クラスはゲーム開始時にプレイヤーにどのようなキットを使用するか選択させる事が出来ます。

クラスを指定しているマップでは通常のチーム選択ツールの代わりにクラス選択ツールが表示されるようになります。

<classes sticky="false">
     <class name="Knight" description="Fight with your Sword" longdescription="You have Iron Armor,Leggings,Boots,and Sword" icon="iron sword">
             <kit>
                     <chestplate>iron chestplate</chestplate>
                     <leggings>iron leggings</leggings>
                     <boots>iron boots</boots>
                     <item slot="0">iron sword</item>
                     <item slot="7" amount="64">sand</item>
                     <item slot="8" amount="16">cooked beef</item>
             </kit>
     </class>
     <class name="Archer" description="Pew pew, get your Enemy" longdescription="You have power2 Bow and 64 Arrows" icon="bow">
             <kit>
                     <item slot="0" enchantment="ARROW_DAMAGE:2">bow</item>
                     <item slot="1" amount="64">arrow</item>
                     <item slot="2" amount="8">web</item>
                     <item slot="7" amount="8">Log</item>
                     <item slot="8" amount="16">cooked beef</item>
             </kit>
     </class>
     <class name="Chemist" description="Need more potion? choice it." longdescription="You have basic bow and wooden sword,and many potions" icon="potion">
             <kit>
                     <chestplate>leather chestplate</chestplate>
                     <leggings>leather leggings</leggings>
                     <boots>leather boots</boots>
                     <item slot="0">wood sword</item>
                     <item slot="1">bow</item>
                     <item slot="2" amount="16">arrow</item>
                     <item slot="3" amount="3" damage="16428">potion</item>
                     <!--  instant health II  -->
                     <item slot="4" amount="3" damage="16456">potion</item>
                     <!--  instant weekness -->
                     <item slot="5" amount="3" damage="16452">potion</item>
                     <!--  instant poison  -->
                     <item slot="7" amount="32">iron fence</item>
                     <item slot="8" amount="16">cooked beef</item>
             </kit>
     </class>
     <class name="Engineer" default="true" description="This is Minecraft" longdescription="You have Iron Pickaxe,bow and TNT!" icon="iron pickaxe">
             <kit>
             <item slot="0">wood sword</item>
             <item slot="1">bow</item>
             <item slot="2" amount="16">arrow</item>
             <item slot="3">Iron Pickaxe</item>
             <item slot="4" amount="3">TNT</item>
             <item slot="5" amount="1">lever</item>
             <item slot="7" amount="64">Log</item>
             <item slot="8" amount="16">cooked beef</item>
             </kit>
     </class>
</classes>
<classes>ノードの属性
属性 説明 デフォルト
sticky true を指定するとプレイヤーは一度選択したクラスをゲーム中に変更する事が出来なくなります。 false
<class>ノードの属性
属性 説明
name クラス名です。 文字列
description /classesコマンドで表示されるクラスの説明です。 文字列
longdescription クラス選択ツールで表示されるクラスの説明です。 文字列
icon クラス選択ツールで表示されるアイコンです。利用可能なアイコンはMaterialをご覧ください。 Material
sticky trueを指定するとプレイヤーは一度選択したクラスをゲーム中に変更する事が出来なくなります。 Boolean
default trueを指定するとユーザがクラスを選択せずにjoinした場合のデフォルトクラスになります。複数のクラスにデフォルト指定がされている時はランダムに選択されます。 Boolean

アイテム

<item> ノードはキットやクラスなどでアイテム指定に使用します。

警告

将来的な変更の為アイテムIDの使用をしないでください。

<item>アイテム名</item>
<!--
<item>ノードの属性
slot="0"
damage="0"
amount="1"
enchantment="ENCHANTNAME:LEVEL"
name="NAME"
lore="LORE"
-->

アイテム名は Material をご覧ください。 すべてのアイテム名は小文字から大文字、スペースはアンダーバーに自動変換されます。

<item>ノードの属性
属性 説明
slot アイテムが配置されるインベントリ内の位置を指定します。
inventory_image
整数
amount アイテムの数を1~64個の範囲内で指定します。 1~64
damage 属性にはアイテムのダメージ値(データ)を指定します。 整数
enchantment アイテムに付与するエンチャントを指定します。エンチャントは;区切りで複数指定可能です。 Enchantment String
name カスタムアイテム名を指定します。(システム的には対応していますが英語以外のアイテム名は記入しないでください。) 文字列
lore アイテムの説明などを指定します。 文字列
bind アイテムにSoulbound属性を付与し、他のプレイヤーへのアイテムの受け渡し、死亡時のドロップが無効になります。 Boolean
locked アイテムにLocked属性を付与し、スロットの変更を禁止します。(装備に使われた場合は装備の変更が出来なくなります。) Boolean
エンチャント

エンチャントタイプとレベルを : で区切って指定します。 ; 区切りで複数指定可能です。 指定可能なエンチャントタイプは Enchantment をご覧ください。

<item enchantment="dig speed:1;durability:2">diamond pickaxe</item>
カスタムポーション

ポーションへ追加するポーション効果を potion_name:duration:amplifier:ambient 形式で指定します。 ; 区切りで複数指定可能です。

属性 説明
potion_name ポーション効果タイプ PotionEffectType
duration ポーション効果時間(tick) 整数
amplifier ポーション効果レベル 整数
ambient エフェクトの有無 Boolean
<item damage="8227" name="`6Hayai Potion" potions="speed:900:0:false">potion</item>
装備

アイテムを装備させるには下記のノードを使用する事で適切な位置にセットされます。属性については<item>ノードと同じものを使用出来ます。

属性 説明
color 革製の装備の着色に使用します。カラーコード
<!-- 例:頭にダイヤヘルメット、胸に金の防具、ズボンに鉄、ブーツを革製に -->
<helmet>diamond helmet</helmet>
<chestplate>gold chestplate</chestplate>
<leggings>iron leggings</leggings>
<boots>leather boots</boots>

ポーション効果

ポーション効果はキットなどに使用されます。 ポーション名についてはPotionEffectTypeをご覧ください。

<potion duration="4" amplifier="100">slow</potion>
<potion>ノードの属性
属性 説明
duration 持続時間を秒で指定します。無制限にするには oo を指定します。
amplifier 効果の強さを指定します。

アイテムの自動修復と削除

<toolrepair> ノードを定義する事により、アイテムの自動修復を設定する事が出来ます。 一つ以上の <tool> ノードにアイテムを設定します。

<toolrepair>
  <tool>diamond pickaxe</tool>
</toolrepair>

<itemremove> ノードを定義する事により、死亡時などにドロップさせたくないアイテムを設定する事が出来ます。 染色済みの防具など相手チームに拾われると混乱を招くものなどに使われます。

<itemremove>
      <item>leather chestplate</item>
  <item>leather leggings</item>
  <item>leather boots</item>
</itemremove>

ダメージの無効化

<disabledamage>ノードを定義する事により、一部のダメージを無効化する事が出来ます。

<disabledamage>
  <damage>fall</damage>
  <damage>block explosion</damage>
</disabledamage>

指定可能なダメージの種類は下記の通りです。

種類 説明
BLOCK_EXPLOSION ブロックの爆発
CONTACT サボテンとの接触
CUSTOM カスタムダメージ
DROWNING 水中の酸欠
ENTITY_ATTACK Entityの攻撃
ENTITY_EXPLOSION Entityの爆発
FALL 落下
FALLING_BLOCK 落下ブロックとの接触
FIRE 炎との接触
FIRE_TICK 炎による時間ダメージ
LAVA 溶岩との接触
LIGHTNING 雷との接触
MAGIC 魔法ダメージ
MELTING  
POISON
PROJECTILE 矢などとの接触
STARVATION 飢餓
SUFFOCATION 生き埋め
THORNS 棘エンチャント
SUICIDE 自殺
VOID Voidダメージ(使用しないでください。)
WITHER Witherによる毒効果

スポーン

チームスポーンや観戦者スポーンを指定します。スポーン設定は必須項目です。

各スポーンには一つ以上のリージョンを含める事が必要です。

<spawns>
    <!-- チームスポーン -->
    <spawn team="blue" yaw="-90" kit="blue"><cuboid min="-48,13,-48" max="-44,13,-44"/></spawn>
    <spawn team="red" yaw="90" kit="red"><cuboid min="48,13,44" max="44,13,48"/></spawn>
    <!-- 観戦者スポーン -->
    <default yaw="180"><cuboid min="3,31,104" max="-2,31,99"/></default>
</spawns>

またリージョンは複数指定する事ができます。リージョンが複数指定されていた場合はランダムで選択されます。

<spawns>
    <!-- 例:複数の地点からスポーン -->
    <spawn team="blue" yaw="-90" kit="blue"><cuboid min="-48,13,-48" max="-44,13,-44"/><cuboid min="-48,13,-44" max="-44,13,-48"/></spawn>
    <spawn team="red" yaw="90" kit="red"><cuboid min="48,13,44" max="44,13,48"/><cuboid min="-48,13,-44" max="-44,13,-48"/></spawn>
</spawns>
<spawns>ノードの属性
属性 説明
mode 利用可能なスポーンポイントが複数存在する場合のスポーン方法を指定します。sequentialまたはrandomを指定可能です。デフォルト: random  
lookat スポーン時の視点を特定のブロックに向けます。例 lookat="0,60,0"  
<spawn>ノードの属性
属性 説明
id スポーンをXMLとスクリプトから指定する時の名前です。 文字列
team 必須 スポーンのチームを指定します。 <team> ノードの color="" 属性に入力した値を指定してください。 Team
yaw スポーン時のヨー(向き)を指定します。ヨーはゲーム内からF3キーで表示されます。 整数
kit スポーン時のキットを指定します。 Kit
priority スポーンの優先順位を指定します。数字が小さいほど優先されます。 整数
filter スポーンに適用するフィルターを指定します。 Filter
<default>ノードの属性
属性 説明  
yaw スポーン時のヨー(向き)を指定します。ヨーはゲーム内からF3キーで表示されます。 整数

spawnの領域内に壁、障害物があると強制的にそのブロック上へspawnします。

TNT

TNTブロックに関する設定を行います。

<tnt>
  <!-- ブロックへのダメージを無効化 -->
  <blockdamage>off</blockdamage>
  <!-- 設置時に即着火 -->
  <instantignite>on</instantignite>
</tnt>

キル報酬

相手チームのプレイヤーを殺害時にプレイヤーに報酬を与える事が出来ます。 報酬は <item><kit> により指定が可能です。 条件を設定するために <filter> を指定する事も出来ます。

<killreward>
    <item amount="1">diamond</item>
</killreward>

<killreward>
    <kit>
        <potion duration="10" amplifier="1" ambient="true">jump</potion>
    </kit>
</killreward>

<killreward>
    <filter>
        <random>[0.5, 1)</random>
    </filter>
    <kit name="portal-key"/>
</killreward>

ポータル

ポータルは指定のリージョンにプレイヤーが入った場合に現在地からの相対指定や、絶対値指定によりプレイヤーをテレポートさせる事が出来ます。 座標を絶対値で指定したい場合は座標の前に@を入れてください。

<portals>
  <portal x="X" y="Y" z="Z" yaw="YAW" pitch="PITCH" filter="FILTERNAME">
    <cuboid min="X1,Y1,Z1" max="X2,Y2,Z2"/>
      </portal>
</portals>

<portals>
  <portal x="@X" y="@Y" z="@Z" >
             <cuboid min="X1,Y1,Z1" max="X2,Y2,Z2"/>
      </portal>
</portals>
<portal>ノードの属性
属性 説明
x ポータルからの移動先への相対X座標です。先頭に@をつける事で絶対値で指定出来ます。 数値
y ポータルからの移動先への相対Y座標です。先頭に@をつける事で絶対値で指定出来ます。 数値
z ポータルからの移動先への相対Z座標です。先頭に@をつける事で絶対値で指定出来ます。 数値
filter ポータル進入時にチェックするフィルター Filter Name
filter-message フィルターによるリジェクト時にプレイヤーに表示するメッセージ 文字列

スコアボックス

スコアボックスは指定されたリージョン内にプレイヤーが移動した時にスコアを加算させる事が出来ます。

※スコアボックスはTeam Death Matchモードのみ使用可能です。

<score>
    <box value="5" team="blue" filter="only-blue" cooldown="1">
        <cuboid min="-2,73,29" max="2,75,33"/>
    </box>
</score>
<box>ノードの属性
属性 説明
value 獲得する得点 Number
team 獲得するチーム Team Name
filter フィルター Filter Name
cooldown 次に獲得可能までの時間 Number

モンスター制御

デフォルトの状態では全てのモンスター、動物のスポーンがブロックされています。<mobs>ノードを使用する事でモンスターのスポーンをカスタマイズする事が出来ます。

<!-- ゲーム開始10秒経過後ゾンビのみスポーン許可 -->
<mobs>
    <filter>
        <all>
            <mob>zombie</mob>
            <elapsed min="10s"/>
        </all>
    </filter>
</mobs>

ショップ

特定のアイテムを通貨としてアイテムを購入出来るショップを作成します。 ショップは看板を叩くことで利用可能です。

マップ内にショップを作成するには下記の形式で看板を設置します。

1行目: [Shop]
2行目: 名前(前方一致)
<shops>
  <shop name="Weapon Shop">
    <item price="gold ingot,1" slot="4">iron sword</item>
    <item price="gold ingot,1" slot="5">bow</item>
  </shop>
</shops>
<shop>ノードの属性
属性 説明
name ショップの名前です。localesノードにより多言語化可能です。 String
filter ショップ利用時にチェックされるフィルターです。フィルターによりブロックされた場合はショップが利用出来ません。 Filter Name  
filter-message フィルター適用時に表示されるメッセージです。 String
<item>ノードの属性
ノード 説明
price このアイテムの価格を material,必要数 の形式で記入します。 Price String
slot ショップウィンドウ内のアイテム位置です。 Number
filter アイテム単位のフィルターです。フィルターによりブロックされた場合はアイテムが表示されません。 Filter Name  

メッセージブロードキャスト

<broadcasts> ノードで一定の時間毎に送信するメッセージを作成する事が出来ます。メッセージは <locales> ノードにより多言語化可能です。

<broadcasts>
    <tip after="10s">ゲーム開始後10秒で表示されるTIPメッセージ</tip>
    <alert after="15m">ゲーム開始後15分で表示されるアラートメッセージ</alert>
    <tip after="5m" every="1m" count="5">ゲーム開始後5分~10分まで1分ごとに表示されるメッセージ</tip>
</broadcasts>
<alert>、<tip>ノードの属性
属性 説明
after 必須 メッセージを表示する経過時間 TimePeriod
every メッセージの表示間隔 TimePeriod
count メッセージの表示回数 デフォルト: 1 整数
filter メッセージ表示対象フィルター Filter

その他の設定

時間を夜間に固定します。

<timelock>on</timelock>

※現在はワールドにゲームルール/gamerule doDaylightCycle falseを設定することで任意の時間に固定する事が可能です。

指定された高さ以上でブロックの編集が出来なくなります。

<maxbuildheight>64</maxbuildheight>

死亡時に自動的にリスポーンします。time属性でリスポーンまでの時間指定が可能です。

<autorespawn/>
<autorespawn time="5s"/>

ワールドのDimensionを設定します。

設定出来る値は NORMAL , NETHER , THE_END です。

<dimension>NETHER</dimension>

ワールドの難易度を設定します。

設定出来る値は PEACEFUL , EASY , NORMAL , HARD です。

<difficulty>HARD</difficulty>

他言語化

<locales> ノードにより、マップ内でプレイヤーに表示されるテキストをクライアントの設定言語に合わせた表示にすることができます。 多言語化可能なテキストは <objective> ノード、 <apply> ノードのmessage属性、 <alert>> 及び <tip> ノードのメッセージ、クラス説明、ショップ名のテキストです

<locales>
  <!-- 日本語 -->
  <locale lang="ja_JP">
      <string name="Grab the wool from the enemy's wool room and place it on your victory monument." value="敵の羊毛ルームから羊毛を奪取し、台座に設置"/>
      <string name="You may not modify base." value="拠点は編集出来ません。"/>
  </locale>
  <!-- フランス語 -->
  <locale lang="fr_FR">
      <string name="Grab the wool from the enemy's wool room and place it on your victory monument." value="Prenez la laine de la chambre de laine de l'ennemi et placez-le sur votre monument de la victoire."/>
      <string name="You may not modify base." value="Vous ne pouvez pas modifier la base."/>
  </locale>
  <!-- ポルトガル語/ブラジル -->
  <locale lang="pt_BR">
      <string name="Grab the wool from the enemy's wool room and place it on your victory monument." value="Agarre a lã de sala de lã do inimigo e colocá-lo em sua vitória monumento."/>
      <string name="You may not modify base." value="Você não pode modificar base."/>
  </locale>
  <!-- 中国語繁体字/台湾 -->
  <locale lang="zh_TW">
      <string name="Grab the wool from the enemy's wool room and place it on your victory monument." value="從敵人的羊毛房間奪取羊毛,為台座設置"/>
      <string name="You may not modify base." value="您不得修改基地"/>
  </locale>
</locales>

ブロック制御

ブロック破壊時のドロップ制御

<blockdrops> ノードを定義する事により、ブロック破壊時の挙動を変更する事が出来ます。

<blockdrops>
  <!-- ルール (複数可) -->
  <rule>
    <!--
    ルールを適用するリージョン (任意,複数可)
    -->
    <region>
        <rectangle min="10,50" max="-50,-10"/>
    </region>
    <!--
    フィルター (必須,複数可)
    -->
    <filter>
        <block>iron ore</block>
        <block>iron block</block>
    </filter>
    <!--
    ブロック破壊時にドロップするアイテム(任意,複数可)
    指定しない場合はドロップなし
    -->
    <drops>
        <item>iron ingot</item>
    </drops>
    <!--
    ブロック破壊時に置換するブロック(任意)
    -->
    <replacement>stone</replacement>
    <!--
    ブロック破壊時にドロップする経験値(任意)
    -->
    <experience>10</experience>
  </rule>
</blockdrops>
<rule>ノードの子要素
ノード 説明
<region> ルール適用対象のリージョン Region
<filter> ルール適用対象ブロックのフィルター Filter
<drops> ドロップするアイテム(複数指定可能です。) Item
<experience> ドロップする経験値 Number
<replacement> ブロックの破壊後に置換するブロック Material
<direct> trueの場合ドロップアイテム、経験値を直接プレイヤーのインベントリにいれます。 Boolean
<wrongtool> trueの場合ブロックに対する適正ツールではない場合もアイテムをドロップします。 Boolean
<restore-time> 指定されている場合、一定時間後にブロックを元に戻します。 TimePeriod
<grow> <restore-time>によるブロック復元時に成長可能なブロックの場合は段階的に成長します。(現在は小麦のみ対応) Boolean
<fall-chance> ブロックの爆発時に爆発デブリになる確率 Number (0-1.0)
<land-chance> デブリが地面に付いたときにブロックに戻る確率 Number (0-1.0)
<fall-speed> デブリの飛散速度 Number

ブロック復元

<renewables> は破壊されたブロックを元の状態に戻す事が出来ます。

<renewables>
    <renewable rate="3" particles="true" sound="true" avoid-entities="true">
        <region>
            <cuboid min="-30,68,-30" max="-21,73,-21"/>
        </region>
        <renew>iron ore</renew>
        <renew>coal ore</renew>
        <replace>air</replace>
    </renewable>
</renewables>
<renewable>ノードの属性
属性 説明 デフォルト
region 復元対象のリージョン名 String  
rate 毎秒のブロック復元数 Number 1
sound 復元時にサウンドを再生 Boolean true
particles 復元時にエフェクトを表示 Boolean true
avoid-entities プレイヤーと重なっている場合は復元しない Boolean true
<renewable>ノードの子要素
ノード 説明
<region> 復元対象のリージョン Region
<renew> 復元対象のブロック Material
<replace> 復元時に置き換え可能なブロック Material
<renew-filter> 復元対象ブロックのフィルター。 <renew> とは同時に使用出来ません。 Filter
<replace-filter> 復元時に置き換え可能なブロックのフィルター。 <replace> とは同時に使用出来ません。 Filter

インベントリブロックの非共有化

非共有化を行うことでかまどなどを開いたときに、各プレイヤーそれぞれインベントリが独立して設定されます。 これにより1つのブロックで複数人が同時に鉄を精錬などが可能になります。

ブロックの場所指定には、 <block> リージョンを使用してください。範囲指定を行うことは出来ません。

<enderblocks>
     <enderblock>
         <block>15,70,-5</block>
         <block>10,70,-7</block>
         <block>10,70,5</block>
         <block>4,70,-8</block>
     </enderblock>
 </enderblocks>

適正ツール制限

適正ツール制限を行うことにより、ブロックの破壊が適正ツールのみで可能になります。適正ツールの判定はアドベンチャーモードに準拠します。

<righttools/>

マップスクリプトリファレンス

マップスクリプトはゲーム内に動的な変更を加える事が出来るJavaScriptです。マップのロード時にサーバ側で実行されます。

マップスクリプトはmap.xml内に <script> タグで囲んで記述します。

<map>
    <script>
<![CDATA[
// ゲーム開始時イベント
match.on('start', function() {
    match.broadcast('ゲーム開始!');
     if (Math.random() >= 0.5) { // 1/2の確率で左側の道を塞ぐ
        for (var x = -10; x < -6; x++) {
            for (var y = 10; y < 16; y++) {
                match.getWorld().getBlock(x, y, 0).setType('BRICK');
            }
        }
    } else { // 1/2の確率で右側の道を塞ぐ
        for (var x = 6; x < 10; x++) {
            for (var y = 10; y < 16; y++) {
                match.getWorld().getBlock(x, y, 0).setType('BRICK');
            }
        }
    }

    // 30秒毎に雷を落とす
    setInterval(function() {
        var x = getRandom(-50, 50);
        var z = getRandom(-50, 50);
        match.getWorld().strikeLightning(x, 0, z, false);
    }, 30000);

    // 180秒後に呼び出す
    setTimeout(function() {
        match.broadcast('`a3分経過しましたよ(´・ω・`)');
    }, 180000);
});

function getRandom(min, max) {
     return Math.floor(Math.random() * (max - min + 1)) + min;
}
]]>
    </script>
</map>

src="" 属性を指定する事でマップディレクトリ内にあるJavaScriptファイルを読み込むことも出来ます。

<map>
    <script src="map.js"/>
</map>

Match

Matchオブジェクトはデフォルト状態でグローバルスコープに match として定義されています。

Matchオブジェクトは EventEmitter オブジェクトを継承しています。

class Match()

メソッド

Match.getMap()

Map オブジェクトを取得します。

戻り値:Map
Match.getWorld()

World オブジェクトを取得します。

戻り値:World
Match.getSidebar()

Sidebar オブジェクトを取得します。

戻り値:Sidebar
Match.getServer()

サーバ名を取得します。

戻り値:String

match.broadcast('このサーバは' + match.getServer() + 'です。');
Match.getElapsed()

経過時間をミリ秒で取得します。

戻り値:Number
Match.broadcast(message)

サーバ内のプレイヤーにメッセージを送信します。

引数:
  • message (String) -- メッセージ
戻り値:

void

match.broadcast('&6全員に表示されるメッセージです。');
Match.getObjectives()

オブジェクティブを取得します。

戻り値:Array[ Objective ]
Match.getPlayers()

プレイヤーを取得します。

戻り値:Array[ Player ]

match.broadcast('デスマッチタイム!');
var players = match.getPlayers();
for (var i = 0; i < players.length; i++) {
    players[i].teleport(0, 60, 0);
}
Match.end(team)

特定のチームを勝者としてゲームを終了させます。チーム戦時のみ使用可能です。

引数:
戻り値:

void

Match.end(player)

特定のプレイヤーを勝者としてゲームを終了させます。個人戦時のみ使用可能です。

引数:
戻り値:

void

Match.end()

引き分けでゲームを終了させます。

戻り値:void

イベント

Match.load

マップのロード時

match.on('load', function() {
    match.broadcast('Match loaded.');
});
Match.start

ゲーム開始時

match.on('start', function() {
    match.broadcast('ゲーム開始!');
});
Match.end

ゲーム終了時

match.on('end', function() {
    match.broadcast('ゲーム終了!お疲れ様でした。');
});
Match.death

プレイヤーの死亡時

イベントオブジェクト

メソッド 戻り値 説明
getVictim() Player 倒されたプレイヤー
getKiller() Player or null 倒したプレイヤー
getCause() String DamageCause (死因)
getWeapon() String or null 武器 (プレイヤーに倒された場合のみ)
getDistance() Number 距離 (弓で倒された場合のみ)

match.on('death', function(event) {
    var victim = event.getVictim();
    var killer = event.getKiller();
    var cause = event.getCause();
    var weapon = event.getWeapon();
    var distance = event.getDistance();

    if (killer) {
        console.log(victim.getName() + "が" + killer.getName() + "に倒された!");
    } else {
        console.log(victim.getName() + "が死んでしまった!");
    }
});
Match.respawn

プレイヤーのリスポーン時

イベントオブジェクト

メソッド 戻り値 説明
getPlayer() Player リスポーンしたプレイヤー

match.on('respawn', function(event) {
    event.getPlayer().sendMessage('Respawned.');
});
Match.leaveTeam

プレイヤーがチームから抜けた時

イベントオブジェクト

メソッド 戻り値 説明
getPlayer() Player チームから抜けたプレイヤー

match.on('leaveTeam', function(event) {
   console.log(event.getPlayer().getName() + 'が' + event.getPlayer().getTeam().getName() + 'から抜けました。');
});
Match.objective

オブジェクティブ更新時

イベントオブジェクト

メソッド 戻り値 説明
getObjective() Objective 更新されたオブジェクティブ

Map

class Map()

メソッド

Map.getName()

マップ名を取得します。

戻り値:String
Map.getVersion()

バージョンを取得します。

戻り値:String
Map.getTeam(id)

指定IDのチームを取得します。

引数:
  • id (String) --

    チームID

    returns:Team

var redTeam = match.getMap().getTeam('red-team');
match.end(redTeam);
Map.getTeams()

チームを取得します。

戻り値:Array[ Team ]

var teams = match.getMap().getTeams();
for (var i = 0; i < teams.length; i++) {
    var team = teams[i];
    match.broadcast(team.getName() + ' ' + team.getPlayerCount() + '/' + team.getMax());
}
Map.getRegion(id)

指定IDのリージョンを取得します。

引数:
  • id (String) -- リージョンID
戻り値:

Region

Map.getRegions()

リージョンを取得します。

戻り値:Array[ Region ]
Map.getSpawn(id)

指定IDのスポーンを取得します。

引数:
  • id (String) --

    スポーンID

    returns:Spawn
Map.getSpawns()

スポーンを取得します。

戻り値:Array[ Spawn ]
Map.getFilterFlag(id)

Ifフィルター のフラグを取得します。

引数:
  • id (String) -- ID
戻り値:

Boolean

Map.setFilterFlag(id, flag)

Ifフィルター のフラグを設定します。

引数:
  • id (String) -- ID
  • flag (Boolean) -- フラグ
戻り値:

void

Map.getString(locale, name)

<locale> ノードで定義した多言語メッセージを取得します。

引数:
  • locale (String) -- 言語 (e.g. ja_JP)
  • name (String) -- <string> ノードの name 属性
戻り値:

String

Map.getString(player, name)

<locale> ノードで定義した多言語メッセージを取得します。

引数:
戻り値:

String

World

Worldオブジェクトは主にブロック操作、Entity関連、ワールド設定などを行う事が出来ます。

Worldオブジェクトは EventEmitter オブジェクトを継承しています。

class World()

メソッド

World.getDimension()

ワールドの環境を取得します。

戻り値:String (NORMAL or NETHER or THE_END)
World.getDifficulty()
難易度を取得します。
戻り値:String (PEACEFUL or EASY or NORMAL or HARD)
World.setDifficulty(difficulty)

難易度を設定します。

引数:
  • difficulty (String) -- 難易度 (PEACEFUL or EASY or NORMAL or HARD)
戻り値:

void

World.getPVP()

PvPフラグを取得します。

戻り値:Boolean
World.setPVP(flag)

PvPフラグを設定します。

引数:
  • pvp (Boolean) -- trueで攻撃可
戻り値:

void

World.getWeather()

天候を取得します。

戻り値:String (THUNDER or STROM or SUNNY)

if (match.getWorld().getWeather() == 'SUNNY') {
    console.log('現在の天候は晴れです。');
}
World.setWeather(weather)

天候を設定します。

引数:
  • weather (String) -- 天候 (THUNDER or STORM or SUNNY)
戻り値:

void

// 天候を晴れにする
match.getWorld().setWeather('SUNNY');

// 雷雨にする
match.getWorld().setWeather('THUNDER');
World.getTime()

時間を取得します。

戻り値:Number

console.log('現在ゲーム内時間の' + Math.round(match.getWorld().getTime() / 1000) + '時です。');
World.setTime(time)

時間を設定します。

引数:
  • time (Number) -- 時 x 1000で表すゲーム時間
戻り値:

void

// 午後2時にする
match.getWorld().setTime(14000);

// 午前3時にする
match.getWorld().setTime(3000);
World.getBlock(x, y, z)

指定座標のブロックを取得します。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
戻り値:

Block

var block = match.getWorld().getBlock(30, 64, 0);
console.log('座標30, 64, 0のブロックは羊毛' + (block.getType() == 'WOOL' ? 'です。' : 'ではありません。'));

// 10, 64, 10のブロックを赤の色つきガラスに変える
var block = match.getWorld().getBlock(10, 64, 10)
block.setType('STAINED_GLASS');
block.setData(14);

// 20x20の床を作る
var world = match.getWorld();
for (var x = 100; x < 120; x++) {
    for (var z = 100; z < 120; z++) {
        world.getBlock(x, 64, z).setType('WOOD');
    }
}
World.playSound(x, y, z, soundName, volume, pitch)

指定座標でサウンドを再生します。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
  • soundName (String) -- サウンド名
  • volume (Number) -- ボリューム
  • pitch (Number) -- ピッチ
戻り値:

void

World.playEffect(x, y, z, effectName, data, radius)

指定座標でエフェクトを再生します。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
  • effectName (String) -- エフェクト名
  • data (Number) -- データ
  • radius (Numbmer) -- 範囲
戻り値:

void

World.playParticle(x, y, z, particleName, offset, speed, count)

指定座標でパーティクルを表示します。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
  • particleName (String) -- パーティクル名
  • offset (Number) --
  • speed (Number) --
  • count (Number) --
戻り値:

void

// 100x100の範囲内に20個のパーティクルを生成
setInterval(function() {
    for (var i = 0; i < 20; i++) {
        var x = getRandom(-50, 50);
        var y = 5;
        var z = getRandom(-50, 50);
        match.getWorld().playParticle(x, y, z, 'HEART', 1.0, 1.0, 3);
    }
}, 1000);

function getRandom(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
World.createExplosion(x, y, z, power)

指定座標に爆発を生成します。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
  • power (Number) -- 威力
戻り値:

void

World.strikeLightning(x, y, z, damageFlag)

指定座標に雷を落とします。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
  • damageFlag (Boolean) -- プレイヤーへのダメージ有無
戻り値:

void

World.spawnEntity(x, y, z, entityType)

指定座標にEntityをスポーンさせます。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
  • entityType (String) -- EntityType
戻り値:

void

// 空からTNTを落とす
match.getWorld().spawnEntity(0, 128, 0, 'PRIMED_TNT');

// Ocelotを50,64,50に召喚
match.getWorld().spawnEntity(50, 64, 50, 'OCELOT');
World.spawnFallingBlock(x, y, z, type, data)

指定座標のブロックに落下ブロックを生成します。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
  • type (String) -- Material
  • data (Number) -- データ
戻り値:

void

World.sendMessage(message)

ワールド内のプレイヤーにメッセージを送信します。

引数:
  • message (String) -- メッセージ
戻り値:

void

World.sendLocaleMessage(name)

ワールド内のプレイヤーに <locale> で定義した多言語メッセージを送信します。

引数:
  • name (String) -- <string> ノードの name 属性
戻り値:

void

イベント

イベントの設定方法は EventEmitter をご覧ください。

World.button

プレイヤーによるWood Button, Stone Button, Leverの操作時

イベントオブジェクト

メソッド 戻り値 説明  
getPlayer() Player 操作したプレイヤー  
getBlock() Block 操作したブロック  
getState() Number レバーの状態(1=ON 0=OFF)、ボタンの場合は常に1

match.getWorld().on('button', function(event) {
    console.log(event.getPlayer().getName() + 'が' + event.getType() + 'を操作しました。');
});
World.use

プレイヤーがアイテムを持った状態で右クリックした時

イベントオブジェクト

メソッド 戻り値 説明
getPlayer() Player プレイヤー
getItemStack() ItemStack プレイヤーが手に持っているアイテム

match.getWorld().on('use', function(event) {
    if (event.getItemStack().getType() == 'FEATHER') {
        event.getPlayer().setVelocity(0, 2, 0);
    }
});

Team

class Team()

メソッド

Team.getId()

IDを取得します。

戻り値:String
Team.getName()

チーム名を取得します。

戻り値:String
Team.getDisplayName()

色つきのチーム名を取得します。

戻り値:String
Team.getAlias()

別名を取得します。

戻り値:String
Team.setName(name)

別名を設定します。

引数:
  • name (String) -- 別名
戻り値:

void

Team.getPlayerCount()

チームのプレイヤー人数を取得します。

戻り値:Number
Team.getMax()

チームの最大人数を取得します。

戻り値:Number
Team.getPlayers()

チームのプレイヤーを取得します。

戻り値:Array[ Player ]
Team.sendMessage(message)

チームにメッセージを送信します。

引数:
  • message (String) -- メッセージ
戻り値:

void

Team.sendLocaleMessage(name)

チームに <locale> で定義した多言語メッセージを送信します。

引数:
  • name (String) -- <string> ノードの name 属性
戻り値:

void

Team.incrementScore(value)

チームのスコアを加算します。

引数:
  • value (Number) -- スコア
戻り値:

void

Team.decrementScore(value)

チームのスコアを減算します。

引数:
  • value (Number) -- スコア
戻り値:

void

Team.getKills()

チームのキル数を取得します。

戻り値:Number
Team.getDeaths()

チームのデス数を取得します。

戻り値:Number

Player

class Player()

メソッド

Player.getName()

プレイヤー名を取得します。

戻り値:String
Player.getUUID()

プレイヤーのUUIDを取得します。

戻り値:String
Player.getLocale()

クライアントの言語を取得します。

戻り値:String
Player.getLocation()

プレイヤーの座標を取得します。

戻り値:Array[ Number ] (X, Y, Z)
Player.getTeam()

プレイヤーのチームを取得します。観戦者の場合はnullです。

戻り値:Team
Player.getKills()

キル数を取得します。

戻り値:Number
Player.getDeaths()

デス数を取得します。

戻り値:Number
Player.getKillStreaks()

連続キル数を取得します。

戻り値:Number
Player.getScore()

スコアを取得します。

戻り値:Number
Player.sendMessage(message)

メッセージを送信します。

引数:
  • message (String) -- メッセージ
戻り値:

void

Player.sendLocaleMessage(name)

<locale> で定義した多言語メッセージを送信します。

引数:
  • name (String) -- <string> ノードの name 属性
戻り値:

void

Player.teleport(x, y, z)

プレイヤーを指定座標にテレポートさせます。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
戻り値:

void

Player.teleport(x, y, z, yaw, pitch)

プレイヤーを指定座標にテレポートさせます。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
  • yaw (Number) -- ヨー
  • pitch (Number) -- ピッチ
戻り値:

void

Player.velocity(x, y, z)

プレイヤーのvelocityを設定します。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
Player.playSound(soundName, volume, pitch)

効果音を再生します。

引数:
  • soundName (String) -- サウンド名
  • volume (Number) -- ボリューム
  • pitch (Number) -- ピッチ
戻り値:

void

Player.applyKit(kitName)

キットを適用します。

引数:
  • kitName (String) -- キット名
戻り値:

void

Player.damage(value)

プレイヤーにダメージを与えます。

引数:
  • value (Number) -- ダメージ値
戻り値:

void

Player.kill()

プレイヤーを死亡させます。

戻り値:void
Player.kill(killer)

プレイヤーを死亡させます。

引数:
  • killer (Player) -- 倒したプレイヤー
戻り値:

void

Player.addItem(item)

プレイヤーのインベントリにアイテムを追加します。

引数:
  • item (ItemStack) -- 追加するアイテム
戻り値:

void

Player.setItem(slot, item)

プレイヤーのインベントリにアイテムを追加します。

引数:
  • slot (Number) -- インベントリスロット
  • item (ItemStack) -- 追加するアイテム
戻り値:

void

Player.removeItem(item)

プレイヤーのインベントリからアイテムを削除します。

引数:
  • item (ItemStack) -- 削除するアイテム
戻り値:

void

Player.removeItem(item, amount)

プレイヤーのインベントリから指定個数のアイテムを削除します。

引数:
  • item (ItemStack) -- 削除するアイテム
  • amount (Number) -- 削除する個数
戻り値:

void

Player.countItem(item)

プレイヤーのインベントリにある特定アイテムの数を取得します。

引数:
戻り値:

Number

Player.getItem(slot)

プレイヤーのインベントリにあるアイテムを取得します。

引数:
  • slot (Number) -- インベントリスロット
戻り値:

ItemStack

Player.getItemInHand()

プレイヤーが手に持っているアイテムを取得します。

戻り値:ItemStack
Player.isDead()

プレイヤーが死亡しているかどうかを取得します。

戻り値:Boolean

Objective

class Objective()

メソッド

Objective.getId()

IDを取得します。

戻り値:string
Objective.getName()

オブジェクティブ名を取得します。

戻り値:string
Objective.getOwner()

オブジェクティブのチームを取得します。

戻り値:Team
Objective.isCompleted()

達成フラグを取得します。

戻り値:boolean
Objective.isFailed()

失敗フラグを取得します。

戻り値:boolean

Spawn

var redForwardSpawn = match.getMap().getSpawn('red-forward-spawn');
class Spawn()

メソッド

Spawn.getId()

IDを取得します。

戻り値:String
Spawn.getPriority()

優先順位を取得します。

戻り値:Number
Spawn.setPriority(priority)

優先順位を設定します。

引数:
  • priority (Number) -- 優先順位
戻り値:

void

Region

var redCoreRegion = match.getMap().getRegion('red-core');
class Region()

メソッド

Region.getId()

IDを取得します。

戻り値:String
Region.contains(x, y, z)

指定座標がこのリージョンに含まれるかチェックします。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
戻り値:

Boolean

Region.contains(block)

指定ブロックがこのリージョンに含まれるかチェックします。

引数:
戻り値:

Boolean

Region.getBlocks()

Block の配列を取得します。

戻り値:Array[ Block ]

イベント

現在は<apply>にチェックが指定されていない場合はイベントが発行されない制限があります。

Region.enter

プレイヤーがリージョンに侵入した時

イベントオブジェクト

メソッド 戻り値 説明
getPlayer() Player プレイヤー
Region.leave

プレイヤーがリージョンから出た時

イベントオブジェクト

メソッド 戻り値 説明
getPlayer() Player プレイヤー
Region.blockBreak

プレイヤーがブロックを破壊した時

イベントオブジェクト

メソッド 戻り値 説明
getPlayer() Player プレイヤー
getBlock() Block 該当座標のブロック
Region.blockPlace

プレイヤーがブロックを設置した時

イベントオブジェクト

メソッド 戻り値 説明
getPlayer() Player プレイヤー
getBlock() Block 該当座標のブロック

ItemStack

新規ItemStackオブジェクトを作成するには createItemStack() を呼び出します。

var item = createItemStack();
item.setType('DIAMOND_HOE');
class ItemStack()

メソッド

ItemStack.getType()

タイプを取得します。

戻り値:String (Material)
ItemStack.setType(type)

タイプを設定します。

引数:
  • type (string) -- タイプ (Material)
戻り値:

void

ItemStack.getData()

データ値を取得します。

戻り値:Number
ItemStack.setData(data)

データ値を設定します。

引数:
  • data (Number) -- データ値
戻り値:

void

ItemStack.getName()

アイテム名を取得します。

戻り値:String
ItemStack.setName(name)

アイテム名を設定します。

引数:
  • name (string) -- アイテム名
戻り値:

void

ItemStack.getLore()

アイテムの説明を取得します。

戻り値:Array[string]
ItemStack.setLore(lore)

アイテムの説明を設定します。

引数:
  • type (array[string]) -- 説明
戻り値:

void

ItemStack.addEnchantment(enchantment, level)

アイテムにエンチャントを付与します。

引数:
  • enchantment (string) -- エンチャント名
  • level (Number) -- レベル
戻り値:

void

ItemStack.clearEnchantments()

アイテムからエンチャントを削除します。

戻り値:void

Block

var redCoreRegion = match.getMap().getRegion('red-core');
var blocks = redCoreRegion.getBlocks();
for (var i = 0; i < blocks.length; i++) {
    if (blocks[i].getType() == 'OBSIDIAN') {
        blocks[i].setType('GLASS');
    }
}
class Block()

メソッド

Block.getX()

X座標を取得します。

戻り値:Integer
Block.getY()

Y座標を取得します。

戻り値:Integer
Block.getZ()

Z座標を取得します。

戻り値:Integer
Block.getType()

タイプを取得します。

戻り値:String (Material)
Block.setType(type)

タイプを設定します。

引数:
  • type (string) -- タイプ (Material)
戻り値:

void

Block.getData()

データ値を取得します。

戻り値:Number
Block.setData(data)

データ値を設定します。

引数:
  • data (Number) -- データ値
戻り値:

void

Block.getSign()

ブロックが看板の場合に内容を取得します。

戻り値:Array[String] ブロックが看板ではない場合はnull
Block.setSign(lines)

ブロックが看板の場合に内容を設定します。

引数:
  • lines (Array[String]) -- 看板内容の配列
戻り値:

void

match.getWorld().setSign(67, 25, 52, ['1行目', '2行目', '3行目', '4行目']);

EventEmitter

class EventEmitter()

メソッド

EventEmitter.on(eventName, listener)

イベントリスナーを登録します。

引数:
  • eventName (string) -- イベント名
  • listener (function) -- イベントリスナー
戻り値:

void

EventEmitter.off(eventName)

イベントリスナーを解除します。

引数:
  • eventName (string) -- イベント名
戻り値:

void

付録: データ

Material

AIR 0
STONE 1
GRASS 2
DIRT 3
COBBLESTONE 4
WOOD 5
SAPLING 6
BEDROCK 7
WATER 8
STATIONARY_WATER 9
LAVA 10
STATIONARY_LAVA 11
SAND 12
GRAVEL 13
GOLD_ORE 14
IRON_ORE 15
COAL_ORE 16
LOG 17
LEAVES 18
SPONGE 19
GLASS 20
LAPIS_ORE 21
LAPIS_BLOCK 22
DISPENSER 23
SANDSTONE 24
NOTE_BLOCK 25
BED_BLOCK 26
POWERED_RAIL 27
DETECTOR_RAIL 28
PISTON_STICKY_BASE 29
WEB 30
LONG_GRASS 31
DEAD_BUSH 32
PISTON_BASE 33
PISTON_EXTENSION 34
WOOL 35
PISTON_MOVING_PIECE 36
YELLOW_FLOWER 37
RED_ROSE 38
BROWN_MUSHROOM 39
RED_MUSHROOM 40
GOLD_BLOCK 41
IRON_BLOCK 42
DOUBLE_STEP 43
STEP 44
BRICK 45
TNT 46
BOOKSHELF 47
MOSSY_COBBLESTONE 48
OBSIDIAN 49
TORCH 50
FIRE 51
MOB_SPAWNER 52
WOOD_STAIRS 53
CHEST 54
REDSTONE_WIRE 55
DIAMOND_ORE 56
DIAMOND_BLOCK 57
WORKBENCH 58
CROPS 59
SOIL 60
FURNACE 61
BURNING_FURNACE 62
SIGN_POST 63
WOODEN_DOOR 64
LADDER 65
RAILS 66
COBBLESTONE_STAIRS 67
WALL_SIGN 68
LEVER 69
STONE_PLATE 70
IRON_DOOR_BLOCK 71
WOOD_PLATE 72
REDSTONE_ORE 73
GLOWING_REDSTONE_ORE 74
REDSTONE_TORCH_OFF 75
REDSTONE_TORCH_ON 76
STONE_BUTTON 77
SNOW 78
ICE 79
SNOW_BLOCK 80
CACTUS 81
CLAY 82
SUGAR_CANE_BLOCK 83
JUKEBOX 84
FENCE 85
PUMPKIN 86
NETHERRACK 87
SOUL_SAND 88
GLOWSTONE 89
PORTAL 90
JACK_O_LANTERN 91
CAKE_BLOCK 92
DIODE_BLOCK_OFF 93
DIODE_BLOCK_ON 94
LOCKED_CHEST 95
STAINED_GLASS 95
TRAP_DOOR 96
MONSTER_EGGS 97
SMOOTH_BRICK 98
HUGE_MUSHROOM_1 99
HUGE_MUSHROOM_2 100
IRON_FENCE 101
THIN_GLASS 102
MELON_BLOCK 103
PUMPKIN_STEM 104
MELON_STEM 105
VINE 106
FENCE_GATE 107
BRICK_STAIRS 108
SMOOTH_STAIRS 109
MYCEL 110
WATER_LILY 111
NETHER_BRICK 112
NETHER_FENCE 113
NETHER_BRICK_STAIRS 114
NETHER_WARTS 115
ENCHANTMENT_TABLE 116
BREWING_STAND 117
CAULDRON 118
ENDER_PORTAL 119
ENDER_PORTAL_FRAME 120
ENDER_STONE 121
DRAGON_EGG 122
REDSTONE_LAMP_OFF 123
REDSTONE_LAMP_ON 124
WOOD_DOUBLE_STEP 125
WOOD_STEP 126
COCOA 127
SANDSTONE_STAIRS 128
EMERALD_ORE 129
ENDER_CHEST 130
TRIPWIRE_HOOK 131
TRIPWIRE 132
EMERALD_BLOCK 133
SPRUCE_WOOD_STAIRS 134
BIRCH_WOOD_STAIRS 135
JUNGLE_WOOD_STAIRS 136
COMMAND 137
BEACON 138
COBBLE_WALL 139
FLOWER_POT 140
CARROT 141
POTATO 142
WOOD_BUTTON 143
SKULL 144
ANVIL 145
TRAPPED_CHEST 146
GOLD_PLATE 147
IRON_PLATE 148
REDSTONE_COMPARATOR_OFF 149
REDSTONE_COMPARATOR_ON 150
DAYLIGHT_DETECTOR 151
REDSTONE_BLOCK 152
QUARTZ_ORE 153
HOPPER 154
QUARTZ_BLOCK 155
QUARTZ_STAIRS 156
ACTIVATOR_RAIL 157
DROPPER 158
STAINED_CLAY 159
STAINED_GLASS_PANE 160
LEAVES_2 161
LOG_2 162
ACACIA_STAIRS 163
DARK_OAK_STAIRS 164
HAY_BLOCK 170
CARPET 171
HARD_CLAY 172
COAL_BLOCK 173
PACKED_ICE 174
DOUBLE_PLANT 175
IRON_SPADE 256
IRON_PICKAXE 257
IRON_AXE 258
FLINT_AND_STEEL 259
APPLE 260
BOW 261
ARROW 262
COAL 263
DIAMOND 264
IRON_INGOT 265
GOLD_INGOT 266
IRON_SWORD 267
WOOD_SWORD 268
WOOD_SPADE 269
WOOD_PICKAXE 270
WOOD_AXE 271
STONE_SWORD 272
STONE_SPADE 273
STONE_PICKAXE 274
STONE_AXE 275
DIAMOND_SWORD 276
DIAMOND_SPADE 277
DIAMOND_PICKAXE 278
DIAMOND_AXE 279
STICK 280
BOWL 281
MUSHROOM_SOUP 282
GOLD_SWORD 283
GOLD_SPADE 284
GOLD_PICKAXE 285
GOLD_AXE 286
STRING 287
FEATHER 288
SULPHUR 289
WOOD_HOE 290
STONE_HOE 291
IRON_HOE 292
DIAMOND_HOE 293
GOLD_HOE 294
SEEDS 295
WHEAT 296
BREAD 297
LEATHER_HELMET 298
LEATHER_CHESTPLATE 299
LEATHER_LEGGINGS 300
LEATHER_BOOTS 301
CHAINMAIL_HELMET 302
CHAINMAIL_CHESTPLATE 303
CHAINMAIL_LEGGINGS 304
CHAINMAIL_BOOTS 305
IRON_HELMET 306
IRON_CHESTPLATE 307
IRON_LEGGINGS 308
IRON_BOOTS 309
DIAMOND_HELMET 310
DIAMOND_CHESTPLATE 311
DIAMOND_LEGGINGS 312
DIAMOND_BOOTS 313
GOLD_HELMET 314
GOLD_CHESTPLATE 315
GOLD_LEGGINGS 316
GOLD_BOOTS 317
FLINT 318
PORK 319
GRILLED_PORK 320
PAINTING 321
GOLDEN_APPLE 322
SIGN 323
WOOD_DOOR 324
BUCKET 325
WATER_BUCKET 326
LAVA_BUCKET 327
MINECART 328
SADDLE 329
IRON_DOOR 330
REDSTONE 331
SNOW_BALL 332
BOAT 333
LEATHER 334
MILK_BUCKET 335
CLAY_BRICK 336
CLAY_BALL 337
SUGAR_CANE 338
PAPER 339
BOOK 340
SLIME_BALL 341
STORAGE_MINECART 342
POWERED_MINECART 343
EGG 344
COMPASS 345
FISHING_ROD 346
WATCH 347
GLOWSTONE_DUST 348
RAW_FISH 349
COOKED_FISH 350
INK_SACK 351
BONE 352
SUGAR 353
CAKE 354
BED 355
DIODE 356
COOKIE 357
MAP 358
SHEARS 359
MELON 360
PUMPKIN_SEEDS 361
MELON_SEEDS 362
RAW_BEEF 363
COOKED_BEEF 364
RAW_CHICKEN 365
COOKED_CHICKEN 366
ROTTEN_FLESH 367
ENDER_PEARL 368
BLAZE_ROD 369
GHAST_TEAR 370
GOLD_NUGGET 371
NETHER_STALK 372
POTION 373
GLASS_BOTTLE 374
SPIDER_EYE 375
FERMENTED_SPIDER_EYE 376
BLAZE_POWDER 377
MAGMA_CREAM 378
BREWING_STAND_ITEM 379
CAULDRON_ITEM 380
EYE_OF_ENDER 381
SPECKLED_MELON 382
MONSTER_EGG 383
EXP_BOTTLE 384
FIREBALL 385
BOOK_AND_QUILL 386
WRITTEN_BOOK 387
EMERALD 388
ITEM_FRAME 389
FLOWER_POT_ITEM 390
CARROT_ITEM 391
POTATO_ITEM 392
BAKED_POTATO 393
POISONOUS_POTATO 394
EMPTY_MAP 395
GOLDEN_CARROT 396
SKULL_ITEM 397
CARROT_STICK 398
NETHER_STAR 399
PUMPKIN_PIE 400
FIREWORK 401
FIREWORK_CHARGE 402
ENCHANTED_BOOK 403
REDSTONE_COMPARATOR 404
NETHER_BRICK_ITEM 405
QUARTZ 406
EXPLOSIVE_MINECART 407
HOPPER_MINECART 408
IRON_BARDING 417
GOLD_BARDING 418
DIAMOND_BARDING 419
LEASH 420
NAME_TAG 421
COMMAND_MINECART 422
GOLD_RECORD 2256
GREEN_RECORD 2257
RECORD_3 2258
RECORD_4 2259
RECORD_5 2260
RECORD_6 2261
RECORD_7 2262
RECORD_8 2263
RECORD_9 2264
RECORD_10 2265
RECORD_11 2266
RECORD_12 2267

Enchantment

説明
ARROW_DAMAGE Provides extra damage when shooting arrows from bows
ARROW_FIRE Sets entities on fire when hit by arrows shot from a bow
ARROW_INFINITE Provides infinite arrows when shooting a bow
ARROW_KNOCKBACK Provides a knockback when an entity is hit by an arrow from a bow
DAMAGE_ALL Increases damage against all targets
DAMAGE_ARTHROPODS Increases damage against arthropod targets
DAMAGE_UNDEAD Increases damage against undead targets
DEPTH_STRIDER Increases walking speed while in water
DIG_SPEED Increases the rate at which you mine/dig
DURABILITY Decreases the rate at which a tool looses durability
FIRE_ASPECT When attacking a target , has a chance to set them on fire
KNOCKBACK All damage to other targets will knock them back when hit
LOOT_BONUS_BLOCKS Provides a chance of gaining extra loot when destroying blocks
LOOT_BONUS_MOBS Provides a chance of gaining extra loot when killing monsters
LUCK Decreases odds of catching worthless junk
LURE Increases rate of fish biting your hook
OXYGEN Decreases the rate of air loss whilst underwater
PROTECTION_ENVIRONMENTAL Provides protection against environmental damage
PROTECTION_EXPLOSIONS Provides protection against explosive damage
PROTECTION_FALL Provides protection against fall damage
PROTECTION_FIRE Provides protection against fire damage
PROTECTION_PROJECTILE Provides protection against projectile damage
SILK_TOUCH Allows blocks to drop themselves instead of fragments (for example , stone instead of cobblestone)
THORNS Damages the attacker
WATER_WORKER Increases the speed at which a player may mine underwater

EntityType

DROPPED_ITEM
EXPERIENCE_ORB
LEASH_HITCH
PAINTING
ARROW
SNOWBALL
FIREBALL
SMALL_FIREBALL
ENDER_PEARL
ENDER_SIGNAL
THROWN_EXP_BOTTLE
ITEM_FRAME
WITHER_SKULL
PRIMED_TNT
FALLING_BLOCK
FIREWORK
MINECART_COMMAND
BOAT
MINECART
MINECART_CHEST
MINECART_FURNACE
MINECART_TNT
MINECART_HOPPER
MINECART_MOB_SPAWNER
CREEPER
SKELETON
SPIDER
GIANT
ZOMBIE
SLIME
GHAST
PIG_ZOMBIE
ENDERMAN
CAVE_SPIDER
SILVERFISH
BLAZE
MAGMA_CUBE
ENDER_DRAGON
WITHER
BAT
WITCH
PIG
SHEEP
COW
CHICKEN
SQUID
WOLF
MUSHROOM_COW
SNOWMAN
OCELOT
IRON_GOLEM
HORSE
VILLAGER
ENDER_CRYSTAL
SPLASH_POTION
EGG
FISHING_HOOK
LIGHTNING
WEATHER
PLAYER
COMPLEX_PART
UNKNOWN

Sound

AMBIENCE_CAVE
AMBIENCE_RAIN
AMBIENCE_THUNDER
ANVIL_BREAK
ANVIL_LAND
ANVIL_USE
ARROW_HIT
BURP
CHEST_CLOSE
CHEST_OPEN
CLICK
DOOR_CLOSE
DOOR_OPEN
DRINK
EAT
EXPLODE
FALL_BIG
FALL_SMALL
FIRE
FIRE_IGNITE
FIZZ
FUSE
GLASS
HURT_FLESH
ITEM_BREAK
ITEM_PICKUP
LAVA
LAVA_POP
LEVEL_UP
MINECART_BASE
MINECART_INSIDE
NOTE_BASS
NOTE_PIANO
NOTE_BASS_DRUM
NOTE_STICKS
NOTE_BASS_GUITAR
NOTE_SNARE_DRUM
NOTE_PLING
ORB_PICKUP
PISTON_EXTEND
PISTON_RETRACT
PORTAL
PORTAL_TRAVEL
PORTAL_TRIGGER
SHOOT_ARROW
SPLASH
SPLASH2
STEP_GRASS
STEP_GRAVEL
STEP_LADDER
STEP_SAND
STEP_SNOW
STEP_STONE
STEP_WOOD
STEP_WOOL
SWIM
WATER
WOOD_CLICK
BAT_DEATH
BAT_HURT
BAT_IDLE
BAT_LOOP
BAT_TAKEOFF
BLAZE_BREATH
BLAZE_DEATH
BLAZE_HIT
CAT_HISS
CAT_HIT
CAT_MEOW
CAT_PURR
CAT_PURREOW
CHICKEN_IDLE
CHICKEN_HURT
CHICKEN_EGG_POP
CHICKEN_WALK
COW_IDLE
COW_HURT
COW_WALK
CREEPER_HISS
CREEPER_DEATH
ENDERDRAGON_DEATH
ENDERDRAGON_GROWL
ENDERDRAGON_HIT
ENDERDRAGON_WINGS
ENDERMAN_DEATH
ENDERMAN_HIT
ENDERMAN_IDLE
ENDERMAN_TELEPORT
ENDERMAN_SCREAM
ENDERMAN_STARE
GHAST_SCREAM
GHAST_SCREAM2
GHAST_CHARGE
GHAST_DEATH
GHAST_FIREBALL
GHAST_MOAN
IRONGOLEM_DEATH
IRONGOLEM_HIT
IRONGOLEM_THROW
IRONGOLEM_WALK
MAGMACUBE_WALK
MAGMACUBE_WALK2
MAGMACUBE_JUMP
PIG_IDLE
PIG_DEATH
PIG_WALK
SHEEP_IDLE
SHEEP_SHEAR
SHEEP_WALK
SILVERFISH_HIT
SILVERFISH_KILL
SILVERFISH_IDLE
SILVERFISH_WALK
SKELETON_IDLE
SKELETON_DEATH
SKELETON_HURT
SKELETON_WALK
SLIME_ATTACK
SLIME_WALK
SLIME_WALK2
SPIDER_IDLE
SPIDER_DEATH
SPIDER_WALK
WITHER_DEATH
WITHER_HURT
WITHER_IDLE
WITHER_SHOOT
WITHER_SPAWN
WOLF_BARK
WOLF_DEATH
WOLF_GROWL
WOLF_HOWL
WOLF_HURT
WOLF_PANT
WOLF_SHAKE
WOLF_WALK
WOLF_WHINE
ZOMBIE_METAL
ZOMBIE_WOOD
ZOMBIE_WOODBREAK
ZOMBIE_IDLE
ZOMBIE_DEATH
ZOMBIE_HURT
ZOMBIE_INFECT
ZOMBIE_UNFECT
ZOMBIE_REMEDY
ZOMBIE_WALK
ZOMBIE_PIG_IDLE
ZOMBIE_PIG_ANGRY
ZOMBIE_PIG_DEATH
ZOMBIE_PIG_HURT
DIG_WOOL
DIG_GRASS
DIG_GRAVEL
DIG_SAND
DIG_SNOW
DIG_STONE
DIG_WOOD
FIREWORK_BLAST
FIREWORK_BLAST2
FIREWORK_LARGE_BLAST
FIREWORK_LARGE_BLAST2
FIREWORK_TWINKLE
FIREWORK_TWINKLE2
FIREWORK_LAUNCH
SUCCESSFUL_HIT
HORSE_ANGRY
HORSE_ARMOR
HORSE_BREATHE
HORSE_DEATH
HORSE_GALLOP
HORSE_HIT
HORSE_IDLE
HORSE_JUMP
HORSE_LAND
HORSE_SADDLE
HORSE_SOFT
HORSE_WOOD
DONKEY_ANGRY
DONKEY_DEATH
DONKEY_HIT
DONKEY_IDLE
HORSE_SKELETON_DEATH
HORSE_SKELETON_HIT
HORSE_SKELETON_IDLE
HORSE_ZOMBIE_DEATH
HORSE_ZOMBIE_HIT
HORSE_ZOMBIE_IDLE
VILLAGER_DEATH
VILLAGER_HAGGLE
VILLAGER_HIT
VILLAGER_IDLE
VILLAGER_NO
VILLAGER_YES

Effect

CLICK2
CLICK1
BOW_FIRE
DOOR_TOGGLE
EXTINGUISH
RECORD_PLAY
SOUND
GHAST_SHRIEK
GHAST_SHOOT
BLAZE_SHOOT
ZOMBIE_CHEW_WOODEN_DOOR
ZOMBIE_CHEW_IRON_DOOR
ZOMBIE_DESTROY_DOOR
SMOKE
VISUAL
STEP_SOUND
SOUND
POTION_BREAK
2002
VISUAL
ENDER_SIGNAL
MOBSPAWNER_FLAMES
FIREWORKS_SPARK
CRIT
MAGIC_CRIT
POTION_SWIRL
POTION_SWIRL_TRANSPARENT
SPELL
INSTANT_SPELL
WITCH_MAGIC
NOTE
PORTAL
FLYING_GLYPH
FLAME
LAVA_POP
FOOTSTEP
SPLASH
PARTICLE_SMOKE
EXPLOSION_HUGE
EXPLOSION_LARGE
EXPLOSION
VOID_FOG
SMALL_SMOKE
CLOUD
COLOURED_DUST
SNOWBALL_BREAK
WATERDRIP
LAVADRIP
SNOW_SHOVEL
SLIME
HEART
VILLAGER_THUNDERCLOUD
HAPPY_VILLAGER
ITEM_BREAK
PARTICLE
TILE_BREAK
PARTICLE
SOUND
VISUAL

Particle

HUGE_EXPLOSION
LARGE_EXPLODE
FIREWORKS_SPARK
BUBBLE
SUSPENDED
DEPTH_SUSPEND
TOWNAURA
CRIT
MAGIC_CRIT
SMOKE
MOB_SPELL
MOB_SPELL_AMBIENT
SPELL
INSTANT_SPELL
WITCH_MAGIC
NOTE
PORTAL
ENCHANTMENT_TABLE
EXPLODE
FLAME
LAVA
FOOTSTEP
SPLASH
LARGE_SMOKE
CLOUD
REDDUST
SNOWBALL_POOF
DRIP_WATER
DRIP_LAVA
SNOW_SHOVEL
SLIME
HEART
ANGRY_VILLAGER
HAPPY_VILLAGER

DamageCause

CONTACT
ENTITY_ATTACK
PROJECTILE
SUFFOCATION
FALL
FIRE
FIRE_TICK
MELTING
LAVA
DROWNING
BLOCK_EXPLOSION
ENTITY_EXPLOSION
VOID
LIGHTNING
SUICIDE
STARVATION
POISON
MAGIC
WITHER
FALLING_BLOCK
THORNS
CUSTOM

DyeColor

BLACK
BLUE
BROWN
CYAN
GRAY
GREEN
LIGHT_BLUE
LIME
MAGENTA
ORANGE
PINK
PURPLE
RED
SILVER
WHITE
YELLOW

ChatColor

AQUA
BLACK
BLUE
BOLD
DARK_AQUA
DARK_BLUE
DARK_GRAY
DARK_GREEN
DARK_PURPLE
DARK_RED
GOLD
GRAY
GREEN
ITALIC
LIGHT_PURPLE
MAGIC
RED
RESET
STRIKETHROUGH
UNDERLINE
WHITE
YELLOW

PotionEffectType

説明
ABSORPTION Increases the maximum health of an entity with health that cannot be regenerated , but is refilled every 30 seconds.
BLINDNESS Blinds an entity.
CONFUSION Warps vision on the client.
DAMAGE_RESISTANCE Decreases damage dealt to an entity.
FAST_DIGGING Increases dig speed.
FIRE_RESISTANCE Stops fire damage.
HARM Hurts an entity.
HEAL Heals an entity.
HEALTH_BOOST Increases the maximum health of an entity.
HUNGER Increases hunger.
INCREASE_DAMAGE Increases damage dealt.
INVISIBILITY Grants invisibility.
JUMP Increases jump height.
NIGHT_VISION Allows an entity to see in the dark.
POISON Deals damage to an entity over time.
REGENERATION Regenerates health.
SATURATION Increases the food level of an entity each tick.
SLOW Decreases movement speed.
SLOW_DIGGING Decreases dig speed.
SPEED Increases movement speed.
WATER_BREATHING Allows breathing underwater.
WEAKNESS Decreases damage dealt by an entity.
WITHER Deals damage to an entity over time and gives the health to the shooter.

SpawnReason

BREEDING
BUILD_IRONGOLEM
BUILD_SNOWMAN
BUILD_WITHER
CHUNK_GEN
CURED
CUSTOM
DEFAULT
DISPENSE_EGG
EGG
INFECTION
JOCKEY
LIGHTNING
MOUNT
NATURAL
NETHER_PORTAL
OCELOT_BABY
REINFORCEMENTS
SILVERFISH_BLOCK
SLIME_SPLIT
SPAWNER
SPAWNER_EGG
VILLAGE_DEFENSE
VILLAGE_INVASION

Time Period

サフィックスを指定する事で時間の単位を変える事が出来ます。指定されていない場合は秒として扱われます。

サフィックス 単位
y
mo
d
h 時間
m
s

REST API

Japan Minecraft PvP APIはRESTful形式でゲームのデータをJSONレスポンスにより取得する事が出来ます。

現在Japan Minecraft PvP APIへのアクセスには Developer Console よりAPIアクセスの申請を行う必要があります。

エンドポイント

エンドポイントのベースURIは https://pvp-api.minecraft.jp/v1/ になります。

認証

全てのAPIエンドポイントへのリクエストにはアクセストークンを送信する必要があります。

利用可能な認証

認証 ユーザのプライベートデータ取得 Client Secretの使用 レート制限の上限増加
Authorization Code Yes Yes Yes
Client Credentials No Yes Yes

アクセストークンによるリクエスト

GET https://pvp-api.minecraft.jp/v1/servers HTTP/1.1
Authorization: Bearer {YOUR_ACCESS_TOKEN}

または

GET https://pvp-api.minecraft.jp/v1/servers?access_token={YOUR_ACCESS_TOKEN} HTTP/1.1

Client Credentials アクセストークンの取得例

curl https://minecraft.jp/oauth/token -d 'grant_type=client_credentials&client_id={YOUR_CLIENT_ID}&client_secret={YOUR_CLIENT_SECRET}'

アクセストークンの取得リクエストが成功すると次のようなJSONフォーマットで返却されます。

{"access_token":"03807cb390319329bdf6c777d4dfae9c0d3b3c35","expires_in":3600,"token_type":"bearer","scope":null}

レート制限 (Rate Limit)

Client Credentialsによる認証時には、アプリ単位で1時間に900リクエストを送信する事が出来ます。

Authorization Codeによる認証時には、対象のユーザ単位で1時間に900リクエストを送信する事が出来ます。

認証別のレート制限値

認証 1時間あたりのリクエスト可能数 レート制限適用対象
Authorization Code 900 User
Client Credentials 900 App
Client ID 600 IPアドレス

レート制限を超えるとステータスコード 429 Too Many Requests と下記の内容が返されます。

{
    error: "rate_limit",
    error_description: "Rate limit exceeded"
}

アプリケーションにより多くのリクエスト数が必要な場合は、必要な理由などの詳細を記載の上 info@minecraft.jp までご連絡ください。

現在のレート制限の状態はリクエスト時のレスポンスヘッダーに追加されます。

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 97
X-RateLimit-Reset: 1450580967
  • X-RateLimit-Limit 1時間あたりのリクエスト可能数
  • X-RateLimit-Remaining レート制限までのリクエスト数
  • X-RateLimit-Reset レート制限リセット時間(UNIXタイムスタンプ)

ステータスコード

このAPIでは下記のレスポンスステータスコードを使用します。

ステータスコード 説明
200 OK - リクエストは正常に成功しました。
204 No Content - リクエストは正常に成功しました。レスポンスはありません。
400 Bad Request - 不正なフォーマットでリクエストが行われました。
401 Unauthorized - Client IDまたはアクセストークンがリクエストに含まれていないか有効ではありません。
403 Forbidden - 認可されたスコープ範囲外へのリクエストです。
404 Not Found - リクエストされたリソースが見つかりませんでした。
429 Too Many Requests - レート制限が適用されました。
500 Internal Server Error - APIサーバで問題が発生しています。
502 Bad Gateway - 一時的にAPIサーバに接続出来なくなっています。
503 Server Unavailable - 一時的にAPIサーバに接続出来なくなっています。

API エンドポイント

Maps

GET maps

マップ一覧を取得します。

リクエスト
GET /v1/maps HTTP/1.1
パラメータ
パラメータ 説明
playing playingが指定された場合、データの中にserversが追加されます。usage: playing=1 Optional
gamemode 指定されたGamemodeのものを返却します。 Optional
rotation 指定されたServerのRotationを返却します。 Optional
max_id 指定されたIDより小さいIDのものを返却します。レスポンスとして取得した最後のIDを指定して再度リクエストする事でページングが可能です。 Optional
limit 取得するアイテム数を指定します。デフォルト20件、最大100件です。 Optional
レスポンス
[{
    "id": "583d6ea8e5bd858068e2aaa7",
    "name": "Cold Bridge",
    "version": "1.0.0",
    "proto": "1.3.0",
    "authors": [{
        "name": "EL36",
        "uuid": "",
        "contribution": ""
    }],
    "objective": "敵を殲滅せよ / Killing your enemy!",
    "teams": [{
            "name": "US",
            "max": 16,
            "color": "DARK_GREEN"
        },
        {
            "name": "SU",
            "max": 16,
            "color": "RED"
        }
    ],
    "gamemodes": [
        "tdm"
    ],
    "type": "pvp",
    "path": "Cold Bridge",
    "has_image": true,
    "permalink_url": "https://pvp.minecraft.jp/maps/583d6ea8e5bd858068e2aaa7"
}]
レスポンス [playing]
[{
    "id": "582c4381e5bd858068d9e696",
    "name": "Nature",
    "version": "1.0.1",
    "proto": "1.3.3",
    "authors": [{
        "name": "Tamanosuke",
        "uuid": "",
        "contribution": ""
    }],
    "objective": "Annihilate the enemy.",
    "teams": [{
            "name": "Blue Team",
            "max": 8,
            "color": "blue"
        },
        {
            "name": "Red Team",
            "max": 8,
            "color": "red"
        }
    ],
    "gamemodes": [
        "blitz"
    ],
    "type": "pvp",
    "rotations": [
        "Blitz"
    ],
    "path": "blitz/Nature",
    "has_image": true,
    "rates": [{
        "version": "1.0.1",
        "total": 45,
        "rate": 3.3333333,
        "rates": {
            "1": 13,
            "2": 1,
            "3": 7,
            "4": 6,
            "5": 18
        }
    }],
    "servers": [{
        "id": "52760fa76d9f46031c6135aa",
        "name": "Blitz",
        "region": "us",
        "current_map": "Nature",
        "next_map": "Stronghold"
    }],
    "permalink_url": "https://pvp.minecraft.jp/maps/582c4381e5bd858068d9e696"
}]
GET maps/:id

マップを取得します。IDまたはマップ名を指定可能です。

リクエスト
GET /v1/maps/:id HTTP/1.1
パラメータ

なし

レスポンス
{
    "id": "563c4a11012ecfdb9b6809a9",
    "name": "Dust",
    "version": "1.0.0",
    "proto": "1.3.0",
    "authors": [{
            "name": "EL36",
            "uuid": "",
            "contribution": ""
        },
        {
            "name": "ayunyan",
            "uuid": "",
            "contribution": ""
        },
        {
            "name": "buraddo",
            "uuid": "",
            "contribution": ""
        }
    ],
    "objective": "他チームのプレイヤーをフラグし、ライフを減らす。 / Fragging other team's player.",
    "teams": [{
            "name": "CT",
            "max": 24,
            "color": "blue"
        },
        {
            "name": "Terroists",
            "max": 24,
            "color": "dark red"
        }
    ],
    "gamemodes": [
        "pb"
    ],
    "type": "pvp",
    "rotations": [
        "Paintball"
    ],
    "path": "paintball/Dust",
    "has_image": true,
    "rates": [{
        "version": "1.0.0",
        "total": 625,
        "rate": 3.5792,
        "rates": {
            "1": 138,
            "2": 31,
            "3": 79,
            "4": 85,
            "5": 292
        }
    }],
    "permalink_url": "https://pvp.minecraft.jp/maps/563c4a11012ecfdb9b6809a9"
}

Match

GET matches

ゲーム結果一覧を取得します。

リクエスト
GET /v1/matches HTTP/1.1
パラメータ
パラメータ 説明
max_id 指定されたIDより小さいIDのものを返却します。レスポンスとして取得した最後のIDを指定して再度リクエストする事でページングが可能です。 Optional
limit 取得するアイテム数を指定します。デフォルト20件、最大100件です。 Optional
fields レスポンスとして取得したいフィールドを指定します。 , 区切りで複数指定可能です。 Optional
フィールド
フィールド 説明
teams チーム
objectives オブジェクティブ
レスポンス
[{
    "id": "5676213f10ecbbf0a083d5ad",
    "map": "Lava TNT",
    "server": "TNT",
    "gamemode": "bowspleef",
    "ranked": true,
    "win": "",
    "kill_count": 0,
    "death_count": 4,
    "started": "2015-12-20T12:32:42.587+09:00",
    "finished": "2015-12-20T12:37:01.576+09:00",
    "permalink_url": "https://pvp.minecraft.jp/matches/5676213f10ecbbf0a083d5ad"
}, {
    "id": "567620b410ecbbf0a083d5ac",
    "map": "TNT Temple",
    "server": "TNT",
    "gamemode": "tntrun",
    "ranked": true,
    "win": "",
    "kill_count": 0,
    "death_count": 4,
    "started": "2015-12-20T12:30:13.962+09:00",
    "finished": "2015-12-20T12:31:55.422+09:00",
    "permalink_url": "https://pvp.minecraft.jp/matches/567620b410ecbbf0a083d5ac"
}, {
    "id": "567620a610ec167c184ea6ec",
    "map": "Floating Box 3",
    "server": "Sabatora",
    "gamemode": "ctw",
    "ranked": true,
    "win": "Red Team",
    "kill_count": 55,
    "death_count": 70,
    "started": "2015-12-20T12:29:59.257+09:00",
    "finished": "2015-12-20T12:37:57.237+09:00",
    "permalink_url": "https://pvp.minecraft.jp/matches/567620a610ec167c184ea6ec"
}, {
    "id": "5676204b513a67f9f3742f39",
    "map": "Splatt Garden",
    "server": "Splatt 2",
    "gamemode": "splatt",
    "ranked": true,
    "win": "Lime Team",
    "kill_count": 63,
    "death_count": 63,
    "started": "2015-12-20T12:28:30.589+09:00",
    "finished": "2015-12-20T12:33:30.827+09:00",
    "permalink_url": "https://pvp.minecraft.jp/matches/5676204b513a67f9f3742f39"
}]
GET matches/:id

ゲーム結果を取得します。

リクエスト
GET /v1/matches/:id HTTP/1.1
パラメータ
パラメータ 説明
fields レスポンスとして取得したいフィールドを指定します。 , 区切りで複数指定可能です。 Optional
フィールド
フィールド 説明
teams チーム
objectives オブジェクティブ
レスポンス
{
    "id": "56761ef7513a67f9f3742f31",
    "map": "End Splatoon",
    "server": "Splatt 2",
    "gamemode": "splatt",
    "ranked": true,
    "win": "Purple Team",
    "kill_count": 37,
    "death_count": 37,
    "started": "2015-12-20T12:22:50.637+09:00",
    "finished": "2015-12-20T12:27:50.923+09:00",
    "teams": [{
        "name": "Lime Team",
        "score": 0,
        "kill_count": 28,
        "death_count": 9,
        "players": [{
            "uuid": "1234567890abcdef1234567890abcdef",
            "name": "Example1",
            "score": 0,
            "kill_count": 7,
            "death_count": 1,
            "shot_count": 0,
            "hit_count": 8,
            "paint_count": 1636
        }, {
            "uuid": "1234567890abcdef1234567890abcdef",
            "name": "Example2",
            "score": 0,
            "kill_count": 1,
            "death_count": 0,
            "shot_count": 0,
            "hit_count": 19,
            "paint_count": 1544
        }]
    }, {
        "name": "Purple Team",
        "score": 0,
        "kill_count": 9,
        "death_count": 28,
        "players": [{
            "uuid": "1234567890abcdef1234567890abcdef2",
            "name": "Example3",
            "score": 0,
            "kill_count": 0,
            "death_count": 4,
            "shot_count": 0,
            "hit_count": 7,
            "paint_count": 2437
        }, {
            "uuid": "1234567890abcdef1234567890abcdef",
            "name": "Example4",
            "score": 0,
            "kill_count": 1,
            "death_count": 7,
            "shot_count": 0,
            "hit_count": 28,
            "paint_count": 1795
        }]
    }],
    "permalink_url": "https://pvp.minecraft.jp/matches/56761ef7513a67f9f3742f31"
}

Player

GET players/:id

プレイヤーデータを取得します。 UUIDまたはプレイヤー名を指定可能です。 me を指定する事でアクセストークンのプレイヤーを取得します。 (Client Credentialsでは me を利用出来ません。)

リクエスト
GET /v1/players/:id HTTP/1.1
パラメータ
パラメータ 説明
fields レスポンスとして取得したいフィールドを指定します。 , 区切りで複数指定可能です。 Optional
フィールド
フィールド 説明
bowspleef BowSpleefゲームモード統計
cp CPゲームモード統計
ctw CTWゲームモード統計
factions Factions統計
kills キル、デスエントリー
matches ゲーム履歴
objective Objectiveゲームモード統計
paintball Paintballゲームモード統計
splatt Splattゲームモード統計
teampvp TeamPvP統計
total 全体
tntrun TNTRunゲームモード統計
レスポンス
{
    "id": "51aa7e1e6d9f46031c5cf9fa",
    "name": "ayunyan",
    "uuid": "3a97c50f2a564a939d5eb9157cd306d3",
    "last_login": "",
    "last_login_server": "Lobby 1",
    "last_logout": "",
    "banned": false,
    "permalink_url": "https://pvp.minecraft.jp/3a97c50f2a564a939d5eb9157cd306d3"
}
GET players/:id/punishments

プレイヤーへの処罰一覧を取得します。 UUIDまたはプレイヤー名を指定可能です。 me を指定する事でアクセストークンのプレイヤーを取得します。 (Client Credentialsでは me を利用出来ません。)

リクエスト
GET /v1/players/:id/punishments HTTP/1.1
パラメータ
パラメータ 説明
max_id 指定されたIDより小さいIDのものを返却します。レスポンスとして取得した最後のIDを指定して再度リクエストする事でページングが可能です。 Optional
limit 取得するアイテム数を指定します。デフォルト20件、最大100件です。 Optional
レスポンス
[{
    id: "5675f75740620cbaec00834d",
    punisher: null,
    punished: {
        uuid: "1234567890abcdef1234567890abcdef",
        name: "Example"
    },
    state: 0,
    reason: "Compromised Account",
    level: 4,
    time: "2015-12-20T09:33:27.008+09:00",
    type: "ban",
    server: "HipChat",
    automatic: true,
    permalink_url: "https://pvp.minecraft.jp/punishments/5675f75740620cbaec00834d"
}, {
    id: "5674fda140620c294800834d",
    punisher: null,
    punished: {
        uuid: "1234567890abcdef1234567890abcdef",
        name: "Example"
    },
    state: 0,
    reason: "Compromised Account",
    level: 4,
    time: "2015-12-19T15:48:01.29+09:00",
    type: "ban",
    server: "HipChat",
    automatic: true,
    permalink_url: "https://pvp.minecraft.jp/punishments/5674fda140620c294800834d"
}, {
    id: "1234567890abcdef01234567",
    punisher: null,
    punished: {
        uuid: "1234567890abcdef1234567890abcdef",
        name: "Example"
    },
    state: 0,
    reason: "Report Spam",
    level: 1,
    time: "2015-12-19T14:42:02.433+09:00",
    type: "punishment",
    server: "Sabatora",
    automatic: false,
    permalink_url: "https://pvp.minecraft.jp/punishments/1234567890abcdef01234567"
}]

Punishments

GET punishments

処罰一覧を取得します。

リクエスト
GET /v1/punishments HTTP/1.1
パラメータ
パラメータ 説明
max_id 指定されたIDより小さいIDのものを返却します。レスポンスとして取得した最後のIDを指定して再度リクエストする事でページングが可能です。 Optional
limit 取得するアイテム数を指定します。デフォルト20件、最大100件です。 Optional
レスポンス
[{
    id: "5675f75740620cbaec00834d",
    punisher: null,
    punished: {
        uuid: "249dac7559534d50820a39fa4e8eaa4e",
        name: "ATplayz"
    },
    state: 0,
    reason: "Compromised Account",
    level: 4,
    time: "2015-12-20T09:33:27.008+09:00",
    type: "ban",
    server: "HipChat",
    automatic: true,
    permalink_url: "https://pvp.minecraft.jp/punishments/5675f75740620cbaec00834d"
}, {
    id: "5674fda140620c294800834d",
    punisher: null,
    punished: {
        uuid: "6dbed95aeb1a4512bbcc0d52fccc8175",
        name: "Bolange"
    },
    state: 0,
    reason: "Compromised Account",
    level: 4,
    time: "2015-12-19T15:48:01.29+09:00",
    type: "ban",
    server: "HipChat",
    automatic: true,
    permalink_url: "https://pvp.minecraft.jp/punishments/5674fda140620c294800834d"
}, {
    id: "1234567890abcdef01234567",
    punisher: null,
    punished: {
        uuid: "1234567890abcdef1234567890abcdef",
        name: "Example"
    },
    state: 0,
    reason: "Report Spam",
    level: 1,
    time: "2015-12-19T14:42:02.433+09:00",
    type: "punishment",
    server: "Sabatora",
    automatic: false,
    permalink_url: "https://pvp.minecraft.jp/punishments/1234567890abcdef01234567"
}]
GET punishments/:id

処罰を取得します。

リクエスト
GET /v1/punishments/:id HTTP/1.1
パラメータ

なし

レスポンス
{
    "id: "1234567890abcdef01234567",
    "punisher": null,
    "punished": {
        "uuid": "1234567890abcdef1234567890abcdef",
        "name": "Example"
    },
    "state": 0,
    "reason": "Report Spam",
    "level": 1,
    "time": "2015-12-19T14:42:02.433+09:00",
    "type": "punishment",
    "server": "Slack",
    "automatic": false,
    "permalink_url": "https://pvp.minecraft.jp/punishments/1234567890abcdef01234567"
}

Server

GET servers

サーバ一覧を取得します。

リクエスト
GET /v1/servers HTTP/1.1
パラメータ

なし

レスポンス
[{
    "id": "51ade1016d9f46031c5cfa52",
    "name": "Sabatora",
    "region": "us",
    "current": 60,
    "max": 64,
    "icon": "diamond sword",
    "order": 100,
    "current_map": "Floating Box 3",
    "next_map": "Snow Crystal",
    "player_count": 66,
    "players": ["Example1", "Example 2"]
}, {
    "id": "53300f776d9f46031c6c5bbb",
    "name": "TNT",
    "region": "us",
    "current": 9,
    "max": 24,
    "icon": "tnt",
    "order": 1600,
    "current_map": "Wood Stadium",
    "next_map": "Explosive Temple",
    "player_count": 11,
    "players": ["Example3", "Example001"]
}, {
    "id": "51ad963d6d9f46031c5cfa4f",
    "name": "Lobby",
    "region": "us",
    "current": 0,
    "max": 0,
    "icon": "",
    "order": 0,
    "current_map": "",
    "next_map": "",
    "player_count": 17,
    "players": [", "Example007", "Example1627", "Example14"]
}]
GET servers/:id

サーバを取得します。サーバIDを指定可能です。

リクエスト
GET /v1/servers/:id HTTP/1.1
パラメータ

なし

レスポンス
{
    "id": "51ade1016d9f46031c5cfa52",
    "name": "Sabatora",
    "region": "us",
    "current": 60,
    "max": 64,
    "icon": "diamond sword",
    "order": 100,
    "current_map": "Floating Box 3",
    "next_map": "Snow Crystal",
    "player_count": 66,
    "players": ["Example1", "Example 2"]
}
GET servers/online

オンライン人数を取得します。

リクエスト
GET /v1/servers/online HTTP/1.1
パラメータ

なし

レスポンス
{
    "count": 123
}

参考