
<?php
echo "PocketMine-MP plugin FrameGuard v1.2.0
This file has been generated using DevTools v1.13.0 at Wed, 08 Apr 2020 08:56:25 +0900
----------------
";

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:"FrameGuard";s:7:"version";s:5:"1.2.0";s:4:"main";s:32:"Saisana299\frameguard\FrameGuard";s:3:"api";a:1:{i:0;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:1586303785;}
   plugin.yml_  )^_  ‡þT¶      +   src/Saisana299/frameguard/EventListener.phpÕ  )^Õ  ]xT¶      (   src/Saisana299/frameguard/FrameGuard.phpø	  )^ø	  ‹ÛÐ¶      ---
name: FrameGuard
main: Saisana299\frameguard\FrameGuard
api:
- 3.0.0
version: 1.2.0
author: Saisana299
commands:
  fg:
    description: é¡ç¸ã‚’ä¿è­·ã—ã¾ã™
    usage: 
    permission: fg.command
  unfg:
    description: é¡ç¸ã®ä¿è­·ã‚’è§£é™¤ã—ã¾ã™
    usage: 
    permission: fg.command
permissions:
  fg.command:
    default: true
...
<?php
namespace Saisana299\frameguard;

use pocketmine\event\Listener;
use pocketmine\event\server\DataPacketReceiveEvent;
use pocketmine\network\mcpe\protocol\ModalFormRequestPacket;
use pocketmine\network\mcpe\protocol\ItemFrameDropItemPacket;
use pocketmine\event\player\PlayerCommandPreprocessEvent;
use pocketmine\event\player\PlayerInteractEvent;
use pocketmine\event\block\BlockBreakEvent;
use pocketmine\math\Vector3;

class EventListener implements Listener {

	private $FrameGuard;
        
    public function __construct(FrameGuard $FrameGuard)
    {
        $this->FrameGuard = $FrameGuard;
    }

	public function onReceived(DataPacketReceiveEvent $event){
		$packet = $event->getPacket();
		$player = $event->getPlayer();
		$name = $player->getName();
		if ($packet instanceof ItemFrameDropItemPacket){
			$xyzl = $packet->x.",".$packet->y.",".$packet->z.",".$player->getLevel()->getFolderName();
			if($this->FrameGuard->config->exists($xyzl)){
				$ownerf = $this->FrameGuard->config->get($packet->x.",".$packet->y.",".$packet->z.",".$player->getLevel()->getFolderName());
				if (!$player->isOp()) {
					if ($ownerf !=  $name){
						$player->sendMessage("[FrameGuard] Â§eã“ã®é¡ç¸ã¯ Â§oÂ§f".$ownerf."Â§rÂ§e ã«ã‚ˆã£ã¦ä¿è­·ã•ã‚Œã¦ã„ã¾ã™");
						$event->setCancelled();
					}
				}else{
					$player->sendMessage("[FrameGuard] Â§eã“ã®é¡ç¸ã¯ Â§oÂ§f".$ownerf."Â§rÂ§e ã«ã‚ˆã£ã¦ä¿è­·ã•ã‚Œã¦ã„ã¾ã™");
				}
			}
		}
	}

