Hello World
田舎からこんにちは、たくまっちです。
今回は、最初に作るプラグインの定番化した、JoinMessageを
できるだけ簡単に
PHPの基礎をそんなに理解してなくても大丈夫なのように書いた気がします。

1:まずはプラグインのファイルを作ってみよう!!

環境は丸投げです…
自分でセットアップしてください。
プラグインのファイルにDevToolsを入れておいてください
https://poggit.pmmp.io/p/DevTools

まずはファイルを作成して簡単に「JoinMessage」とかでも名付けましょう
その中に
テキストファイルを生成して、名前を「plugin.yml」にしてください。
(Plugin.ymlじゃないですよ。)
.txtは不要です消してください
plugin.ymlを開いてください
私は、sublimeTextでの編集をおすすめしますが
ymlは別に、普通のテキストエディターでひらいても大丈夫ですよ。

2:plugin.ymlの中身を書いて読み込みできるようにしよう!

以下の内容を入れてください

name: JoinMessage
main: xtakumatutix\join\Main
version: 1.0.0
api: 3.0.0
author: xtakumatutix

View

()に書いてあるやつはその文字の事を自分なりに変えてください!!
これで大丈夫です

3:srcファイルからMain.phpを作成しよう!!

ここはplugin.ymlのmainを見ながら作業してください

まずJoinMessageフォルダ(plugin.ymlが入ってるところに)
srcと言うファイルを作成してください

srcの中にplugin.ymlのmainを見てください
( (自分の名前、できるだけ英語で)\join\Main )

という感じに自分の名前のフォルダを作成して、
その次にjoinって言う名前のフォルダを作成してください。
(Mainフォルダは作成しないでください!!)

そしてjoinフォルダの中に
テキストファイルを作成して、Main.phpと書いてください
.txtは不要です消してください

4:さあコードを書こう!!

さあここからが本番です
気を引き締めてやってください

まずはテキストエディターでひらいてください….とか言うところですが
テキストエディターでは作業しにくいです。
私は「sublimeText3」を推します
https://www.sublimetext.com/3
ここから、ダウンロードしてください

Main.phpをsublimeTextで開いたら
さあ書いていきましょうか

まず

<?php

namespace (自分の名前)\join;

use pocketmine\plugin\PluginBase;
use pocketmine\Player;
use pocketmine\event\Listener;
use pocketmine\event\player\PlayerJoinEvent;


を書きましますこれを全部説明すると
<?phpはphpの書き始めに必要なやつです大事です私達のママです。

namespaceは読み込むために必要なパスワードです。大事にしなさい

plugin.ymlの
main: (自分の名前、できるだけ英語で)\join\Main

(自分の名前、できるだけ英語で)\join を書きましょうね

useからのやつは私達が使うものをpmmpさんに言ってるんです
use pocketmine\event\player\PlyaerJoinEvent;の場合だと
プレイヤーがjoinした時のやつを使わせてね><
って事です。

pluginBaseのやつはどのプラグインでも必要です
入れないとエラーおきますよ

Class Main extends PluginBase implements Listener {

public function onEnable()
{
$this->getLogger()->notice("読み込み完了_ver.1.0.0");
$this->getServer()->getPluginManager()->registerEvents($this, $this);
}


を書いてください
Classは簡単にいうとMainはPluginBaseとListenerを使うよって事にしてください(自分もあんまりわかってない)

public function onEnable()
はプラグインが有効にされた時です
この中に以下の要素を入れています
$this->getLogger()->notice("読み込み完了_ver.1.0.0");
は、読み込みが完了したよって事を知らせるためにいれてます
別にいれなくてもいいです

$this->getServer()->getPluginManager()->registerEvents($this, $this);
は、Event系を使うために必要です
イベント系を登録している感じですね(??)

ここまできたらあとはjoinの処理だけです
頑張りましょう

5:プレイヤーが入った時のjoinメッセージを変えよう!!

ここまで頑張りましたね
あと少しです

public function onJoin(PlayerJoinEvent $event)
{
$name = $event->getPlayer()->getName();
$event->setJoinMessage("{$name}が参加したよ。HelloWorld");
}


これをかいてください
説明すると
onJoin は名前だと思ってくださいここは別に他のでもいいかもしれません
まあ私はこれを推します

(PlayerJoinEvent $event )
PlayerJoinEventを使用するよ!!
$eventがPlayerJoinEventだよ!!
って感じです

$name = $event/*PlayerJoinEventから*/ ->getPlayer()/*プレイヤーを収得*/ ->getName();//プレイヤーから名前を収得

$event/*PlayerJoinEventから*/->getPlayer()/*プレイヤーを収得してーの*/->getName()/*プレイヤーから名前を収得するんじゃ!*/

$event/*PlayerJoinEventから*/->setJoinMessage("{$name}が参加したよ。HelloWorld");/*joinメッセージを設定する*/

あとは}でコードを閉じましょう

6:完成したコードと、よくあるエラー

https://github.com/xtakumatutix/JoinMessage/blob/master/src/xtakumatutix/join/Main.php
https://github.com/xtakumatutix/JoinMessage
ですね。
あとは、適当にサーバーを起動してみてください。

よくある質問
質問は基本的に受け付けています
コメントしてくださると助かります

Q. なんかプラグインが読み込まれない
A. エラーなどが出てない場合、plugin.ymlがPlugin.ymlなど大文字になってないか確認してください

Q. Main class for plugin JoinMessage not found
A. Main.phpのnamespaceとsrcからのフォルダを確認してください

Q. syntax error
A. しっかり$name = $event->getPlayer()->getName();
など最後に「;」がついてる事を確認してください

Q. Class pocketmine\event\Player\PlayerJoinEvent does not exist
A. use pocketmine\event\player\PlayerJoinEvent;のところが「Player」になってないか確認してください。大文字と小文字に注意してください

読み込んでサーバーにはいれてjoinメッセージが変更されていたら完成です
わからなかったりエラーが起きたら、コメントしてください。
それでは。