
<?php
echo "PocketMine-MP plugin WChestShop v3.0.0
This file has been generated using DevTools v1.13.0 at Wed, 18 Dec 2019 19:41:34 +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(); ?>
n               a:9:{s:4:"name";s:10:"WChestShop";s:7:"version";s:5:"3.0.0";s:4:"main";s:15:"WChestShop\Main";s:3:"api";a:1:{i:0;s:5:"3.0.0";}s:6:"depend";s:0:"";s:11:"description";s:10:"WChestShop";s:7:"authors";s:0:"";s:7:"website";s:0:"";s:12:"creationDate";i:1576665694;}
   plugin.yml³   ^ú]³   Z°A‘¶         src/WChestShop/Main.phpJ7  ^ú]J7  ËW–¶      name: WChestShop
main: WChestShop\Main
version: 3.0.0
api: [3.0.0]
load: POSTWORLD
description: WChestShop
commands:
 cshop:
  usage: "ãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ—ã‚’æ“ä½œ"
<?php

namespace WChestShop;

use pocketmine\Player;
use pocketmine\Plugin\PluginBase;
use pocketmine\Server;
use pocketmine\tile\Chest as TileChest;
use pocketmine\tile\Tile;
use pocketmine\scheduler\Task;
use metowa1227\moneysystem\api\core\API;
use pocketmine\event\Event;
use pocketmine\network\Network;
use pocketmine\event\player\PlayerInteractEvent;
use pocketmine\event\block\BlockBreakEvent;
use pocketmine\tile\Sign;
use pocketmine\level\Level;
use pocketmine\block\Block;
use pocketmine\math\Vector3;
use pocketmine\inventory\PlayerInventory;
use pocketmine\inventory\Inventory;
use pocketmine\level\Position;
use pocketmine\item\Item;
use pocketmine\event\player\PlayerJoinEvent;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\event\Listener;
use pocketmine\utils\TextFormat;
use pocketmine\utils\Config;

class Main extends PluginBase implements Listener{

	public function onEnable () {

		if(!file_exists($this->getDataFolder())){
   		 mkdir($this->getDataFolder(), 0744, true);
		}

	$this->getServer()->getPluginManager()->registerEvents($this, $this);
	$this->C = new Config($this->getDataFolder() . "chest.yml", Config::YAML);
	$this->CH = new Config($this->getDataFolder() . "sign.yml", Config::YAML);
	$this->MO = new Config($this->getDataFolder() . "moneydata.yml", Config::YAML);
	$this->Ch = [];
	}

	public function onJoin(PlayerJoinEvent $event){

	$player = $event->getPlayer();
	$user = $player->getName();
		if($this->MO->exists($user)){
			if(!$this->MO->get($user)["gm"] == 0){
			API::getInstance()->increase($player,$this->MO->get($user)["gm"]);
			$uriage = $this->MO->get($user);
			$uriage["gm"] = 0;
			$this->MO->set($user,$uriage);
			$this->MO->save();
			}
		}

	}

	public function onA(PlayerInteractEvent $event){

	$player = $event->getPlayer();
	$user = $player->getName();
	$level = $player->getLevel();
	$block = $event->getBlock();
	$xy = $block->x."".$block->y."";
	$xyz = $xy."".$block->z."";
		if($this->C->exists($xyz)){
			if($this->C->get($xyz)["OWNER"] !== $user){
			$event->setCancelled();
			}
		}
	}

