フォルダ構成とyml
今回はコマンドを入力することでプレイヤーのipが調べられるプラグインをつくります。
まずプラグインを入れるフォルダを作成します
次にその中にsrcフォルダとymlファイルを入れます
そしてsrcの中にまたフォルダをつくり、その中にphpファイルを入れます

次はymlの中身です。
とりあえず全部のっけちゃいます
まずプラグインを入れるフォルダを作成します
次にその中にsrcフォルダとymlファイルを入れます
そしてsrcの中にまたフォルダをつくり、その中にphpファイルを入れます
次はymlの中身です。
とりあえず全部のっけちゃいます
name: ip
main: ip\ip
version: 0.1
api: [2.0.0]
load: POSTWORLD
author: あなたのMinecraftネーム
description: Players,ip.
website:
commands:
pip:
description: "Players,ip."
usage: " /pip [Player] "
permissions:
pip:
default: true
description: "Allows using all the ip things"
children:
pip.command:
default: true
description: "Allows using all the ip commands"
解説します。
name
プラグインの名前を記入する欄です。
今回はipプラグインなのでipと入力します。
今回はipプラグインなのでipと入力します。
main
プラグインのメインファイルのアドレスをsrcから記入する欄です。
version
versionはプラグインのバージョンを記入する欄です。
ココは自由でかまいません。
ココは自由でかまいません。
api
プラグインの対応しているapiバージョンを記入する欄です。
load
プラグインがいつロードされるか記入する欄です。
POSTWORLDはワールドがロードされるときです。
POSTWORLDはワールドがロードされるときです。
author,authors
authorにはプラグイン開発者の名前、つまり自分の名前を記入する欄です。複数人で開発しているなら代表者の名前を記入します。
authorsは複数人で開発しているときの開発者を記入する欄です。自分ひとりであれば自分の名前を記入してください。
authorsは複数人で開発しているときの開発者を記入する欄です。自分ひとりであれば自分の名前を記入してください。
description
プラグインの説明です。
ipプラグインなので、Players,ip.(プレイヤーのIP)としました。
ipプラグインなので、Players,ip.(プレイヤーのIP)としました。
website
サイトのURLを記入する欄です。空欄でも構いません。
commands
コマンドの説明をします。
description
プラグインの説明です。
usage
コマンドの使い方です。
permissionsは権限についてです。
permissionsは権限についてです。
default
権限の設定をします。基本的にはオペレータ権限のopと、だれでも使えるtrueです。
description
権限の説明です。基本的には上記yml内容をコピペしてください。
children
よくわかりません。
コマンド名.command
コマンド全体についてです。
default
権限の設定です。
description
権限の説明です。
ymlに関してはこれでいいです。
ymlに関してはこれでいいです。
PHPの内容
<?php
namespace ip;
use pocketmine\Player;
use pocketmine\plugin\PluginBase;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\Server;
class ip extends PluginBase{
public function onCommand(CommandSender $sender, Command $command, $label, array $args){
if(count($args) === 0){
$sender->sendMessage("Usage: /pip [Player]");
return false;
}
if($sender->isOp()){
$username = strtolower($args[0]);
$player = $sender->getServer()->getPlayer($username);
if($player instanceOf Player){
$playerip = $player->getAddress();
$sender->sendMessage("".$player->getPlayer()->getName()." is IP:".$playerip."");
return true;
}else{
$sender->sendMessage("".$username." doesn't exist");
return true;
}
}else{
$sender->sendMessage("You don't have permission.");
return true;
}
}
}
それぞれのコードについて解説します。phpの基本的なifなどは解説いたしません。namespaceはプラグインの名前を入力してください。
useではPocketMine-MP.phar内(src内)のロードするファイルのアドレスを記入します。
class宣言はよくわかりませんがコピペでいいです。
public function onCommand()ではコマンドを使用した際に処理されます。括弧内は基本コピペで構いません。
if(count($args) === 0)はこのプラグインの場合だと、/pipとだけ入力した時に処理される部分です。コマンドの使い方を書いておいたほうがいいですね。
$senderはコマンドを入力した人の定数です。sendmessage()でその人にだけ見えるメッセージを送ります。
if($sender->isOp())はコマンドを実行した人がオペレータ権限者かをチェックします。
$username = strtolower($args[0]);で/pip プレイヤー名のプレイヤー名を取得しています。
$player = $sender->getServer()->getPlayer($username);でプレイヤーオブジェクトを入れています。
$playeripの中にプレイヤーのipアドレスを入れ、コマンドを実行した人にipアドレスを送っています。
そしてプレイヤーがいなかったらいないことを伝え、オペレータ権限者でなかったら権限がないと伝えます。
大雑把な説明でごめんなさい


最新コメント