
<?php
echo "PocketMine-MP plugin DebugStick v1.0.0
This file has been generated using DevTools v1.13.4 at Tue, 07 Jul 2020 02:28:54 +0800
----------------
";

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:10:"DebugStick";s:7:"version";s:5:"1.0.0";s:4:"main";s:24:"rain1208\debugstick\Main";s:3:"api";s:5:"3.0.0";s:6:"depend";s:0:"";s:11:"description";s:0:"";s:7:"authors";s:0:"";s:7:"website";s:0:"";s:12:"creationDate";i:1594060134;}
   plugin.ymlÑ   fm_Ñ   ö¸É¶      	   README.md   fm_   ÕW,¶      )   src/rain1208/debugstick/EventListener.phpI  fm_I  ÌBŸ,¶          src/rain1208/debugstick/Main.php_  fm__  Þñ¶      name: DebugStick
main: rain1208\debugstick\Main
author: rain1208
api: 3.0.0
version: 1.0.0

commands:
  debugstick:
    aliases: ["dst"]
    permission: op
    description: "ãƒ‡ãƒãƒƒã‚°æ£’ã®é…å¸ƒ"# **DeBugStick for PocketMine MP**
PocketMine MPã§ä½¿ãˆã‚‹ãƒ‡ãƒãƒƒã‚°æ£’


# å¯¾å¿œãƒ–ãƒ­ãƒƒã‚¯
```
åŽŸæœ¨
çœ‹æ¿
éšŽæ®µ
ã‹ã¾ã©
ãƒã‚§ã‚¹ãƒˆ
ãƒ‡ã‚£ã‚¹ãƒšãƒ³ã‚µãƒ¼
ãƒ¬ãƒ¼ãƒ«é¡ž
ã‚¸ãƒ£ãƒƒã‚¯ã‚ªãƒ¼ãƒ©ãƒ³ã‚¿ãƒ³
ãƒ†ãƒ©ã‚³ãƒƒã‚¿
æ——
```

<?php

namespace rain1208\debugstick;

use pocketmine\block\Block;
use pocketmine\block\BlockIds;
use pocketmine\event\Listener;
use pocketmine\event\player\PlayerInteractEvent;
use pocketmine\event\server\DataPacketReceiveEvent;
use pocketmine\network\mcpe\protocol\InventoryTransactionPacket;
use pocketmine\Player;


class EventListener implements Listener
{
    private $data;

    private $TERRACOTTA = [
        BlockIds::PURPLE_GLAZED_TERRACOTTA,
        BlockIds::WHITE_GLAZED_TERRACOTTA,
        BlockIds::ORANGE_GLAZED_TERRACOTTA,
        BlockIds::MAGENTA_GLAZED_TERRACOTTA,
        BlockIds::LIGHT_BLUE_GLAZED_TERRACOTTA,
        BlockIds::YELLOW_GLAZED_TERRACOTTA,
        BlockIds::LIME_GLAZED_TERRACOTTA,
        BlockIds::PINK_GLAZED_TERRACOTTA,
        BlockIds::GRAY_GLAZED_TERRACOTTA,
        BlockIds::SILVER_GLAZED_TERRACOTTA,
        BlockIds::CYAN_GLAZED_TERRACOTTA,
        BlockIds::BLUE_GLAZED_TERRACOTTA,
        BlockIds::BROWN_GLAZED_TERRACOTTA,
        BlockIds::GREEN_GLAZED_TERRACOTTA,
        BlockIds::RED_GLAZED_TERRACOTTA,
        BlockIds::BLACK_GLAZED_TERRACOTTA
    ];

    private $directions =
        [
            "UP",
            "DOWN",
            "NORTH",
            "SOUTH",
            "WEST",
            "EAST"
        ];

    public function InteractEvent(PlayerInteractEvent $event)
    {
        if ($event->getAction() >= 2) return;
        $hand = $event->getPlayer()->getInventory()->getItemInHand();
        if ($hand->getNamedTag()->hasTag("debug")) {
            $this->changeData($event->getPlayer(), $event->getBlock());
            $event->setCancelled();
        }
    }