	public function onBreak(BlockBreakEvent $event){

	$player = $event -> getPlayer();
	$user = $player -> getName();
	$block = $event->getBlock();
	$level = $player->getLevel();
	$x = $block->x;
	$y = $block->y;
	$z = $block->z;
	$xy = $x."$y";
	$xyz = $xy."$z";
	$id = $block->getID();
		if($id === 54){
			if($this->C->exists($xyz)){
			$na = $this->C->get($xyz);
				if($user == $na["OWNER"] || $player->isOP()){
				$posi = new Vector3($na["çœ‹æ¿X"], $na["çœ‹æ¿Y"], $na["çœ‹æ¿Z"]);
				//$level->setBlock($posi,Block::get(0));
				$sign = $level->getTile($level->getBlock($posi));
				$sign->setText("","","","");
				$xyz2 = $na["çœ‹æ¿X"];
				$xyz2 .= $na["çœ‹æ¿Y"];
				$xyz2 .= $na["çœ‹æ¿Z"];
				$this->C->remove($xyz);
				$this->CH->remove($xyz2);
				$this->C->save();
				$this->CH->save();
				$player->sendMessage("Â§oÂ§7ãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ—ãŒæ¶ˆåŽ»ã•ã‚Œã¾ã—ãŸã€‚");
				}else{
				$player->sendMessage("Â§oÂ§7ã‚ãªãŸã¯ã‚ªãƒ¼ãƒŠãƒ¼ã§ã¯ãªã„ã®ã§ç ´å£ŠãŒå‡ºæ¥ã¾ã›ã‚“ã€‚");
				$event->setCancelled();
				}
			}
		}elseif($id === 323 || $id === 63 || $id === 68){
			if($this->CH->exists($xyz)){
			$na = $this->CH->get($xyz);
				if($user == $na["OWNER"] || $player->isOP()){
				$posi = new Vector3($na["ãƒã‚§ã‚¹ãƒˆX"], $na["ãƒã‚§ã‚¹ãƒˆY"], $na["ãƒã‚§ã‚¹ãƒˆZ"]);
				$a = $level->getTile($level->getBlock($posi))->getInventory()->getContents();
					foreach ($a as $items) {
					$id = $items->getID();
					$meta = $items->getDamage();
					$co = $items->getCount();
					$ii = Item::get($id,$meta,$co);
					if($items->hasCustomName()) $ii->setCustomName($items->getName());
					$level->dropItem($posi,$ii);
					$level->dropItem($posi,Item::get(54,0,1));
				}
			$level->setBlock($posi,Block::get(0));
			$xyz2 = $na["ãƒã‚§ã‚¹ãƒˆX"];
			$xyz2 .= $na["ãƒã‚§ã‚¹ãƒˆY"];
			$xyz2 .= $na["ãƒã‚§ã‚¹ãƒˆZ"];
			$this->CH->remove($xyz);
			$this->C->remove($xyz2);
			$this->CH->save();
			$this->C->save();
			$player->sendMessage("Â§oÂ§7ãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ—ãŒæ¶ˆåŽ»ã•ã‚Œã¾ã—ãŸã€‚");
			}else{
			$player->sendMessage("Â§oÂ§7è²´æ–¹ã¯ã‚ªãƒ¼ãƒŠãƒ¼ã§ã¯ãªã„ã®ã§ç ´å£ŠãŒå‡ºæ¥ã¾ã›ã‚“ã€‚");
			$event->setCancelled();
			}
		}

	}
}