	public function onTouch(PlayerInteractEvent $event){
    	$player = $event->getPlayer();
    	$block = $event->getBlock();
    	$name = $player->getName();
    	if($block->getId() === 199){
    		$xyzl = $block->x.",".$block->y.",".$block->z.",".$player->getLevel()->getFolderName();
			if($this->FrameGuard->config->exists($xyzl)){
				$ownerf = $this->FrameGuard->config->get($block->x.",".$block->y.",".$block->z.",".$player->getLevel()->getFolderName());
				if (!$player->isOp()) {
					if ($ownerf !=  $name){
						$player->sendMessage("[FrameGuard] Â§eã“ã®é¡ç¸ã¯ Â§oÂ§f".$ownerf."Â§rÂ§e ã«ã‚ˆã£ã¦ä¿è­·ã•ã‚Œã¦ã„ã¾ã™");
						$event->setCancelled();
						return;
					}
				}
			}
    	}
    	if(isset($this->FrameGuard->frame[$name])){
    		switch ($this->FrameGuard->frame[$name]["type"]) {
    			case 'add':
					if(!($block->getId() === 199)){
						$player->sendMessage("[FrameGuard] Â§cé¡ç¸ã‚’ã‚¿ãƒƒãƒ—ã—ã¦ãã ã•ã„");
						return;
					}
					$event->setCancelled();
					$xyzl = $block->x.",".$block->y.",".$block->z.",".$block->level->getFolderName();
					if(!$this->FrameGuard->config->exists($xyzl)){
						$this->FrameGuard->config->set($xyzl, $name);
						$player->sendMessage("[FrameGuard] Â§aé¡ç¸ã‚’ä¿è­·ã—ã¾ã—ãŸ");
					}else{
						$player->sendMessage("[FrameGuard] Â§cæ—¢ã«ä¿è­·ã•ã‚Œã¦ã„ã¾ã™");
					}
    			break;

    			case 'delete':
					if(!($block->getId() === 199)){
						$player->sendMessage("[FrameGuard] Â§cé¡ç¸ã‚’ã‚¿ãƒƒãƒ—ã—ã¦ãã ã•ã„");
						return;
					}
		    		$place = $block->x.",".$block->y.",".$block->z.",".$block->level->getFolderName();
					if($this->FrameGuard->config->exists($place)){
						$ownerf = $this->FrameGuard->config->get($block->x.",".$block->y.",".$block->z.",".$block->level->getFolderName());
						if($ownerf === $name){
							$this->FrameGuard->config->remove($place);
							$player->sendMessage("[FrameGuard] Â§aä¿è­·ã‚’è§£é™¤ã—ã¾ã—ãŸ");
						}else{
							if ($player->isOp()) {
								$this->FrameGuard->config->remove($place);
								$player->sendMessage("[FrameGuard] Â§aä¿è­·ã‚’è§£é™¤ã—ã¾ã—ãŸ");
							}
						}
						
					}else{
						$player->sendMessage("[FrameGuard] Â§cã“ã®é¡ç¸ã¯ä¿è­·ã•ã‚Œã¦ã„ã¾ã›ã‚“");
					
					}
				break;
			}
		}
	}

	public function onBreakEvent(BlockBreakEvent $event){
		$player = $event->getPlayer();
		$name = $player->getName();
		$block = $event->getBlock();
		$xyzl = $block->x.",".$block->y.",".$block->z.",".$block->level->getFolderName();
		if($this->FrameGuard->config->exists($xyzl)){
			$ownerf = $this->FrameGuard->config->get($block->x.",".$block->y.",".$block->z.",".$block->level->getFolderName());
			if (!$player->isOp()) {
				if ($ownerf !=  $name){
					$player->sendMessage("[FrameGuard] Â§eã“ã®é¡ç¸ã¯ Â§oÂ§f".$ownerf."Â§rÂ§e ã«ã‚ˆã£ã¦ä¿è­·ã•ã‚Œã¦ã„ã¾ã™");
					$event->setCancelled();
				}else{
					$this->FrameGuard->config->remove($xyzl);
					$player->sendMessage("[FrameGuard] Â§aé¡ç¸ã®ä¿è­·ã‚’è§£é™¤ã—ã¾ã—ãŸ");
				}
			}else{
				$this->FrameGuard->config->remove($xyzl);
				$player->sendMessage("[FrameGuard] Â§aé¡ç¸ã®ä¿è­·ã‚’è§£é™¤ã—ã¾ã—ãŸ");
			}
		}else{
			$sides = [
				Vector3::SIDE_WEST,
				Vector3::SIDE_EAST,
				Vector3::SIDE_NORTH,
				Vector3::SIDE_SOUTH
			];
				foreach($sides as $side){
      	  	    if($block->getSide($side)->getId() === 199){
      	  	    	if($block->getSide($side)->getDamage() === 0){
      	  	    		$new_side = $block->getSide($side);
      	  	    		$new_block = $new_side->getSide(Vector3::SIDE_WEST);
      	  	    		if($new_block->x.$new_block->y.$new_block->z !== $block->x.$block->y.$block->z){
      	  	    			return true;
      	  	    		}

      	  	    	}elseif($block->getSide($side)->getDamage() === 1){
      	  	    		$new_side = $block->getSide($side);
      	  	    		$new_block = $new_side->getSide(Vector3::SIDE_EAST);
      	  	    		if($new_block->x.$new_block->y.$new_block->z !== $block->x.$block->y.$block->z){
      	  	    			return true;
      	  	    		}

      	  	    	}elseif($block->getSide($side)->getDamage() === 2){
      	  	    		$new_side = $block->getSide($side);
      	  	    		$new_block = $new_side->getSide(Vector3::SIDE_NORTH);
      	  	    		if($new_block->x.$new_block->y.$new_block->z !== $block->x.$block->y.$block->z){
      	  	    			return true;
      	  	    		}

      	  	    	}elseif($block->getSide($side)->getDamage() === 3){
      	  	    		$new_side = $block->getSide($side);
      	  	    		$new_block = $new_side->getSide(Vector3::SIDE_SOUTH);
      	  	    		if($new_block->x.$new_block->y.$new_block->z !== $block->x.$block->y.$block->z){
      	  	    			return true;
      	  	    		}

      	  	    	}
      	   		   	$new_pos = $block->getSide($side)->x.",".$block->getSide($side)->y.",".$block->getSide($side)->z.",".$block->level->getFolderName();
      	      		if($this->FrameGuard->config->exists($new_pos)){
      	      			$ownerf = $this->FrameGuard->config->get($block->getSide($side)->x.",".$block->getSide($side)->y.",".$block->getSide($side)->z.",".$block->level->getFolderName());
      	      			if (!$player->isOp()) {
      	      				if ($ownerf !=  $name){
      	      					$player->sendMessage("[FrameGuard] Â§oÂ§f".$ownerf."Â§rÂ§e ã«ã‚ˆã£ã¦ä¿è­·ã•ã‚Œã¦ã„ã‚‹é¡ç¸ãŒã‚ã‚‹ãŸã‚å£Šã›ã¾ã›ã‚“");
      	      					$event->setCancelled();
      	      				}else{
      	      					$this->FrameGuard->config->remove($new_pos);
      	      					$player->sendMessage("[FrameGuard] Â§aãƒ–ãƒ­ãƒƒã‚¯ç ´å£Šã§å¤–ã‚ŒãŸé¡ç¸ã®ä¿è­·ã‚’è§£é™¤ã—ã¾ã—ãŸ");
      	      				}
      	      			}else{
      	      				$this->FrameGuard->config->remove($new_pos);
							$player->sendMessage("[FrameGuard] Â§aãƒ–ãƒ­ãƒƒã‚¯ç ´å£Šã§å¤–ã‚ŒãŸé¡ç¸ã®ä¿è­·ã‚’è§£é™¤ã—ã¾ã—ãŸ");
						}
            		}
            	}
        	}
		}
	}
}<?php
namespace Saisana299\frameguard;

use pocketmine\Player;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\plugin\PluginBase;
use pocketmine\utils\Config;

class FrameGuard extends PluginBase {

	public $frame;

	public function onEnable(){
		$this->getServer()->getPluginManager()->registerEvents(new EventListener($this), $this);
		$this->getLogger()->info("Â§aé¡ç¸ä¿è­·ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ã‚’èª­ã¿è¾¼ã¿ã¾ã—ãŸ");

		if(!file_exists($this->getDataFolder())) @mkdir($this->getDataFolder(), 0744, true);
		$this->config = new Config($this->getDataFolder() . "Frames.yml", Config::YAML);
	}

	public function onCommand(CommandSender $sender, Command $command, string $label, array $args) :bool {

		if(!$sender instanceof Player){
			$sender->sendMessage("[FrameGuard] Â§cã‚²ãƒ¼ãƒ å†…ã§å®Ÿè¡Œã—ã¦ãã ã•ã„");
			return true;
		}

		switch(strtolower($label)){

			case "fg":  
			$name = $sender->getName();
			if(!isset($this->frame[$name])){
				$this->frame[$name]["type"] = "add";
				$sender->sendMessage("[FrameGuard] Â§eä¿è­·ãƒ¢ãƒ¼ãƒ‰Â§rã‚’æœ‰åŠ¹ã«ã—ã¾ã—ãŸ\né¡ç¸ã‚’ã‚¿ãƒƒãƒ—ã—ã¦ãã ã•ã„\nå†åº¦ã‚³ãƒžãƒ³ãƒ‰ã‚’ä½¿ã†ã¨ä¿è­·ãƒ¢ãƒ¼ãƒ‰ã‚’ç„¡åŠ¹ã«ã§ãã¾ã™");
			}elseif($this->frame[$name]["type"] === "delete"){
				$this->frame[$name]["type"] = "add";
				$sender->sendMessage("[FrameGuard] Â§eä¿è­·ãƒ¢ãƒ¼ãƒ‰Â§rã‚’æœ‰åŠ¹ã«ã—ã¾ã—ãŸ\né¡ç¸ã‚’ã‚¿ãƒƒãƒ—ã—ã¦ãã ã•ã„\nå†åº¦ã‚³ãƒžãƒ³ãƒ‰ã‚’ä½¿ã†ã¨ä¿è­·ãƒ¢ãƒ¼ãƒ‰ã‚’ç„¡åŠ¹ã«ã§ãã¾ã™");
			}else{
				unset($this->frame[$name]);
				$sender->sendMessage("[FrameGuard] Â§eä¿è­·ãƒ¢ãƒ¼ãƒ‰Â§rã‚’ç„¡åŠ¹ã«ã—ã¾ã—ãŸ");
			}
			break;
						
			case "unfg": 
			$name = $sender->getName();
			if(!isset($this->frame[$name])){
			    $this->frame[$name]["type"] = "delete";
				$sender->sendMessage("[FrameGuard] Â§cä¿è­·è§£é™¤ãƒ¢ãƒ¼ãƒ‰Â§rã‚’æœ‰åŠ¹ã«ã—ã¾ã—ãŸ\né¡ç¸ã‚’ã‚¿ãƒƒãƒ—ã—ã¦ãã ã•ã„\nå†åº¦ã‚³ãƒžãƒ³ãƒ‰ã‚’ä½¿ã†ã¨ä¿è­·è§£é™¤ãƒ¢ãƒ¼ãƒ‰ã‚’ç„¡åŠ¹ã«ã§ãã¾ã™");
			}elseif($this->frame[$name]["type"] === "add"){
				$this->frame[$name]["type"] = "delete";
				$sender->sendMessage("[FrameGuard] Â§cä¿è­·è§£é™¤ãƒ¢ãƒ¼ãƒ‰Â§rã‚’æœ‰åŠ¹ã«ã—ã¾ã—ãŸ\né¡ç¸ã‚’ã‚¿ãƒƒãƒ—ã—ã¦ãã ã•ã„\nå†åº¦ã‚³ãƒžãƒ³ãƒ‰ã‚’ä½¿ã†ã¨ä¿è­·è§£é™¤ãƒ¢ãƒ¼ãƒ‰ã‚’ç„¡åŠ¹ã«ã§ãã¾ã™");
			}else{
				unset($this->frame[$name]);
				$sender->sendMessage("[FrameGuard] Â§cä¿è­·è§£é™¤ãƒ¢ãƒ¼ãƒ‰Â§rã‚’ç„¡åŠ¹ã«ã—ã¾ã—ãŸ");
				break;
			}
		}
		return true;
	}

	public function onDisable(){
		$this->config->save();
	}
}ú/:&!¦b@õ…O^Iøò_7ÑÞ   GBMB