    private function changeData(Player $player, Block $block)
    {
        $meta = $block->getDamage();
        switch ($block->getId()) {
            case BlockIds::WOOD:
            case BlockIds::WOOD2:
                $block->setDamage(($meta + 4 <= 15) ? $meta + 4 : abs(16 - ($meta + 4)));
                $player->sendActionBarMessage("å‘ãã‚’å¤‰æ›´ã—ã¾ã—ãŸ");
                break;

            case BlockIds::SIGN_POST:
            case BlockIds::STANDING_BANNER:
                $block->setDamage(($meta + 1 <= 15) ? $meta + 1 : 0);
                $player->sendActionBarMessage("å‘ãã‚’å¤‰æ›´ã—ã¾ã—ãŸ");
                break;

            case BlockIds::JACK_O_LANTERN:
                $block->setDamage(($meta + 1 <= 4) ? $meta + 1 : 1);
                $player->sendActionBarMessage("å‘ãã‚’å¤‰æ›´ã—ã¾ã—ãŸ");
                break;

            case BlockIds::RAIL:
            case BlockIds::POWERED_RAIL:
            case BlockIds::DETECTOR_RAIL:
            case BlockIds::ACTIVATOR_RAIL:
                $block->setDamage(($meta + 1 <= 9) ? $meta + 1 : 0);
                $player->sendActionBarMessage("å‘ãã‚’å¤‰æ›´ã—ã¾ã—ãŸ");
                break;

            case BlockIds::OAK_STAIRS:
            case BlockIds::STONE_STAIRS:
            case BlockIds::COBBLESTONE_STAIRS:
            case BlockIds::BRICK_STAIRS:
            case BlockIds::STONE_BRICK_STAIRS:
            case BlockIds::NETHER_BRICK_STAIRS:
            case BlockIds::SANDSTONE_STAIRS:
            case BlockIds::SPRUCE_STAIRS:
            case BlockIds::BIRCH_STAIRS:
            case BlockIds::JUNGLE_STAIRS:
            case BlockIds::QUARTZ_STAIRS:
            case BlockIds::ACACIA_STAIRS:
            case BlockIds::DARK_OAK_STAIRS:
            case BlockIds::RED_SANDSTONE_STAIRS:
            case BlockIds::PURPUR_STAIRS:
                $block->setDamage(($meta + 1 <= 7) ? $meta + 1 : 0);
                $player->sendActionBarMessage("å‘ãã‚’å¤‰æ›´ã—ã¾ã—ãŸ");
                break;

            case BlockIds::DISPENSER:
            case BlockIds::FURNACE:
            case BlockIds::BURNING_FURNACE:
            case BlockIds::CHEST:
            case BlockIds::ENDER_CHEST:
            case BlockIds::WALL_SIGN:
            case BlockIds::WALL_BANNER:
                $block->setDamage(($meta + 1 <= 5) ? $meta + 1 : 2);
                $d = $block->getDamage();
                $player->sendActionBarMessage("å‘ãã‚’" . $this->directions[$d] . "ã«å¤‰æ›´ã—ã¾ã—ãŸ");
                break;

            case in_array($block->getId(),$this->TERRACOTTA):
                $block->setDamage(($meta + 1 <= 5) ? $meta + 1 : 1);
                $player->sendActionBarMessage("å‘ãã‚’å¤‰æ›´ã—ã¾ã—ãŸ");
                break;

            default:
                $player->sendActionBarMessage($block->getName() . "ã¯ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£ã‚’æŒã£ã¦ã„ã¾ã›ã‚“");
        }
    }

    //é€£æ‰“é˜²æ­¢
    public function onReceive(DataPacketReceiveEvent $event)
    {
        $packet = $event->getPacket();
        if ($packet instanceof InventoryTransactionPacket) {
            $player = $event->getPlayer();
            if ($player->getInventory()->getItemInHand()->getNamedTag()->hasTag("debug")) {
                $name = $player->getName();
                $time = ceil(microtime(true) * 1000);
                if (!isset($this->data[$name])) {
                    $this->data[$name] = $time;
                } else if ($time - $this->data[$name] >= 300) {
                    $this->data[$name] = $time;
                } else {
                    $event->setCancelled();
                }
            }
        }
    }
}<?php

namespace rain1208\debugstick;

use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\item\enchantment\Enchantment;
use pocketmine\item\enchantment\EnchantmentInstance;
use pocketmine\item\Item;
use pocketmine\item\ItemIds;
use pocketmine\nbt\tag\CompoundTag;
use pocketmine\Player;
use pocketmine\plugin\PluginBase;

class Main extends PluginBase
{
    public function onEnable()
    {
        $this->getServer()->getPluginManager()->registerEvents(new EventListener(), $this);
    }

    public function onCommand(CommandSender $sender, Command $command, string $label, array $args): bool
    {
        if ($sender instanceof Player) {
            $item = Item::get(ItemIds::STICK);
            $nbt = new CompoundTag("",[]);
            $nbt->setString("debug","debug");
            $item->setNamedTag($nbt);
            $item->addEnchantment(new EnchantmentInstance(Enchantment::getEnchantment(1),1));
            $item->setCustomName("DebugStick");
            $sender->getInventory()->addItem($item);
        }
        return true;
    }

}øØ{o‹‹ÖëÊÛÉíˆ[Íƒ¬¼   GBMB