	public function onCreate(PlayerInteractEvent $event){

	$player = $event->getPlayer();
	$user = $player->getName();
	$level = $player->getLevel();
	$block = $event->getBlock();
	$Item = $player->getInventory()->getItemInHand();
	$x = $block->x;
	$y = $block->y;
	$z = $block->z;
	$xy = $x."$y";
	$xyz = $xy."$z";
	$id = $block->getID();
		if($id == 54 and isset($this->Ch[$user]["S"]) and !$event->isCancelled()){
			if($this->C->exists($xyz)){
			$player->sendMessage("Â§cÂ§7ã™ã§ã«ãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ—ãŒä½œæˆã•ã‚Œã¦ã„ã¾ã™ã€‚");
			unset($this->Ch[$user]["S"]);
			}else{
			$abc = 0;
			$x2 = $block->x - 1;
			$z2 = $block->z - 1;
			$y2 = $block->y - 1;
			$xx2 = $block->x + 1;
			$zz2 = $block->z + 1;
			$yy2 = $block->y + 1;
				for($ax = $x2; $ax <= $xx2; ++$ax){
					for($ay = $y2; $ay <= $yy2; ++$ay){
						for($az = $z2; $az <= $zz2; ++$az){
						$posi = new Vector3($ax, $ay, $az);
							if($event->isCancelled()){
							}elseif($level->getBlock($posi)->getId() == 63 || $level->getBlock($posi)->getId() == 68 || $level->getBlock($posi)->getId() == 323){
							$event->setCancelled();
							$sign = $level->getTile($level->getBlock($posi));
							$xy2 = $ax."$ay";
							$xyz2 = $xy2."$az";
							$Item->hasCustomName() ? $onoff = "ON":$onoff = "OFF"; 
							$this->C->set($xyz,["OWNER"=>$user,"ãƒã‚§ã‚¹ãƒˆX"=>$x,"ãƒã‚§ã‚¹ãƒˆY"=>$y,"ãƒã‚§ã‚¹ãƒˆZ"=>$z,"çœ‹æ¿X"=>$ax,"çœ‹æ¿Y"=>$ay,"çœ‹æ¿Z"=>$az,"ID"=>$Item->getId(),"META"=>$Item->getdamage(),"ã‚«ã‚¹ã‚¿ãƒ "=>$onoff,"NAME"=>$Item->getName()]);
							$this->CH->set($xyz2,["OWNER"=>$user,"ãƒã‚§ã‚¹ãƒˆX"=>$x,"ãƒã‚§ã‚¹ãƒˆY"=>$y,"ãƒã‚§ã‚¹ãƒˆZ"=>$z,"çœ‹æ¿X"=>$ax,"çœ‹æ¿Y"=>$ay,"çœ‹æ¿Z"=>$az,"ID"=>$Item->getId(),"META"=>$Item->getDamage(),"ã‚«ã‚¹ã‚¿ãƒ "=>$onoff,"NAME"=>$Item->getName()]);
							$this->C->save();
							$this->CH->save();
							if(!$this->MO->exists($user)){
							$this->MO->set($user,["pr"=>0,"gm"=>0]);//pr:åˆè¨ˆå£²ä¸Šé‡‘ gm:ãƒ­ã‚°ã‚¤ãƒ³ã—ãŸã¨ãã«ã‚‚ã‚‰ãˆã‚‹ãŠé‡‘
							$this->MO->save();
							}
							$sign->setText("Â§aOWNERÂ§f: ".$user."","Â§bPRICEÂ§f: 0","Â§5AMOUNTÂ§f: 0","Â§6ITEMÂ§f: ".$Item->getName()."");
							$player->sendMessage("Â§oÂ§aãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ—ãŒä½œæˆã•ã‚Œã¾ã—ãŸ!");
							$abc++;
							unset($this->Ch[$user]["S"]);
							}
						}
					}
				}
			if($abc == 0){
			$event->setCancelled();
			$player->sendMessage("Â§oÂ§cè¿‘ãã«çœ‹æ¿ã‚’è¨­ç½®ã—ã¦ãã ã•ã„ã€‚");
			unset($this->Ch[$user]["S"]);
			}
		}
	}
}

