
<?php
echo "PocketMine-MP plugin WChestShop v2.0.0
This file has been generated using DevTools v1.13.0 at Tue, 04 Dec 2018 20:59:29 +1030
----------------
";

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:"2.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:1543919369;}
   plugin.yml³   	W\³   ¹.¢.¶         src/WChestShop/Main.php,2  	W\,2  Í™ig¶      name: WChestShop
main: WChestShop\Main
version: 2.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 metowa1227\MoneySystemAPI\MoneySystemAPI;
use pocketmine\event\Event;
use pocketmine\entity\Entity;
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\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() . "money.yml", Config::YAML);
$this->Ch = [];

}

public function onA(PlayerInteractEvent $event){

$player = $event->getPlayer();
$user = $player->getName();
$level = $player->getLevel();
$block = $event->getBlock();
$x = $block->x;
$y = $block->y;
$z = $block->z;
$xy = $x."$y";
$xyz = $xy."$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ãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ—ãŒæ¶ˆåŽ»ã•ã‚Œã¾ã—ãŸã€‚");
}else{
$player->sendMessage("Â§oÂ§cè²´æ–¹ã¯ã‚ªãƒ¼ãƒŠãƒ¼ã§ã¯ãªã„ã®ã§ç ´å£ŠãŒå‡ºæ¥ã¾ã›ã‚“ã€‚");
$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ãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ—ãŒæ¶ˆåŽ»ã•ã‚Œã¾ã—ãŸã€‚");
}else{
$player->sendMessage("Â§oÂ§cè²´æ–¹ã¯ã‚ªãƒ¼ãƒŠãƒ¼ã§ã¯ãªã„ã®ã§ç ´å£ŠãŒå‡ºæ¥ã¾ã›ã‚“ã€‚");
$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";
//$player->sendPopup("$x  $y  $z");
$id = $block->getID();
if($id == 54 and isset($this->Ch["S"][$user]) and !$event->isCancelled()){
if($this->C->exists($xyz)){
$player->sendMessage("Â§cÂ§oã™ã§ã«ãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ—ãŒä½œæˆã•ã‚Œã¦ã„ã¾ã™ã€‚");
unset($this->Ch["S"][$user]);
}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";
if($Item->hasCustomName()){
$this->C->set($xyz,["OWNER"=>$user,"ãƒã‚§ã‚¹ãƒˆX"=>$x,"ãƒã‚§ã‚¹ãƒˆY"=>$y,"ãƒã‚§ã‚¹ãƒˆZ"=>$z,"çœ‹æ¿X"=>$ax,"çœ‹æ¿Y"=>$ay,"çœ‹æ¿Z"=>$az,"ID"=>$Item->getId(),"META"=>$Item->getdamage(),"ã‚«ã‚¹ã‚¿ãƒ "=>"ON","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(),"ã‚«ã‚¹ã‚¿ãƒ "=>"ON","NAME"=>$Item->getName()]);
$this->C->save();
$this->CH->save();
}else{
$this->C->set($xyz,["OWNER"=>$user,"ãƒã‚§ã‚¹ãƒˆX"=>$x,"ãƒã‚§ã‚¹ãƒˆY"=>$y,"ãƒã‚§ã‚¹ãƒˆZ"=>$z,"çœ‹æ¿X"=>$ax,"çœ‹æ¿Y"=>$ay,"çœ‹æ¿Z"=>$az,"ID"=>$Item->getId(),"META"=>$Item->getdamage(),"ã‚«ã‚¹ã‚¿ãƒ "=>"OFF","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(),"ã‚«ã‚¹ã‚¿ãƒ "=>"OFF","NAME"=>$Item->getName()]);
$this->C->save();
$this->CH->save();
}
if(!$this->C->exists($xyz)){
$this->MO->set($user,0);
$this->MO->save();
}
$sign->setText("Â§aã‚ªãƒ¼ãƒŠãƒ¼Â§f: ".$user."","Â§bå€¤æ®µÂ§f: 0","Â§5å€‹æ•°Â§f: 0","Â§6ã‚¢ã‚¤ãƒ†ãƒ Â§f: ".$Item->getName()."");
$player->sendMessage("Â§oÂ§aãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ—ãŒä½œæˆã•ã‚Œã¾ã—ãŸ!");
$abc++;
unset($this->Ch["S"][$user]);
}
}
}
}
if($abc == 0){
$event->setCancelled();
$player->sendMessage("Â§oÂ§cè¿‘ãã«çœ‹æ¿ã‚’è¨­ç½®ã—ã¦ãã ã•ã„ã€‚");
unset($this->Ch["S"][$user]);
return false;
}
}
}
}

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Â§oã‚ªãƒ¼ãƒŠãƒ¼ã¯è³¼å…¥ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã€‚");
}else{
$money = MoneySystemAPI::getInstance()->check($player);

$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è²´æ–¹ã®ãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ—ã®åœ¨åº«ãŒã‚ã‚Šã¾ã›ã‚“!è³¼å…¥è€…: $user"); 
}

}else{
if($na["ã‚«ã‚¹ã‚¿ãƒ "] == "ON"){
$player->getInventory()->addItem(Item::get($na["ID"],$na["META"],$kosu)->setCustomName($na["NAME"]));
}elseif($na["ã‚«ã‚¹ã‚¿ãƒ "] == "OFF"){
$player->getInventory()->addItem(Item::get($na["ID"],$na["META"],$kosu));
}
$player->sendPopup("Â§oÂ§aè³¼å…¥ã—ã¾ã—ãŸ!"); 
MoneySystemAPI::getInstance()->takeMoney($user,$neda);
MoneySystemAPI::getInstance()->addMoney($owner,$neda);
$this->MO->set($owner,$this->MO->get($owner) + $neda);
$this->MO->save();
if (($p = $this->getServer()->getPlayer($owner)) !== null) { 
$p->sendPopup("Â§oãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ—ãŒåˆ©ç”¨ã•ã‚Œã¾ã—ãŸ! (+Â§a $neda Â§få††)è³¼å…¥è€…: $user"); 
}
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{ 
if($na["ã‚«ã‚¹ã‚¿ãƒ "] == "ON"){//
$chest->getInventory()->setItem($i, Item::get($na["ID"], $na["META"], $ite->getCount() - $kosu)->setCustomName($na["NAME"])); 
}else{if($na["ã‚«ã‚¹ã‚¿ãƒ "] == "OFF"){//
$chest->getInventory()->setItem($i, Item::get($na["ID"], $na["META"], $ite->getCount() - $kosu)); 

}
}
}
}
}
}
}
}
}
}
}

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["SE"][$user]) and !$event->isCancelled()){
if(!$this->C->exists($xyz)){
$player->sendPopup("Â§cÂ§oãƒã‚§ã‚¹ãƒˆã‚·ãƒ§ãƒƒãƒ—ãŒä½œæˆã•ã‚Œã¦ã„ãªã„ãƒã‚§ã‚¹ãƒˆã§ã™ã€‚");
unset($this->Ch["SE"][$user]);
}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["SE"][$user]["å€¤æ®µ"]."","Â§5å€‹æ•°Â§f: ".$this->Ch["SE"][$user]["å€‹æ•°"]."",$text);
$player->sendMessage("Â§oÂ§aè¨­å®šãŒå¤‰æ›´ã•ã‚Œã¾ã—ãŸã€‚");
unset($this->Ch["SE"][$user]);
}else{
$player->sendMessage("Â§oÂ§cè²´æ–¹ã¯ã‚ªãƒ¼ãƒŠãƒ¼ã§ã¯ã‚ã‚Šã¾ã›ã‚“ã€‚");
unset($this->Ch["SE"][$user]);
}
}
}

    public function onCommand(CommandSender $sender, Command $command, string $label, array $args):bool{
        
	if($sender->getName() === "") {
	$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["S"][$user] = [];
	$player->sendMessage("Â§oè²©å£²ã—ãŸã„ã‚¢ã‚¤ãƒ†ãƒ ã‚’ã‚‚ã£ã¦ãƒã‚§ã‚¹ãƒˆã‚’ã‚¿ãƒƒãƒã—ã¦ãã ã•ã„!");
	break;

	case "money":
	if($this->MO->exists($user)){
	$player->sendMessage("ç¾åœ¨ã®åˆè¨ˆå£²ä¸Šé‡‘: Â§6 ".$this->MO->get($user)." Â§få††");
	}else{
	$player->sendMessage("Â§oÂ§cã‚ãªãŸã¯ã‚·ãƒ§ãƒƒãƒ—ã‚’ä½œæˆã—ã¦ã„ã¾ã›ã‚“ã€‚");
	}
	break;

	case "set":

	$neda = strtolower(array_shift($args));
	$kosu = strtolower(array_shift($args));
	if($neda == ""){
	$sender->sendMessage("Â§5ä½¿ã„æ–¹Â§f:  /cshop <Â§cå€¤æ®µÂ§f> <Â§cå€‹æ•°Â§f>");
	}elseif($kosu == ""){
	$sender->sendMessage("Â§5ä½¿ã„æ–¹Â§f:  /cshop <".$neda."> <Â§cå€‹æ•°Â§f>");
	}elseif(ctype_digit($neda) && ctype_digit($kosu)){
	$this->Ch["SE"][$user] = ["å€¤æ®µ"=>$neda,"å€‹æ•°"=>$kosu];
	$player->sendMessage("Â§oãƒã‚§ã‚¹ãƒˆã‚’ã‚¿ãƒƒãƒã—ã¦ãã ã•ã„!");
	}else{
	$player->sendMessage("Â§oÂ§cå€¤æ®µã€å€‹æ•°ã¯æ•°å­—ã§å…¥åŠ›ã—ã¦ãã ã•ã„ã€‚");
	}
	break;
	}
	}
	}
	return true;
}
}¤ÝÉU$Cîâ¯8ó¶¶´8¤†>Ð†   GBMB