<?php echo "Altay plugin ConsoleCommand v1.0.0\nThis file has been generated using Turanic at Tue, 20 Nov 2018 21:50:50 +1030.\n----------------\n";if(extension_loaded("phar")){$phar = new \Phar(__FILE__);foreach($phar->getMetadata() as $key => $value){echo ucfirst($key).": ".(is_array($value) ? implode(", ", $value):$value)."\n";}} __HALT_COMPILER(); ?>
             <  a:9:{s:4:"name";s:14:"ConsoleCommand";s:7:"version";s:5:"1.0.0";s:4:"main";s:19:"ConsoleCommand\main";s:3:"api";a:2:{i:0;s:5:"3.0.0";i:1;s:5:"4.0.0";}s:6:"depend";a:0:{}s:11:"description";s:0:"";s:7:"authors";a:1:{i:0;s:34:"まっちだよ～(｡･ω･｡)";}s:7:"website";s:0:"";s:12:"creationDate";i:1542712850;}
   plugin.yml   [   c}         src/ConsoleCommand/main.php
  [
  ‶      ---
name: ConsoleCommand
main: ConsoleCommand\main
version: 1.0.0
api:
- 3.0.0
- 4.0.0
author: まっちだよ～(｡･ω･｡)

commands:
  cc:
    description: §l§6Consoleからコマンドを実行
    usege: /cc
    permission: op
...<?php

namespace ConsoleCommand;

use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\ConsoleCommandSender;
use pocketmine\plugin\PluginBase;
use pocketmine\event\Listener;
use pocketmine\utils\TextFormat;
use pocketmine\Player;
use pocketmine\Server;
use pocketmine\network\mcpe\protocol\ModalFormResponsePacket;
use pocketmine\network\mcpe\protocol\ModalFormRequestPacket;
use pocketmine\event\server\DataPacketReceiveEvent;

class Main extends PluginBase implements Listener {

	public function onEnable() {
		$this->getServer()->getPluginManager()->registerEvents($this, $this);
		$this->getLogger()->info("§a[起動] §bConsoleCommand §aを起動しました。");
		$this->getLogger()->warning("§c改造や、二次配布は禁止です。 §bBy まっちだよ～(｡･ω･｡)");
	}

	public function onDisable() {
		$this->getLogger()->info("§c[終了] §bConsoleCommand§aを終了しています...");
	}

	public function onCommand(CommandSender $sender, Command $command, string $label, array $args) :bool {

		if (!$sender instanceof Player) {
			$sender->sendMessage(TextFormat::RED . "プレイヤーのみ利用可能です。");
			return true;
		}
		if ($label === "cc") {
			$data = [

				"type" => "custom_form",
				"title" => "§lＣｏｎｓｏｌｅＣｏｍｍａｎｄ",
				"content" => [
					[
						"type" => "label",
						"text" => "§l§6Ｃｏｎｓｏｌｅ§aから§eＣｏｍｍａｎｄ§aを実行します。"
					],
					[
						"type" => "input",
						"text" => "§lＣｏｍｍａｎｄ",
						"placeholder" => "",
						"default" => ""
					]
				]
			];
			$this->createWindow($sender, $data, 518922);
		}return true;
	}

	public function onReceive(DataPacketReceiveEvent $event) {
		$pk = $event->getPacket();
		$player = $event->getPlayer();
		if ($pk instanceof ModalFormResponsePacket) {
			$id = $pk->formId;
			$data = $pk->formData;
			$result = json_decode($data);
			if($data == "null\n") {
			} else {
				if ($id === 518922) {
					if ($result[1] === "") {
						$player->sendMessage("§l§b[§eConsoleCommand§b] §l§cコマンドが記入されていません。");
					} else {
						Server::getInstance()->getCommandMap()->dispatch(new ConsoleCommandSender(), $result[1]);
						$player->sendMessage("§l§b[§eConsoleCommand§b] §d".$result[1]."§aを実行しました。");
					}
				}
			}
		}
	}

	public function createWindow(Player $player, $data, int $id) {
		$pk = new ModalFormRequestPacket();
		$pk->formId = $id;
		$pk->formData = json_encode($data, JSON_PRETTY_PRINT | JSON_BIGINT_AS_STRING | JSON_UNESCAPED_UNICODE);
		$player->dataPacket($pk);
	}
}m[Wq^,1a!   GBMB