	public function onBuy(PlayerInteractEvent $event){

	$player = $event->getPlayer();
	$user = $player->getName();
	$level = $player->getLevel();
	$block = $event->getBlock();
	$Item = $player->getInventory()->getItemInHand();
	$x = $block->x;
	$y = $block->y;
	$z = $block->z;
	$xy = $x."$y";
	$xyz = $xy."$z";
	//$player->sendPopup("$x  $y  $z");
	$id = $block->getID();
		if($id === 323 || $id === 63 || $id === 68){//
			if($this->CH->exists($xyz)){//
				if($this->CH->get($xyz)["OWNER"] == $user){//
				$player->sendPopup("Â§oÂ§7ã‚ªãƒ¼ãƒŠãƒ¼ã¯è³¼å…¥ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã€‚");
				}else{
				$money = API::getInstance()->get($user);

				$na = $this->CH->get($xyz);
				$chest = $level->getTile($level->getBlock(new Vector3($na["ãƒã‚§ã‚¹ãƒˆX"], $na["ãƒã‚§ã‚¹ãƒˆY"], $na["ãƒã‚§ã‚¹ãƒˆZ"])));
				$sign = $level->getTile($level->getBlock(new Vector3($x, $y, $z)));
				$text = $sign->getText();
				$owner = explode(" ", $text[0])[1];
				$neda = explode(" ", $text[1])[1];
				$kosu = explode(" ", $text[2])[1];
				if($money < $neda){//
				$player->sendPopup("Â§oÂ§cãŠé‡‘ãŒè¶³ã‚Šã¾ã›ã‚“ã€‚");
				}else{
				$amo = 0;
				for ($is = 0; $is < 27; $is++) { 
				$itemd = $chest->getInventory()->getItem($is); 
					if ($itemd->getID() === $na["ID"] and $itemd->getDamage() === $na["META"] and $itemd->getName() === $na["NAME"]){
					$amo += $itemd->getCount();
					}
				}
					if($amo < $kosu){//
					$player->sendPopup("Â§oÂ§cåœ¨åº«ãŒã‚ã‚Šã¾ã›ã‚“!"); 
					if(($p = $this->getServer()->getPlayer($owner)) !== null) $p->sendPopup("Â§oÂ§cã‚·ãƒ§ãƒƒãƒ—ã®åœ¨åº«ãŒãªã„ã‚ˆã†ã§ã™ Â§f<<".$text[3]." |è³¼å…¥è€…: {$user}>>");
					}else{
					$Itemn = Item::get($na["ID"],$na["META"],$kosu);
					if($na["ã‚«ã‚¹ã‚¿ãƒ "] == "ON") $Itemn->setCustomName($na["NAME"]);
					$player->getInventory()->addItem($Itemn);
					$player->sendPopup("Â§oÂ§aè³¼å…¥ã—ã¾ã—ãŸ!"); 
					API::getInstance()->reduce($player,$neda,"WChestShop");
					$uriage = $this->MO->get($owner);
					$uriage["pr"] = $uriage["pr"]+$neda;
					$this->MO->set($owner,$uriage);
					if(($p = $this->getServer()->getPlayer($owner)) !== null){
					$p->sendPopup("Â§oãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ—ãŒåˆ©ç”¨ã•ã‚Œã¾ã—ãŸ! (+Â§a $neda Â§få††)è³¼å…¥è€…: $user");
					API::getInstance()->increase($p,$neda,"WChestShop");
					}else{
					$uriage = $this->MO->get($owner);
					$uriage["gm"] = $uriage["gm"]+$neda;
					$this->MO->set($owner,$uriage);
					}
					$this->MO->save();
					for ($i = 0; $i < 27; $i++) { //
					$ite = $chest->getInventory()->getItem($i); 
						if($ite->getID() === $na["ID"] and $ite->getDamage() === $na["META"] and $ite->getName() === $na["NAME"]){
							if($ite->getCount() <= $kosu) { 
							$chest->getInventory()->setItem($i, Item::get(Item::AIR, 0, 0)); 
							$kosu -= $ite->getCount(); 
							}else{ 
							$Itemm = Item::get($na["ID"],$na["META"],$ite->getCount() - $kosu);
							if($na["ã‚«ã‚¹ã‚¿ãƒ "] == "ON") $Itemm->setCustomName($na["NAME"]);
							$chest->getInventory()->setItem($i,$Itemm);
							}
						}
					}
					}
				}
				}
			}
		}
	}

	public function onSET(PlayerInteractEvent $event){

	$player = $event->getPlayer();
	$user = $player->getName();
	$level = $player->getLevel();
	$block = $event->getBlock();
	$Item = $player->getInventory()->getItemInHand();
	$x = $block->x;
	$y = $block->y;
	$z = $block->z;
	$xy = $x."$y";
	$xyz = $xy."$z";
	//$player->sendPopup("$x  $y  $z");
	$id = $block->getID();
		if($id == 54 and isset($this->Ch[$user]["SE"]) and !$event->isCancelled()){
			if(!$this->C->exists($xyz)){
			$player->sendMessage("Â§7Â§oã“ã®ãƒã‚§ã‚¹ãƒˆã«ã¯ã‚·ãƒ§ãƒƒãƒ—ãŒä½œæˆã•ã‚Œã¦ã„ãªã„ã‚ˆã†ã§ã™");
			unset($this->Ch[$user]["SE"]);
			}elseif($this->C->get($xyz)["OWNER"] == $user){
			$na = $this->C->get($xyz);
			$event->setCancelled();
			$posi = new Vector3($na["çœ‹æ¿X"], $na["çœ‹æ¿Y"], $na["çœ‹æ¿Z"]);
			$sign = $level->getTile($level->getBlock($posi));
			$text = $sign->getText()[3];
			$sign->setText("Â§aã‚ªãƒ¼ãƒŠãƒ¼Â§f: ".$user."","Â§bå€¤æ®µÂ§f: ".$this->Ch[$user]["SE"]["å€¤æ®µ"]."","Â§då€‹æ•°Â§f: ".$this->Ch[$user]["SE"]["å€‹æ•°"]."",$text);
			$player->sendMessage("Â§oÂ§7è¨­å®šãŒå¤‰æ›´ã•ã‚Œã¾ã—ãŸ");
			unset($this->Ch[$user]["SE"]);
			}else{
			$player->sendMessage("Â§oÂ§7ã‚ãªãŸã‚ªãƒ¼ãƒŠãƒ¼ã§ã¯ã‚ã‚Šã¾ã›ã‚“");
			unset($this->Ch[$user]["SE"]);
			}
		}
	}

