<?php echo "Altay plugin MoneyExchange v1.0.0\nThis file has been generated using Turanic at Sun, 21 Oct 2018 21:15:01 +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:13:"MoneyExchange";s:7:"version";s:5:"1.0.0";s:4:"main";s:18:"MoneyExchange\main";s:3:"api";a:1:{i:0;s:5:"4.0.0";}s:6:"depend";a:0:{}s:11:"description";s:0:"";s:7:"authors";a:1:{i:0;s:5:"PJZ9n";}s:7:"website";s:16:"http://asvd.net/";s:12:"creationDate";i:1540124101;}   src/MoneyExchange/main.php  m[  Id;ȶ      #   src/MoneyExchange/eventListener.php!  m[!  F8      %   src/MoneyExchange/exchangeCommand.php  m[  Iۖ5      
   plugin.yml8  m[8  OjX      <?php

    namespace MoneyExchange;

    use pocketmine\plugin\PluginBase;
    use pocketmine\utils\Config;

    class main extends PluginBase
    {
        const SUCCESS_TAG = "§l§bSUCCESS §a>> §r";
        const ERROR_TAG = "§l§4ERROR §a>> §r";

        public $config;
        public $formId;

        public function onEnable(): void
        {
            $this->getLogger()->info("{$this->getDescription()->getName()} {$this->getDescription()->getVersion()} が読み込まれました");
            $this->getServer()->getPluginManager()->registerEvents(new eventListener($this), $this);
            $this->getServer()->getCommandMap()->register("exchange", new exchangeCommand($this));
            if (!file_exists($this->getDataFolder())) {
                mkdir($this->getDataFolder(), 0777);
            }
            $this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML, array(
                "economy" => 100,
                "moneysystem" => 500,
            ));
            $this->formId[0] = rand(50000, 60000);
            $this->formId[1] = rand(50000, 60000);
            $this->formId[2] = rand(50000, 60000);
        }

        public function onDisable(): void
        {
            $this->getLogger()->info("{$this->getDescription()->getName()} {$this->getDescription()->getVersion()} が終了しました");
        }
    }<?php

    namespace MoneyExchange;

    use metowa1227\MoneySystemAPI\MoneySystemAPI;
    use onebone\economyapi\EconomyAPI;
    use pocketmine\event\Listener;
    use pocketmine\event\server\DataPacketReceiveEvent;
    use pocketmine\network\mcpe\protocol\ModalFormRequestPacket;
    use pocketmine\network\mcpe\protocol\ModalFormResponsePacket;
    use pocketmine\plugin\Plugin;

    class eventListener implements Listener
    {
        private $plugin;

        public function __construct(Plugin $plugin)
        {
            $this->plugin = $plugin;
        }

        public function onDataPacketReceive(DataPacketReceiveEvent $event)
        {
            $player = $event->getPlayer();
            $name = $player->getName();
            $receive_packet = $event->getPacket();
            if ($receive_packet instanceof ModalFormResponsePacket) {
                $response = json_decode($receive_packet->formData, true);
                $formId = $receive_packet->formId;
                if ($formId === $this->plugin->formId[0]) {
                    if ($response !== null) {
                        $economy_money = EconomyAPI::getInstance()->myMoney($player);
                        $economy_unit = EconomyAPI::getInstance()->getMonetaryUnit();
                        $moneysystem_money = MoneySystemAPI::getInstance()->check($player);
                        $moneysystem_unit = MoneySystemAPI::getInstance()->getMonitorUnit();
                        switch ($response) {
                            case 0:
                                $steps = array();
                                for ($i = 0; $i < 50; $i++) {
                                    $steps[] = $economy_unit . ($i + 1) * $this->plugin->config->get("economy") . " => " . $moneysystem_unit . ($i + 1) * $this->plugin->config->get("moneysystem");
                                }
                                $packet = new ModalFormRequestPacket();
                                $packet->formData = json_encode(array(
                                    "type" => "custom_form",
                                    "title" => "MoneyExchange >> {$economy_unit}を{$moneysystem_unit}へ",
                                    "content" => array(
                                        array(
                                            "type" => "label",
                                            "text" => "所持金({$economy_unit}): {$economy_unit}{$economy_money}\n所持金({$moneysystem_unit}): {$moneysystem_unit}{$moneysystem_money}\n\nどれ位交換しますか？",
                                        ),
                                        array(
                                            "type" => "step_slider",
                                            "text" => "交換する量",
                                            "steps" => $steps,
                                        ),
                                    ),
                                ));
                                $packet->formId = $this->plugin->formId[1];
                                $player->sendDataPacket($packet);
                                break;
                            case 1:
                                $steps = array();
                                for ($i = 0; $i < 50; $i++) {
                                    $steps[] = $moneysystem_unit . ($i + 1) * $this->plugin->config->get("moneysystem") . " => " . $economy_unit . ($i + 1) * $this->plugin->config->get("economy");
                                }
                                $packet = new ModalFormRequestPacket();
                                $packet->formData = json_encode(array(
                                    "type" => "custom_form",
                                    "title" => "MoneyExchange >> {$moneysystem_unit}を{$economy_unit}へ",
                                    "content" => array(
                                        array(
                                            "type" => "label",
                                            "text" => "所持金({$economy_unit}): {$economy_unit}{$economy_money}\n所持金({$moneysystem_unit}): {$moneysystem_unit}{$moneysystem_money}\n\nどれ位交換しますか？",
                                        ),
                                        array(
                                            "type" => "step_slider",
                                            "text" => "交換する量",
                                            "steps" => $steps,
                                        ),
                                    ),
                                ));
                                $packet->formId = $this->plugin->formId[2];
                                $player->sendDataPacket($packet);
                                break;
                        }
                    }
                } else if ($formId === $this->plugin->formId[1]) {
                    if ($response !== null) {
                        $economy_money = EconomyAPI::getInstance()->myMoney($player);
                        $economy_unit = EconomyAPI::getInstance()->getMonetaryUnit();
                        $moneysystem_money = MoneySystemAPI::getInstance()->check($player);
                        $moneysystem_unit = MoneySystemAPI::getInstance()->getMonitorUnit();
                        $moneysystem_rate = array();
                        $economy_rate = array();
                        for ($i = 0; $i < 50; $i++) {
                            $moneysystem_rate[] = ($i + 1) * $this->plugin->config->get("moneysystem");
                        }
                        for ($i = 0; $i < 50; $i++) {
                            $economy_rate[] = ($i + 1) * $this->plugin->config->get("economy");
                        }
                        //$player->sendMessage($economy_unit . $economy_rate[$response[1]] . " => " . $moneysystem_unit . $moneysystem_rate[$response[1]]);
                        if ($economy_money >= $economy_rate[$response[1]]) {
                            EconomyAPI::getInstance()->reduceMoney($player, $economy_rate[$response[1]]);
                            MoneySystemAPI::getInstance()->addMoney($player, $moneysystem_rate[$response[1]]);
                            $player->sendMessage(main::SUCCESS_TAG . "{$economy_unit}{$economy_rate[$response[1]]}を{$moneysystem_unit}{$moneysystem_rate[$response[1]]}に交換しました");
                        } else {
                            $player->sendMessage(main::ERROR_TAG . "所持金({$economy_unit})が足りません");
                        }
                    }
                } else if ($formId === $this->plugin->formId[2]) {
                    if ($response !== null) {
                        $economy_money = EconomyAPI::getInstance()->myMoney($player);
                        $economy_unit = EconomyAPI::getInstance()->getMonetaryUnit();
                        $moneysystem_money = MoneySystemAPI::getInstance()->check($player);
                        $moneysystem_unit = MoneySystemAPI::getInstance()->getMonitorUnit();
                        $moneysystem_rate = array();
                        $economy_rate = array();
                        for ($i = 0; $i < 50; $i++) {
                            $moneysystem_rate[] = ($i + 1) * $this->plugin->config->get("moneysystem");
                        }
                        for ($i = 0; $i < 50; $i++) {
                            $economy_rate[] = ($i + 1) * $this->plugin->config->get("economy");
                        }
                        //$player->sendMessage($moneysystem_unit . $moneysystem_rate[$response[1]] . " => " . $economy_unit . $economy_rate[$response[1]]);
                        if ($moneysystem_money >= $moneysystem_rate[$response[1]]) {
                            MoneySystemAPI::getInstance()->takeMoney($player, $moneysystem_rate[$response[1]]);
                            EconomyAPI::getInstance()->addMoney($player, $economy_rate[$response[1]]);
                            $player->sendMessage(main::SUCCESS_TAG . "{$moneysystem_unit}{$moneysystem_rate[$response[1]]}を{$economy_unit}{$economy_rate[$response[1]]}に交換しました");
                        } else {
                            $player->sendMessage(main::ERROR_TAG . "所持金({$moneysystem_unit})が足りません");
                        }
                    }
                }
            }
        }
    }<?php

    namespace MoneyExchange;


    use metowa1227\MoneySystemAPI\MoneySystemAPI;
    use onebone\economyapi\EconomyAPI;
    use pocketmine\command\Command;
    use pocketmine\command\CommandSender;
    use pocketmine\network\mcpe\protocol\ModalFormRequestPacket;
    use pocketmine\Player;
    use pocketmine\plugin\Plugin;

    class exchangeCommand extends Command
    {

        private $plugin;

        public function __construct(Plugin $plugin)
        {
            $this->plugin = $plugin;
            parent::__construct("exchange", "MoneyExchangeのメインコマンド", "/exchange");
            $this->setPermission("moneyexchange.command.exchange");
        }

        public function execute(CommandSender $sender, string $commandLabel, array $args)
        {
            if (!$sender instanceof Player) {
                $sender->sendMessage(main::ERROR_TAG . "このコマンドはプレイヤーのみ実行できます。");
                return true;
            }
            $name = $sender->getName();
            $economy_money = EconomyAPI::getInstance()->myMoney($sender);
            $economy_unit = EconomyAPI::getInstance()->getMonetaryUnit();
            $moneysystem_money = MoneySystemAPI::getInstance()->check($sender);
            $moneysystem_unit = MoneySystemAPI::getInstance()->getMonitorUnit();
            $packet = new ModalFormRequestPacket();
            $packet->formData = json_encode(array(
                "type" => "form",
                "title" => "MoneyExchange",
                "content" => "所持金({$economy_unit}): {$economy_unit}{$economy_money}\n所持金({$moneysystem_unit}): {$moneysystem_unit}{$moneysystem_money}",
                "buttons" => array(
                    array(
                        "text" => "{$economy_unit}を{$moneysystem_unit}へ",
                    ),
                    array(
                        "text" => "{$moneysystem_unit}を{$economy_unit}へ",
                    ),
                ),
            ));
            $packet->formId = $this->plugin->formId[0];
            $sender->sendDataPacket($packet);
            return true;
        }

    }name: MoneyExchange
main: MoneyExchange\main
version: 1.0.0
api: [4.0.0]
load: POSTWORLD
author: PJZ9n
desctiption: PMMP MoneyExchange Plugin
website: http://asvd.net/
permissions:
  moneyexchange:
    default: op
    description: "Allows using all the MoneyExchange things"
    children:
      moneyexchange.command:
        default: op
        description: "Allows using all the MoneyExchange commands"
        children:
          moneyexchange.command.exchange:
            default: true
            description: "Allows all the exchange command"Ą9c0Mia>4   GBMB