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>
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>
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"/>
その他のゲームモード¶
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>
フィルター&リージョン¶
フィルター¶
フィルターはプレイヤーの移動やブロックを制限するために使用します。
<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=0
を AIR
以外のブロックで埋めておくことで複雑な地形を簡単に保護する事が可能です。 プレイヤーに橋を作らせるエリアを作る場合は、 Y=0
にダメージ値が 1
の AIR
を配置しておくことで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"/>
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"/>
参照リージョン¶
他リージョンへの参照
<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 |
アイテムが配置されるインベントリ内の位置を指定します。![]() |
整数 |
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 |
インベントリブロックの非共有化¶
非共有化を行うことでかまどなどを開いたときに、各プレイヤーそれぞれインベントリが独立して設定されます。 これにより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>
マップスクリプトリファレンス¶
マップスクリプトはゲーム内に動的な変更を加える事が出来る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.
getServer
()¶ サーバ名を取得します。
戻り値: String 例
match.broadcast('このサーバは' + match.getServer() + 'です。');
-
Match.
getElapsed
()¶ 経過時間をミリ秒で取得します。
戻り値: Number
-
Match.
broadcast
(message)¶ サーバ内のプレイヤーにメッセージを送信します。
引数: - message (String) -- メッセージ
戻り値: void
例
match.broadcast('&6全員に表示されるメッセージです。');
-
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
() 引き分けでゲームを終了させます。
戻り値: 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.'); });
-
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);
- id (String) --
-
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.
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
-
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座標
戻り値: 例
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 をご覧ください。
プレイヤーによる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() + 'を操作しました。'); });
-
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.
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.
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.
setItem
(slot, item)¶ プレイヤーのインベントリにアイテムを追加します。
引数: - slot (Number) -- インベントリスロット
- item (ItemStack) -- 追加するアイテム
戻り値: void
-
Player.
removeItem
(item, amount) プレイヤーのインベントリから指定個数のアイテムを削除します。
引数: - item (ItemStack) -- 削除するアイテム
- amount (Number) -- 削除する個数
戻り値: void
-
Player.
isDead
()¶ プレイヤーが死亡しているかどうかを取得します。
戻り値: Boolean
-
Objective¶
Spawn¶
var redForwardSpawn = match.getMap().getSpawn('red-forward-spawn');
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
イベント
現在は<apply>にチェックが指定されていない場合はイベントが発行されない制限があります。
-
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行目']);
-
Sidebar¶
サイドバーの描画をスクリプトから行います。このAPIを使用するには<dummy>ゲームモードを使用する必要があります。
var sidebar = match.getSidebar();
sidebar.setLines(['1行目', '', '3行目']);
付録: データ¶
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 |
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"]
}