
<?php
echo "PocketMine-MP plugin WorldProtection v2.0.0
This file has been generated using DevTools v1.14.0 at Sat, 21 Nov 2020 14:18:44 +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(); ?>
§             0  a:9:{s:4:"name";s:15:"WorldProtection";s:7:"version";s:5:"2.0.0";s:4:"main";s:27:"roi611\worldprotection\Main";s:3:"api";s:5:"3.0.0";s:6:"depend";s:0:"";s:11:"description";s:48:"ãƒ¯ãƒ¼ãƒ«ãƒ‰ã®ç ´å£Šã‚„è¨­ç½®ã‚’åˆ¶é™ã—ã¾ã™";s:7:"authors";s:0:"";s:7:"website";s:0:"";s:12:"creationDate";i:1605939524;}
   plugin.yml  E±¸_  ]¥ÔØ¶      #   src/roi611/worldprotection/Main.phpŸ  E±¸_Ÿ  qÊŸ€¶      name: WorldProtection
main: roi611\worldprotection\Main
version: 2.0.0
api: 3.0.0
load: POSTWORLD
author: roi611
description: ãƒ¯ãƒ¼ãƒ«ãƒ‰ã®ç ´å£Šã‚„è¨­ç½®ã‚’åˆ¶é™ã—ã¾ã™

commands: 
  worldbreak:
     description: ä»Šã„ã‚‹ãƒ¯ãƒ¼ãƒ«ãƒ‰ã®ãƒ–ãƒ­ãƒƒã‚¯ã§ç ´å£Šã§ããªãã—ã¾ã™
     usage: /worldbreak
  worldput:
     description: ä»Šã„ã‚‹ãƒ¯ãƒ¼ãƒ«ãƒ‰ã§ãƒ–ãƒ­ãƒƒã‚¯ã‚’è¨­ç½®ã§ããªãã—ã¾ã™
     usage: /worldput
  canbreak:
     description: ä»Šã„ã‚‹ãƒ¯ãƒ¼ãƒ«ãƒ‰ã§ã‚µãƒ–ã‚³ãƒžãƒ³ãƒ‰ã§æŒ‡å®šã—ãŸã‚¢ã‚¤ãƒ†ãƒ Idã®ãƒ–ãƒ­ãƒƒã‚¯ã ã‘ç ´å£Šã§ãã‚‹ã‚ˆã†ã«ã—ã¾ã™
     usage: /canbreak
  canput:
     description: ä»Šã„ã‚‹ãƒ¯ãƒ¼ãƒ«ãƒ‰ã§ã‚µãƒ–ã‚³ãƒžãƒ³ãƒ‰ã§æŒ‡å®šã—ãŸã‚¢ã‚¤ãƒ†ãƒ Idã®ãƒ–ãƒ­ãƒƒã‚¯ã ã‘è¨­ç½®ã§ãã‚‹ã‚ˆã†ã«ã—ã¾ã™
     usage: /canput
<?php
    
namespace roi611\worldprotection;
//hakai
    
use pocketmine\plugin\PluginBase;

use pocketmine\command\Command;
use pocketmine\command\CommandSender;

use pocketmine\event\player\PlayerJoinEvent;
use pocketmine\event\Listener;
use pocketmine\event\block\BlockBreakEvent;
use pocketmine\event\block\BlockPlaceEvent;

use pocketmine\Player;
use pocketmine\Server;

use pocketmine\level\Level;

