
<?php
echo "PocketMine-MP plugin SlimeMenu v1.0.0
This file has been generated using DevTools v1.13.0 at Tue, 26 Mar 2019 19:45:00 +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(); ?>
f                a:9:{s:4:"name";s:9:"SlimeMenu";s:7:"version";s:5:"1.0.0";s:4:"main";s:13:"slimexyz\Main";s:3:"api";a:1:{i:0;s:5:"3.0.0";}s:6:"depend";s:0:"";s:11:"description";s:9:"Menu Form";s:7:"authors";s:0:"";s:7:"website";s:0:"";s:12:"creationDate";i:1553597100;}   src/slimexyz/Main.php  \  wf      
   plugin.ymlg   \g   '!Q      <?php

namespace slimexyz;

use pocketmine\plugin\PluginBase;

use pocketmine\Player;
use pocketmine\Server;

use pocketmine\item\Item;

use pocketmine\utils\Config;

use pocketmine\event\Listener;
use pocketmine\event\player\ PlayerInteractEvent;
use pocketmine\event\player\PlayerJoinEvent;

use pocketmine\event\server\DataPacketReceiveEvent;

use pocketmine\network\mcpe\protocol\ModalFormRequestPacket;

class Main extends PluginBase implements Listener{
	
	public const SLIME = "§l§d【§3slimexyz§d】§r";
	
	public function onEnable(){
		$this->bonus = new Config($this->getDataFolder(). "bonus.yml" ,Config::YAML);
		$this->button = new Config($this->getDataFolder(). "Buttons.yml" ,Config::YAML);
		$this->config = new Config($this->getDataFolder(). "config.yml" ,Config::YAML,[
			'お知らせ' => 'お知らせ',
			'id' => 388,
			'meta' => 0,
			'amount' => 1,
			]);
		
		date_default_timezone_set('Asia/Tokyo');
		
		$this->getServer()->getPluginManager()->registerEvents($this,$this);
	}

	public function onJoin(PlayerJoinEvent $event){
		$player = $event->getPlayer();
		$name = $player->getName();
		if(!$this->bonus->exists($name)){
			$this->bonus->set($name, 0);
			$this->bonus->save();
		}
		
		$item = Item::get(345, 0, 1);
		if(!$player->getInventory()->contains($item)){
			if($player->getInventory()->canAddItem($item)){
				$item->setCustomName("§r§l§3SlimeHome");
				$player->getInventory()->addItem($item);
			}
		}
	}
	
	public function onTap(PlayerInteractEvent $event){
		$player = $event->getPlayer();
		$name = $player->getName();
		$id = $event->getItem()->getId();
		if($id === 345){
			$buttons[] = [
			'text' => "ログインボーナス", 
			'image' => [ 'type' => 'path', 'data' => "" ] 
			]; 
			$buttons[] = [
			'text' => "お知らせ", 
			'image' => [ 'type' => 'path', 'data' => "" ] 
			]; 
			$this->sendForm($player,"§l§3SlimeHome","",$buttons,13579);
			$this->info[$name] = "form";
		}
	}

//ログインボーナス

	public function giveBonus($player){
		$day = date("ymd");
		$name = $player->getName();
		if($this->bonus->exists($name)){
			if($this->bonus->get($name) === $day){
				$player->sendMessage(self::SLIME."§cログインボーナスを受け取り済です");
			}else{
				$item = Item::get($this->config->get('id'),$this->config->get('meta'),$this->config->get('amount'));
				if($player->getInventory()->canAddItem($item)){
					$player->getInventory()->addItem($item);
					$player->sendMessage(self::SLIME."§bログインボーナス｢".$item->getName()."｣".$this->config->get('amount')."個を受け取りました！");
					$this->bonus->set($name, $day);
					$this->bonus->save();
				}else{
					$player->sendMessage(self::SLIME."§cアイテムがいっぱいです！");
				}
			}
		}
	}
	
	public function onReceive(DataPacketReceiveEvent $event){
		$player = $event->getPlayer();
		$pk = $event->getPacket();
		$name = $player->getName();
		if($pk->getName() == "ModalFormResponsePacket"){
			$data = $pk->formData;
			$result = json_decode($data);
			if($data == "null\n"){
			
			}else{
			
				switch($pk->formId){
				
				case 13579:
				
					if($data == 0){//ログボ
						$this->giveBonus($player);
						
				break;
						
					}elseif($data == 1){//お知らせ
						$new = $this->config->get('お知らせ');
						$buttons[] = [
						'text' => '閉じる'
						];
						$this->sendForm($player,"お知らせ","\n{$new}\n\n",$buttons,135792);
						$this->info[$name] = "form";
						break;
					
					}
				}
			
			return true;
			}
		}
	}
	
	public function sendForm(Player $player, $title, $come, $buttons, $id) {
		$pk = new ModalFormRequestPacket(); 
		$pk->formId = $id;
		$this->pdata[$pk->formId] = $player;
		$data = [ 
		'type'    => 'form',
		'title'   => $title, 
		'content' => $come,
		'buttons' => $buttons 
		]; 
		$pk->formData = json_encode( $data, JSON_PRETTY_PRINT | JSON_BIGINT_AS_STRING | JSON_UNESCAPED_UNICODE );
		$player->dataPacket($pk);
		$this->lastFormData[$player->getName()] = $data;
	}

	public function sendWindow(Player $player, $data, int $id){
		$pk = new ModalFormRequestPacket();
		$pk->formId = $id;
		$pk->formData = json_encode($data, JSON_PRETTY_PRINT | JSON_BIGINT_AS_STRING | JSON_UNESCAPED_UNICODE);
		$player->dataPacket($pk);
	}
}name: SlimeMenu
api: [3.0.0]
main: slimexyz\Main
version: 1.0.0
description: Menu Form
author: slimexyzj9(%xZԭ/d%   GBMB