<?php echo "PocketMine-MP plugin Cleaner v1\nThis file has been generated using DevTools v1.12.1 at Sun, 11 Feb 2018 14:23:24 +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(); ?>
Ä             3  a:9:{s:4:"name";s:7:"Cleaner";s:7:"version";s:1:"1";s:4:"main";s:15:"cleaner\Cleaner";s:3:"api";a:3:{i:0;s:5:"3.0.0";i:1;s:13:"3.0.0-ALPHA10";i:2;s:13:"3.0.0-ALPHA11";}s:6:"depend";a:0:{}s:11:"description";s:0:"";s:7:"authors";a:1:{i:0;s:8:"otorisan";}s:7:"website";s:0:"";s:12:"creationDate";i:1518326604;}
   plugin.ymla  MÓZa  °ŸÝP¶         src/cleaner/Cleaner.phpÒ  MÓZÒ  3:KD¶      )   src/cleaner/command/CleanArrowCommand.phpÙ  MÓZÙ  ’-Õ¶      )   src/cleaner/command/CleanBlockCommand.phpe  MÓZe  òÆã¾¶      )   src/cleaner/command/CleanChestCommand.phpê  MÓZê  ŠÒÌR¶      *   src/cleaner/command/CleanEntityCommand.phpñ  MÓZñ  ?´¾¨¶      (   src/cleaner/command/CleanItemCommand.phpì  MÓZì  ·ªÇ¶      (   src/cleaner/command/CleanLavaCommand.php–  MÓZ–  A¶      (   src/cleaner/command/CleanSignCommand.phpÑ  MÓZÑ  s©J¶      )   src/cleaner/command/CleanWaterCommand.php˜  MÓZ˜  òXø¶      $   src/cleaner/dealing/BlockCleaner.phpQ  MÓZQ  =zF¶      $   src/cleaner/dealing/ChestCleaner.php_  MÓZ_  íà·˜¶      %   src/cleaner/dealing/EntityCleaner.php§  MÓZ§  z¾ö=¶      #   src/cleaner/dealing/SignCleaner.phph  MÓZh  ¸S¥¶      ï»¿name: Cleaner
main: cleaner\Cleaner
version: 1
api:
 - 3.0.0
 - 3.0.0-ALPHA10
 - 3.0.0-ALPHA11
load: POSTWORLD
author: otorisan

permissions:
 cleaner.*:
  default: op
  description: ã‚¯ãƒªãƒ¼ãƒŠãƒ¼ã‚³ãƒžãƒ³ãƒ‰
  children:
   cleaner.command.*:
    default: op
    description: ã‚¯ãƒªãƒ¼ãƒŠãƒ¼ã‚³ãƒžãƒ³ãƒ‰
    children:
     cleaner.command.cleanchest:
      description: ãƒ¯ãƒ¼ãƒ«ãƒ‰å†…ã™ã¹ã¦ã®ãƒã‚§ã‚¹ãƒˆã®ä¸­èº«ã‚’å‰Šé™¤ã—ã¾ã™
      default: op
     cleaner.command.cleanitem:
      description: ãƒ¯ãƒ¼ãƒ«ãƒ‰å†…ã™ã¹ã¦ã®ãƒ‰ãƒ­ãƒƒãƒ—ã‚¢ã‚¤ãƒ†ãƒ ã‚’å‰Šé™¤ã—ã¾ã™
      default: op
     cleaner.command.cleansign:
      description: ãƒ¯ãƒ¼ãƒ«ãƒ‰å†…ã™ã¹ã¦ã®çœ‹æ¿ã‚’å‰Šé™¤ã—ã¾ã™
      default: op
     cleaner.command.cleanblock:
      description: 50x50ç¯„å›²ã®æŒ‡å®šãƒ–ãƒ­ãƒƒã‚¯ã‚’å‰Šé™¤ã—ã¾ã™
      default: op
     cleaner.command.cleanwater:
      description: 50x50ç¯„å›²ã®æ°´ãƒ–ãƒ­ãƒƒã‚¯ã‚’å‰Šé™¤ã—ã¾ã™
      default: op
     cleaner.command.cleanlava:
      description: 50x50ç¯„å›²ã®æº¶å²©ãƒ–ãƒ­ãƒƒã‚¯ã‚’å‰Šé™¤ã—ã¾ã™
      default: op
     cleaner.command.cleanentity:
      description: ãƒ¯ãƒ¼ãƒ«ãƒ‰å†…ã™ã¹ã¦ã®ã‚¨ãƒ³ãƒ†ã‚£ãƒ†ã‚£ãƒ¼ã‚’å‰Šé™¤ã—ã¾ã™
      default: op
     cleaner.command.cleanarrow:
      description: ãƒ¯ãƒ¼ãƒ«ãƒ‰å†…ã™ã¹ã¦ã®çŸ¢ã‚’å‰Šé™¤ã—ã¾ã™
      default: op<?php

namespace cleaner;

use pocketmine\Player;
use pocketmine\Server;
use pocketmine\plugin\PluginBase;

use cleaner\dealing\BlockCleaner;
use cleaner\dealing\ChestCleaner;
use cleaner\dealing\EntityCleaner;
use cleaner\dealing\SignCleaner;

class Cleaner extends PluginBase
{

	const MESSAGE_TAG = "Â§9[Â§bCLEANERÂ§9]Â§r ";

	protected $blockdealing;
	protected $entitydealing;
	protected $chestdealing;
	protected $signdealing;

	public function onEnable()
	{
		$this->registerDealing();
		$this->registerCommands();
	}


	private function registerCommands()
	{
        $map = $this->getServer()->getCommandMap();
        $commands = [
            "cleanchest" => "\\cleaner\\command\\CleanChestCommand",
            "cleanitem" => "\\cleaner\\command\\CleanItemCommand",
            "cleansign" => "\\cleaner\\command\\CleanSignCommand",
            "cleanblock" => "\\cleaner\\command\\CleanBlockCommand",
            "cleanwater" => "\\cleaner\\command\\CleanWaterCommand",
            "cleanlava" => "\\cleaner\\command\\CleanLavaCommand",
            "cleanentity" => "\\cleaner\\command\\CleanEntityCommand",
            "cleanarrow" => "\\cleaner\\command\\CleanArrowCommand"
        ];
        foreach($commands as $cmd => $class){
            $map->register("cleaner", new $class($this));
            $this->getLogger()->info("Â§7registered ".$cmd." Command");
        }
	}


	private function registerDealing()
	{
		$this->blockdealing = new BlockCleaner($this);
		$this->entitydealing = new EntityCleaner($this);
		$this->chestdealing = new ChestCleaner($this);
		$this->signdealing = new SignCleaner($this);
	}


	public function getBlockDealing()
	{
		return $this->blockdealing;
	}


	public function getEntityDealing()
	{
		return $this->entitydealing;
	}


	public function getChestDealing()
	{
		return $this->chestdealing;
	}


	public function getSignDealing()
	{
		return $this->signdealing;
	}
}<?php

namespace cleaner\command;

use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\ConsoleCommandSender;

use cleaner\Cleaner;

class CleanArrowCommand extends Command
{

    private $owner;

    public function __construct($owner)
    {
        parent::__construct("cleanarrow", "ãƒ¯ãƒ¼ãƒ«ãƒ‰å†…ã™ã¹ã¦ã®çŸ¢ã‚’å‰Šé™¤ã—ã¾ã™", "/cleanarrow");
        $this->setPermission("cleaner.command.cleanarrow");
        $this->owner = $owner;
        $this->dealing = $owner->getEntityDealing();
    }


    public function execute(CommandSender $sender, string $label, array $params): bool
    {
        if(!$this->getOwner()->isEnabled()) return false;
        if(!$this->testPermission($sender)) return false;

        $level = $sender->getLevel();
        $this->dealing->cleanArrows($level, $sender);
        return true;
	}


    public function getOwner()
    {
        return $this->owner;
    }
}<?php
namespace cleaner\command;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\ConsoleCommandSender;

use cleaner\Cleaner;

class CleanBlockCommand extends Command
{

    private $owner;

    public function __construct($owner)
    {
        parent::__construct("cleanblock", "50x50ç¯„å›²ã®æŒ‡å®šãƒ–ãƒ­ãƒƒã‚¯ã‚’å‰Šé™¤ã—ã¾ã™", "/cleanblock");
        $this->setPermission("cleaner.command.cleanblock");
        $this->owner = $owner;
        $this->dealing = $owner->getBlockDealing();
    }


    public function execute(CommandSender $sender, string $label, array $params): bool
    {
        if(!$this->getOwner()->isEnabled()) return false;
        if(!$this->testPermission($sender)) return false;

        if ($sender instanceof ConsoleCommandSender) {
            $sender->sendMessage(Cleaner::MESSAGE_TAG."Â§cã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã‹ã‚‰ã¯ä½¿ãˆã¾ã›ã‚“");
            return false;
        }

        if (!isset($params[0])) {
            $sender->sendMessage(Cleaner::MESSAGE_TAG."Â§cIDã‚’æ›¸ãè¾¼ã‚“ã§ãã ã•ã„");
            return false;
        }

        $id = $params[0];
        $level = $sender->getLevel();
        $this->dealing->cleanBlock($level, $sender, $id);
        return true;
	}


    public function getOwner()
    {
        return $this->owner;
    }
}<?php
namespace cleaner\command;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\ConsoleCommandSender;

use cleaner\Cleaner;

class CleanChestCommand extends Command
{

    private $owner;

    public function __construct($owner)
    {
        parent::__construct("cleanchest", "ãƒ¯ãƒ¼ãƒ«ãƒ‰å†…ã™ã¹ã¦ã®ãƒã‚§ã‚¹ãƒˆã®ä¸­èº«ã‚’å‰Šé™¤ã—ã¾ã™", "/cleanchest");
        $this->setPermission("cleaner.command.cleanchest");
        $this->owner = $owner;
        $this->dealing = $owner->getChestDealing();
    }


    public function execute(CommandSender $sender, string $label, array $params): bool
    {
        if(!$this->getOwner()->isEnabled()) return false;
        if(!$this->testPermission($sender)) return false;

        $level = $sender->getLevel();
        $this->dealing->cleanChestItems($level, $sender);
        return true;
	}


    public function getOwner()
    {
        return $this->owner;
    }
}<?php

namespace cleaner\command;

use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\ConsoleCommandSender;

use cleaner\Cleaner;

class CleanEntityCommand extends Command
{

    private $owner;

    public function __construct($owner)
    {
        parent::__construct("cleanentity", "ãƒ¯ãƒ¼ãƒ«ãƒ‰å†…ã™ã¹ã¦ã®ã‚¨ãƒ³ãƒ†ã‚£ãƒ†ã‚£ãƒ¼ã‚’å‰Šé™¤ã—ã¾ã™", "/cleanentity");
        $this->setPermission("cleaner.command.cleanentity");
        $this->owner = $owner;
        $this->dealing = $owner->getEntityDealing();
    }


    public function execute(CommandSender $sender, string $label, array $params): bool
    {
        if(!$this->getOwner()->isEnabled()) return false;
        if(!$this->testPermission($sender)) return false;

        $level = $sender->getLevel();
        $this->dealing->cleanEntities($level, $sender);
        return true;
	}


    public function getOwner()
    {
        return $this->owner;
    }
}<?php
namespace cleaner\command;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\ConsoleCommandSender;

use cleaner\Cleaner;

class CleanItemCommand extends Command
{

    private $owner;

    public function __construct($owner)
    {
        parent::__construct("cleanitem", "ãƒ¯ãƒ¼ãƒ«ãƒ‰å†…ã™ã¹ã¦ã®ãƒ‰ãƒ­ãƒƒãƒ—ã‚¢ã‚¤ãƒ†ãƒ ã‚’å‰Šé™¤ã—ã¾ã™", "/cleanitem");
        $this->setPermission("cleaner.command.cleanitem");
        $this->owner = $owner;
        $this->dealing = $owner->getEntityDealing();
    }


    public function execute(CommandSender $sender, string $label, array $params): bool
    {
        if(!$this->getOwner()->isEnabled()) return false;
        if(!$this->testPermission($sender)) return false;

        $level = $sender->getLevel();
        $this->dealing->cleanDropingItems($level, $sender);
        return true;
	}


    public function getOwner()
    {
        return $this->owner;
    }
}<?php
namespace cleaner\command;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\ConsoleCommandSender;

use cleaner\Cleaner;

class CleanLavaCommand extends Command
{

    private $owner;

    public function __construct($owner)
    {
        parent::__construct("cleanlava", "50x50ç¯„å›²ã®æº¶å²©ãƒ–ãƒ­ãƒƒã‚¯ã‚’å‰Šé™¤ã—ã¾ã™", "/cleanlava");
        $this->setPermission("cleaner.command.cleanlava");
        $this->owner = $owner;
        $this->dealing = $owner->getBlockDealing();
    }


    public function execute(CommandSender $sender, string $label, array $params): bool
    {
        if(!$this->getOwner()->isEnabled()) return false;
        if(!$this->testPermission($sender)) return false;

        if ($sender instanceof ConsoleCommandSender) {
            $sender->sendMessage(Cleaner::MESSAGE_TAG."Â§cã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã‹ã‚‰ã¯ä½¿ãˆã¾ã›ã‚“");
            return false;
        }

        $level = $sender->getLevel();
        $this->dealing->cleanLava($level, $sender);
        return true;
	}


    public function getOwner()
    {
        return $this->owner;
    }
}<?php
namespace cleaner\command;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\ConsoleCommandSender;

use cleaner\Cleaner;

class CleanSignCommand extends Command
{

    private $owner;

    public function __construct($owner)
    {
        parent::__construct("cleansign", "ãƒ¯ãƒ¼ãƒ«ãƒ‰å†…ã™ã¹ã¦ã®çœ‹æ¿ã‚’å‰Šé™¤ã—ã¾ã™", "/cleansign");
        $this->setPermission("cleaner.command.cleansign");
        $this->owner = $owner;
        $this->dealing = $owner->getSignDealing();
    }


    public function execute(CommandSender $sender, string $label, array $params): bool
    {
        if(!$this->getOwner()->isEnabled()) return false;
        if(!$this->testPermission($sender)) return false;

        $level = $sender->getLevel();
        $this->dealing->cleanSigns($level, $sender);
        return true;
	}


    public function getOwner()
    {
        return $this->owner;
    }
}<?php
namespace cleaner\command;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\ConsoleCommandSender;

use cleaner\Cleaner;

class CleanWaterCommand extends Command
{

    private $owner;

    public function __construct($owner)
    {
        parent::__construct("cleanwater", "50x50ç¯„å›²ã®æ°´ãƒ–ãƒ­ãƒƒã‚¯ã‚’å‰Šé™¤ã—ã¾ã™", "/cleanwater");
        $this->setPermission("cleaner.command.cleanwater");
        $this->owner = $owner;
        $this->dealing = $owner->getBlockDealing();
    }


    public function execute(CommandSender $sender, string $label, array $params): bool
    {
        if(!$this->getOwner()->isEnabled()) return false;
        if(!$this->testPermission($sender)) return false;

        if ($sender instanceof ConsoleCommandSender) {
            $sender->sendMessage(Cleaner::MESSAGE_TAG."Â§cã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã‹ã‚‰ã¯ä½¿ãˆã¾ã›ã‚“");
            return false;
        }

        $level = $sender->getLevel();
        $this->dealing->cleanWater($level, $sender);
        return true;
	}


    public function getOwner()
    {
        return $this->owner;
    }
}<?php

namespace cleaner\dealing;

use pocketmine\Player;
use pocketmine\Server;
use pocketmine\level\Level;
use pocketmine\math\AxisAlignedBB;
use pocketmine\block\Block;
use pocketmine\block\BlockIds as ID;

use cleaner\Cleaner;

class BlockCleaner
{

	const ADD_FAR = 10;

	public function __construct($owner)
	{
		$this->owner = $owner;
	}


	public function cleanBlock($level, $sender, $id)
	{
		$x = $sender->x;
		$y = $sender->y;
		$z = $sender->z;

		$bx = $this->getCoordinate($x)[0];
		$sy = $this->getCoordinate($y)[1];
		$bz = $this->getCoordinate($z)[0];
		$sx = $this->getCoordinate($x)[1];
		$by = $this->getCoordinate($y)[0];
		$sz = $this->getCoordinate($z)[1];

		for ($x=$sx;$x<=$bx;$x++) {
			for ($y=$sy;$y<=$by;$y++) {
				for ($z=$sz;$z<=$bz;$z++) {
					if ($level->getBlockIdAt($x, $y, $z) == $id) {
						$level->setBlockIdAt($x, $y, $z, 0);
					}
				}
			}
		}
		$sender->sendMessage(Cleaner::MESSAGE_TAG."å‡¦ç†ãŒå®Œäº†ã—ã¾ã—ãŸ");

		/*$bb = new AxisAlignedBB($x+10, $y+10, $z+10, $x-10, $y-10, $z-10);

		$blocks = $level->getCollisionBlocks($bb);
		foreach ($blocks as $block) {
			if ($block->getId() == $id) {
				$level->setBlock($block->asVector3(), Block::get(0));
			}
		}*/
	}


	public function getCoordinate($value)
	{
		$plus = $value + self::ADD_FAR;
		$mins = $value - self::ADD_FAR;
		if ($plus>$mins) {
			$pluss = $plus;
			$minss = $mins;
		} else {
			$pluss = $mins;
			$minss = $plus;
		}
		return [$pluss, $minss];
	}


	public function cleanWater($level, $sender)
	{
		$this->cleanBlock($level, $sender, ID::WATER);
		$this->cleanBlock($level, $sender, ID::WATERLILY);
	}


	public function cleanLava($level, $sender)
	{
		$this->cleanBlock($level, $sender, ID::FLOWING_LAVA);
		$this->cleanBlock($level, $sender, ID::LAVA);
	}
}<?php

namespace cleaner\dealing;

use pocketmine\Player;
use pocketmine\Server;
use pocketmine\level\Level;
use pocketmine\tile\Chest;

use cleaner\Cleaner;

class ChestCleaner
{

	public function __construct($owner)
	{
		$this->owner = $owner;
	}


	public function cleanChestItems($level, $sender)
	{
		$tiles = $level->getTiles();
		foreach ($tiles as $tile) {
			if ($tile instanceof Chest) {
				$chest = $tile;
				$chest->getInventory()->setContents([]);
				$chest->saveNBT();
			}
		}
		$sender->sendMessage(Cleaner::MESSAGE_TAG."å‡¦ç†ãŒå®Œäº†ã—ã¾ã—ãŸ");
	}
}<?php

namespace cleaner\dealing;

use pocketmine\Player;
use pocketmine\Server;
use pocketmine\level\Level;
use pocketmine\entity\Entity;
use pocketmine\entity\Item as DropItem;
use pocketmine\entity\Arrow;

use cleaner\Cleaner;

class EntityCleaner
{

	public function __construct($owner)
	{
		$this->owner = $owner;
	}


	public function cleanDropingItems($level, $sender)
	{
		$entities = $level->getEntities();
		foreach ($entities as $entity) {
			if ($entity instanceof DropItem) {
				$entity->kill();
			}
		}
		$sender->sendMessage(Cleaner::MESSAGE_TAG."å‡¦ç†ãŒå®Œäº†ã—ã¾ã—ãŸ");
	}


	public function cleanArrows($level, $sender)
	{
		$entities = $level->getEntities();
		foreach ($entities as $entity) {
			if ($entity instanceof Arrow) {
				$entity->kill();
			}
		}
		$sender->sendMessage(Cleaner::MESSAGE_TAG."å‡¦ç†ãŒå®Œäº†ã—ã¾ã—ãŸ");
	}


	public function cleanEntities($level, $sender)
	{
		$entities = $level->getEntities();
		foreach ($entities as $entity) {
			if ($entity instanceof Player) return;
			$entity->kill();
		}
		$sender->sendMessage(Cleaner::MESSAGE_TAG."å‡¦ç†ãŒå®Œäº†ã—ã¾ã—ãŸ");
	}
}<?php

namespace cleaner\dealing;

use pocketmine\Player;
use pocketmine\Server;
use pocketmine\level\Level;
use pocketmine\tile\Sign;
use pocketmine\block\Block;

use cleaner\Cleaner;

class SignCleaner
{

	public function __construct($owner)
	{
		$this->owner = $owner;
	}


	public function cleanSigns($level, $sender)
	{
		$tiles = $level->getTiles();
		foreach ($tiles as $tile) {
			if ($tile instanceof Sign) {
				$block = $tile->getBlock();
				$level->setBlock($block, Block::get(0));
			}
		}
		$sender->sendMessage(Cleaner::MESSAGE_TAG."å‡¦ç†ãŒå®Œäº†ã—ã¾ã—ãŸ");
	}
}wš‡_§#’ô ´€ÒÈ5õnP   GBMB