<?php __HALT_COMPILER(); ?>
€                  ,   src/Saisana299/furnaceguard/FurnaceGuard.phpö  9¾L]ö  !ÖRù¶      
   plugin.ymlk  9¾L]k  v($¢¶      <?php
namespace Saisana299\furnaceguard;

use pocketmine\plugin\PluginBase;
use pocketmine\event\Listener;
use pocketmine\event\Event;
use pocketmine\Player;
use pocketmine\Server;
use pocketmine\block\Block;
use pocketmine\utils\Config;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\event\player\PlayerInteractEvent;
use pocketmine\event\block\BlockBreakEvent;

class FurnaceGuard 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() . "Furnaces.yml", Config::YAML);
	}

	public function onCommand(CommandSender $sender, Command $command, string $label, array $args) :bool {
		if(!$sender instanceof Player){
			$sender->sendMessage("[FurnaceGuard] §cゲーム内で実行してください");
			return true;
		}
		switch(strtolower($label)){

			case "kg":  
			$name = $sender->getName();
			if(!isset($this->frame[$name])){
				$this->frame[$name]["type"] = "add";
				$sender->sendMessage("[FurnaceGuard] 保護モードを有効にしました\nかまどをタップしてください\n再度コマンドを使うと保護モードを無効にできます");
			}else{
				unset($this->frame[$name]);
				$sender->sendMessage("[FurnaceGuard] 保護・保護解除モードを無効にしました");
			}
			break;
						
			case "unkg": 
			$name = $sender->getName();
			if(!isset($this->frame[$name])){
			    $this->frame[$name]["type"] = "delete";
				$sender->sendMessage("[FurnaceGuard] 保護解除モードを有効にしました\nかまどをタップしてください\n再度コマンドを使うと保護解除モードを無効にできます");
			}else{
				unset($this->frame[$name]);
				$sender->sendMessage("[FurnaceGuard] 保護・保護解除モードを無効にしました");
			}
			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() == 61 || $block->getId() == 62)){
						$player->sendMessage("[FurnaceGuard] §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("[FurnaceGuard] §aかまどを保護しました");
					}else{
						$player->sendMessage("[FurnaceGuard] §c既に保護されています");
					}
    				break;
    			case 'delete':
					if(!($block->getId() == 61 || $block->getId() == 62)){
						$player->sendMessage("[FurnaceGuard] §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("[FurnaceGuard] §a保護を解除しました");
						}else{
							if (!$player->isOp()) {
								$player->sendMessage("[FurnaceGuard] §eこのかまどは §o§f".$ownerf."§r§e によって保護されています");
							}else{
								$this->config->remove($place);
								$this->config->save();
								$player->sendMessage("[FurnaceGuard] §a保護を解除しました");
							}
						}
						
					}else{
						$player->sendMessage("[FurnaceGuard] §cこのかまどは保護されていません");
					}
					break;
				}
		}else{
    	   $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("[FurnaceGuard] §eこのかまどは §o§f".$ownerf."§r§e によって保護されています");
    	   			$event->setCancelled();
    	   		}else{

    	   		}
    	   	}else{

    	   	}
    	   }
    	}
    }

    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("[FurnaceGuard] §eこのかまどは §o§f".$ownerf."§r§e によって保護されています");
    				$event->setCancelled();
    			}else{
    				$this->config->remove($xyzl);
    				$this->config->save();
    				$player->sendMessage("[FurnaceGuard] §aかまどの保護を解除しました");
    			}
    		}else{
    			$this->config->remove($xyzl);
    			$this->config->save();
    			$player->sendMessage("[FurnaceGuard] §aかまどの保護を解除しました");
    		}
    	}
    }
}---
name: FurnaceGuard
main: Saisana299\furnaceguard\FurnaceGuard
api:
- 3.0.0
version: 1.0.0
author: Saisana299
commands:
  kg:
    description: かまどを保護します
    usage: 
    permission: kg.command
  unkg:
    description: かまどの保護を解除します
    usage: 
    permission: kg.command
permissions:
  kg.command:
    default: true
...
Î?hbÄvFVúHe¦—q\   GBMB