フォルダ構成と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アドレスを送っています。
そしてプレイヤーがいなかったらいないことを伝え、オペレータ権限者でなかったら権限がないと伝えます。
大雑把な説明でごめんなさい
最新コメント