<?php echo "Altay plugin if v2.2.0\nThis file has been generated using Turanic at Sat, 06 Oct 2018 15:05:40 +0900.\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:2:"if";s:7:"version";s:5:"2.2.0";s:4:"main";s:14:"aieuo\ifPlugin";s:3:"api";a:1:{i:0;s:5:"3.0.0";}s:6:"depend";a:0:{}s:11:"description";s:0:"";s:7:"authors";a:1:{i:0;s:5:"aieuo";}s:7:"website";s:0:"";s:12:"creationDate";i:1538805940;}
   plugin.ymlÄ   ´P¸[Ä   ÇË·¶         src/aieuo/ifPlugin.phpj  ´P¸[j  ç×{×¶          src/aieuo/utils/BlockManager.php¹  ´P¸[¹  Üo,¶      "   src/aieuo/utils/CommandManager.php¬  ´P¸[¬  f`¦¶          src/aieuo/utils/EventManager.phpÑ  ´P¸[Ñ  tcI¶         src/aieuo/utils/Form.php|'  ´P¸[|'  (ö¡¶         src/aieuo/utils/ifManager.php.1  ´P¸[.1  †5˜y¶         src/aieuo/utils/Messages.phpº2  ´P¸[º2  <ù®S¶      name: if
main: aieuo\ifPlugin
version: 2.2.0
api: [3.0.0]
load: POSTWORLD
author: aieuo
commands:
 if:
  description: "ã‚‚ã—ãªã‚‰ã™ã‚‹"
  usage: "usage /if <add | del | check>"
  permission: op<?php
namespace aieuo;

use pocketmine\plugin\PluginBase;
use pocketmine\event\Listener;
use pocketmine\Player;
use pocketmine\item\Item;
use pocketmine\level\Position;
use pocketmine\utils\Config;

use pocketmine\event\player\PlayerInteractEvent;

use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\ConsoleCommandSender;
use pocketmine\command\PluginCommand;

use pocketmine\event\server\DataPacketReceiveEvent;
use pocketmine\network\mcpe\protocol\ModalFormResponsePacket;

use aieuo\utils\ifManager;
use aieuo\utils\BlockManager;
use aieuo\utils\CommandManager;
use aieuo\utils\EventManager;
use aieuo\utils\Messages;
use aieuo\utils\Form;

class ifPlugin extends PluginBase implements Listener{

    const IF_TAKEMONEY = 0;
    const IF_HAVEINGITEM = 1;
    const IF_EXISTITEM = 2;
    const IF_ISSNEAKING = 3;
    const IF_OVERMONEY = 4;
    const IF_REMOVEITEM = 5;
    const IF_GAMEMODE = 6;
    const IF_NO_CHECK = 7;
    const IF_CUSTOM = 8;

    const COMMAND = 100;
    const SENDMESSAGE = 101;
    const SENDTIP = 102;
    const TELEPORT = 103;
    const BROADCASTMESSAGE = 104;
    const COMMAND_CONSOLE = 105;
    const DO_NOTHING = 106;
    const ADD_ITEM = 107;
    const REMOVE_ITEM = 108;
    const SET_IMMOBILE = 109;
    const UNSET_IMMOBILE = 110;
    const SET_HEALTH = 111;
    const SET_MAXHEALTH = 112;
    const SET_GAMEMODE = 113;
    const SET_NAMETAG = 114;
    const ADD_ENCHANTMENT = 115;
    const ADD_EFFECT = 116;
    const EVENT_CANCELL = 117;

	public function onEnable(){
        $this->getServer()->getPluginManager()->registerEvents($this,$this);
        $this->getServer()->getPluginManager()->registerEvents(($this->event = new EventManager($this)), $this);
        if(!file_exists($this->getDataFolder())) @mkdir($this->getDataFolder(), 0721, true);
        $this->config = new Config($this->getDataFolder()."config.yml", Config::YAML, [
            "wait" => 0
        ]);
        $this->wait = $this->config->get("wait");

        if(($this->EconomyAPI = $this->getServer()->getPluginManager()->getPlugin("EconomyAPI")) !== null){
            $this->getServer()->getLogger()->info("[if] EconomyAPIã‚’è¦‹ã¤ã‘ã¾ã—ãŸ");
        }
        if(($this->PocketMoney = $this->getServer()->getPluginManager()->getPlugin("PocketMoney")) !== null){
            $this->getServer()->getLogger()->info("[if] PocketMoneyã‚’è¦‹ã¤ã‘ã¾ã—ãŸ");
        }

        $this->command = new CommandManager($this);
        $this->block = new BlockManager($this);

        $this->addIfId = mt_rand(1, 999999999);
        $this->inputIfId = mt_rand(1, 999999999);
        $this->editIfId = mt_rand(1, 999999999);
        $this->addCommandId = mt_rand(1, 999999999);
        $this->editId = mt_rand(1, 999999999);
        $this->delId = mt_rand(1, 999999999);
        $this->addId = mt_rand(1, 999999999);
        $this->selectEventId = mt_rand(1, 999999999);
        $this->editEventId = mt_rand(1, 999999999);
    }

    public function onDisable(){
        $this->command->save();
        $this->block->save();
        $this->event->save();
    }

    public function onCommand(CommandSender $sender, Command $command,string $label, array $args):bool{
        if($command->getName() == "if"){
            if(!isset($args[0]))return false;
            $name = $sender->getName();
            switch ($args[0]) {
                case "block":
                    if(!isset($args[1])){
                        $sender->sendMessage("usage: /if block <add | del | edit | check>");
                        return true;
                    }
                    switch ($args[1]) {
                        case 'add':
                            $form = Form::getaddIfForm();
                            Form::sendForm($sender, $form, $this->addIfId);
                            $this->addData[$name] = ["add" => "block"];
                            break;
                        case 'del':
                            $this->tap[$name] = "del";
                            $sender->sendMessage("ãƒ–ãƒ­ãƒƒã‚¯ã‚’ã‚¿ãƒƒãƒã—ã¦ãã ã•ã„");
                            break;
                        case 'check':
                            $this->tap[$name] = "check";
                            $sender->sendMessage("ãƒ–ãƒ­ãƒƒã‚¯ã‚’ã‚¿ãƒƒãƒã—ã¦ãã ã•ã„");
                            break;
                        case 'edit':
                            $this->tap[$name] = "edit";
                            $sender->sendMessage("ãƒ–ãƒ­ãƒƒã‚¯ã‚’ã‚¿ãƒƒãƒã—ã¦ãã ã•ã„");
                            break;
                        default:
                            $sender->sendMessage("usage: /if block <add | del | edit | check>");
                            break;
                    }
                    break;
                case 'command':
                    if(!isset($args[1])){
                        $sender->sendMessage("usage: /if command <add | del <ã‚³ãƒžãƒ³ãƒ‰> | edit <ã‚³ãƒžãƒ³ãƒ‰> | list>");
                        return true;
                    }
                    switch ($args[1]) {
                        case 'add':
                            $form = Form::getAddCommandForm();
                            Form::sendForm($sender, $form, $this->addCommandId);
                            $this->addData[$name] = ["add" => "command"];
                            break;
                        case 'del':
                            if(!isset($args[2])){
                                $sender->sendMessage("/if command del <command>");
                                return true;
                            }
                            array_shift($args);
                            array_shift($args);
                            $cmd = implode(" ", $args);
                            if(!$this->command->isAdded($cmd)){
                                $sender->sendMessage("ãã®ã‚³ãƒžãƒ³ãƒ‰ã¯è¿½åŠ ã•ã‚Œã¦ã„ã¾ã›ã‚“");
                                return true;
                            }
                            if(!$this->command->isSubcommand($cmd))$this->getServer()->getCommandMap()->unregister(new PluginCommand($cmd, $this));
                            $this->command->remove($cmd);
                            $sender->sendMessage("å‰Šé™¤ã—ã¾ã—ãŸ");
                            break;
                        case 'edit':
                            if(!isset($args[2])){
                                $sender->sendMessage("/if command edit <command>");
                                return true;
                            }
                            array_shift($args);
                            array_shift($args);
                            $cmd = implode(" ", $args);
                            if(!$this->command->isAdded($cmd)){
                                $sender->sendMessage("ãã®ã‚³ãƒžãƒ³ãƒ‰ã¯è¿½åŠ ã•ã‚Œã¦ã„ã¾ã›ã‚“");
                                return true;
                            }
                            $datas = $this->command->get($cmd);
                            $mes = Messages::createMessage($datas["if"], $datas["match"], $datas["else"]);
                            $form = Form::getEditIfForm($mes);
                            Form::sendForm($sender, $form, $this->editIfId);
                            $this->editData[$name] = [
                                "edit" => "command",
                                "command" => $cmd
                            ];
                            break;
                        case 'list':
                            $sender->sendMessage("è¿½åŠ ã—ã¦ã„ã‚‹ã‚³ãƒžãƒ³ãƒ‰");
                            foreach($this->command->getAll() as $cmd => $value){
                                $sender->sendMessage($cmd.": ".$value["description"]);
                            }
                            break;
                        default:
                            $sender->sendMessage("usage: /if command <add | del <ã‚³ãƒžãƒ³ãƒ‰> | edit <ã‚³ãƒžãƒ³ãƒ‰> | list>");
                            break;
                    }
                    break;
                case "event":
                    if(!isset($args[1])){
                        $sender->sendMessage("if event <add | edit >");
                        return true;
                    }
                    switch ($args[1]) {
                        case 'add':
                            $form = Form::getSelectEventForm();
                            Form::sendForm($sender, $form, $this->selectEventId);
                            $this->addData[$name] = ["add" => "event_add"];
                            break;
                        case 'edit':
                            $form = Form::getSelectEventForm();
                            Form::sendForm($sender, $form, $this->selectEventId);
                            $this->addData[$name] = ["add" => "event_edit"];
                            break;
                        default:
                            $sender->sendMessage("if event <add | edit >");
                            break;
                    }
                    break;
                case 'setting':
                    if(!isset($args[1])){
                        $sender->sendMessage("/if setting <wait> <ç§’æ•°>");
                        return true;
                    }
                    switch ($args[1]) {
                        case 'wait':
                            $time = (int)$args[1];
                            if($time < 0){
                                $sender->sendMessage("0ç§’ä»¥ä¸Šã«ã—ã¦ãã ã•ã„");
                                return true;
                            }
                            $this->config->set("wait", $time);
                            $this->wait = $time;
                            $sender->sendMessage($time."ç§’ã«è¨­å®šã—ã¾ã—ãŸ");
                            break;
                    }
                    break;
            }
            return true;
        }
        if(isset($args[0])){
            $cmd = $command->getName()." ".implode(" ", $args);
        }else{
            $cmd = $command->getName();
        }
        if($this->command->isAdded($cmd)){
            $datas = $this->command->get($cmd);
            $stat = "match";
            foreach($datas["if"] as $if => $content){
                $id = str_replace("id", "", $if);
                $result = $this->command->checkMatchCondition($sender, $id, $content);
                if($result === 0){
                    $sender->sendMessage("Â§cã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ(id: ".$id."ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“)");
                    return true;
                }elseif($result === 2){
                    $stat = "else";
                }
            }
            foreach ($datas[$stat] as $type => $content) {
                $id = str_replace("id", "", $type);
                $this->command->execute($sender, $id, $content);
            }
            return true;
        }
        return true;
    }

    public function onTouch(PlayerInteractEvent $event){
        $player = $event->getPlayer();
        $block = $event->getBlock();
        if(isset($this->tap[$player->getName()]) and $block->getId() !== 0){
            switch ($this->tap[$player->getName()]) {
                case 'add':
                    $pos = $this->block->getPosition($block);
                    $tap = $this->addData[$player->getName()];
                    $this->block->add($pos, $tap["datas"]);
                    $player->sendMessage("è¿½åŠ ã—ã¾ã—ãŸ");
                    unset($this->addData[$player->getName()]);
                    break;
                case 'del':
                    $pos = $this->block->getPosition($block);
                    if(!$this->block->isAdded($pos)){
                        $player->sendMessage("ãã®ãƒ–ãƒ­ãƒƒã‚¯ã«ã¯è¿½åŠ ã•ã‚Œã¦ã„ã¾ã›ã‚“");
                        return;
                    }
                    $this->block->remove($pos);
                    $player->sendMessage("å‰Šé™¤ã—ã¾ã—ãŸ");
                    break;
                case 'check':
                    $pos = $this->block->getPosition($block);
                    if(!$this->block->isAdded($pos)){
                        $player->sendMessage("ãã®ãƒ–ãƒ­ãƒƒã‚¯ã«ã¯è¿½åŠ ã•ã‚Œã¦ã„ã¾ã›ã‚“");
                        return;
                    }
                    $datas = $this->block->get($pos);
                    $mes = Messages::createMessage($datas["if"], $datas["match"], $datas["else"]);
                    $player->sendMessage($mes);
                    break;
                case 'edit':
                    $pos = $this->block->getPosition($block);
                    if(!$this->block->isAdded($pos)){
                        $player->sendMessage("ãã®ãƒ–ãƒ­ãƒƒã‚¯ã«ã¯è¿½åŠ ã•ã‚Œã¦ã„ã¾ã›ã‚“");
                        return;
                    }
                    $datas = $this->block->get($pos);
                    $mes = Messages::createMessage($datas["if"], $datas["match"], $datas["else"]);
                    $form = Form::getEditIfForm($mes);
                    Form::sendForm($player, $form, $this->editIfId);
                    $this->editData[$player->getName()] = [
                        "edit" => "block",
                        "pos" => $pos
                    ];
                    break;
            }
            unset($this->tap[$player->getName()]);
            return;
        }
        if($block->getId() === 0)return;
        if($this->block->isAdded($this->block->getPosition($block))){
            if($this->wait !== 0){
                if(!isset($player->wait))$player->wait = 0;
                $tick = $this->getServer()->getTick();
                if($tick - $player->wait < $this->wait)return;
            }
            $name = $player->getName();
            $datas = $this->block->get($this->block->getPosition($block));
            $stat = "match";
            foreach($datas["if"] as $if => $content){
                $id = str_replace("id", "", $if);
                $result = $this->block->checkMatchCondition($player, $id, $content);
                if($result === 0){
                    $player->sendMessage("Â§cã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ(id: ".$id."ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“)");
                    return true;
                }elseif($result === 2){
                    $stat = "else";
                }
            }
            foreach ($datas[$stat] as $type => $content) {
                $id = str_replace("id", "", $type);
                $this->block->execute($player, $id, $content);
            }
        }
    }

    public function Receive(DataPacketReceiveEvent $event){
        $pk = $event->getPacket();
        $player = $event->getPlayer();
        $name = $player->getName();
        if($pk instanceof ModalFormResponsePacket){
            if($pk->formId === $this->addCommandId){
                $data = json_decode($pk->formData);
                if($pk->formData === null) {
                   return;
                }
                if($data[0] === ""){
                    $player->sendMessage("å¿…è¦äº‹é …ã‚’è¨˜å…¥ã—ã¦ãã ã•ã„");
                    return true;
                }
                if($this->command->exist($data[0])){
                    $player->sendMessage("Â§eãã®ã‚³ãƒžãƒ³ãƒ‰ã¯æ—¢ã«ä½¿ç”¨ã•ã‚Œã¦ã„ã¾ã™");
                    return true;
                }
                if($this->command->isAdded($data[0])){
                    $player->sendMessage("Â§eãã®ã‚³ãƒžãƒ³ãƒ‰ã¯æ—¢ã«è¿½åŠ ã—ã¦ã„ã¾ã™");
                    return true;
                }
                if($data[1] === "")$data[1] = null;
                if($data[2] == 0){
                    $permission = "op";
                }else{
                    $permission = "default";
                }
                $this->addData[$name]["command"] = $data[0];
                $this->addData[$name]["description"] = $data[1];
                $this->addData[$name]["permission"] = $permission;

                $form = self::getaddIfForm();
                Form::sendForm($player, $form, $this->addIfId);
                return;
            }

            if($pk->formId === $this->selectEventId){
                $data = json_decode($pk->formData);
                if($pk->formData === null) {
                   return;
                }
                switch ($data[0]){
                    case 0:
                        $eventname = "PlayerChatEvent";
                        break;
                    case 1:
                        $eventname = "PlayerCommandPreprocessEvent";
                        break;
                    case 2:
                        $eventname = "PlayerInteractEvent";
                        break;
                    case 3:
                        $eventname = "PlayerJoinEvent";
                        break;
                    case 4:
                        $eventname = "PlayerQuitEvent";
                        break;
                    case 5:
                        $eventname = "BlockBreakEvent";
                        break;
                    case 6:
                        $eventname = "BlockPlaceEvent";
                        break;
                    case 7:
                        $eventname = "EntityDamageEvent";
                        break;
                }
                $this->addData[$name]["event"] = $eventname;

                if($this->addData[$name]["add"] == "event_add"){
                    $form = Form::getaddIfForm(true, $eventname);
                    Form::sendForm($player, $form, $this->addIfId);
                }elseif($this->addData[$name]["event"]){
                    if(!$this->event->isAdded($eventname)){
                        $player->sendMessage("Â§cãã®ã‚¤ãƒ™ãƒ³ãƒˆã«ã¯ã¾ã è¿½åŠ ã•ã‚Œã¦ã„ã¾ã›ã‚“");
                        return;
                    }
                    $form = Form::getEditEventForm($eventname, $this->event->get($eventname));
                    Form::sendForm($player, $form, $this->editEventId);
                }
                return;
            }

            if($pk->formId === $this->addIfId){
                $data = json_decode($pk->formData);
                if($pk->formData === null) {
                   return;
                }
                $event = false;
                if($this->addData[$name]["add"] == "event_add"){
                    $event = $this->addData[$name]["event"];
                }
                $form = Form::createIfContentForm($data[0], $data[1] + 100, $data[2] + 100, true, $event);
                Form::sendForm($player, $form, $this->inputIfId);
                for($i = 2; $i >= 0; $i--){
                    $this->addData[$name]["content"][$i] = "";
                    $this->addData[$name]["type"][$i] = $data[$i];
                    if($i == 0)break;
                    $this->addData[$name]["type"][$i] += 100;
                }
                return;
            }

            if($pk->formId === $this->inputIfId){
                $data = json_decode($pk->formData);
                if($pk->formData === null) {
                   return;
                }
                $datas = $this->addData[$name];
                if($data[0] === "" or $data[2] === ""){
                    $player->sendMessage("å¿…è¦äº‹é …ã‚’è¨˜å…¥ã—ã¦ãã ã•ã„");
                    return true;
                }
                $add = [
                    "if" => [
                        "id".$datas["type"][0] => (string)$data[0]
                    ],
                    "match" => [
                        "id".$datas["type"][1] => (string)$data[1]
                    ],
                    "else" => [
                        "id".$datas["type"][2] => (string)$data[2]
                    ]
                ];

                if($this->addData[$name]["add"] == "block"){
                    $this->addData[$name]["datas"] = $add;
                    $this->tap[$name] = "add";
                    $player->sendMessage("è¿½åŠ ã™ã‚‹ãƒ–ãƒ­ãƒƒã‚¯ã‚’è§¦ã£ã¦ãã ã•ã„");
                }elseif($this->addData[$name]["add"] == "command"){
                    $this->command->add($datas["command"], $add, $datas["permission"], $datas["description"]);
                    $this->command->register($datas["command"], $datas["permission"], $datas["description"]);
                    $player->sendMessage("è¿½åŠ ã—ã¾ã—ãŸ");
                    unset($this->addData[$name]);
                }else{
                    $this->event->add($this->addData[$name]["event"], $add);
                    $player->sendMessage("è¿½åŠ ã—ã¾ã—ãŸ");
                    unset($this->addData[$name]);
                }

            }

            if($pk->formId === $this->editEventId){
                $data = json_decode($pk->formData);
                if($pk->formData === null or $data === null) {
                   return;
                }
                $datas = $this->event->get($this->addData[$name]["event"]);
                if(!isset($datas[$data])){
                    $form = Form::getaddIfForm(true, $this->addData[$name]["event"]);
                    Form::sendForm($player, $form, $this->addIfId);
                    return;
                }
                $mes = Messages::createMessage($datas[$data]["if"], $datas[$data]["match"], $datas[$data]["else"]);
                $form = Form::getEditIfForm($mes);
                Form::sendForm($player, $form, $this->editIfId);
                $this->editData[$name] = [
                    "event" => $this->addData[$name]["event"],
                    "edit" => "event",
                    "num" => $data,
                    "datas" => $datas[$data]
                ];
                unset($this->addData[$name]);
            }

            if($pk->formId === $this->editIfId){
                $data = json_decode($pk->formData);
                if($pk->formData === null or $data === null) {
                   return;
                }
                if($this->editData[$name]["edit"] == "block"){
                    $datas = $this->block->get($this->editData[$name]["pos"]);
                }elseif($this->editData[$name]["edit"] == "command"){
                    $datas = $this->command->get($this->editData[$name]["command"]);
                }else{
                    $datas = $this->editData[$name]["datas"];
                }
                if($data == 0){
                    $form = Form::getEditContentForm($datas["if"]);
                    $this->editData[$name]["type"] = "if";
                }elseif($data == 1){
                    $form = Form::getEditContentForm($datas["match"]);
                    $this->editData[$name]["type"] = "match";
                }elseif($data == 2){
                    $form = Form::getEditContentForm($datas["else"]);
                    $this->editData[$name]["type"] = "else";
                }
                Form::sendForm($player, $form, $this->editId);

            }

            if($pk->formId === $this->editId){
                $data = json_decode($pk->formData);
                if($pk->formData === null or $data === null){
                   return;
                }
                $event = false;
                if($this->editData[$name]["edit"] == "block"){
                    $datas = $this->block->get($this->editData[$name]["pos"])[$this->editData[$name]["type"]];
                }elseif($this->editData[$name]["edit"] == "command"){
                    $datas = $this->command->get($this->editData[$name]["command"])[$this->editData[$name]["type"]];
                }else{
                    $datas = $this->editData[$name]["datas"][$this->editData[$name]["type"]];
                    $event = $this->editData[$name]["event"];
                }
                if($data == count($datas)){
                    $form = Form::getAddContentsForm($this->editData[$name]["type"], true, $event);
                    Form::sendForm($player, $form, $this->addId);
                }else{
                    $detail = array_slice($datas, $data, 1, true);
                    $id = (int)str_replace("id", "", key($detail));
                    if($this->editData[$name]["type"] != "if")$id += 100;
                    $form = Form::getDelForm($id, current($detail));
                    Form::sendForm($player, $form, $this->delId);
                    $this->editData[$name]["num"] = $data;
                }

            }

            if($pk->formId === $this->delId){
                $data = json_decode($pk->formData);
                if($pk->formData === null or $data === null){
                   return;
                }
                if($data[1] === true){
                    if($this->editData[$name]["edit"] == "block"){
                        $datas = $this->block->get($this->editData[$name]["pos"]);
                    }elseif($this->editData[$name]["edit"] == "command"){
                        $datas = $this->command->get($this->editData[$name]["command"]);
                    }else{
                        $datas = $this->editData[$name]["datas"];
                    }
                    $edit = $this->editData[$name];
                    $detail = array_slice($datas[$edit["type"]], $edit["num"], 1, true);
                    unset($datas[$edit["type"]][key($detail)]);
                    if($this->editData[$name]["edit"] == "block"){
                        $this->block->update($edit["pos"], $datas);
                    }elseif($this->editData[$name]["edit"] == "command"){
                        $this->command->update($edit["command"], $datas);
                    }else{
                        $this->event->update($edit["event"], [$edit["num"], $datas]);
                    }
                    $player->sendMessage("å‰Šé™¤ã—ã¾ã—ãŸ");
                }

            }

            if($pk->formId === $this->addId){
                $data = json_decode($pk->formData);
                if($data === null){
                   return;
                }
                if($this->editData[$name]["edit"] == "block"){
                    $datas = $this->block->get($this->editData[$name]["pos"]);
                }elseif($this->editData[$name]["edit"] == "command"){
                    $datas = $this->command->get($this->editData[$name]["command"]);
                }else{
                    $datas = $this->editData[$name]["datas"];
                }
                $edit = $this->editData[$name];
                if($edit["type"] != "if")$data[0] += 100;
                $datas[$edit["type"]]["id".$data[0]] = (string)$data[1];
                if($this->editData[$name]["edit"] == "block"){
                    $this->block->update($edit["pos"], $datas);
                }elseif($this->editData[$name]["edit"] == "command"){
                    $this->command->update($edit["command"], $datas);
                }else{
                    $this->event->update($edit["event"], [$edit["num"], $datas]);
                }
                $player->sendMessage("è¿½åŠ ã—ã¾ã—ãŸ");
            }
        }
    }
}<?php

namespace aieuo\utils;

class BlockManager extends ifManager{

	public function __construct($owner){
		parent::__construct($owner ,"blocks");
		if(!file_exists($this->getDataFolder()."blocks.yml")){
	        if(file_exists($this->getDataFolder()."if.db")) {
	            $db = new \SQLite3($this->getDataFolder()."if.db", SQLITE3_OPEN_READWRITE);
	        	$this->moveDB($db);
	        }
	    }
	}

	public function moveDB($db){
		$res = $db->query("SELECT * FROM list");
		while($row = $res->fetchArray()) {
			$data = [
				"if" => [
					$row["if"] => $row["if_content"]
				],
				"match" => [
					$row["type1"]+100 => $row["type1_content"]
				],
				"else" => [
					$row["type2"]+100 => $row["type2_content"]
				]
			];
			$this->add($row["pos"], $data);
		}
	}

    public function getPosition($block){
        return $block->x.",".$block->y.",".$block->z.",".$block->level->getFolderName();
    }
}<?php

namespace aieuo\utils;

use pocketmine\command\Command;
use pocketmine\command\PluginCommand;

class CommandManager extends ifManager{

	public function __construct($owner){
        parent::__construct($owner, "commands");
        $this->registerCommands();
	}

    public function registerCommands(){
        foreach($this->getAll() as $command => $value){
    		if($this->isSubcommand($command))$command = $this->getOriginalCommand($command);
            if(!$this->exist($command)){
                $newCommand = new PluginCommand($command, $this->getOwner());
                $newCommand->setDescription($value["description"]);
                $newCommand->setPermission($value["permission"]);
                $this->getServer()->getCommandMap()->register("ifPlugin", $newCommand);
            }
        }
    }

    public function register($command, $permission = "default", $description = "ifPluginã§è¿½åŠ ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ã™"){
    	if($this->isSubcommand($command))$command = $this->getOriginalCommand($command);
        if(!$this->exist($command)){
            $newCommand = new PluginCommand($command, $this->getOwner());
            $newCommand->setDescription($description);
            $newCommand->setPermission($permission);
            $this->getServer()->getCommandMap()->register("ifPlugin", $newCommand);
            return true;
        }
        return false;
    }

    public function exist($command){
        $exist = $this->getServer()->getPluginCommand($command);
        if($exist === null)return false;
        return true;
    }

    public function isSubcommand($command){
    	$subcommand = false;
    	if(strpos($command, " ") !== false)$subcommand = true;
    	return $subcommand;
    }

    public function getSubcommand($command){
    	$array = [];
    	$command = explode(" ", $command)[0];
    	$commands = $this->getAll();
    	foreach ($commands as $cmd => $value) {
    		$cmds = explode(" ", $cmd);
    		if(array_shift($cmds) == $command){
    			if(isset($cmds[0])){
    				$sub = implode(" " ,$cmds);
        			$array[] = $sub;
    			}
    		}
    	}
    	return $array;
    }

    public function getOriginalCommand($command){
    	if(!$this->isSubcommand($command))return $command;
    	$commands = explode(" ", $command);
    	return $commands[0];
    }

    public function add($command, $data = [], $permission = "default", $description = "ifPluginã§è¿½åŠ ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ã™"){
        $merge = [
            "description" => $description,
            "permission" => $permission
        ];
        parent::add($command, array_merge($merge, $data));
    }

    public function update($command, $data){
        if(!isset($data["permission"]))$data["permission"] = "default";
        if(!isset($data["description"]))$data["description"] = "ifPluginã§è¿½åŠ ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ã™";
        parent::update($command, $data);
    }
}<?php

namespace aieuo\utils;

use pocketmine\item\Item;
use pocketmine\level\Position;
use pocketmine\Player;
use pocketmine\event\Cancellable;
use pocketmine\event\Listener;
use pocketmine\event\player\PlayerChatEvent;
use pocketmine\event\player\PlayerCommandPreprocessEvent;
use pocketmine\event\player\PlayerInteractEvent;
use pocketmine\event\player\PlayerJoinEvent;
use pocketmine\event\player\PlayerQuitEvent;
use pocketmine\event\block\BlockBreakEvent;
use pocketmine\event\block\BlockPlaceEvent;
use pocketmine\event\entity\EntityDamageEvent;
use pocketmine\event\entity\EntityDamageByEntityEvent;

use aieuo\ifPlugin;

class EventManager extends ifManager implements Listener{

	public function __construct($owner){
        parent::__construct($owner, "events");
    }

	public function interact(PlayerInteractEvent $event){
		if($this->isAdded("PlayerInteractEvent")){
			$this->onEvent($event, "PlayerInteractEvent");
		}
	}
	public function chat(PlayerChatEvent $event){
		if($this->isAdded("PlayerChatEvent")){
			$this->onEvent($event, "PlayerChatEvent");
		}
	}
	public function commandProcess(PlayerCommandPreprocessEvent $event){
		if($this->isAdded("PlayerCommandPreprocessEvent")){
			$this->onEvent($event, "PlayerCommandPreprocessEvent");
		}
	}
	public function join(PlayerJoinEvent $event){
		if($this->isAdded("PlayerJoinEvent")){
			$this->onEvent($event, "PlayerJoinEvent");
		}
	}
	public function quit(PlayerQuitEvent $event){
		if($this->isAdded("PlayerQuitEvent")){
			$this->onEvent($event, "PlayerQuitEvent");
		}
	}
	public function blockBreak(BlockBreakEvent $event){
		if($this->isAdded("BlockBreakEvent")){
			$this->onEvent($event, "BlockBreakEvent");
		}
	}
	public function blockPlace(BlockPlaceEvent $event){
		if($this->isAdded("BlockPlaceEvent")){
			$this->onEvent($event, "BlockPlaceEvent");
		}
	}
	public function entityDamage(EntityDamageEvent $event){
		if($this->isAdded("EntityDamageEvent")){
			$this->onEvent($event, "EntityDamageEvent");
		}
	}

	public function onEvent($event, $eventname){
		$player = $event->getPlayer();
		$name = $player->getName();
        $this->event[$name] = [$event, $eventname];
		$datas = $this->get($eventname);
        $d = "";
        switch ($eventname) {
            case "PlayerChatEvent":
            case "PlayerCommandPreprocessEvent":
                $d = $event->getMessage();
                break;
            case "PlayerInteractEvent":
            case "BlockBreakEvent":
            case "BlockPlaceEvent":
                $block = $event->getBlock();
                $d = $block->getId().":".$block->getDamage();
                break;
        }
		foreach ($datas as $data) {
            $stat = "match";
            foreach($data["if"] as $if => $content){
                $id = str_replace("id", "", $if);
                $result = $this->checkMatchCondition($player, $id, $content, $eventname, $d);
                if($result === 0){
                    $player->sendMessage("Â§cã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ(id: ".$id."ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“)");
                    continue;
                }elseif($result === 2){
                    $stat = "else";
                }
            }
            foreach ($data[$stat] as $type => $content) {
                $id = str_replace("id", "", $type);
                $this->execute($player, $id, $content);
            }
		}
	}

    public function execute($player, $type, $content){
        $name = $player->getName();
        $event = $this->event[$name][0];
        $eventname = $this->event[$name][1];
        switch ($type) {
            case ifPlugin::COMMAND:
                $cmd = $this->replaceMessage($content, $this->getParam($event, $eventname));
                $this->getServer()->dispatchCommand($player, $cmd);
                return;
            case ifPlugin::SENDMESSAGE:
                $message = $this->replaceMessage($content, $this->getParam($event, $eventname));
                $player->sendMessage($message);
                return;
            case ifPlugin::SENDTIP:
                $message = $this->replaceMessage($content, $this->getParam($event, $eventname));
                $player->sendTip($message);
                return;
            case ifPlugin::BROADCASTMESSAGE:
                $message = $this->replaceMessage($content, $this->getParam($event, $eventname));
                $this->getServer()->broadcastMessage($message);
                return;
            case ifPlugin::COMMAND_CONSOLE:
                $cmd = $this->replaceMessage($content, $this->getParam($event, $eventname));
                $this->getServer()->dispatchCommand(new ConsoleCommandSender, $cmd);
                return;
            case ifPlugin::SET_NAMETAG:
                $content = $this->replaceMessage($content, $this->getParam($event, $eventname));
                $player->setNametag($content);
                $player->setDisplayName($content);
                return;
            case ifPlugin::EVENT_CANCELL:
            	if($event instanceof Cancellable){
            		$event->setCancelled();
            	}
                return;
        }
        parent::execute($player, $type, $content);
    }

	public function replaceMessage($message, $args){
		foreach ($args as $key => $value) {
			$message = str_replace($key, $value, $message);
		}
		return $message;
	}

    public function getParam($event, $name){
    	$datas = [];
    	if(
    		$name == "PlayerInteractEvent"
    		or $name == "PlayerChatEvent"
    		or $name == "PlayerJoinEvent"
    		or $name == "PlayerCommandPreprocessEvent"
    		or $name == "PlayerDeathEvent"
    		or $name == "PlayerQuitEvent"
    		or $name == "PlayerToggleFlightEvent"
    		or $name == "BlockBreakEvent"
    		or $name == "BlockPlaceEvent"
    	){
			$player = $event->getPlayer();
			$datas["@pname"] = $player->getName();
            $datas["@nametag"] = $player->getnameTag();
			$datas["@ppos"] = $player->x." ".$player->y." ".$player->z." ".$player->level->getFolderName();
			$datas["@plevel"] = $player->level->getFolderName();
    	}
    	if(
    		$name == "PlayerInteractEvent"
    		or $name == "BlockBreakEvent"
    		or $name == "BlockPlaceEvent"
    	){
			$block = $event->getBlock();
            $datas["@block"] = $block->__toString();
			$datas["@bname"] = $block->getName();
			$datas["@bpos"] = $block->x." ".$block->y." ".$block->z." ".$block->level->getFolderName();
			$datas["@blevel"] = $player->level->getFolderName();
    	}
    	if(
    		$name == "PlayerChatEvent"
    		or $name == "PlayerCommandPreprocessEvent"
    	){
			$datas["@mes"] = $event->getMessage();
    	}
    	if($name == "EntityDamageEvent"){
    		$entity = $event->getEntity();
    		if($entity instanceof Player){
    			$datas["@pname"] = $entity->getName();
    		}
    		if($event instanceof EntityDamageByEntityEvent){
    			$damager = $event->getDamager();
	    		if($damager instanceof Player){
	    			$datas["@attacker"] = $damager->getName();
	    		}
    		}
    	}
    	return $datas;
    }

    public function add($event, $data = []){
        if(!isset($data["if"]))$data["if"] = [];
        if(!isset($data["match"]))$data["match"] = [];
        if(!isset($data["else"]))$data["else"] = [];
        $datas = [];
        if($this->isAdded($event)){
            $datas = $this->get($event);
        }
        $datas[] = $data;
        $this->set($event, $datas);
    }

    public function update($event, $data){
        if(!isset($data[1]["if"]))$data[1]["if"] = [];
        if(!isset($data[1]["match"]))$data[1]["match"] = [];
        if(!isset($data[1]["else"]))$data[1]["else"] = [];
        $datas = [];
        if($this->isAdded($event)){
            $datas = $this->get($event);
        }
        if(!isset($datas[$data[0]])){
            $datas[] = $data[1];
        }else{
            $datas[$data[0]] = $data[1];
        }
        $this->set($event, $datas);
    }
}<?php

namespace aieuo\utils;

use pocketmine\network\mcpe\protocol\ModalFormRequestPacket;

use aieuo\ifPlugin;

class Form {
    public static function sendForm($player, $data, $id){
        $pk = new ModalFormRequestPacket();
        $pk->formId = $id;
        $pk->formData = $data;
        $player->dataPacket($pk);
    }


    public static function getAddCommandForm($encode = true){
        $data = [
            "type" => "custom_form",
            "title" => "è¿½åŠ ",
            "content" => [
            	self::getInput("è¿½åŠ ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã®åå‰", "æœ€åˆã®/ã‚’å¤–ã—ã¦"),
            	self::getInput("ã‚³ãƒžãƒ³ãƒ‰ã®èª¬æ˜Ž"),
            	self::getDropdown("æ¨©é™", ["opã ã‘", "å…¨å“¡ä½¿ãˆã‚‹"], "å…¨å“¡ä½¿ãˆã‚‹")
            ]
        ];
        if($encode)$data = self::encodeJson($data);
        return $data;
    }

    public static function getaddIfForm($encode = true, $event = false){
        $data = [
            "type" => "custom_form",
            "title" => "è¿½åŠ ",
            "content" => [
    			self::getIflistDropdown($event),
    			self::getExelistDropdown($event),
    			self::getExelistDropdown($event)
    		]
        ];
        if($encode)$data = self::encodeJson($data);
        return $data;
    }
    public static function getAddContentsForm($type, $encode = true, $event = false){
    	if($type == "if"){
    		$type = "If";
    	}else{
    		$type = "Exe";
    	}
        $data = [
            "type" => "custom_form",
            "title" => "è¿½åŠ ",
            "content" => [
    			self::{"get".$type."listDropdown"}($event),
    			self::getInput("å€¤ã‚’å…¥åŠ›ã—ã¦ä¸‹ã•ã„")
    		]
        ];
        if($encode)$data = self::encodeJson($data);
        return $data;
    }

    public static function getEditIfForm($mes, $encode = true){
        $data = [
        	"type" => "form",
        	"title" => "ç·¨é›†",
        	"content" => $mes,
        	"buttons" => [
        		[
        			"text" => "ã‚‚ã—~ã‚’ç·¨é›†ã™ã‚‹"
        		],
        		[
        			"text" => "æ¡ä»¶ã«åˆã£ãŸæ™‚ã‚’ç·¨é›†ã™ã‚‹",
        		],
        		[
        			"text" => "æ¡ä»¶ã«åˆã‚ãªã‹ã£ãŸæ™‚ã‚’ç·¨é›†ã™ã‚‹"
        		]
        	]
        ];
        if($encode)$data = self::encodeJson($data);
        return $data;
    }
    public static function getEditContentForm($datas, $encode = true){
        $data = [
        	"type" => "form",
        	"title" => "ç·¨é›†",
        	"content" => "",
        	"buttons" => []
        ];
    	foreach ($datas as $key => $value) {
            $id = str_replace("id", "", $key);
            $data["buttons"][] = ["text" => Messages::getMessage($id, $value)];
    	}
        $data["buttons"][] = ["text" => "è¿½åŠ ã™ã‚‹(æ—¢ã«è¿½åŠ ã—ã¦ã‚‹æ¡ä»¶ã‚’è¿½åŠ ã™ã‚‹ã¨ä¸Šæ›¸ãã•ã‚Œã¾ã™)"];
        if($encode)$data = self::encodeJson($data);
        return $data;
    }

    public static function getDelForm($id, $content, $encode = true){
        $data = [
            "type" => "custom_form",
            "title" => "è¿½åŠ ",
            "content" => [
            	self::getLabel(Messages::getMessage($id, $content)),
            	self::getToggle("å‰Šé™¤ã™ã‚‹")
            ]
        ];
        if($encode)$data = self::encodeJson($data);
        return $data;
    }

    public static function createIfContentForm($type1, $type2, $type3, $encode = true, $event = false){
        $messages1 = Messages::getFormMessage($type1, $event);//ã‚‚ã—
        $messages2 = Messages::getFormMessage($type2);//åˆã£ãŸã‚‰
        $messages3 = Messages::getFormMessage($type3);//åˆã‚ãªã‹ã£ãŸã‚‰

        if($messages1["type"] == "input"){
            $input1 = self::getInput($messages1["message"], $messages1["placeholder"]);
        }else{
            $input1 = self::getLabel($messages1["message"]);
        }
        if($messages2["type"] == "input"){
            $input2 = self::getInput($messages1["next"].$messages2["message"], $messages2["placeholder"]);
        }else{
            $input2 = self::getLabel($messages2["message"]);
        }
        if($messages3["type"] == "input"){
            $input3 = self::getInput($messages2["next"]."åˆã‚ãªã‹ã£ãŸã‚‰\n".$messages3["message"], $messages3["placeholder"]);
        }else{
            $input3 = self::getLabel("åˆã‚ãªã‹ã£ãŸã‚‰\n".$messages3["message"]);
        }

        $content[] = $input1;
        $content[] = $input2;
        $content[] = $input3;

        $content[] = self::getLabel($messages3["next"]);

        $data = [
            "type" => "custom_form",
            "title" => "ifPlugin",
            "content" => $content
        ];
        if($encode)$data = self::encodeJson($data);
        return $data;
    }

    public static function getSelectEventForm($encode = true){
        $data = [
            "type" => "custom_form",
            "title" => "ã‚¤ãƒ™ãƒ³ãƒˆé¸æŠž",
            "content" => [
    			self::getEventListDropdown()
            ]
        ];
        if($encode)$data = self::encodeJson($data);
        return $data;
    }

    public static function getEditEventForm($event, $datas, $encode = true){
        $data = [
        	"type" => "form",
        	"title" => "ã‚¤ãƒ™ãƒ³ãƒˆã®ç·¨é›†",
        	"content" => "",
        	"buttons" => []
        ];
    	foreach ($datas as $key => $value) {
            $data["buttons"][] = ["text" => (string)$key];
    	}
        $data["buttons"][] = ["text" => "è¿½åŠ ã™ã‚‹"];
        if($encode)$data = self::encodeJson($data);
        return $data;
    }


    public static function getIflistDropdown($event = false){
    	$options = [
            "ãŠé‡‘ã‚’æ¸›ã‚‰ã™",
            "æŒ‡å®šã—ãŸã‚¢ã‚¤ãƒ†ãƒ ã‚’æ‰‹ã«æŒã£ã¦ã‚‹ã‹",
            "ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«æŒ‡å®šã—ãŸã‚¢ã‚¤ãƒ†ãƒ ãŒå…¥ã£ã¦ã‚‹ã‹",
            "ã‚¹ãƒ‹ãƒ¼ã‚¯ã—ã¦ã„ã‚‹ã‹",
            "æŒ‡å®šã—ãŸé‡‘é¡ã‚ˆã‚Šæ‰€æŒé‡‘ãŒå¤šã„ã‹",
            "æŒ‡å®šã—ãŸã‚¢ã‚¤ãƒ†ãƒ ãŒã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«ã‚ã‚‹ãªã‚‰å‰Šé™¤ã™ã‚‹",
            "ã‚²ãƒ¼ãƒ ãƒ¢ãƒ¼ãƒ‰ãŒæŒ‡å®šã—ãŸã‚‚ã®ã ã£ãŸã‚‰",
            "ä½•ã‚‚ç¢ºèªã—ãªã„"
        ];
        if($event !== false){
        	switch ($event) {
        		case "PlayerChatEvent":
        			$options[] = "ãƒãƒ£ãƒƒãƒˆãŒæŒ‡å®šã—ãŸã‚‚ã®ãªã‚‰";
        			break;
        		case "PlayerCommandPreprocessEvent":
        			$options[] = "ã‚³ãƒžãƒ³ãƒ‰ãŒæŒ‡å®šã—ãŸã‚‚ã®ãªã‚‰";
        			break;
        		case "PlayerInteractEvent":
        			$options[] = "è§¦ã£ãŸãƒ–ãƒ­ãƒƒã‚¯ã®idãŒæŒ‡å®šã—ãŸã‚‚ã®ãªã‚‰";
        			break;
        		case "BlockBreakEvent":
        			$options[] = "å£Šã—ãŸãƒ–ãƒ­ãƒƒã‚¯ã®idãŒæŒ‡å®šã—ãŸã‚‚ã®ãªã‚‰";
        			break;
        		case "BlockPlaceEvent":
        			$options[] = "ç½®ã„ãŸãƒ–ãƒ­ãƒƒã‚¯ã®idãŒæŒ‡å®šã—ãŸã‚‚ã®ãªã‚‰";
        			break;
        	}
        }
        $dropdown = self::getDropdown("ã‚‚ã—ï½žãªã‚‰", $options);
    	return $dropdown;
    }

    public static function getExelistDropdown($event = false){
    	$options = [
            "ã‚³ãƒžãƒ³ãƒ‰ã‚’å®Ÿè¡Œã™ã‚‹",
            "ãƒãƒ£ãƒƒãƒˆæ¬„ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é€ä¿¡",
            "tipæ¬„ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é€ä¿¡",
            "ãƒ†ãƒ¬ãƒãƒ¼ãƒˆ",
            "å…¨ä½“ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é€ä¿¡",
            "ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã‹ã‚‰ã‚³ãƒžãƒ³ãƒ‰å®Ÿè¡Œ",
            "ä½•ã‚‚ã—ãªã„",
            "ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«ã‚¢ã‚¤ãƒ†ãƒ ã‚’è¿½åŠ ã™ã‚‹",
            "ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã‹ã‚‰ã‚¢ã‚¤ãƒ†ãƒ ã‚’å‰Šé™¤ã™ã‚‹",
            "ãƒ—ãƒ¬ã‚¤ãƒ¤ãƒ¼ã‚’å‹•ã‘ãªãã™ã‚‹",
            "ãƒ—ãƒ¬ã‚¤ãƒ¤ãƒ¼ã‚’å‹•ã‘ã‚‹ã‚ˆã†ã«ã™ã‚‹",
            "ä½“åŠ›ã‚’å¤‰æ›´ã™ã‚‹",
            "æœ€å¤§ä½“åŠ›ã‚’å¤‰æ›´ã™ã‚‹",
            "ã‚²ãƒ¼ãƒ ãƒ¢ãƒ¼ãƒ‰ã‚’å¤‰æ›´ã™ã‚‹",
            "è¡¨ç¤ºã™ã‚‹åå‰ã‚’å¤‰æ›´ã™ã‚‹",
            "æ‰‹ã«æŒã£ã¦ã‚‹ã‚¢ã‚¤ãƒ†ãƒ ã«ã‚¨ãƒ³ãƒãƒ£ãƒ³ãƒˆã‚’è¿½åŠ ã™ã‚‹",
            "ã‚¨ãƒ•ã‚§ã‚¯ãƒˆã‚’ä¸Žãˆã‚‹"
        ];
        if($event !== false){
        	$options[] = "ã‚¤ãƒ™ãƒ³ãƒˆã‚’ã‚­ãƒ£ãƒ³ã‚»ãƒ«ã™ã‚‹";
        }
        $dropdown = self::getDropdown("æ¡ä»¶ã«å½“ã¦ã¯ã¾ã£ãŸã‚‰ï½žã‚’ã™ã‚‹", $options);
    	return $dropdown;
    }

    public static function getEventListDropdown(){
    	$options = [
            "ãƒ—ãƒ¬ã‚¤ãƒ¤ãƒ¼ãŒãƒãƒ£ãƒƒãƒˆã—ãŸã¨ã",
            "ãƒ—ãƒ¬ã‚¤ãƒ¤ãƒ¼ãŒã‚³ãƒžãƒ³ãƒ‰ã‚’å®Ÿè¡Œã—ãŸã¨ã",
            "ãƒ—ãƒ¬ã‚¤ãƒ¤ãƒ¼ãŒãƒ–ãƒ­ãƒƒã‚¯ã‚’è§¦ã£ãŸã¨ã",
            "ãƒ—ãƒ¬ã‚¤ãƒ¤ãƒ¼ãŒã‚µãƒ¼ãƒãƒ¼ã«å‚åŠ ã—ãŸã¨ã",
            "ãƒ—ãƒ¬ã‚¤ãƒ¤ãƒ¼ãŒã‚µãƒ¼ãƒãƒ¼ã‹ã‚‰é€€å®¤ã—ãŸã¨ã",
            "ãƒ—ãƒ¬ã‚¤ãƒ¤ãƒ¼ãŒãƒ–ãƒ­ãƒƒã‚¯ã‚’å£Šã—ãŸã¨ã",
            "ãƒ—ãƒ¬ã‚¤ãƒ¤ãƒ¼ãŒãƒ–ãƒ­ãƒƒã‚¯ã‚’ç½®ã„ãŸã¨ã",
            "ãƒ—ãƒ¬ã‚¤ãƒ¤ãƒ¼ãŒãƒ€ãƒ¡ãƒ¼ã‚¸ã‚’å—ã‘ãŸã¨ã"
        ];
        $dropdown = self::getDropdown("ã‚¤ãƒ™ãƒ³ãƒˆã‚’é¸ã‚“ã§ãã ã•ã„", $options);
    	return $dropdown;
    }

//////////////////////////////////////////////////////////////
    public static function getInput($text, $placeholder = ""){
        return [
            "type" => "input",
            "text" => $text,
            "placeholder" => $placeholder
        ];
    }

    public static function getLabel($text){
        return [
            "type" => "label",
            "text" => $text
        ];
    }

    public static function getToggle($text){
        return [
            "type" => "toggle",
            "text" => $text
        ];
    }

    public static function getDropdown($text, $options, $default = null){
    	if($default === null)$default = $options[0];
    	return [
            "type" => "dropdown",
            "text" => $text,
            "options" => $options,
            "defaultOptionIndex" => $default
        ];
    }


    public static function encodeJson($data){
        $json = json_encode($data, JSON_PRETTY_PRINT | JSON_BIGINT_AS_STRING | JSON_UNESCAPED_UNICODE);
        return $json;
    }
}<?php

namespace aieuo\utils;

use pocketmine\Server;
use pocketmine\item\Item;
use pocketmine\utils\Config;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\ConsoleCommandSender;
use pocketmine\item\enchantment\Enchantment;
use pocketmine\item\enchantment\EnchantmentInstance;
use pocketmine\entity\Effect;
use pocketmine\entity\EffectInstance;

use aieuo\ifPlugin;

class ifManager{

	private $owner;
	private $config;

	public function __construct($owner, $type){
		$this->owner = $owner;
        $this->config = new Config($this->getDataFolder() . $type. ".yml", Config::YAML, []);
	}

	public function getOwner(){
		return $this->owner;
	}

	public function getServer(){
		return $this->getOwner()->getServer();
	}

	public function getDataFolder(){
		return $this->getOwner()->getDataFolder();
	}

    public function isAdded($key){
    	return $this->config->exists($key);
    }

    public function get($key){
    	if(!$this->isAdded($key))return false;
    	return $this->config->get($key);
    }

    public function getAll(){
    	return $this->config->getAll();
    }

    public function set($key, $data){
    	$this->config->set($key, $data);
    }

    public function remove($key){
    	$this->config->remove($key);
    }

    public function update($key, $data){
        if(!isset($data["if"]))$data["if"] = [];
        if(!isset($data["match"]))$data["match"] = [];
        if(!isset($data["else"]))$data["else"] = [];
        $this->config->set($key, $data);
    }

	public function save(){
		$this->config->save();
	}

    public function add($key, $data = []){
        if(!isset($data["if"]))$data["if"] = [];
        if(!isset($data["match"]))$data["match"] = [];
        if(!isset($data["else"]))$data["else"] = [];
        $this->config->set($key, $data);
    }

    public function checkMatchCondition($player, $type, $content, $eventname = null, $data = null){
        $result = 2;
        $name = $player->getName();
        switch ($type) {
            case ifPlugin::IF_TAKEMONEY:
                $money = (int)$content;
                if($this->getOwner()->EconomyAPI !== null){
                    $mymoney = $this->getOwner()->EconomyAPI->mymoney($name);
                    if($mymoney >= $money){
                        $this->getOwner()->EconomyAPI->reduceMoney($name, $money);
                        $result = 1;
                    }
                }elseif($this->getOwner()->PocketMoney !== null){
                    $mymoney = $this->getOwner()->PocketMoney->getMoney($name);
                    if($mymoney >= $money){
                        $this->getOwner()->PocketMoney->setMoney($name, $mymoney - $money);
                        $result = 1;
                    }
                }else{
                    $result = 0;
                    $player->sendMessage("çµŒæ¸ˆã‚·ã‚¹ãƒ†ãƒ ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“");
                }
                break;
            case ifPlugin::IF_HAVEINGITEM:
                $item = $player->getInventory()->getItemInHand();
                $id = explode(":", $content);
                if(!isset($id[1]))$id[1] = 0;
                if(isset($id[2])){
                    if($item->getId() == $id[0] and $item->getDamage() == $id[1] and $item->getCount() == $id[2]){
                        $result = 1;
                    }
                }else{
                    if($item->getId() == $id[0] and $item->getDamage() == $id[1] ){
                        $result = 1;
                    }
                }
                break;
            case ifPlugin::IF_EXISTITEM:
                $id = explode(":", $content);
                if(!isset($id[1]))$id[1] = 0;
                if(!isset($id[2]))$id[2] = 1;
                $item = Item::get((int)$id[0], (int)$id[1], (int)$id[2]);
                if($player->getInventory()->contains($item))$result = 1;
                break;
            case ifPlugin::IF_ISSNEAKING:
                if($player->isSneaking())$result = 1;
                break;
            case ifPlugin::IF_OVERMONEY:
                $money = (int)$content;
                if($this->getOwner()->EconomyAPI !== null){
                    $mymoney = $this->EconomyAPI->mymoney($name);
                    if($mymoney >= $money)$result = 1;
                }elseif($this->getOwner()->PocketMoney !== null){
                    $mymoney = $this->PocketMoney->getMoney($name);
                    if($mymoney >= $money)$result = 1;
                }else{
                    $result = 0;
                    $player->sendMessage("çµŒæ¸ˆã‚·ã‚¹ãƒ†ãƒ ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“");
                }
                break;
            case ifPlugin::IF_REMOVEITEM:
                $ids = explode(":", $content);
                if(!isset($ids[1]))$ids[1] == 0;
                if(isset($ids[2])){
                    $item = Item::get((int)$ids[0], (int)$ids[1], (int)$ids[2]);
                    if($player->getInventory()->contains($item)){
                        $player->getInventory()->removeItem($item);
                        $result = 1;
                    }
                }else{
                    $count = 0;
                    foreach ($player->getInventory()->getContents() as $item) {
                        if($item->getId() == $ids[0] and $item->getDamage() == $ids[1]){
                            $count += $item->getCount();
                        }
                    }
                    if($count >= 1){
                        $player->getInventory()->removeItem(Item::get($ids[0], $ids[1], $count));
                        $result = 1;
                    }
                }
                break;
            case ifPlugin::IF_CUSTOM:
            	$result = 2;
	        	switch ($eventname) {
	        		case "PlayerChatEvent":
	        		case "PlayerCommandPreprocessEvent":
	        		case "PlayerInteractEvent":
	        		case "BlockBreakEvent":
	        		case "BlockPlaceEvent":
	        			if($data === $content)$result = 1;
	        			break;
	        	}
                break;
            case ifPlugin::IF_NO_CHECK:
                $result = 1;
                break;
            default:
                $result = 0;
                break;
        }
        return $result;//åˆã£ãŸã‚‰1, åˆã‚ãªã‹ã£ãŸã‚‰2, idãŒè¦‹ã¤ã‹ã‚‰ãªã‹ã£ãŸã‚‰0
    }

    public function execute($player, $type, $content){
        $name = $player->getName();
        switch ($type) {
            case ifPlugin::COMMAND:
                $cmd = str_replace("@p", $name, $content);
                $this->getServer()->dispatchCommand($player, $cmd);
                break;
            case ifPlugin::SENDMESSAGE:
                $message = str_replace("@p", $name, $content);
                $player->sendMessage($message);
                break;
            case ifPlugin::SENDTIP:
                $message = str_replace("@p", $name, $content);
                $player->sendTip($message);
                break;
            case ifPlugin::TELEPORT:
                $pos = explode(",", $content);
                if(!isset($pos[1]))$pos[1] = 0;
                if(!isset($pos[2]))$pos[2] = 0;
                if(!isset($pos[3]))$pos[3] = $player->level->getFolderName();
                $player->teleport(new Position((int)$pos[0], (int)$pos[1], (int)$pos[2], $this->getServer()->getLevelByName($pos[3])));
                break;
            case ifPlugin::BROADCASTMESSAGE:
                $message = str_replace("@p", $name, $content);
                $this->getServer()->broadcastMessage($message);
                break;
            case ifPlugin::COMMAND_CONSOLE:
                $cmd = str_replace("@p", $name, $content);
                $this->getServer()->dispatchCommand(new ConsoleCommandSender, $cmd);
                break;
            case ifPlugin::ADD_ITEM:
                $ids = explode(":", $content);
                if(!isset($ids[1]))$ids[1] = 0;
                if(!isset($ids[2]))$ids[2] = 1;
                if(!isset($ids[3])){
                    $player->getInventory()->addItem(Item::get($ids[0], $ids[1]));
                }else{
                    $player->getInventory()->addItem(Item::get($ids[0], $ids[1])->setCustomName($ids[3]));
                }
                break;
            case ifPlugin::REMOVE_ITEM:
                $ids = explode(":", $content);
                if(!isset($ids[1]))$ids[1] == 0;
                if(isset($ids[2])){
                    $item = Item::get((int)$ids[0], (int)$ids[1], (int)$ids[2]);
                    $player->getInventory()->removeItem($item);
                }else{
                    $count = 0;
                    foreach ($player->getInventory()->getContents() as $item) {
                        if($item->getId() == $ids[0] and $item->getDamage() == $ids[1]){
                            $count += $item->getCount();
                        }
                    }
                    if($count >= 1){
                        $player->getInventory()->removeItem(Item::get($ids[0], $ids[1], $count));
                    }
                }
                break;
            case ifPlugin::SET_IMMOBILE:
            	$player->setImmobile();
            	break;
            case ifPlugin::UNSET_IMMOBILE:
            	$player->setImmobile(false);
            	break;
            case ifPlugin::SET_HEALTH:
            	$health = (int)$content;
            	if($health <= 0)$health = 20;
            	$player->setHealth($health);
            	break;
            case ifPlugin::SET_MAXHEALTH:
            	$health = (int)$content;
            	if($health <= 0)$health = 20;
            	$player->setMaxHealth($health);
            	break;
            case ifPlugin::SET_GAMEMODE:
            	$gamemode = Server::getGamemodeFromString($content);
            	if($gamemode === -1){
            		$player->sendMessage("ã‚²ãƒ¼ãƒ ãƒ¢ãƒ¼ãƒ‰ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“");
            		break;
            	}
            	$player->setGamemode($gamemode);
            	break;
            case ifPlugin::SET_NAMETAG:
            	$player->setNametag($content);
            	$player->setDisplayName($content);
            	break;
            case ifPlugin::ADD_ENCHANTMENT:
                $args = explode(",", $content);
                if(!isset($args[1]) or (int)$args[1] <= 0)$args[1] = 1;
	            if(is_numeric($args[0])){
		            $enchantment = Enchantment::getEnchantment((int)$args[0]);
		        }else{
		            $enchantment = Enchantment::getEnchantmentByName($args[0]);
		        }
		        if(!($enchantment instanceof Enchantment)){
		            $sender->sendMessage("ã‚¨ãƒ³ãƒãƒ£ãƒ³ãƒˆãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“");
		            break;
		        }
		        $item = $player->getInventory()->getItemInHand();
		        $item->addEnchantment(new EnchantmentInstance($enchantment, $args[1]));
       			$player->getInventory()->setItemInHand($item);
            	break;
            case ifPlugin::ADD_EFFECT:
                $args = explode(",", $content);
                if(!isset($args[1]) or (int)$args[1] <= 0)$args[1] = 1;
                if(!isset($args[2]) or (int)$args[2] <= 0)$args[2] = 30;
        		$effect = Effect::getEffectByName($args[0]);
		        if($effect === null){
		            $effect = Effect::getEffect((int)$args[0]);
		        }
		        if($effect === null){
		            $sender->sendMessage("ã‚¨ãƒ•ã‚§ã‚¯ãƒˆãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“");
		            break;
		        }
		        $power = (int)$args[1];
		        $time = (int)$args[2] * 20;
				$effect = new EffectInstance($effect, $time, $power, true);
            	$player->addEffect($effect);
            	break;
            case ifPlugin::DO_NOTHING:
                break;
        }
    }

    public function executeIfMatchCondition($player, $type1, $content1, $type2 = ifPlugin::DO_NOTHING, $content2 = "", $type3 = ifPlugin::DO_NOTHING, $content3 = ""){
        $result = $this->checkMatchCondition($player, $type1, $content1);
        if($result == 1){
            $this->execute($player, $type2, $content2);
        }elseif($result == 2){
            $this->execute($player, $type3, $content3);
        }else{
            return false;
        }
        return true;
    }
}<?php

namespace aieuo\utils;

use aieuo\ifPlugin;

class Messages {

    public static function createMessage($if, $match, $else){
    	$mes = "ã‚‚ã—\n";
        foreach($if as $type => $content){
            $id = str_replace("id", "", $type);
            $mes .= self::getMessage($id, $content).",\n";
        }
        $mes .= "ãªã‚‰\n\n";
        foreach ($match as $type => $content) {
            $id = str_replace("id", "", $type);
            $mes .= self::getMessage($id, $content).",\n";
        }
        $mes .= "\n\næ¡ä»¶ã«åˆã‚ãªã‹ã£ãŸã‚‰\n";
        foreach ($else as $type => $content) {
            $id = str_replace("id", "", $type);
            $mes .= self::getMessage($id, $content).",\n";
        }
        return $mes;
    }

	public static function getMessage($num, $value, $event = false){
        switch ($num){
            case ifPlugin::IF_TAKEMONEY:
                $message = "$".$value."æ‰•ãˆã‚‹";
                break;
            case ifPlugin::IF_HAVEINGITEM:
                $message = "idãŒ".$value."ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’æ‰‹ã«æŒã£ã¦ã‚‹";
                break;
            case ifPlugin::IF_EXISTITEM:
                $message = "idãŒ".$value."ã‚¢ã‚¤ãƒ†ãƒ ãŒã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«å…¥ã£ã¦ã„ã‚‹";
                break;
            case ifPlugin::IF_ISSNEAKING:
                $message = "ã‚¹ãƒ‹ãƒ¼ã‚¯ã—ã¦ã„ã‚‹";
                break;
            case ifPlugin::IF_OVERMONEY:
                $message = "$".$value."ã‚ˆã‚Šæ‰€æŒé‡‘ãŒå¤šã„";
                break;
            case ifPlugin::IF_REMOVEITEM:
                $message = "ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã‹ã‚‰(".$value.")ã‚’å‰Šé™¤ã§ãã‚‹";
                break;
            case ifPlugin::IF_GAMEMODE:
                $message = "ã‚²ãƒ¼ãƒ ãƒ¢ãƒ¼ãƒ‰ãŒ(".$value.")ãªã‚‰";
                break;
            case ifPlugin::IF_NO_CHECK:
                $message = "ä½•ã‚‚ç¢ºèªã—ãªã„";
                break;
            case ifPlugin::IF_CUSTOM:
                $message = $value;
                break;
            case ifPlugin::COMMAND:
                $message = "ã‚³ãƒžãƒ³ãƒ‰(/".$value.")ã‚’å®Ÿè¡Œã™ã‚‹";
                break;
            case ifPlugin::SENDMESSAGE:
                $message = "ãƒãƒ£ãƒƒãƒˆæ¬„ã«(".$value.")ã‚’é€ä¿¡ã™ã‚‹";
                break;
            case ifPlugin::SENDTIP:
                $message = "tipæ¬„ã«(".$value.")ã‚’é€ä¿¡ã™ã‚‹";
                break;
            case ifPlugin::TELEPORT:
                $message = "(".$value.")ã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆã™ã‚‹";
                break;
            case ifPlugin::BROADCASTMESSAGE:
                $message = "å…¨å“¡ã®ãƒãƒ£ãƒƒãƒˆæ¬„ã«(".$value.")ã‚’é€ä¿¡ã™ã‚‹";
                break;
            case ifPlugin::COMMAND_CONSOLE:
                $message = "ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã‹ã‚‰ã‚³ãƒžãƒ³ãƒ‰(/".$value.")ã‚’å®Ÿè¡Œã™ã‚‹";
                break;
            case ifPlugin::DO_NOTHING:
                $message = "ä½•ã‚‚ã—ãªã„";
                break;
            case ifPlugin::ADD_ITEM:
                $message = "ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«(".$value.")ã‚’è¿½åŠ ã™ã‚‹";
                break;
            case ifPlugin::REMOVE_ITEM:
                $message = "ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã‹ã‚‰(".$value.")ã‚’å‰Šé™¤ã™ã‚‹";
                break;
            case ifPlugin::SET_IMMOBILE:
                $message = "ãƒ—ãƒ¬ã‚¤ãƒ¤ãƒ¼ã‚’å‹•ã‘ãªãã™ã‚‹";
                break;
            case ifPlugin::UNSET_IMMOBILE:
                $message = "ãƒ—ãƒ¬ã‚¤ãƒ¤ãƒ¼ã‚’å‹•ã‘ã‚‹ã‚ˆã†ã«ã™ã‚‹";
                break;
            case ifPlugin::SET_HEALTH:
                $message = "ä½“åŠ›ã‚’(".$value.")ã«è¨­å®šã™ã‚‹";
                break;
            case ifPlugin::SET_MAXHEALTH:
                $message = "æœ€å¤§ä½“åŠ›ã‚’(".$value.")ã«è¨­å®šã™ã‚‹";
                break;
            case ifPlugin::SET_GAMEMODE:
                $message = "ã‚²ãƒ¼ãƒ ãƒ¢ãƒ¼ãƒ‰ã‚’(".$value.")ã«è¨­å®šã™ã‚‹";
                break;
            case ifPlugin::SET_NAMETAG:
                $message = "è¡¨ç¤ºã—ã¦ã„ã‚‹åå‰ã‚’(".$value.")ã«å¤‰æ›´ã™ã‚‹";
                break;
            case ifPlugin::ADD_ENCHANTMENT:
                $message = "æ‰‹ã«æŒã£ã¦ã‚‹ã‚¢ã‚¤ãƒ†ãƒ ã«(id,ãƒ¬ãƒ™ãƒ«)ãŒ(".$value.")ã®ã‚¨ãƒ³ãƒãƒ£ãƒ³ãƒˆã‚’è¿½åŠ ã™ã‚‹";
                break;
            case ifPlugin::ADD_EFFECT:
                $message = "ãƒ—ãƒ¬ã‚¤ãƒ¤ãƒ¼ã«(id,å¼·ã•,æ™‚é–“)ãŒ(".$value.")ã®ã®ã‚¨ãƒ•ã‚§ã‚¯ãƒˆã‚’ä¸Žãˆã‚‹";
                break;
            case ifPlugin::ADD_EFFECT:
                $message = "ã‚¤ãƒ™ãƒ³ãƒˆã‚’ã‚­ãƒ£ãƒ³ã‚»ãƒ«ã™ã‚‹";
                break;
            default:
            	$message = "";
            	break;
        }
        return $message;
    }

    public static function getFormMessage($num, $event = false){
        switch ($num){
            case ifPlugin::IF_TAKEMONEY:
                $message = "ã‚‚ã—\nÂ§lãŠé‡‘ã‚’";
                $next = "Â§læ‰•ãˆã‚‹ãªã‚‰\n\n";
                $placeholder = "é‡‘é¡ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::IF_HAVEINGITEM:
                $message = "ã‚‚ã—\nÂ§lidãŒ\nÂ§r(id:meta:æ•° ã®ã‚ˆã†ã«çŸ³ãŒ10å€‹ãªã‚‰1:0:10, æ•°ã‚’è€ƒãˆãªã„ãªã‚‰1:0)";
                $next = "Â§lã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’æ‰‹ã«æŒã£ã¦ã‚‹ãªã‚‰\n\n";
                $placeholder = "ä¸Šã®ã‚«ãƒƒã‚³å†…ã®ã‚ˆã†ã«idã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::IF_EXISTITEM:
                $message = "ã‚‚ã—\nÂ§lidãŒ\nÂ§r(id:meta:æ•° ã®ã‚ˆã†ã«å®‰å±±å²©ãŒ3å€‹ãªã‚‰1:5:3, 1:5ã ã‘ãªã‚‰æ•°ã¯1å€‹ã«ãªã‚Šã¾ã™)";
                $next = "Â§lã®ã‚¢ã‚¤ãƒ†ãƒ ãŒã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«ã‚ã‚‹ãªã‚‰\n\n";
                $placeholder = "ä¸Šã®ã‚«ãƒƒã‚³å†…ã®ã‚ˆã†ã«idã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::IF_OVERMONEY:
                $message = "ã‚‚ã—\nÂ§læ‰€æŒé‡‘ãŒ";
                $next = "Â§lã‚ˆã‚Šå¤šã„ãªã‚‰\n\n";
                $placeholder = "é‡‘é¡ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::IF_REMOVEITEM:
                $message = "ã‚‚ã—\nÂ§lã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã‹ã‚‰idãŒ\nÂ§r(id:meta:æ•° ã®ã‚ˆã†ã«é»„è‰²ã®ç¾Šæ¯›ãŒ2å€‹ãªã‚‰35:4:2 , 35:4ã ã‘ãªã‚‰æŒã£ã¦ã‚‹æ•°ã™ã¹ã¦)";
                $next = "Â§lã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’å‰Šé™¤ã§ãã‚‹ãªã‚‰\n\n";
                $placeholder = "ä¸Šã®ã‚«ãƒƒã‚³å†…ã®ã‚ˆã†ã«idã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::IF_GAMEMODE:
                $message = "ã‚‚ã—\nÂ§lã‚²ãƒ¼ãƒ ãƒ¢ãƒ¼ãƒ‰ãŒ\nÂ§r(0,1,2,3,s,c,a,v)";
                $next = "Â§lãªã‚‰\n\n";
                $placeholder = "ã‚«ãƒƒã‚³å†…ã‹ã‚‰ä¸€ã¤é¸ã‚“ã§å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::IF_CUSTOM:
        		if($event === "PlayerChatEvent"){
            		$message = "ã‚‚ã—\nÂ§lãƒãƒ£ãƒƒãƒˆãŒ\nÂ§r(ãƒãƒ£ãƒƒãƒˆ)";
        		}elseif($event === "PlayerCommandPreprocessEvent"){
            		$message = "ã‚‚ã—\nã‚³ãƒžãƒ³ãƒ‰ãŒæŒ‡å®š\nÂ§r(ã‚³ãƒžãƒ³ãƒ‰ æœ€åˆã®/ã‚‚ã¤ã‘ã¦)";
        		}elseif($event === "PlayerInteractEvent"){
            		$message = "ã‚‚ã—\nè§¦ã£ãŸãƒ–ãƒ­ãƒƒã‚¯ã®idãŒ\nÂ§r(ãƒ–ãƒ­ãƒƒã‚¯ã®id)";
        		}elseif($event === "BlockBreakEvent"){
            		$message = "ã‚‚ã—\nå£Šã—ãŸãƒ–ãƒ­ãƒƒã‚¯ã®idãŒæŒ‡å®šã—ãŸã‚‚ã®ãªã‚‰\nÂ§r(ãƒ–ãƒ­ãƒƒã‚¯ã®id)";
        		}elseif($event === "BlockPlaceEvent"){
            		$message = "ã‚‚ã—\nç½®ã„ãŸãƒ–ãƒ­ãƒƒã‚¯ã®idãŒæŒ‡å®šã—ãŸã‚‚ã®ãªã‚‰\nÂ§r(ãƒ–ãƒ­ãƒƒã‚¯ã®id)";
        		}else{
        			$message = "";
        		}
                $next = "Â§lãªã‚‰\n\n";
                $placeholder = "ã‚«ãƒƒã‚³å†…ã®ç‰©ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::COMMAND:
                $message = "Â§lã‚³ãƒžãƒ³ãƒ‰";
                $next = "Â§lã‚’å®Ÿè¡Œã™ã‚‹\n\n";
                $placeholder = "ã‚³ãƒžãƒ³ãƒ‰ã‚’æœ€åˆã®/ã‚’å¤–ã—ã¦å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::SENDMESSAGE:
                $message = "Â§lãƒãƒ£ãƒƒãƒˆæ¬„ã«";
                $next = "Â§lã‚’é€ä¿¡ã™ã‚‹\n\n";
                $placeholder = "é€ä¿¡ã™ã‚‹ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::SENDTIP:
                $message = "Â§ltipæ¬„ã«";
                $next = "Â§lã‚’é€ä¿¡ã™ã‚‹\n\n";
                $placeholder = "é€ä¿¡ã™ã‚‹ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::TELEPORT:
                $message = "(0,0,0,world  ã®ã‚ˆã†ã«,ã§åŒºåˆ‡ã£ã¦)";
                $next = "Â§lã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆã™ã‚‹\n\n";
                $placeholder = "ä¸Šã®ã‚«ãƒƒã‚³å†…ã®ã‚ˆã†ã«åº§æ¨™ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::BROADCASTMESSAGE:
                $message = "Â§lå…¨å“¡ã®ãƒãƒ£ãƒƒãƒˆæ¬„ã«";
                $next = "Â§lã‚’é€ä¿¡ã™ã‚‹\n\n";
                $placeholder = "é€ä¿¡ã™ã‚‹ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::COMMAND_CONSOLE:
                $message = "Â§lã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã‹ã‚‰ã‚³ãƒžãƒ³ãƒ‰";
                $next = "Â§lã‚’å®Ÿè¡Œã™ã‚‹\n\n";
                $placeholder = "ã‚³ãƒžãƒ³ãƒ‰ã‚’æœ€åˆã®/ã‚’å¤–ã—ã¦å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::ADD_ITEM:
                $message = "Â§lã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«idãŒ\nÂ§r(id:meta:æ•° ,åå‰ã‚’ä»˜ã‘ã‚‹ãªã‚‰id:meta:æ•°:åå‰ ã®ã‚ˆã†ã«)";
                $next = "Â§lã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’è¿½åŠ ã™ã‚‹\n\n";
                $placeholder = "ä¸Šã®ã‚«ãƒƒã‚³å†…ã®ã‚ˆã†ã«idã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::REMOVE_ITEM:
                $message = "Â§lã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã‹ã‚‰idãŒ\nÂ§r(id:meta:æ•° æ•°ã‚’å…¥ã‚Œãªã‹ã£ãŸã‚‰æŒã£ã¦ã‚‹æ•°ã™ã¹ã¦)";
                $next = "Â§lã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’å‰Šé™¤ã™ã‚‹\n\n";
                $placeholder = "ä¸Šã®ã‚«ãƒƒã‚³å†…ã®ã‚ˆã†ã«idã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::SET_HEALTH:
                $message = "Â§lä½“åŠ›ã‚’\nÂ§r(2ã§ãƒãƒ¼ãƒˆä¸€å€‹åˆ†)";
                $next = "Â§lã«ã™ã‚‹\n\n";
                $placeholder = "æ•°å€¤ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::SET_MAXHEALTH:
                $message = "Â§læœ€å¤§ä½“åŠ›ã‚’\nÂ§r(2ã§ãƒãƒ¼ãƒˆä¸€å€‹åˆ†)";
                $next = "Â§lã«ã™ã‚‹\n\n";
                $placeholder = "æ•°å€¤ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::SET_GAMEMODE:
                $message = "Â§lã‚²ãƒ¼ãƒ ãƒ¢ãƒ¼ãƒ‰ã‚’\nÂ§r(0,1,2,3,s,c,a,v)";
                $next = "Â§lã«ã™ã‚‹\n\n";
                $placeholder = "ã‹ã£ã“ã®ä¸­ã‹ã‚‰ä¸€ã¤é¸ã‚“ã§å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::SET_NAMETAG:
                $message = "Â§lè¡¨ç¤ºã—ã¦ã„ã‚‹åå‰ã‚’";
                $next = "Â§lã«ã™ã‚‹\n\n";
                $placeholder = "ã‹ã£ã“ã®ä¸­ã‹ã‚‰ä¸€ã¤é¸ã‚“ã§å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::ADD_ENCHANTMENT:
                $message = "Â§lid,ãƒ¬ãƒ™ãƒ«ãŒ\nÂ§r(,ã§åŒºåˆ‡ã£ã¦)";
                $next = "Â§lã®ã‚¨ãƒ³ãƒãƒ£ãƒ³ãƒˆã‚’æ‰‹ã«æŒã£ã¦ã‚‹ã‚¢ã‚¤ãƒ†ãƒ ã«è¿½åŠ ã™ã‚‹\n\n";
                $placeholder = "æ•°å€¤ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
            case ifPlugin::ADD_EFFECT:
                $message = "Â§lid,å¼·ã•,æ™‚é–“ãŒ\nÂ§r(,ã§åŒºåˆ‡ã£ã¦)";
                $next = "Â§lã®ã‚¨ãƒ•ã‚§ã‚¯ãƒˆã‚’ä¸Žãˆã‚‹\n\n";
                $placeholder = "æ•°å€¤ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„";
                break;
        }
        if(isset($message))return [
        	"type" => "input",
            "message" => $message,
            "next" => $next,
            "placeholder" => $placeholder
        ];
        switch ($num){
            case ifPlugin::IF_ISSNEAKING:
                $message = "ã‚‚ã—\nã‚¹ãƒ‹ãƒ¼ã‚¯ã—ã¦ã„ã‚‹ãªã‚‰";
                break;
            case ifPlugin::IF_NO_CHECK:
                $message = "ä½•ã‚‚ç¢ºèªã—ãªã„";
                break;
            case ifPlugin::SET_IMMOBILE:
                $message = "ãƒ—ãƒ¬ã‚¤ãƒ¤ãƒ¼ã‚’å‹•ã‘ãªã„ã‚ˆã†ã«ã™ã‚‹";
                break;
            case ifPlugin::UNSET_IMMOBILE:
                $message = "ãƒ—ãƒ¬ã‚¤ãƒ¤ãƒ¼ã‚’å‹•ã‘ã‚‹ã‚ˆã†ã«ã™ã‚‹";
                break;
            case ifPlugin::DO_NOTHING:
                $message = "ä½•ã‚‚ã—ãªã„";
                break;
            case ifPlugin::EVENT_CANCELL:
                $message = "ã‚¤ãƒ™ãƒ³ãƒˆã‚’ã‚­ãƒ£ãƒ³ã‚»ãƒ«ã™ã‚‹";
                break;
        }
        return [
        	"type" => "label",
            "message" => $message,
            "next" => "\n"
        ];
    }
}$ã	(Ëü°—EÔîiâ&€Bœð/[   GBMB