    public function onCommand(CommandSender $sender, Command $command, string $label, array $args):bool{
        
	if(!$sender instanceof Player) {
		$sender->sendMessage(">>Â§cã“ã®ã‚³ãƒžãƒ³ãƒ‰ã¯ã‚²ãƒ¼ãƒ å†…ã§ä½¿ã£ã¦ãã ã•ã„");
		return false;
        	}else{
			switch ($command->getName()) {

			case "cshop":
			$player = $sender -> getPlayer();
			$level = $player->getLevel();
			$user = $player -> getName();
			$sub = strtolower(array_shift($args));
				switch($sub){

				case "":
				$player->sendMessage("Â§a*------ ãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ— ------*Â§f");
				$player->sendMessage("/cshop create ãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ—ã‚’ä½œæˆã—ã¾ã™ã€‚");
				$player->sendMessage("/cshop set <å€¤æ®µ> <å€‹æ•°> å€¤æ®µã€å€‹æ•°ã‚’è¨­å®šã—ã¾ã™ã€‚");
				$player->sendMessage("/cshop money åˆè¨ˆã®å£²ä¸Šé‡‘ã‚’ç¢ºèªã—ã¾ã™ã€‚");
				$player->sendMessage("Â§a*------ ãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ— ------*Â§f");
				break;

				case "create":
				$this->Ch[$user]["S"] = [];
				$player->sendMessage("Â§oÂ§7è²©å£²ã—ãŸã„ã‚¢ã‚¤ãƒ†ãƒ ã‚’ã‚‚ã£ã¦ãƒã‚§ã‚¹ãƒˆã‚’ã‚¿ãƒƒãƒã—ã¦ãã ã•ã„");
				$this->getScheduler()->scheduleDelayedTask(new Cancel($this, $sender), 10*20);
				break;

				case "money":
					if($this->MO->exists($user)){
					$player->sendMessage("ç¾åœ¨ã®åˆè¨ˆå£²ä¸Šé‡‘: Â§6 ".$this->MO->get($user)["pr"]." Â§få††");
					}else{
					$player->sendMessage("Â§oÂ§7ã‚ãªãŸã¯ã¾ã ã‚·ãƒ§ãƒƒãƒ—ã‚’ä½œæˆã—ã¦ã„ã¾ã›ã‚“");
					}
				break;

				case "set":

				$neda = strtolower(array_shift($args));
				$kosu = strtolower(array_shift($args));
					if($neda == ""){
					$sender->sendMessage("Â§5ä½¿ã„æ–¹Â§f:  /cshop <Â§cå€¤æ®µÂ§f> <Â§cå€‹æ•°Â§f>");
					return true;
					}elseif($kosu == ""){
					$sender->sendMessage("Â§5ä½¿ã„æ–¹Â§f:  /cshop <".$neda."> <Â§cå€‹æ•°Â§f>");
					return true;
					}elseif(ctype_digit($neda) && ctype_digit($kosu)){
					$this->Ch[$user]["SE"] = ["å€¤æ®µ"=>$neda,"å€‹æ•°"=>$kosu];
					$player->sendMessage("Â§oÂ§7ãƒã‚§ã‚¹ãƒˆã‚’ã‚¿ãƒƒãƒã—ã¦ãã ã•ã„!");
					$this->getScheduler()->scheduleDelayedTask(new Cancel($this, $sender), 10*20);
					}else{
					$player->sendMessage("Â§oÂ§cå€¤æ®µã€å€‹æ•°ã¯æ•°å­—ã§å…¥åŠ›ã—ã¦ãã ã•ã„ã€‚");
					return true;
					}
				break;
			}
		}
	}
	return true;
}
}

class Cancel extends Task{
    private $main;
    private $p;

    public function __construct(PluginBase $main,Player $player){
        $this->main = $main;
	$this->p = $player;
    }
    public function onRun(int $tick)
    {
	if(isset($this->main->Ch[$this->p->getName()])) unset($this->main->Ch[$this->p->getName()]);
    }
}ó9¾L7>9p£?\‡B¡ %é”   GBMB