解決済み {PMMP}ClearPlugin作成依頼

Ritorick1970

New member
5月 7, 2018
13
0
1
インベントリと防具をすべて/clearで消せるプラグインを探してるんですがなかったので自分でやってみたところ使い方:/clearと出てしまい、相談していろいろ試行錯誤してもだめだったので作成お願いします!!
 

popkechupki

Member
1月 1, 2018
78
22
8
Hokkaido
www.comorevi.net
usage: これはplugin.ymlにusage書いてると基本出てくるので気にしなくてオッケー。
ただインベントリをクリアするコードにミスがあると思います。
 

Ritorick1970

New member
5月 7, 2018
13
0
1
<?php

namespace test\command;

use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\CommandExecutor;
use pocketmine\event\PlayerJoinEvent;
use pocketmine\item\item;
use pocketmine\inventory\PlayerInventory;
use pocketmine\Player;
use pocketmine\event\Listener;
use pocketmine\Plugin\PluginBase;

class main extends PluginBase implements Listener{

public function onEnable(){
$this->getLogger()->info("PluginLoaded!");
}
public function onCommand(CommandSender $player, Command $command, string $label, array $args) : bool{
var_dump($command->getName());
switch($command->getName()){

case "clear":
$player->getInventory()->clearAll();
$player->sendMessage('アイテムがすべて削除されました');
break;
return true;
default:
return false;
}
}
}
}
 

yuko fuyutsuki

もでれーたー
Staff member
12 月 30, 2017
200
98
43
Japan/Tokyo
CommandSenderをプレイヤーにキャストかな
これphpなのでキャストは不要です

書き直してみたのでこれでやってみてください
PHP:
<?php

namespace test\command;

use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\event\Listener;
use pocketmine\Plugin\PluginBase;

class main extends PluginBase implements Listener{

  public function onEnable(){
    $this->getLogger()->info("PluginLoaded!");
  }

  public function onCommand(CommandSender $player, Command $command, string $label, array $args) : bool{
    $lowerCommand = strtolower($command->getName());// コマンドを小文字に変換
    var_dump($lowerCommand);
    switch($lowerCommand){
      case "clear":
        $player->getInventory()->clearAll();
        $player->sendMessage('アイテムがすべて削除されました');
        return true;// returnで処理が終わるのでbreakは不要

      default:// 何もコマンドを入力しなかった場合
        return false;
    }
  }
}
閉じ括弧がひとつ多かったですね
 

Ritorick1970

New member
5月 7, 2018
13
0
1
これphpなのでキャストは不要です

書き直してみたのでこれでやってみてください
PHP:
<?php

namespace test\command;

use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\event\Listener;
use pocketmine\Plugin\PluginBase;

class main extends PluginBase implements Listener{

  public function onEnable(){
    $this->getLogger()->info("PluginLoaded!");
  }

  public function onCommand(CommandSender $player, Command $command, string $label, array $args) : bool{
    $lowerCommand = strtolower($command->getName());// コマンドを小文字に変換
    var_dump($lowerCommand);
    switch($lowerCommand){
      case "clear":
        $player->getInventory()->clearAll();
        $player->sendMessage('アイテムがすべて削除されました');
        return true;// returnで処理が終わるのでbreakは不要

      default:// 何もコマンドを入力しなかった場合
        return false;
    }
  }
}
閉じ括弧がひとつ多かったですね
できました
 
最後の編集: