<?php __HALT_COMPILER(); ?>
|                  (   src/Saisana299/frameguard/FrameGuard.phpD  K{™\D  <Ã#0¶      
   plugin.yml_  K{™\_  ÆÈ¨H¶      <?php
namespace Saisana299\frameguard;

use pocketmine\plugin\PluginBase;
use pocketmine\event\Listener;
use pocketmine\event\Event;
use pocketmine\Player;
use pocketmine\Server;
use pocketmine\block\Block;
use pocketmine\event\server\DataPacketReceiveEvent;
use pocketmine\network\mcpe\protocol\ModalFormRequestPacket;
use pocketmine\network\mcpe\protocol\ItemFrameDropItemPacket;
use pocketmine\utils\Config;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\event\player\PlayerCommandPreprocessEvent;
use pocketmine\event\player\PlayerInteractEvent;
use pocketmine\event\block\BlockBreakEvent;

class FrameGuard extends PluginBase implements Listener{

	public function onEnable(){
	$this->getServer()->getPluginManager()->registerEvents($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 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->config->exists($xyzl)){
	   $ownerf = $this->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 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] ä¿è­·ãƒ¢ãƒ¼ãƒ‰ã‚’æœ‰åŠ¹ã«ã—ã¾ã—ãŸ\né¡ç¸ã‚’ã‚¿ãƒƒãƒ—ã—ã¦ãã ã•ã„\nå†åº¦ã‚³ãƒžãƒ³ãƒ‰ã‚’ä½¿ã†ã¨ä¿è­·ãƒ¢ãƒ¼ãƒ‰ã‚’ç„¡åŠ¹ã«ã§ãã¾ã™");
				}else{
					unset($this->frame[$name]);
					$sender->sendMessage("[FrameGuard] ä¿è­·ãƒ»ä¿è­·è§£é™¤ãƒ¢ãƒ¼ãƒ‰ã‚’ç„¡åŠ¹ã«ã—ã¾ã—ãŸ");
					}
				break;
						
			case "unfg": 
			$name = $sender->getName();
			if(!isset($this->frame[$name])){
			    $this->frame[$name]["type"] = "delete";
				$sender->sendMessage("[FrameGuard] ä¿è­·è§£é™¤ãƒ¢ãƒ¼ãƒ‰ã‚’æœ‰åŠ¹ã«ã—ã¾ã—ãŸ\né¡ç¸ã‚’ã‚¿ãƒƒãƒ—ã—ã¦ãã ã•ã„\nå†åº¦ã‚³ãƒžãƒ³ãƒ‰ã‚’ä½¿ã†ã¨ä¿è­·è§£é™¤ãƒ¢ãƒ¼ãƒ‰ã‚’ç„¡åŠ¹ã«ã§ãã¾ã™");
				}else{
					unset($this->frame[$name]);
					$sender->sendMessage("[FrameGuard] ä¿è­·ãƒ»ä¿è­·è§£é™¤ãƒ¢ãƒ¼ãƒ‰ã‚’ç„¡åŠ¹ã«ã—ã¾ã—ãŸ");
				break;
		}
		
	}
	return true;
}
	
	
    public function onTouch(PlayerInteractEvent $event){
    	$player = $event->getPlayer();
    	$block = $event->getBlock();
    	$name = $player->getName();
    	if(isset($this->frame[$name])){
    		switch ($this->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->config->exists($xyzl)){
					$this->config->set($xyzl, $name);
					$this->config->save();
					$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->config->exists($place)){
						$ownerf = $this->config->get($block->x.",".$block->y.",".$block->z.",".$block->level->getFolderName());
						if($ownerf === $name){
						$this->config->remove($place);
						$this->config->save();
						$player->sendMessage("[FrameGuard] Â§aä¿è­·ã‚’è§£é™¤ã—ã¾ã—ãŸ");
						}else{
							if (!$player->isOp()) {
							$player->sendMessage("[FrameGuard] Â§eã“ã®é¡ç¸ã¯ Â§oÂ§f".$ownerf."Â§rÂ§e ã«ã‚ˆã£ã¦ä¿è­·ã•ã‚Œã¦ã„ã¾ã™");
							}else{
								$this->config->remove($place);
								$this->config->save();
								$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->config->exists($xyzl)){
	   $ownerf = $this->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->config->remove($xyzl);
	   $this->config->save();
	   $player->sendMessage("[FrameGuard] Â§aé¡ç¸ã®ä¿è­·ã‚’è§£é™¤ã—ã¾ã—ãŸ");
   }
   }else{
	   $this->config->remove($xyzl);
	   $this->config->save();
	   $player->sendMessage("[FrameGuard] Â§aé¡ç¸ã®ä¿è­·ã‚’è§£é™¤ã—ã¾ã—ãŸ");
   }
   }
}
}---
name: FrameGuard
main: Saisana299\frameguard\FrameGuard
api:
- 3.0.0
version: 1.0.0
author: Saisana299
commands:
  fg:
    description: é¡ç¸ã‚’ä¿è­·ã—ã¾ã™
    usage: 
    permission: fg.command
  unfg:
    description: é¡ç¸ã®ä¿è­·ã‚’è§£é™¤ã—ã¾ã™
    usage: 
    permission: fg.command
permissions:
  fg.command:
    default: true
...
ºOì ¡[L:à^®€öÃ×˜w   GBMB