use pocketmine\utils\Config;
    
    class Main extends PluginBase implements Listener {
    
    public function onEnable() {
       
        $this->getServer()->getPluginManager()->registerEvents($this, $this);
        $this->place = new Config($this->getDataFolder()."place.yml", Config::YAML);
        $this->break = new Config($this->getDataFolder()."break.yml", Config::YAML);
        $this->idbreak = new Config($this->getDataFolder()."idbreak.yml", Config::YAML);
        $this->idplace = new Config($this->getDataFolder()."idplace.yml", Config::YAML);

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

        if(!($sender->isOp())) {

            $sender->sendMessage("æ¨©é™ãŒãªã„ãŸã‚ã‚³ãƒžãƒ³ãƒ‰ã‚’å®Ÿè¡Œã§ãã¾ã›ã‚“");
            return true;

        }

        if(!($sender instanceof Player)) {

            $sender->sendMessage("Â§cã‚²ãƒ¼ãƒ å†…ã§å®Ÿè¡Œã—ã¦ãã ã•ã„");
            return true;

        }

        $level = "world";//$sender->getLevel()->getName();
        
        switch($command->getName()) {

            case "worldbreak":
                if(isset($args[0])) {

                    $this->protection($this->break,$sender,$args[0]);

                    return true;

                    } else {

                        $sender->sendMessage("ä½¿ã„æ–¹:\n/worldbreak <onãƒ»off>");
                        return true;

                    }

            return true;
            break;

            case "worldput":

                if(isset($args[0])) {

                    $this->protection($this->place,$sender,$args[0]);

                    } else {

                        $sender->sendMessage("ä½¿ã„æ–¹:\n/worldput <onãƒ»off>");
                        return true;

                    }
                
            return true;
            break;

            case "canbreak":

                if(isset($args[0])) {

                    if(strpos($args[0],":") !== false ) {

                        $sender->sendMessage($args[0]."ã‚’è¿½åŠ ã—ã¾ã—ãŸ");

                        if($this->idbreak->exists($level)) {

                            $configs = $this->idbreak->get($level);
                            $list = [];

                            foreach($configs as $config){

                                array_push($list,$config);

                            }

                            array_push($list,$args[0]);

                            $this->idbreak->set($level,$list);
                            $this->idbreak->save();

                                return true;

                        } else {

                            $this->idbreak->set($level,array($args[0]));
                            $this->idbreak->save();

                            return true;

                        }

                        return true;

                    } else {

                        $sender->sendMessage("ä½¿ã„æ–¹:\n/canbreak id:damage");
                        return true;

                    }

                } else {

                    $sender->sendMessage("ä½¿ã„æ–¹:\n/canbreak id:damage");
                    return true;

                }
                
            return true;

            break;

            case "canput":

                if(isset($args[0])) {

                    if(strpos($args[0],":") !== false ) {

                        $sender->sendMessage($args[0]."ã‚’è¿½åŠ ã—ã¾ã—ãŸ");

                        if($this->idplace->exists($level)) {

                            $configs = $this->idplace->get($level);
                            $list = [];

                            foreach($configs as $config) {

                                array_push($list,$config);

                            }

                                array_push($list,$args[0]);
                                $this->idplace->set($level,$list);
                                $this->idplace->save();

                                return true;

                        } else {

                            $this->idplace->set($level,array($args[0]));
                            $this->idplace->save();

                            return true;

                        }

                        return true;

                    } else {

                        $sender->sendMessage("ä½¿ã„æ–¹:\n/canput id:damage");
                        return true;

                    }

                } else {

                    $sender->sendMessage("ä½¿ã„æ–¹:\n/canput id:damage");
                    return true;

                }

            break;

                }

            return true;

        }

        public function onBreak(BlockBreakEvent $event) {

            $player = $event->getPlayer();
            $level = $player->getLevel()->getName();
            $block = $event->getBlock();
            $blockid = $block->getId().":".$block->getDamage();

            if(!($player->isOp())) {

                if($this->break->exists($level)) {

                    if($this->idbreak->exists($level)) {

                        $id = $this->idbreak->get($player->getlevel()->getName());
    
                            if(!(in_array($blockid,$id))) {
    
                                $event->setCancelled();
    
                            }

                    } else {

                        $event->setCancelled();

                    }

                }
            }
        }

        public function onPlace(BlockPlaceEvent $event) {

            $player = $event->getPlayer();
            $level = $player->getLevel()->getName();
            $block = $event->getBlock();
            $blockid = $block->getId().":".$block->getDamage();

            if(!($player->isOp())) {

                if($this->place->exists($level)) {

                    if($this->idplace->exists($level)) {

                        $id = $this->idplace->get($player->getlevel()->getName());
    
                            if(!(in_array($blockid,$id))) {
    
                                $event->setCancelled();
    
                            }

                    } else {

                        $event->setCancelled();

                    }

                }
            }
        }

        private function protection(Config $config,Player $player,string $args) {

            $level = $player->getLevel()->getName();

            if($args == "on") {

                $player->sendMessage("ãƒ¯ãƒ¼ãƒ«ãƒ‰ä¿è­·ã‚’æœ‰åŠ¹ã«ã—ã¾ã—ãŸ");
                $config->set($level,"on");
                $config->save();

            } else if($args == "off"){

                $player->sendMessage("ãƒ¯ãƒ¼ãƒ«ãƒ‰ä¿è­·ã‚’è§£é™¤ã—ã¾ã—ãŸ");

                if($config->exists($level)) {

                $config->remove($level);
                $config->save();

            }
        }
    }
}úCUß¹+¡0¬îM’7çXšd   GBMB