Pocketmine-MP非公式日本語wikiです。Pocketmine-MPに関する情報を発信しています。

必要なもの

  • テキストの編集ができるエディター(PHPの編集ができるもの)
  • PocketMine-MP
  • PHP言語の知識
  • PocketMine-MPのプラグインを作れる知識

※注意:このページはすこし初心者向けではありません。ご了承ください。

他のプラグインとの連携

APIとは

一部のプラグインには「API」と言う他のプラグインと連携できるようにする、関数が用意されています。
この関数を使用して、他のプラグインを操作したりすることができます。
またPocketMine-MPにもAPIがあり、プラグインはPocketMine-MPのAPIを使用して動いています。

作り方

今回はPocketMoneyを使用してプレーヤーが参加(Join)したときにお金を渡すプラグインを作ります。

※一部コードの解説を飛ばしています。ご了承ください。

まず、サーバーにPocketMoneyが導入されているかをチェックします。

プラグインが有効になったときに処理をする

プラグインが有効になったときにプラグインが見つからない場合のみ処理をする(応用)


プラグインが読み込まれたときに自動的に処理をする




つぎにjoinEventは以下のようになります。
public function onJoin(PlayerJoinEvent $event) {
    $player = $event->getPlayer();
    $amount = 100;//付与する金額
    //PocketMoneyのAPIを使ってお金を付与
    $this->PocketMoney->grantMoney($player->getName(), $amount);
}
解説
$this->PocketMoney->grantMoney()
は変数に入れたPocketMoneyのインスタンス使用して、
grantMoney()関数を呼び出してプレーヤーのお金を増やしています。

これで完成です。

PocketMoney以外にも、APIがあるプラグインはいくつもあります。

APIを使用し、他のプラグインとの連携を取ることで、より便利なプラグインを作ったりすることができます。

ソースコード

MainClass.php
<?php

namespace test;

use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\Server;
use pocketmine\event\Listener;
use pocketmine\plugin\PluginBase;
use pocketmine\event\player\PlayerJoinEvent;

class MainClass extends PluginBase implements Listener {
    
    public function onEnable() {
        $this->getServer()->getPluginManager()->registerEvents($this, $this);//イベント登録
        if($this->getServer()->getPluginManager()->getPlugin("PocketMoney") != null){
            //PluginManagerからPocketMoneyのインスタンスを取得
            $this->PocketMoney = $this->getServer()->getPluginManager()->getPlugin("PocketMoney");
            $this->getLogger()->info("PocketMoneyを検出しました。");
        }else{
            $this->getLogger()->warning("PocketMoneyが見つかりませんでした");
            $this->getServer()->getPluginManager()->disablePlugin($this);//このプラグインを無効化する
        }
    }
    
    public function onJoin(PlayerJoinEvent $event) {
        $player = $event->getPlayer();
        $amount = 100;//付与する金額
        //PocketMoneyのAPIを使ってお金を付与
        $this->PocketMoney->grantMoney($player->getName(),$amount);
    }
}

参考

×

この広告は60日間更新がないwikiに表示されております。

メニュー

トップページ
メンバー募集メンバーページ

カウンター

訪問者数

アクセス数

フリーエリア



メンバーのみ編集できます