もしも正しく動作しない場合はコメント欄でお知らせください。
ご意見・ご要望などがありましたら、コメント枠にてコメントしていただけると幸いです。
use文
例:
以前書かれていた情報ではmust be an instance of pocketmine\level\Level, string givenになってしまいます。
以下のコードが必要です。
以下のコードが必要です。
以下のすべてのコードに以下のコードを必要なので記載しておいてください。
ご意見・ご要望などがありましたら、コメント枠にてコメントしていただけると幸いです。
プレイヤー関連
以下のUse文が必要です。
use pocketmine\Player;
Playerオブジェクトの取得
プレイヤー名から取得
$player = $this->getServer()->getPlayer("プレイヤー名");
Playerイベントから取得(PlayerJoinEventなど)
(注) $eventにはeventオブジェクトが入っている状態です。
$player = $event->getPlayer();
Entityイベントから取得(EntitySpawnEventなど)
(注) $eventにはeventオブジェクトが入っている状態です。
$player = $event->getEntity();Entityオブジェクトから取得して、getNameなどをする場合は必ずPlayerオブジェクトか確認しないとクラッシュします。
if ($player instanceof Player){ //プレイヤーだった場合の処理 }
コマンド処理から取得
コマンド処理の場合、すでに$senderに送信したプレイヤーのデータが入っています。
ただし、コンソールなどから実行した場合もありますので、必ずプレイヤーオブジェクトか確認してください。
ただし、コンソールなどから実行した場合もありますので、必ずプレイヤーオブジェクトか確認してください。
送った人がプレイヤーか確認する
if ($sender instanceof Player){ // プレイヤーだった場合 }else{ // プレイヤーオブジェクトではない場合 }
送った人がコンソールか確認する
以下のUse文が必要です
use pocketmine\command\ConsoleCommandSender;
if ($sender instanceof ConsoleCommandSender){ // コンソールだった場合 }else{ // コンソールではない場合 }
プレーヤーオブジェクトかの確認
if ($player instanceof Player) {//プレイヤーオブジェクトかの条件分岐 //プレイヤー }else{ //プレイヤーではない }
プレイヤーにメッセージを送る
チャット上(Message)
$sender->sendMessage("メッセージ");
アイテムスロットの上(Popup)
$player->sendPopup("メッセージ");
Popupの上(Tip)
$player->sendTip("メッセージ");
プレイヤー全員にメッセージを送る
チャット上(Message)
$this->getServer()->broadcastMessage("メッセージ");
アイテムスロットの上(Popup)
$this->getServer()->broadcastPopup("メッセージ");
Popupの上(Tip)
$this->getServer()->broadcastTip("メッセージ");
プレイヤーをBANする
$player->getServer()->getNameBans()->addBan($player, "理由", null, "BANした人の名前"); //名前BAN $player->getServer()->getIPBans()->addBan(IPアドレス, "理由", null, "BANした人の名前");//IPBAN $player->getServer()->getNameBans()->remove($player);//名前BAN解除 $player->getServer()->getIPBans()->remove($player);//IPBAN解除
プレイヤーをKICKする
$player->kick("理由", true);//trueをfalseにすることで"Kicked by admin."と表示されなくなります $player->close("", "理由");//kickの使用を推奨します。 (1番目の引数を$player->getLeaveMessage()にすることで、プレイヤーの退出がブロードキャストされます)
リスポン地点の変更
use文
use pocketmine\math\Vector3;Code
$pos = new Vector3(x座標, y座標, z座標); $player->setSpawn($pos);
プレイヤーの情報を取得する
$player->getName();//ユーザー名 $player->getAddress();//ipアドレス $player->loginData["clientId"];//クライアントID $player->getGamemode();//ゲームモード 0=サバイバル, 1=クリエイティブ, 2,アドベンチャー,3 スペクテイター $player->getLevel();//プレイヤーのいるワールド(レベル)のオブジェクト $player->getX();//X座標、getXのXを変更すればY、Z座標も取得可能 $player->x;//getX()と使い方は同じですがこっちの方が軽いです $player->getDirection();//方向 0=南,1=西,2=北,3=東 $player->getHealth();//プレイヤーの現在の体力 $player->getMaxHealth();//プレイヤーの最大体力 $player->getDisplayName();//チャットをした時に表示される名前を取得 $player->getNameTag();//プレイヤーの上に表示される名前を取得 $player->isOnFire();//プレイヤーが燃えているか取得(燃えていればtrue) $player->isSneaking();//プレイヤーがスニークしているか取得(スニーク中であればtrue) $player->isSprinting();//プレイヤーが走っているか取得(走っていればtrue) player->isOp();//プレイヤーがopかどうか取得(opならtrue)
プレイヤーの情報を変更する
$player->setGamemode(0);//ゲームモード 0=サバイバル, 1=クリエイティブ, 2,アドベンチャー,3 スペクテイター $player->setHealth(10);//プレイヤーの体力を変更 $player->setMaxHealth(30);//最大体力を変更 $player->kill();//プレイヤーを殺す $player->attack(1, $event);//1番目の引数にダメージ数を、2番目にEntityDamageEventが必要です(EntityDamageEventについては省略) $player->setOnFire(10);//プレイヤーを燃やす(秒数) $player->setOp(true);//権限を付与する(引数をfalseにすることで剥奪できます) $player->setWhitelisted(true);//プレイヤーをホワイトリストに追加(引数をfalseにすることで削除できます) $player->setAllowFlight(true);//クリエイティブモードのような飛行できるように(引数をfalseでクリエイティブでも飛べなくなります) $player->setAutoJump(true);//オートジャンプができるように(引数をfalseでオートジャンプができなくなる) $player->setNameTag("名前");//プレイヤーの上に表示される名前を変更 $player->setDisplayName("名前");//チャットをした時に表示される名前を変更 $player->save();//プレイヤー情報をセーブ
プレイヤーにダメージを与える
以下のコードが必要です。
use pocketmine\event\entity\EntityDamageEvent;
$ev = new EntityDamageEvent($entity, EntityDamageEvent::CAUSE_MAGIC, 1);//EntityDamageEvent::CAUSE_MAGICを変えることでダメージの種類を、1を変えることでダメージの強さが変更できます $entity->attack($ev->getFinalDamage(), $ev);
プレイヤーがドロップするアイテムを変更
以下のコードが必要です。
use pocketmine\event\entity\EntityDeathEvent; use pocketmine\item\Item; //こちらの方も使えます use pocketmine\event\player\PlayerDeathEvent;プレイヤーが死んでドロップ(持っていた)したアイテムを取得
$event->getDrops();プレイヤーが死んでドロップするアイテムを指定
$itema = Item::get(アイテムID, メタデータ, 数); $itemb = Item::get(アイテムID, メタデータ, 数); //違うアイテムIDでも変数を増やせば出せます $item = array($itema, $itemb);//指定したアイテムを配列に格納 $event->setDrops($item);//指定アイテムをドロップ
プレイヤーの体力を回復
以下のコードが必要です。
use pocketmine\event\entity\EntityRegainHealthEvent;
$he = new EntityRegainHealthEvent($player, 回復量, EntityRegainHealthEvent::CAUSE_EATING); $player->heal(回復量, $he);
プレイヤーのインベントリを操作
以下のコードが必要です。
use pocketmine\item\Item;
$item = Item::get(アイテムid, メタデータ, 数);//itemオブジェクトの生成 $player->getInventory()->addItem($item);//アイテムを追加 $player->getInventory()->removeItem($item);//アイテムを消去 $player->getInventory()->clearAll();//アイテムをすべて消去(装備されている防具も消されます) コードを使う場合はuse pocketmine\inventory\PlayerInventory;が必要(srcによる) if($player->getInventory()->contains($item)){//特定のアイテムが指定した数以上あるか //ある }else{ //ない } if($player->getInventory()->canAddItem($item)){//アイテムを追加できるかどうか //できる }else{ //できない }
プレイヤーに革装備をセット
以下のコードが必要です。
use pocketmine\item\Item;
$player->getInventory()->setArmorItem(0,Item::get(298,0,1));//ヘルメット $player->getInventory()->setArmorItem(1,Item::get(299,0,1));//チェストプレート $player->getInventory()->setArmorItem(2,Item::get(300,0,1));//レギンス $player->getInventory()->setArmorItem(3,Item::get(301,0,1));//ブーツ $player->getInventory()->sendArmorContents($player);//防具の変更を反映
プレイヤーのリスポーン地点を変更する
以下のコードが必要です。
use pocketmine\math\Vector3;
$vector = new Vector3(x座標, y座標, z座標);//座標を指定 $player->setSpawn($vector);//スポーンをセット
プレイヤー全員に特定の処理をする
以下のコードが必要です。
use pocketmine\Server;
$players = Server::getInstance()->getOnlinePlayers(); foreach ($players as $player) { //処理 }
プレーヤーをテレポートさせる
以下のコードが必要です。
use pocketmine\math\Vector3;
$vector = new Vector3(x座標, y座標, z座標);//座標を指定 $player->teleport($vector);ワールド(Level)を指定したい場合は座標指定にPositionクラスを指定して下さい
use pokcetmine\level\Position;
$pos = new Position(x座標, y座標, z座標, Levelオブジェクト);//座標を指定 $player->teleport($pos);
プレイヤーにエフェクトを付与、除去する
EffectIdや効果などはステータス効果に載っています。
※一部対応していないエフェクトがありますので、ご注意下さい。
以下のコードが必要です。
※一部対応していないエフェクトがありますので、ご注意下さい。
以下のコードが必要です。
use pocketmine\entity\Effect;
エフェクトを付与する
$effect = Effect::getEffect(1);//effectID $effect->setDuration(30*20);//効果の時間*20 $effect->setAmplifier(0);//効果の強さ $effect->setVisible(true);//パーティクルを表示するかどうか $player->addEffect($effect);1行で書く場合
$player->addEffect(Effect::getEffect(1)->setDuration(30*20)->setAmplifier(0)->setVisible(true));※EffectIDの指定はEffectクラスのオブジェクト定数で指定することを推奨します。(今後EffectIDが変わる可能性があるため)
例:
Effect::SPEED
エフェクトを除去する
$player->removeEffect(1);//指定したEffectIDのエフェクトを除去 $player->removeAllEffects();//すべてのエフェクトを除去
エフェクトが付与されているか
if($player->hasEffect(1)){ //付与されている場合 }else{ //されていない場合 }
プレイヤーを動かす
以下のコードが必要です。
use pocketmine\math\Vector3;
ジャンプさせる
$MotionJ = new Vector3(0,0,0); $jump = 0.8;//高さ $MotionJ->y = $jump; $player->setMotion($MotionJ);//ジャンプ
前に動かす
$MotionA = new Vector3(0,0,0); $dir=$player->getDirection();//向いている方向 $move = 3;//動かしたいブロック数 if($dir === 0){$MotionA->x=$move;}//南 if($dir === 1){$MotionA->z=$move;}//西 if($dir === 2){$MotionA->x=-$move;}//北 if($dir === 3){$MotionA->z=-$move;}//東 $player->setMotion($MotionA);//動かす
Level(World)関連
以下のコードが必要です。
use pocketmine\level\Level; use pocketmine\block\Block; use pocketmine\math\Vector3;※$level変数に必ずLevelオブジェクトを入れておいてください
Levelオブジェクトの取得
デフォルトで使用されているワールドのレベルオブジェクト取得
以下のコードが必要です。
$level = $this->getServer()->getDefaultLevel();//Levelオブジェクトの取得Playerオブジェクトから取得
$level = $player->getLevel();//Levelオブジェクトの取得ワールド名から取得
以下のコードが必要です。
use pocketmine\use pocketmine\Server;
if(Server::getInstance()->isLevelLoaded("ワールド名")){//レベルオブジェクトかを条件分岐 $level = Server::getInstance()->getLevelByName("ワールド名");//Levelオブジェクトの取得 }
Levelの読み込み
$this->getServer()->loadLevel("ワールド名");
Levelのアンロード
$this->getServer()->unloadLevel($level);※ワールド名ではなくレベルオブジェクトを渡してください。
以前書かれていた情報ではmust be an instance of pocketmine\level\Level, string givenになってしまいます。
Levelの保存
$level->save();
ワールドの生成
Server::getInstance()->generateLevel("ワールド名");
ブロックの情報を取得する
$x = $block->getX();//X座標 $y = $block->getY();//Y座標 $z = $block->getZ();//Z座標 //getX()と同じですがこっちの方が軽いです $x = $block->x;//X座標 $y = $block->y;//Y座標 $z = $block->z;//Z座標
指定した座標のブロックの情報を取得する
$block = $level->getBlock($vector); //Blockオブジェクトの取得 $block->getID(); //ブロックID $block->getMetadata(); //メタ値 $block->getName(); //ブロック名
ブロックを設置する
破壊したい際はブロックidを0にして空気ブロックと置き換えてください
$block = Block::get(ブロックid,メタ値);//Blockオブジェクトの生成 $vector = new Vector3(x座標, y座標, z座標); $level->setBlock($vector, $block);
アイテムドロップ
以下のコードが必要です。
use pocketmine\item\Item;
$item = Item::get(アイテムid, メタデータ, 数);//itemオブジェクトの生成 $vector = new Vector3(x座標, y座標, z座標);//座標を指定 $level->dropItem($vector,$item);//アイテムをドロップする
指定した地点を爆破する
以下のコードが必要です。
use pocketmine\level\Explosion; use pocketmine\level\Position;
$explosion = new Explosion(new Position(x座標, y座標, z座標, $level), 3); //Explosionオブジェクトの生成 $explosion->explode();
看板の文字を取得する
以下のコードが必要です。
use pocketmine\tile\Sign;
$pos = new Vector3(X座標, Y座標, Z座標);//座標をセット $sign = $level->getTile($pos);//Tileオブジェクト取得 if($sign instanceof Sign){//Signオブジェクトかの判定 $text = $sign->getText();//テキストを取得 }
看板に文字をセットする
以下のコードが必要です。
use pocketmine\tile\Sign;
$pos = new Vector3(X座標, Y座標, Z座標);//座標をセット $sign = $level->getTile($pos);//Tileオブジェクトを取得 if($sign instanceof Sign){//Signオブジェクトかの判定 $sign->setText("Text1", "Text2", "Text3", "Text4");//文字をセット $sign->saveNBT();//データ(NBT)を保存 }
チェストのインベントリを操作する
以下のコードが必要です。
use pocketmine\tile\Tile; use pocketmine\tile\Chest as TileChest;
$pos = new Vector3(X座標, Y座標, Z座標);//座標をセット $chest = $level->getTile($pos);//Tileオブジェクトを取得 if($chest instanceof TileChest){//TileChestオブジェクトかの判定 $chest->getInventory()->getItem(1);//特定のスロットのアイテムを取得 //$itemにはitemオブジェクトを入れておいてください $chest->getInventory()->setItem(1, $item);//特定のスロットにアイテムを入れる $chest->getInventory()->getContents();//すべてのアイテムを取得 //$itemにはitemオブジェクトを配列に入れたものを入れてください $chest->getInventory()->setContents($item);//アイテムを上書き $chest->saveNBT();//データ(NBT)を保存 }
特定の座標にサウンド(効果音)を再生する
サウンド名 | 効果音 |
---|---|
Bat | コウモリの羽ばたく音 |
Click | メニュー画面などのボタンのクリック音 |
Door | ドアの開閉音 |
Fizz | アイテムがマグマなどで燃えた際の燃焼音 |
Launch | 花火の発射音 |
Pop | ニワトリが卵を産んだ際の産卵音、アイテムを捨てたときの音 |
use pocketmine\level\sound\(サウンド名)Sound;
$pos = new Vector3(X座標, Y座標, Z座標);//再生する座標 $sound = new <サウンド名>Sound($pos);//サウンドオブジェクトの生成 $level->addSound($sound);//サウンドを再生
特定の座標にパーティクルを表示する
Particles(英語)がパーティクルのイメージの参考になります。
※MCPE 0.11.1, PMMP 1.5以降の情報です
パーティクル名 | 効果 | 使用されている箇所 |
---|---|---|
Bubble | 水疱 | 高所から水面に着水した際など |
Critical | クリティカルヒットの閃光 | 弓を完全に引いて放った際など |
DestroyBlock | 不明? | |
Dust | ブロックの破片? | 不明 |
Enchant | 謎の文字 | エンチャントテーブルなど |
EntityFlame | 未確認 | |
Explode | 未確認 | 未確認(TNTの爆破時など?) |
Flame | 小さな炎 | 松明やかまどなど |
FloatingText | ワールド上に文字を表示 | |
HeartParticle | ハートマーク | ペットに餌を与えた際など |
Ink | 未確認(イカスミ) | 未確認(イカに攻撃した際など) |
ItemBreak | アイテムの破片 | 食事中やツールが壊れた際など |
LavaDrip | 溶岩の滴 | |
Lava | 溶岩のしぶき? | 溶岩 |
MobSpawn | 未確認 | |
Portal | 怪しげな光?w | ポータルやエンダーマンなど |
Redstone | レッドストーンの煙 | レッドストーンなど |
Smoke | 煙 | 松明など |
Splash | 水しぶき | |
Spore | 未確認(胞子?) | |
Terrain | 指定したブロックの破壊アニメーション | ブロックを破壊した際など? |
WaterDrip | 溶岩の滴 | |
Water | 不明 |
use pocketmine\level\particle\(パーティクル名)Particle;
$pos = new Vector3(X座標, Y座標, Z座標);//座標 //パーティクルオブジェクトの生成//※一部パーティクルで必要な引数が違う場合があります。クラスなどを参考にして合わせて下さい。 $particle = new <パーティクル名>Particle($pos); $count = 20;//回数 for($i = 0;$i < $count; ++$i){ $level->addParticle($particle); }
特定の座標周辺にパーティクルを表示
以下のコードが必要です。
use pocketmine\utils\Random;
$particle = new <パーティクル名>Particle(new Vector3(X座標, Y座標, Z座標)); $xd = 3 * 100;//調整 $yd = 3 * 100; $zd = 3 * 100; $random = new Random((int) (microtime(true) * 1000) + mt_rand()); $count = 25;//回数 for($i = 0; $i < $count; ++$i){ $particle->setComponents( $particle->x + $random->nextSignedFloat() * $xd, $particle->y + $random->nextSignedFloat() * $yd, $$particle->z + $random->nextSignedFloat() * $zd ); $level->addParticle($particle); }
Config関連
以下のすべてのコードに以下のコードを必要なので記載しておいてください。
use pocketmine\utils\Config;
Config 関係
Configファイルの生成
if(!file_exists($this->getDataFolder())){//configを入れるフォルダが有るかチェック mkdir($this->getDataFolder(), 0744, true);//なければフォルダを作成 } //引数1:configファイルまでの場所とconfigファイル名,引数2:configファイルのフォーマット //引数3:configファイルに入れるデータ $this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML, array( 'test' => 'data', 'データ名(キー)' => '値' ));
Configフォーマットの種類
よく分からない方はYAMLのままでいいです
new Config($this->getDataFolder() . "config.properties", Config::PROPERTIES); new Config($this->getDataFolder() . "config.cnf", Config::CNF); new Config($this->getDataFolder() . "config.json", Config::JSON); new Config($this->getDataFolder() . "config.yaml", Config::YAML); new Config($this->getDataFolder() . "config.serialize", Config::SERIALIZED); new Config($this->getDataFolder() . "config.enum", Config::ENUM);
configファイルに値をセット
$this->config->set("データ名", "値");//値と名前を設定 $this->config->save();//設定を保存
configファイルから値を取得
$this->config->get("データ名");//データ名から取得
configファイルに指定した名前のデータがあるか
if($this->config->exists("データ名")){ //ある }else{ //ない }
用意したconfig.ymlファイルを使用できるようにする
plugin.ymlがあるフォルダにresourcesと言うフォルダを作っておく
そこにconfig.ymlファイルを置いておいてください
※resourcesフォルダのconfig.ymlファイルに何も記載されてない場合エラーがでます。
※test:0 でもいいので データ名:値 を書いといてください
※ファイル名にパスなどの記載は要りません。
そこにconfig.ymlファイルを置いておいてください
※resourcesフォルダのconfig.ymlファイルに何も記載されてない場合エラーがでます。
※test:0 でもいいので データ名:値 を書いといてください
$this->saveDefaultConfig();//resourcesにあるconfig.ymlファイルをデータフォルダに入れて保存 $this->reloadConfig();//作成されたファイルを再読み込み if(!file_exists($this->getDataFolder())){//configファイルを入れるフォルダがあるかを確認 @mkdir($this->getDataFolder(), 0744, true);//なければフォルダを作成 } //$this->config変数にConfigオブジェクトを入れておく $this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML);※config.yml以外を使用したい場合は以下のコードのようにしてください
※ファイル名にパスなどの記載は要りません。
$this->saveResource("(ファイル名)", false); $this->reloadConfig();
すべてのデータを取得する
配列ですべてのデータが返ってきます。
$data = $this->config->getAll(); //キーが欲しい場合は以下のようにしてください(通常は使用しません) $data = $this->config->getAll(true);
Command関連
以下のコードが必要です。
use pocketmine\command\Command; use pocketmine\command\CommandSender;
コマンドを追加する
plugin.ymlファイルに以下のようなコードを追加して置いてください
また説明などを日本語にする場合は文字コードをUTF-8N(BOMなし)で保存してください
plugin.yml
また説明などを日本語にする場合は文字コードをUTF-8N(BOMなし)で保存してください
plugin.yml
commands: testcmd://コマンドこの場合 /testcmdになります description: "テスト用のコマンド"//コマンドの説明 usage: "/testcmd"//使用方法
コマンドをOPのみ使えるようにする
こちらもplugin.ymlを使います
commands: testcmd://コマンド名 description: "テスト用コマンド"//コマンドの説明 usage: "/testcmd"//使用方法 permission: "testcmd.command"//仮名前 permissions: testcmd.command://仮名前を入力 default: op//testcmdをOPのみ使用できるように設定
コマンドの処理をする
コマンドを追加して置いてください
以下のコードを使用するとプレイヤーに [testcmd] テスト と言うメッセージが送信されます。
$senderにはコマンドを実行したプレイヤーのオブジェクトが入っています。
以下のコードを使用するとプレイヤーに [testcmd] テスト と言うメッセージが送信されます。
$senderにはコマンドを実行したプレイヤーのオブジェクトが入っています。
public function onCommand(CommandSender $sender, Command $command, $label, array $args) { switch (strtolower($command->getName())) {//コマンド名で条件分岐 case "testcmd"://testcmdコマンドだったら以下の処理 $sender->sendMessage("[testcmd] テスト");//プレイヤーにメッセージを送信 return true;//処理を終了 break; } //条件に一致しなかった場合処理を終了する //plugin.ymlに記載した使用方法がプレイヤーにメッセージとして送信されます。 return false; }
パラメーターを使用する
$args(配列)にはパラメーターが入っています。
$args[0]にすることでtestの部分を取得できます。
また$args[1]にすると、293の部分も取得できます。
例 /give test 293
$args[0]にすることでtestの部分を取得できます。
また$args[1]にすると、293の部分も取得できます。
例 /give test 293
public function onCommand(CommandSender $sender, Command $command, $label, array $args) { switch (strtolower($command->getName())) {//コマンド名で条件分岐 case "testcmd"://testcmdコマンドだったら以下の処理 //$args[0]に値があるかの条件分岐ない場合はここで処理を中断します。 if(!isset($args[0])) return false;//値がないのに呼び出すと例外になるため例外回避 $sender->sendMessage("[testcmd] パラメーター1:" . $args[0] . "");//プレイヤーにメッセージを送信 return true;//処理を終了 break; } //条件に一致しなかった場合処理を終了する //plugin.ymlに記載した使用方法がプレイヤーにメッセージとして送信されます。 return false; }
エンチャント
エンチャント一覧
エンチャントタイプ | 値(数値) | 内容 |
---|---|---|
TYPE_INVALID | -1 | |
TYPE_ARMOR_PROTECTION | 0 | ダメージ軽減 |
TYPE_ARMOR_FIRE_PROTECTION | 1 | 火炎耐性 |
TYPE_ARMOR_FALL_PROTECTION | 2 | 落下耐性 |
TYPE_ARMOR_EXPLOSION_PROTECTION | 3 | 爆発耐性 |
TYPE_ARMOR_PROJECTILE_PROTECTION | 4 | 飛び道具耐性 |
TYPE_ARMOR_THORNS | 5 | 棘の鎧 |
TYPE_WATER_BREATHING | 6 | 水中呼吸 |
TYPE_WATER_SPEE | 7 | 水中移動 |
TYPE_WATER_AFFINITY | 8 | 水中採掘 |
TYPE_WEAPON_SHARPNESS | 9 | ダメージ増加 |
TYPE_WEAPON_SMITE | 10 | アンデット特効 |
TYPE_WEAPON_ARTHROPODS | 11 | 虫特効 |
TYPE_WEAPON_KNOCKBACK | 12 | ノックバック強化 |
TYPE_WEAPON_FIRE_ASPECT | 13 | 火属性 |
TYPE_WEAPON_LOOTING | 14 | ドロップ増加 |
TYPE_MINING_EFFICIENCY | 15 | 効率強化 |
TYPE_MINING_SILK_TOUCH | 16 | シルクタッチ |
TYPE_MINING_DURABILITY | 17 | 耐久力 |
TYPE_MINING_FORTUNE | 18 | 幸運 |
TYPE_BOW_POWER | 19 | 射撃ダメージ増加 |
TYPE_BOW_KNOCKBACK | 20 | ノックバック強化(弓) |
TYPE_BOW_FLAME | 21 | 火の矢 |
TYPE_BOW_INFINITY | 22 | 無限 |
TYPE_FISHING_FORTUNE | 23 | 幸運(?)(宝釣り?) |
TYPE_FISHING_LURE | 24 | 入れ食い |
use pocketmine\item\enchantment\Enchanement;以上のuseが必要です。
エンチャントをつける
$enchant = Enchantment::getEnchantment(エンチャントID); $enchant->setLevel(レベル); $item->addEnchantment($enchant);
例(ダイヤのブーツに水中移動Lv.2のエンチャントをつけて装備させる)
$item = Item::get(313,0,1); $enchant = Enchantment::getEnchantment(7); $enchant->setLevel(2); $item->addEnchantment($enchant); $player->getInventory()->sendArmorContents($player);
サーバー
サーバーを終了する
$this->getServer()->shutdown();
サーバーをリロードする
$this->getServer()->reload();
server.propertiesを取得する
$this->getServer()->getMotd();//サーバー名を取得 $this->getServer()->getServerName();//getMotd()と同じ $this->getServer()->getPort();//サーバーのポートを取得 $this->getServer()->hasWhitelist();//ホワイトリストがオンかオフか $this->getServer()->getSpawnRadius();//ブロック破壊範囲を取得 $this->getServer()->getMaxPlayers();//サーバーに入れる最大人数を取得 $this->getServer()->getAllowFlight();//フライトが許可されているか $this->getServer()->getGamemode();//デフォルトのゲームモードを取得 $this->getServer()->getDefaultGamemode();//getGamemode()と同じ $this->getServer()->getForceGamemode();//ログイン時にデフォルトゲームモードに設定がオンかオフか $this->getServer()->isHardcore();//死んだらBANがオンかオフか $this->getServer()->getDifficulty();//ゲーム難易度を取得 $this->getServer()->getLevelType();//ワールドのタイプを取得
ops.txtを変更する
ops.txtに名前を追加
$this->getServer()->addOp($name);ops.txtから名前を消去
$this->getServer()->removeOp($name);
white-list.txtを変更する
white-list.txtに名前を追加
$this->getServer()->addWhitelist($name);white-list.txtから名前を消去
$this->getServer()->removeWhitelist($name);white-list.txtをリロードする
$this->getServer()->reloadWhitelist();
その他
entityIdからentityオブジェクトを取得する(取得できなかった場合、nullが返されます)
恐らく使わないと思いますが、一応。
$id = 0;//entityIdを入れておく $level = $this->getServer()->getDefaultLevel();//デフォルトのLevelオブジェクトの取得 $entity = $level->getEntity($id);//entityオブジェクト取得
整数に変換
$X = $player->getX(); //X座標を取得 $Y = $player->getY(); //Y座標を取得 $Z = $player->getZ(); //Z座標を取得 /*$X $Y $Z のままで表示すると小数点がすごい数になるので整数にします (intval関数で整数に変換)*/ $X1 = intval($X); $Y2 = intval($Y); $Z3 = intval($Z);
下に表示されるアイテム名の変更
※NIGHTMARE_3832さんのsrcに限ります。
//$itemにはItemオブジェクトを入れておく $name = "string";//表示するアイテム名を入れる $item->setCustomName($name);
追加
srcの一部から取得した情報です。
間違っていたら申し訳ありません。
間違っていたら申し訳ありません。
ホワイトリスト関係
ホワイトリストに追加
$this->getServer()->addWhitelist($name);
ホワイトリストから削除
$this->getServer()->removeWhitelist($name);
ホワイトリストに入っているか
$this->getServer()->isWhitelisted($name);
ホワイトリストを有効にする
$this->getServer()->setConfigBool("white-list", true);
ホワイトリストを無効にする
$this->getServer()->setConfigBool("white-list", false);
ホワイトリストを再読込する
$this->getServer()->reloadWhitelist();
EntityName | ID |
カメラ | 62 |
エンチャント瓶 | 68 |
釣竿のフック | 77 |
発射された矢 | 80 |
雪玉 | 81 |
卵 | 82 |
絵画 | 83 |
マインカート | 84 |
ファイヤーボール(ガスト) | 85 |
スプラッシュポーション | 86 |
エンダーパール | 87 |
結び目(?) | 88 |
ボート | 90 |
雷鳴 | 93 |
ファイヤーボール(ブレイズ) | 94 |
マインカート(ホッパー) | 96 |
マインカート(TNT) | 97 |
マインカート(チェスト) | 98 |
EntityName | ID |
ゾンビ | 32 |
クリーパー | 33 |
スケルトン | 34 |
スパイダー | 35 |
ゾンビ・ピッグマン | 36 |
スライム | 37 |
エンダーマン | 38 |
シルバー・フィッシュ | 39 |
洞窟クモ | 40 |
ガスト | 41 |
マグマキューブ | 42 |
ブレイズ | 43 |
村人ゾンビ | 44 |
ウィッチ | 45 |
ストレイ | 46 |
ハスク | 47 |
ウィザースケルトン | 48 |
EntityName | ID |
ニワトリ | 10 |
ウシ | 11 |
ブタ | 12 |
ヒツジ | 13 |
オオカミ | 14 |
キノコの生えたウシ | 16 |
イカ | 17 |
ウサギ | 18 |
コウモリ | 19 |
アイアンゴーレム | 20 |
スノーゴーレム | 21 |
オセロット | 22 |
ウマ | 23 |
ロバ | 24 |
ミュール | 25 |
骨のウマ | 26 |
ゾンビのウマ | 27 |
最新コメント