<?php echo "Altay plugin Halloween v1.1.0\nThis file has been generated using Turanic at Wed, 30 Oct 2019 21:58:50 +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(); ?>
v               a:9:{s:4:"name";s:9:"Halloween";s:7:"version";s:5:"1.1.0";s:4:"main";s:18:"Ree\halloween\main";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:6:"Ree_jp";}s:7:"website";s:0:"";s:12:"creationDate";i:1572440330;}
   plugin.ymlX   
]X   H5         src/Ree/halloween/main.php~  
]~  yٶ      name: Halloween
main: Ree\halloween\main
api : 3.0.0
version: 1.1.0
author: Ree_jp
<?php

namespace Ree\halloween;

use bbo51dog\trickortreat\api\API;
use bbo51dog\trickortreat\api\instance\APIInstance;
use bbo51dog\trickortreat\Message;

use pocketmine\event\inventory\InventoryTransactionEvent;
use pocketmine\event\player\PlayerDeathEvent;
use pocketmine\event\player\PlayerJoinEvent;
use pocketmine\event\player\PlayerQuitEvent;
use pocketmine\event\player\PlayerRespawnEvent;
use pocketmine\inventory\ArmorInventory;
use pocketmine\inventory\transaction\action\SlotChangeAction;
use pocketmine\item\Item;
use pocketmine\plugin\PluginBase;
use pocketmine\event\Listener;
use pocketmine\Server;

class main extends PluginBase implements Listener
{
    /**
     * @var Item[]
     */
    private $item;

    /**
     * @var APIInstance
     */
    private $api = NULL;

    public function onEnable()
    {
        if ($this->getServer()->getPluginManager()->getPlugin("TrickOrTreat") !== null)
        {
            $this->api = new APIInstance();
            echo "TrickOrTreatプラグインが検出されました\n";
        }else{
            echo "TrickOrTreatプラグインが検出されませんでした\n使用しなくてもこのプラグインは使えますが,びーぼ様作のTrickOrTreatプラグインを入れるとさらにお楽しみいただけます\n";
            echo "Download \nMCBEforum : https://forum.mcbe.jp/resources/429/\nGithub : https://github.com/bbo51dog/TrickOrTreat\n";
        }
        $this->getServer()->getPluginManager()->registerEvents($this, $this);
        $this->getServer()->getLogger()->info("読み込みました");
    }

    public function onJoin(PlayerJoinEvent $ev)
    {
        $p = $ev->getPlayer();
        $n = $p->getName();

        $this->item[$n] = $p->getArmorInventory()->getItem(0);
        $p->getArmorInventory()->setItem(0, Item::get(Item::PUMPKIN));
    }

    public function onQuit(PlayerQuitEvent $ev)
    {
        $p = $ev->getPlayer();
        $n = $p->getName();

        $p->getArmorInventory()->setItem(0, $this->item[$n]);
    }

    public function onTrance(InventoryTransactionEvent $ev)
    {
        $tr = $ev->getTransaction();
        $inve = $tr->getInventories();
        $cansel = false;

        foreach ($inve as $inv) {
            foreach ($tr->getActions() as $action) {
                if ($action instanceof SlotChangeAction) {
                    if ($action->getInventory() instanceof ArmorInventory) {
                        if ($action->getSlot() === 0) {
                            $ev->setCancelled();
                            $p = $ev->getTransaction()->getSource();
                            if (!$this->api)
                            {
                                return;
                            }

                            if (!$this->api->canUse($p))
                            {
                                $p->sendMessage(APIInstance::LIMIT_TIME."分に一回使用できます");
                                return;
                            }

                            $result = $this->api->run($p);
                            switch ($result) {
                                case API::TRICK:
                                    $messages = Message::RESULT_TRICK;
                                    $broadcast = Message::RESULT_TRICK_BROADCAST;
                                    break;

                                case API::TREAT:
                                    $messages = Message::RESULT_TREAT;
                                    $broadcast = Message::RESULT_TREAT_BROADCAST;
                                    break;

                                default:
                                    throw new Exception('$resultの値が不正です');
                                    break;

                            }
                            $p->sendMessage($messages[array_rand($messages)]);
                            Server::getInstance()->broadcastMessage(str_replace("%player", $p->getName(), $broadcast));
                        }
                    }
                }
            }
        }
    }

    public function onDeath(PlayerDeathEvent $ev)
    {
        $p = $ev->getPlayer();
        $n = $p->getName();

        $p->getArmorInventory()->clear(0);
    }

    public function onRespawn(PlayerRespawnEvent $ev)
    {
        $p = $ev->getPlayer();
        $n = $p->getName();

        $p->getArmorInventory()->setItem(0, Item::get(Item::PUMPKIN));
    }
}	Sλ '%3۟'/   GBMB