<?php echo "Altay plugin if v1.1\nThis file has been generated using Turanic at Sat, 01 Sep 2018 23:58:03 +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:3:"1.1";s:4:"main";s:10:"aieuo\Main";s:3:"api";a:1:{i:0;s:13:"3.0.0-ALPHA11";}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:1535813883;}
   plugin.ymlÆ   û¨Š[Æ   õÑ§?¶         src/aieuo/Main.phpÇB  û¨Š[ÇB  ÚÁ@[¶         src/aieuo/Main.php-tmpž6  û¨Š[ž6  «_hô¶      name: if
main: aieuo\Main
version: 1.1
api: [3.0.0-ALPHA11]
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\event\player\PlayerInteractEvent;

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

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

class Main 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 COMMAND = 100;
    const SENDMESSAGE = 101;
    const SENDTIP = 102;
    const TELEPORT = 103;
    const BROADCASTMESSAGE = 104;
    const COMMAND_CONSOLE = 105;
    const DO_NOTHING = 106;

	public function onEnable(){
        $this->getServer()->getPluginManager()->registerEvents($this,$this);
        if(!file_exists($this->getDataFolder())) @mkdir($this->getDataFolder(), 0721, true);
        if(!file_exists($this->getDataFolder()."if.db")) {
            $this->db = new \SQLite3($this->getDataFolder()."if.db", SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE);
        }else{
            $this->db = new \SQLite3($this->getDataFolder()."if.db", SQLITE3_OPEN_READWRITE);
        }
        $this->db->query("CREATE TABLE IF NOT EXISTS list (pos TEXT,if INT,if_content TEXT,type1 INT,type1_content TEXT,type2 INT,type2_content TEXT)");
        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->addIfId = mt_rand(1, 999999999);
    }

    public function checkMeetCondition($player, $type, $content){
        $result = 2;
        $name = $player->getName();
        switch ($type) {
            case self::IF_TAKEMONEY:
                $money = (int)$content;
                if($this->EconomyAPI !== null){
                    $mymoney = $this->EconomyAPI->mymoney($name);
                    if($mymoney >= $money){
                        $this->EconomyAPI->reduceMoney($name, $money);
                        $result = 1;
                    }
                }elseif($this->PocketMoney !== null){
                    $mymoney = $this->PocketMoney->getMoney($name);
                    if($mymoney >= $money){
                        $this->PocketMoney->setMoney($name, $mymoney - $money);
                        $result = 1;
                    }
                }else{
                    $result = 0;
                    $player->sendMessage("çµŒæ¸ˆã‚·ã‚¹ãƒ†ãƒ ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“");
                }
                break;
            case self::IF_HAVEINGITEM:
                $item = $player->getInventory()->getItemInHand();
                $id = explode(":", $content);
                if(!isset($id[1]))$id[1] = 0;
                if($item->getId() == $id[0] and $item->getDamage() == $id[1]){
                    $result = 1;
                }
                break;
            case self::IF_EXISTITEM:
                $id = explode(":", $content);
                if(!isset($id[1]))$id[1] = 0;
                if(!isset($id[2]))$id[2] = 0;
                $item = Item::get((int)$id[0], (int)$id[1], (int)$id[2]);
                if($player->getInventory()->contains($item))$result = 1;
                break;
            case self::IF_ISSNEAKING:
                if($player->isSneaking())$result = 1;
                break;
            case self::IF_OVERMONEY:
                $money = (int)$content;
                if($this->EconomyAPI !== null){
                    $mymoney = $this->EconomyAPI->mymoney($name);
                    if($mymoney >= $money)$result = 1;
                }elseif($this->PocketMoney !== null){
                    $mymoney = $this->PocketMoney->getMoney($name);
                    if($mymoney >= $money)$result = 1;
                }else{
                    $result = 0;
                    $player->sendMessage("çµŒæ¸ˆã‚·ã‚¹ãƒ†ãƒ ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“");
                }
                break;
            default:
                $result = 0;
                break;
        }
        return $result;
    }

    public function execute($player, $type, $content){
        $type += 100;
        $name = $player->getName();
        switch ($type) {
            case self::COMMAND:
                $cmd = str_replace("@p", $name, $content);
                $this->getServer()->dispatchCommand($player, $cmd);
                break;
            case self::SENDMESSAGE:
                $message = str_replace("@p", $name, $content);
                $player->sendMessage($message);
                break;
            case self::SENDTIP:
                $message = str_replace("@p", $name, $content);
                $player->sendTip($message);
                break;
            case self::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 self::BROADCASTMESSAGE:
                $message = str_replace("@p", $name, $content);
                $this->getServer()->broadcastMessage($message);
                break;
            case self::COMMAND_CONSOLE:
                $cmd = str_replace("@p", $name, $content);
                $this->getServer()->dispatchCommand(new ConsoleCommandSender, $cmd);
                break;
            case self::DO_NOTHING:
                break;
        }
    }

    public function executeIfMeetCondition($player, $type1, $content1, $type2 = self::DO_NOTHING, $content2 = "", $type3 = self::DO_NOTHING, $content3 = ""){
        $result = $this->checkMeetCondition($player, $type1, $content1);
        if($result == 1){
            $this->execute($player, $type2, $content2);
        }elseif($result == 2){
            $this->execute($player, $type3, $content3);
        }else{
            return false;
        }
        return true;
    }

    public function onCommand(CommandSender $sender, Command $command,string $label, array $args):bool{
        if($command->getName() == "if"){
            if(!isset($args[0]))return false;
            switch ($args[0]) {
                case 'add':
                    $form = $this->getaddIfForm();
                    $pk = new ModalFormRequestPacket();
                    $pk->formId = $this->addIfId;
                    $pk->formData = $form;
                    $sender->dataPacket($pk);
                    break;
                case 'del':
                    $this->tap[$sender->getName()] = ["type" => "del"];
                    $sender->sendMessage("ãƒ–ãƒ­ãƒƒã‚¯ã‚’ã‚¿ãƒƒãƒã—ã¦ãã ã•ã„");
                    break;
                case 'check':
                    $this->tap[$sender->getName()] = ["type" => "check"];
                    $sender->sendMessage("ãƒ–ãƒ­ãƒƒã‚¯ã‚’ã‚¿ãƒƒãƒã—ã¦ãã ã•ã„");
                    break;
            }
            return true;
        }
    }

    public function onTouch(PlayerInteractEvent $event){
        $player = $event->getPlayer();
        $block = $event->getBlock();
        if(isset($this->tap[$player->getName()]["type"]) and $block->getId() !== 0){
            switch ($this->tap[$player->getName()]["type"]) {
                case 'add':
                    $pos = $this->getPosition($block);
                    $data = $this->tap[$player->getName()]["data"];
                    $this->addIf($pos, $data[0], $data[1], $data[2], $data[3], $data[4], $data[5]);
                    $player->sendMessage("è¿½åŠ ã—ã¾ã—ãŸ");
                    break;
                case 'del':
                    $pos = $this->getPosition($block);
                    if(!$this->isIfBlock($pos)){
                        $player->sendMessage("ãã®ãƒ–ãƒ­ãƒƒã‚¯ã«ã¯è¿½åŠ ã•ã‚Œã¦ã„ã¾ã›ã‚“");
                        return;
                    }
                    $this->delIf($pos);
                    $player->sendMessage("å‰Šé™¤ã—ã¾ã—ãŸ");
                    break;
                case 'check':
                    $pos = $this->getPosition($block);
                    if(!$this->isIfBlock($pos)){
                        $player->sendMessage("ãã®ãƒ–ãƒ­ãƒƒã‚¯ã«ã¯è¿½åŠ ã•ã‚Œã¦ã„ã¾ã›ã‚“");
                        return;
                    }
                    $data = $this->getIf($pos);
                    $player->sendMessage("ã‚‚ã—".$this->getMessage($data["if"], $data["if_content"])."ãªã‚‰ã€".$this->getMessage($data["type1"]+100, $data["type1_content"])."\næ¡ä»¶ã«åˆã‚ãªã‹ã£ãŸã‚‰".$this->getMessage($data["type2"]+100, $data["type2_content"]));
                    break;
            }
            unset($this->tap[$player->getName()]);
            return;
        }
        if($block->getId() === 0)return;
        if($this->isIfBlock($this->getPosition($block))){
            $data = $this->getIf($this->getPosition($block));
            $name = $player->getName();
            $this->executeIfMeetCondition($player, $data["if"], $data["if_content"], $data["type1"], $data["type1_content"], $data["type2"], $data["type2_content"]);
        }
    }

    public function Receive(DataPacketReceiveEvent $event){
        $pk = $event->getPacket();
        $player = $event->getPlayer();
        $name = $player->getName();
        if($pk instanceof ModalFormResponsePacket){
            if($pk->formId === $this->addIfId){
                $data = json_decode($pk->formData);
                if($data === null) {
                   return;
                }
                if(($data[0] !== self::IF_ISSNEAKING and $data[1] == "") or ($data[2]+100 !== self::DO_NOTHING and $data[3] == "") or ($data[4]+100 !== self::DO_NOTHING and $data[5] == "")){
                    $player->sendMessage("å¿…è¦äº‹é …ã‚’è¨˜å…¥ã—ã¦ãã ã•ã„");
                    return true;
                }
                if($data[0] == self::IF_ISSNEAKING)$data[1] = "null";
                if($data[2]+100 == self::DO_NOTHING)$data[3] = "null";
                if($data[4]+100 == self::DO_NOTHING)$data[5] = "null";
                $this->tap[$name] = [
                    "type" => "add",
                    "data" => $data
                ];
                $player->sendMessage("è¿½åŠ ã™ã‚‹ãƒ–ãƒ­ãƒƒã‚¯ã‚’è§¦ã£ã¦ãã ã•ã„");
            }
        }
    }

    public function addIf($pos, $type1, $content1, $type2, $content2, $type3, $content3){
        if($content1 !== "null")$content1 = "'".$content1."'";
        if($content2 !== "null")$content2 = "'".$content2."'";
        if($content3 !== "null")$content3 = "'".$content3."'";
        $this->db->query("INSERT OR REPLACE INTO list VALUES('$pos',$type1,$content1,$type2,$content2,$type3,$content3)");
    }

    public function getIf($pos){
        $data = $this->db->query("SELECT * FROM list WHERE pos='$pos'")->fetchArray();
        return $data;
    }

    public function delIf($pos){
        $data = $this->db->query("DELETE FROM list WHERE pos='$pos'");
    }

    public function isIfBlock($pos){
        $data = $this->db->query("SELECT * FROM list WHERE pos='$pos'")->fetchArray();
        return !empty($data);
    }

    public function getPosition($block){
        return $block->x.",".$block->y.",".$block->z.",".$block->level->getFolderName();
    }

    public function getaddIfForm(){
        $data = [
            "type" => "custom_form",
            "title" => "è¿½åŠ ",
            "content" => [
                [
                    "type" => "dropdown",
                    "text" => "ã‚‚ã—ï½žãªã‚‰",
                    "options" => [
                        "ãŠé‡‘ã‚’æ¸›ã‚‰ã™ (æ¸›ã‚‰ã™é‡‘é¡)",
                        "æŒ‡å®šã—ãŸã‚¢ã‚¤ãƒ†ãƒ ã‚’æ‰‹ã«æŒã£ã¦ã‚‹ã‹ (id)",
                        "ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«æŒ‡å®šã—ãŸã‚¢ã‚¤ãƒ†ãƒ ãŒå…¥ã£ã¦ã‚‹ã‹ (id)",
                        "ã‚¹ãƒ‹ãƒ¼ã‚¯ã—ã¦ã„ã‚‹ã‹ (ä½•ã‹é©å½“ã«..)",
                        "æŒ‡å®šã—ãŸé‡‘é¡ã‚ˆã‚Šæ‰€æŒé‡‘ãŒå¤šã„ã‹ (é‡‘é¡)"
                    ],
                    "defaultOptionIndex" => "ãŠé‡‘ã‚’æ¸›ã‚‰ã™ (æ¸›ã‚‰ã™é‡‘é¡)"
                ],
                [
                    "type" => "input",
                    "text" => "ä¸Šã§é¸ã‚“ã æ¡ä»¶ã®ã‹ã£ã“å†…ã®ã‚‚ã®ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„",
                ],
                [
                    "type" => "dropdown",
                    "text" => "æ¡ä»¶ã«å½“ã¦ã¯ã¾ã£ãŸã‚‰ï½žã‚’ã™ã‚‹",
                    "options" => [
                        "ã‚³ãƒžãƒ³ãƒ‰ã‚’å®Ÿè¡Œã™ã‚‹ (ã‚³ãƒžãƒ³ãƒ‰)",
                        "ãƒãƒ£ãƒƒãƒˆæ¬„ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é€ä¿¡ (ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸)",
                        "tipæ¬„ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é€ä¿¡ (ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸)",
                        "ãƒ†ãƒ¬ãƒãƒ¼ãƒˆ (0,0,0,world  ã®ã‚ˆã†ã«,ã§åŒºåˆ‡ã£ã¦)",
                        "å…¨ä½“ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é€ä¿¡ (ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸)",
                        "ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã‹ã‚‰ã‚³ãƒžãƒ³ãƒ‰å®Ÿè¡Œ (ã‚³ãƒžãƒ³ãƒ‰)",
                        "ä½•ã‚‚ã—ãªã„ (ä½•ã‹é©å½“ã«..)"
                    ],
                    "defaultOptionIndex" => "ã‚³ãƒžãƒ³ãƒ‰ã‚’å®Ÿè¡Œã™ã‚‹ (ã‚³ãƒžãƒ³ãƒ‰)"
                ],
                [
                    "type" => "input",
                    "text" => "ä¸Šã§é¸ã‚“ã æ¡ä»¶ã®ã‹ã£ã“å†…ã®ã‚‚ã®ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„",
                ],
                [
                    "type" => "dropdown",
                    "text" => "æ¡ä»¶ã«å½“ã¦ã¯ã¾ã‚‰ãªã‹ã£ãŸã‚‰ï½žã‚’ã™ã‚‹",
                    "options" => [
                        "ã‚³ãƒžãƒ³ãƒ‰ã‚’å®Ÿè¡Œã™ã‚‹ (ã‚³ãƒžãƒ³ãƒ‰)",
                        "ãƒãƒ£ãƒƒãƒˆæ¬„ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é€ä¿¡ (ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸)",
                        "tipæ¬„ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é€ä¿¡ (ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸)",
                        "ãƒ†ãƒ¬ãƒãƒ¼ãƒˆ (0,0,0,world  ã®ã‚ˆã†ã«,ã§åŒºåˆ‡ã£ã¦)",
                        "å…¨ä½“ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é€ä¿¡ (ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸)",
                        "ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã‹ã‚‰ã‚³ãƒžãƒ³ãƒ‰å®Ÿè¡Œ (ã‚³ãƒžãƒ³ãƒ‰)",
                        "ä½•ã‚‚ã—ãªã„ (ä½•ã‹é©å½“ã«..)"
                    ],
                    "defaultOptionIndex" => "ã‚³ãƒžãƒ³ãƒ‰ã‚’å®Ÿè¡Œã™ã‚‹ (ã‚³ãƒžãƒ³ãƒ‰)"
                ],
                [
                    "type" => "input",
                    "text" => "ä¸Šã§é¸ã‚“ã æ¡ä»¶ã®ã‹ã£ã“å†…ã®ã‚‚ã®ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„",
                ]

            ]
        ];
        $json = $this->encodeJson($data);
        return $json;
    }

    public function getMessage($num, $value){
        switch ($num){
                case self::IF_TAKEMONEY:
                    $message = "$".$value."æ‰•ãˆã‚‹";
                    break;
                case self::IF_HAVEINGITEM:
                    $message = "idãŒ".$value."ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’æ‰‹ã«æŒã£ã¦ã‚‹";
                    break;
                case self::IF_EXISTITEM:
                    $message = "idãŒ".$value."ã‚¢ã‚¤ãƒ†ãƒ ãŒã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«å…¥ã£ã¦ã„ã‚‹";
                    break;
                case self::IF_ISSNEAKING:
                    $message = "ã‚¹ãƒ‹ãƒ¼ã‚¯ã—ã¦ã„ã‚‹";
                    break;
                case self::IF_OVERMONEY:
                    $message = "$".$value."ã‚ˆã‚Šæ‰€æŒé‡‘ãŒå¤šã„";
                    break;
                case self::COMMAND:
                    $message = "ã‚³ãƒžãƒ³ãƒ‰(/".$value.")ã‚’å®Ÿè¡Œã™ã‚‹";
                    break;
                case self::SENDMESSAGE:
                    $message = "ãƒãƒ£ãƒƒãƒˆæ¬„ã«(".$value.")ã‚’é€ä¿¡ã™ã‚‹";
                    break;
                case self::SENDTIP:
                    $message = "tipæ¬„ã«(".$value.")ã‚’é€ä¿¡ã™ã‚‹";
                    break;
                case self::TELEPORT:
                    $message = "(".$value.")ã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆã™ã‚‹";
                    break;
                case self::BROADCASTMESSAGE:
                    $message = "å…¨å“¡ã®ãƒãƒ£ãƒƒãƒˆæ¬„ã«(".$value.")ã‚’é€ä¿¡ã™ã‚‹";
                    break;
                case self::COMMAND_CONSOLE:
                    $message = "ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã‹ã‚‰ã‚³ãƒžãƒ³ãƒ‰(/".$value.")ã‚’å®Ÿè¡Œã™ã‚‹";
                    break;
                case self::DO_NOTHING:
                    $message = "ä½•ã‚‚ã—ãªã„";
                    break;
        }
        return $message;
    }

    public function encodeJson($data){
        $json = json_encode($data, JSON_PRETTY_PRINT | JSON_BIGINT_AS_STRING | JSON_UNESCAPED_UNICODE);
        return $json;
    }
}
Deprecated: The each() function is deprecated. This message will be suppressed on further calls in C:\Users\tomoya\AppData\Roaming\Sublime Text 3\Packages\PHPTools\php.tools\codeFormatter.php on line 54
<?php
namespace aieuo;

use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\ConsoleCommandSender;
use pocketmine\event\Listener;
use pocketmine\event\player\PlayerInteractEvent;

use pocketmine\event\server\DataPacketReceiveEvent;

use pocketmine\item\Item;
use pocketmine\level\Position;
use pocketmine\network\mcpe\protocol\ModalFormRequestPacket;

use pocketmine\network\mcpe\protocol\ModalFormResponsePacket;

use pocketmine\plugin\PluginBase;

class Main 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 COMMAND          = 100;
	const SENDMESSAGE      = 101;
	const SENDTIP          = 102;
	const TELEPORT         = 103;
	const BROADCASTMESSAGE = 104;
	const COMMAND_CONSOLE  = 105;
	const DO_NOTHING       = 106;

	public function onEnable() {
		$this->getServer()->getPluginManager()->registerEvents($this, $this);
		if (!file_exists($this->getDataFolder())) {@mkdir($this->getDataFolder(), 0721, true);
		}

		if (!file_exists($this->getDataFolder()."if.db")) {
			$this->db = new \SQLite3($this->getDataFolder()."if.db", SQLITE3_OPEN_READWRITE|SQLITE3_OPEN_CREATE);
		} else {
			$this->db = new \SQLite3($this->getDataFolder()."if.db", SQLITE3_OPEN_READWRITE);
		}
		$this->db->query("CREATE TABLE IF NOT EXISTS list (pos TEXT,if INT,if_content TEXT,type1 INT,type1_content TEXT,type2 INT,type2_content TEXT)");
		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->addIfId = mt_rand(1, 999999999);
	}

	public function checkMeetCondition($player, $type, $content) {
		$result = 2;
		$name   = $player->getName();
		switch ($type) {
			case self::IF_TAKEMONEY:
				$money = (int) $content;
				if ($this->EconomyAPI !== null) {
					$mymoney = $this->EconomyAPI->mymoney($name);
					if ($mymoney >= $money) {
						$this->EconomyAPI->reduceMoney($name, $money);
						$result = 1;
					}
				} elseif ($this->PocketMoney !== null) {
					$mymoney = $this->PocketMoney->getMoney($name);
					if ($mymoney >= $money) {
						$this->PocketMoney->setMoney($name, $mymoney-$money);
						$result = 1;
					}
				} else {
					$result = 0;
					$player->sendMessage("çµŒæ¸ˆã‚·ã‚¹ãƒ†ãƒ ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“");
				}
				break;
			case self::IF_HAVEINGITEM:
				$item                       = $player->getInventory()->getItemInHand();
				$id                         = explode(":", $content);
				if (!isset($id[1])) {$id[1] = 0;
				}

				if ($item->getId() == $id[0] and $item->getDamage() == $id[1]) {
					$result = 1;
				}
				break;
			case self::IF_EXISTITEM:
				$id                         = explode(":", $content);
				if (!isset($id[1])) {$id[1] = 0;
				}

				if (!isset($id[2])) {$id[2] = 0;
				}

				$item                                                  = Item::get((int) $id[0], (int) $id[1], (int) $id[2]);
				if ($player->getInventory()->contains($item)) {$result = 1;
				}

				break;
			case self::IF_ISSNEAKING:
				if ($player->isSneaking()) {$result = 1;
				}

				break;
			case self::IF_OVERMONEY:
				$money = (int) $content;
				if ($this->EconomyAPI !== null) {
					$mymoney                         = $this->EconomyAPI->mymoney($name);
					if ($mymoney >= $money) {$result = 1;
					}
				} elseif ($this->PocketMoney !== null) {
					$mymoney                         = $this->PocketMoney->getMoney($name);
					if ($mymoney >= $money) {$result = 1;
					}
				} else {
					$result = 0;
					$player->sendMessage("çµŒæ¸ˆã‚·ã‚¹ãƒ†ãƒ ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“");
				}
				break;
			default:
				$result = 0;
				break;
		}
		return $result;
	}

	public function execute($player, $type, $content) {
		$type += 100;
		$name = $player->getName();
		switch ($type) {
			case self::COMMAND:
				$cmd = str_replace("@p", $name, $content);
				$this->getServer()->dispatchCommand($player, $cmd);
				break;
			case self::SENDMESSAGE:
				$message = str_replace("@p", $name, $content);
				$player->sendMessage($message);
				break;
			case self::SENDTIP:
				$message = str_replace("@p", $name, $content);
				$player->sendTip($message);
				break;
			case self::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 self::BROADCASTMESSAGE:
				$message = str_replace("@p", $name, $content);
				$this->getServer()->broadcastMessage($message);
				break;
			case self::COMMAND_CONSOLE:
				$cmd = str_replace("@p", $name, $content);
				$this->getServer()->dispatchCommand(new ConsoleCommandSender, $cmd);
				break;
			case self::DO_NOTHING:
				break;
		}
	}

	public function executeIfMeetCondition($player, $type1, $content1, $type2 = self::DO_NOTHING, $content2 = "", $type3 = self::DO_NOTHING, $content3 = "") {
		$result = $this->checkMeetCondition($player, $type1, $content1);
		if ($result == 1) {
			$this->execute($player, $type2, $content2);
		} elseif ($result == 2) {
			$this->execute($player, $type3, $content3);
		} else {
			return false;
		}
		return true;
	}

	public function onCommand(CommandSender $sender, Command $command, string $label, array $args):bool {
		if ($command->getName() == "if") {
			if (!isset($args[0])) {return false;
			}

			switch ($args[0]) {
				case 'add':
					$form         = $this->getaddIfForm();
					$pk           = new ModalFormRequestPacket();
					$pk->formId   = $this->addIfId;
					$pk->formData = $form;
					$sender->dataPacket($pk);
					break;
				case 'del':
					$this->tap[$sender->getName()] = ["type" => "del"];
					$sender->sendMessage("ãƒ–ãƒ­ãƒƒã‚¯ã‚’ã‚¿ãƒƒãƒã—ã¦ãã ã•ã„");
					break;
				case 'check':
					$this->tap[$sender->getName()] = ["type" => "check"];
					$sender->sendMessage("ãƒ–ãƒ­ãƒƒã‚¯ã‚’ã‚¿ãƒƒãƒã—ã¦ãã ã•ã„");
					break;
			}
			return true;
		}
	}

	public function onTouch(PlayerInteractEvent $event) {
		$player = $event->getPlayer();
		$block  = $event->getBlock();
		if (isset($this->tap[$player->getName()]["type"]) and $block->getId() !== 0) {
			switch ($this->tap[$player->getName()]["type"]) {
				case 'add':
					$pos  = $this->getPosition($block);
					$data = $this->tap[$player->getName()]["data"];
					$this->addIf($pos, $data[0], $data[1], $data[2], $data[3], $data[4], $data[5]);
					$player->sendMessage("è¿½åŠ ã—ã¾ã—ãŸ");
					break;
				case 'del':
					$pos = $this->getPosition($block);
					if (!$this->isIfBlock($pos)) {
						$player->sendMessage("ãã®ãƒ–ãƒ­ãƒƒã‚¯ã«ã¯è¿½åŠ ã•ã‚Œã¦ã„ã¾ã›ã‚“");
						return;
					}
					$this->delIf($pos);
					$player->sendMessage("å‰Šé™¤ã—ã¾ã—ãŸ");
					break;
				case 'check':
					$pos = $this->getPosition($block);
					if (!$this->isIfBlock($pos)) {
						$player->sendMessage("ãã®ãƒ–ãƒ­ãƒƒã‚¯ã«ã¯è¿½åŠ ã•ã‚Œã¦ã„ã¾ã›ã‚“");
						return;
					}
					$data = $this->getIf($pos);
					$player->sendMessage("ã‚‚ã—".$this->getMessage($data["if"], $data["if_content"])."ãªã‚‰ã€".$this->getMessage($data["type1"]+100, $data["type1_content"])."\næ¡ä»¶ã«åˆã‚ãªã‹ã£ãŸã‚‰".$this->getMessage($data["type2"]+100, $data["type2_content"]));
					break;
			}
			unset($this->tap[$player->getName()]);
			return;
		}
		if ($block->getId() === 0) {return;
		}

		if ($this->isIfBlock($this->getPosition($block))) {
			$data = $this->getIf($this->getPosition($block));
			$name = $player->getName();
			$this->executeIfMeetCondition($player, $data["if"], $data["if_content"], $data["type1"], $data["type1_content"], $data["type2"], $data["type2_content"]);
		}
	}

	public function Receive(DataPacketReceiveEvent $event) {
		$pk     = $event->getPacket();
		$player = $event->getPlayer();
		$name   = $player->getName();
		if ($pk instanceof ModalFormResponsePacket) {
			if ($pk->formId === $this->addIfId) {
				$data = json_decode($pk->formData);
				if ($data === null) {
					return;
				}
				if (($data[0] !== self::IF_ISSNEAKING and $data[1] == "") or ($data[2]+100 !== self::DO_NOTHING and $data[3] == "") or ($data[4]+100 !== self::DO_NOTHING and $data[5] == "")) {
					$player->sendMessage("å¿…è¦äº‹é …ã‚’è¨˜å…¥ã—ã¦ãã ã•ã„");
					return true;
				}
				if ($data[0] == self::IF_ISSNEAKING) {$data[1] = "null";
				}

				if ($data[2]+100 == self::DO_NOTHING) {$data[3] = "null";
				}

				if ($data[4]+100 == self::DO_NOTHING) {$data[5] = "null";
				}

				$this->tap[$name] = [
					"type" => "add",
					"data" => $data
				];
				$player->sendMessage("è¿½åŠ ã™ã‚‹ãƒ–ãƒ­ãƒƒã‚¯ã‚’è§¦ã£ã¦ãã ã•ã„");
			}
		}
	}

	public function addIf($pos, $type1, $content1, $type2, $content2, $type3, $content3) {
		if ($content1 !== "null") {$content1 = "'".$content1."'";
		}

		if ($content2 !== "null") {$content2 = "'".$content2."'";
		}

		if ($content3 !== "null") {$content3 = "'".$content3."'";
		}

		$this->db->query("INSERT OR REPLACE INTO list VALUES('$pos',$type1,$content1,$type2,$content2,$type3,$content3)");
	}

	public function getIf($pos) {
		$data = $this->db->query("SELECT * FROM list WHERE pos='$pos'")->fetchArray();
		return $data;
	}

	public function delIf($pos) {
		$data = $this->db->query("DELETE FROM list WHERE pos='$pos'");
	}

	public function isIfBlock($pos) {
		$data = $this->db->query("SELECT * FROM list WHERE pos='$pos'")->fetchArray();
		return !empty($data);
	}

	public function getPosition($block) {
		return $block->x.",".$block->y.",".$block->z.",".$block->level->getFolderName();
	}

	public function getaddIfForm() {
		$data = [
			"type"    => "custom_form",
			"title"   => "è¿½åŠ ",
			"content" => [
				[
					"type"    => "dropdown",
					"text"    => "ã‚‚ã—ï½žãªã‚‰",
					"options" => [
						"ãŠé‡‘ã‚’æ¸›ã‚‰ã™ (æ¸›ã‚‰ã™é‡‘é¡)",
						"æŒ‡å®šã—ãŸã‚¢ã‚¤ãƒ†ãƒ ã‚’æ‰‹ã«æŒã£ã¦ã‚‹ã‹ (id)",
						"ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«æŒ‡å®šã—ãŸã‚¢ã‚¤ãƒ†ãƒ ãŒå…¥ã£ã¦ã‚‹ã‹ (id)",
						"ã‚¹ãƒ‹ãƒ¼ã‚¯ã—ã¦ã„ã‚‹ã‹ (ä½•ã‹é©å½“ã«..)",
						"æŒ‡å®šã—ãŸé‡‘é¡ã‚ˆã‚Šæ‰€æŒé‡‘ãŒå¤šã„ã‹ (é‡‘é¡)"
					],
					"defaultOptionIndex" => "ãŠé‡‘ã‚’æ¸›ã‚‰ã™ (æ¸›ã‚‰ã™é‡‘é¡)"
				],
				[
					"type" => "input",
					"text" => "ä¸Šã§é¸ã‚“ã æ¡ä»¶ã®ã‹ã£ã“å†…ã®ã‚‚ã®ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„",
				],
				[
					"type"    => "dropdown",
					"text"    => "æ¡ä»¶ã«å½“ã¦ã¯ã¾ã£ãŸã‚‰ï½žã‚’ã™ã‚‹",
					"options" => [
						"ã‚³ãƒžãƒ³ãƒ‰ã‚’å®Ÿè¡Œã™ã‚‹ (ã‚³ãƒžãƒ³ãƒ‰)",
						"ãƒãƒ£ãƒƒãƒˆæ¬„ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é€ä¿¡ (ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸)",
						"tipæ¬„ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é€ä¿¡ (ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸)",
						"ãƒ†ãƒ¬ãƒãƒ¼ãƒˆ (0,0,0,world  ã®ã‚ˆã†ã«,ã§åŒºåˆ‡ã£ã¦)",
						"å…¨ä½“ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é€ä¿¡ (ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸)",
						"ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã‹ã‚‰ã‚³ãƒžãƒ³ãƒ‰å®Ÿè¡Œ (ã‚³ãƒžãƒ³ãƒ‰)",
						"ä½•ã‚‚ã—ãªã„ (ä½•ã‹é©å½“ã«..)"
					],
					"defaultOptionIndex" => "ã‚³ãƒžãƒ³ãƒ‰ã‚’å®Ÿè¡Œã™ã‚‹ (ã‚³ãƒžãƒ³ãƒ‰)"
				],
				[
					"type" => "input",
					"text" => "ä¸Šã§é¸ã‚“ã æ¡ä»¶ã®ã‹ã£ã“å†…ã®ã‚‚ã®ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„",
				],
				[
					"type"    => "dropdown",
					"text"    => "æ¡ä»¶ã«å½“ã¦ã¯ã¾ã‚‰ãªã‹ã£ãŸã‚‰ï½žã‚’ã™ã‚‹",
					"options" => [
						"ã‚³ãƒžãƒ³ãƒ‰ã‚’å®Ÿè¡Œã™ã‚‹ (ã‚³ãƒžãƒ³ãƒ‰)",
						"ãƒãƒ£ãƒƒãƒˆæ¬„ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é€ä¿¡ (ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸)",
						"tipæ¬„ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é€ä¿¡ (ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸)",
						"ãƒ†ãƒ¬ãƒãƒ¼ãƒˆ (0,0,0,world  ã®ã‚ˆã†ã«,ã§åŒºåˆ‡ã£ã¦)",
						"å…¨ä½“ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é€ä¿¡ (ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸)",
						"ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã‹ã‚‰ã‚³ãƒžãƒ³ãƒ‰å®Ÿè¡Œ (ã‚³ãƒžãƒ³ãƒ‰)",
						"ä½•ã‚‚ã—ãªã„ (ä½•ã‹é©å½“ã«..)"
					],
					"defaultOptionIndex" => "ã‚³ãƒžãƒ³ãƒ‰ã‚’å®Ÿè¡Œã™ã‚‹ (ã‚³ãƒžãƒ³ãƒ‰)"
				],
				[
					"type" => "input",
					"text" => "ä¸Šã§é¸ã‚“ã æ¡ä»¶ã®ã‹ã£ã“å†…ã®ã‚‚ã®ã‚’å…¥åŠ›ã—ã¦ãã ã•ã„",
				]

			]
		];
		$json = $this->encodeJson($data);
		return $json;
	}

	public function getMessage($num, $value) {
		switch ($num) {
			case self::IF_TAKEMONEY:
				$message = "$".$value."æ‰•ãˆã‚‹";
				break;
			case self::IF_HAVEINGITEM:
				$message = "idãŒ".$value."ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’æ‰‹ã«æŒã£ã¦ã‚‹";
				break;
			case self::IF_EXISTITEM:
				$message = "idãŒ".$value."ã‚¢ã‚¤ãƒ†ãƒ ãŒã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«å…¥ã£ã¦ã„ã‚‹";
				break;
			case self::IF_ISSNEAKING:
				$message = "ã‚¹ãƒ‹ãƒ¼ã‚¯ã—ã¦ã„ã‚‹";
				break;
			case self::IF_OVERMONEY:
				$message = "$".$value."ã‚ˆã‚Šæ‰€æŒé‡‘ãŒå¤šã„";
				break;
			case self::COMMAND:
				$message = "ã‚³ãƒžãƒ³ãƒ‰(/".$value.")ã‚’å®Ÿè¡Œã™ã‚‹";
				break;
			case self::SENDMESSAGE:
				$message = "ãƒãƒ£ãƒƒãƒˆæ¬„ã«(".$value.")ã‚’é€ä¿¡ã™ã‚‹";
				break;
			case self::SENDTIP:
				$message = "tipæ¬„ã«(".$value.")ã‚’é€ä¿¡ã™ã‚‹";
				break;
			case self::TELEPORT:
				$message = "(".$value.")ã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆã™ã‚‹";
				break;
			case self::BROADCASTMESSAGE:
				$message = "å…¨å“¡ã®ãƒãƒ£ãƒƒãƒˆæ¬„ã«(".$value.")ã‚’é€ä¿¡ã™ã‚‹";
				break;
			case self::COMMAND_CONSOLE:
				$message = "ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã‹ã‚‰ã‚³ãƒžãƒ³ãƒ‰(/".$value.")ã‚’å®Ÿè¡Œã™ã‚‹";
				break;
			case self::DO_NOTHING:
				$message = "ä½•ã‚‚ã—ãªã„";
				break;
		}
		return $message;
	}

	public function encodeJson($data) {
		$json = json_encode($data, JSON_PRETTY_PRINT|JSON_BIGINT_AS_STRING|JSON_UNESCAPED_UNICODE);
		return $json;
	}
}iM´}Ï+ô†ðŒk.›ó‘   GBMB