
<?php
echo "PocketMine-MP plugin SocialDistance v1.0.0
This file has been generated using DevTools v1.13.0 at Thu, 23 Apr 2020 11:20:18 +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(); ?>
               a:9:{s:4:"name";s:14:"SocialDistance";s:7:"version";s:5:"1.0.0";s:4:"main";s:40:"Saisana299\socialdistance\SocialDistance";s:3:"api";a:1:{i:0;s:5:"3.0.0";}s:6:"depend";s:0:"";s:11:"description";s:9:"密です";s:7:"authors";s:0:"";s:7:"website";s:0:"";s:12:"creationDate";i:1587608418;}
   plugin.yml   c^   6f      /   src/Saisana299/socialdistance/EventListener.php	  c^	  Zi%      0   src/Saisana299/socialdistance/SocialDistance.phpA  c^A  $(a      ---
name: SocialDistance
main: Saisana299\socialdistance\SocialDistance
api:
- 3.0.0
version: 1.0.0
author: Saisana299
description: 密です
...<?php

declare(strict_types = 1);

namespace Saisana299\socialdistance;

use pocketmine\Player;
use pocketmine\event\Listener;
use pocketmine\event\player\PlayerMoveEvent;
use pocketmine\network\mcpe\protocol\LevelSoundEventPacket;
use pocketmine\event\entity\EntityDamageEvent;
use pocketmine\event\entity\EntityDamageByEntityEvent;
use pocketmine\level\particle\HugeExplodeSeedParticle;
use pocketmine\scheduler\ClosureTask;


class EventListener implements Listener {

	private $SocialDistance;

	public function __construct(SocialDistance $SocialDistance) {
		$this->SocialDistance = $SocialDistance;
	}

	public function onMove(PlayerMoveEvent $event){
    	$player = $event->getPlayer();
    	$name = $player->getName();

    	if (isset($this->interactCooldowns[$name]) && $this->interactCooldowns[$name] + 1 > microtime(true)) return;
    	$this->interactCooldowns[$name] = microtime(true);
    	if(isset($this->out[$name])) return;
    	$damage = $this->SocialDistance->config->get("damage");
    	$knockback = $this->SocialDistance->config->get("knockback");
    	$level = $player->getLevel();
    	$p = $level->getEntities();
    	foreach($p as $player2){
    		if($player2 instanceof Player && $player2 !== $player && $player2->distanceSquared($player) < 25){
    			$this->out[$name] = true; 
                $player->addTitle("§l§o§4密です", "Social Distance", 0, 20, 0);
                $this->SocialDistance->getScheduler()->scheduleDelayedTask(new ClosureTask(
                    function (int $currentTick) use ($player, $player2, $knockback, $damage): void{
                        if($player->isOnline()){
                            $level = $player->getLevel();
                            $pos = $player->asVector3();

                            $level->broadcastLevelSoundEvent($pos->asVector3(), LevelSoundEventPacket::SOUND_EXPLODE);
                            $level->addParticle(new HugeExplodeSeedParticle($pos->asVector3()));

                            $player->knockBack($player2, 0, $player->x - $player2->x, $player->z - $player2->z, $knockback);

                            if($damage > 0){
                                $ev = new EntityDamageByEntityEvent($player2, $player, EntityDamageEvent::CAUSE_ENTITY_ATTACK, $damage, [], 0.0);
                                $player->attack($ev);
                            }
                        }
                        unset($this->out[$player->getName()]);
                    }
                ), 10);
    		}
    	}
	}
}<?php

declare(strict_types = 1);

namespace Saisana299\socialdistance;

use pocketmine\plugin\PluginBase;
use pocketmine\utils\Config;


class SocialDistance extends PluginBase {

	public function onEnable() {
		$this->getServer()->getPluginManager()->registerEvents(new EventListener($this), $this);
		$this->getLogger()->info("§4密です");
		if(!file_exists($this->getDataFolder())) @mkdir($this->getDataFolder(), 0744, true);
		$this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML, 
			[
				"damage" => 0,
				"knockback" => 3.2
			]
		);
	}
}v&wN*   GBMB