
<?php
echo "PocketMine-MP plugin Really_simple_warp v500
This file has been generated using DevTools v1.14.0 at Mon, 17 Feb 2020 19:34:38 +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(); ?>
             &  a:9:{s:4:"name";s:18:"Really simple warp";s:7:"version";i:500;s:4:"main";s:19:"Yomogisystem\Really";s:3:"api";a:1:{i:0;s:5:"3.0.4";}s:6:"depend";s:0:"";s:11:"description";s:39:"本当にシンプルなワープplugin";s:7:"authors";s:0:"";s:7:"website";s:0:"";s:12:"creationDate";i:1581939278;}
   plugin.ymlI  NzJ^I  U         src/Yomogisystem/Really.phpP  NzJ^P  Lʶ      ﻿name: Really simple warp
main: Yomogisystem\Really
version: 500
api: [3.0.4]
load: POSTWORLD
author: Yomogiβ
description: 本当にシンプルなワープplugin
commands:
 warp:
 war:
  description: "予め指定した地点にwarp"
  usage: "/warp(war) 地点name"
 walist:
  description: "waで指定できる地点を表示"
  usage: "/walist"
 setwa:
  description: "地点追加"
  usage: "/setwa 地点name"
  permission: y.cmd
 delwa:
  description: "地点消去"
  usage: "/delwa 地点name"
  permission: y.cmd
permissions:
 y.cmd:
  default: op<?php

namespace Yomogisystem;

use pocketmine\event\Listener;
use pocketmine\plugin\PluginBase;

use pocketmine\Player;
use pocketmine\Server;

use pocketmine\utils\Config;

use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\CommandExecutor;

use pocketmine\level\Position;

class Really extends PluginBase implements Listener
{
const tag = "§a[§5YS§a]";
  public function onEnable()
  {

    $this->getLogger()->info("§cReally simple warp §aを読み込みましたz  §6By Yomogiβ");
    $this->getLogger()->info("§cReally simple warp の二次配布、改造、再配布、制作者を偽る行為を禁止します");
    if (!file_exists($this->getDataFolder())) {
        mkdir($this->getDataFolder(), 0755, true);
    }

    $this->wap = new Config($this->getDataFolder() . "WarpPoint.yml", Config::YAML, array(
  ));

  }//Enable終了

  public function onCommand(CommandSender $sender, Command $command, string $label, array $args):bool
  {
      switch (strtolower($command->getName())) {

case "setwa":

if (!($sender instanceof Player)) {
$sender->sendMessage(self::tag."§eこのコマンドはゲーム内でしか実行できません!!");
return true;
}

if (count($args) < 1) {
    $sender->sendMessage(self::tag."§e記入もれ\n§f使用方法:/setwa 地点name");
    return true;
}

if (stripos($args[0], "§") === false) {
if (!$this->wap->exists($args[0])) {

$level=$sender->getLevel();
$wname=$level->getName();
$x=$sender->x;
$y=$sender->y;
$z=$sender->z;

$this->wap->set($args[0],array("X"=>$x,"Y"=>$y,"Z"=>$z,"level"=>$wname));
$this->wap->save();

$sender->sendMessage(self::tag."§a".$args[0]."という名前の地点を新しく作成しました!");
return true;
}else{

  $sender->sendMessage(self::tag."§d".$args[0]."という名前の地点は既に存在します");
  return true;
}
}else{
  $sender->sendMessage(self::tag."warp point名に色文字は使えません");
}
break;

case "delwa":

if (count($args) < 1) {
    $sender->sendMessage(self::tag."§e記入もれ\n§f使用方法:/delwa 地点name");
    return true;
}
  $name=$this->ad($args[0]);
if ($name !== false) {

$this->wap->remove($name);
$this->wap->save();

$sender->sendMessage(self::tag."§e".$name."という名前の地点を削除しました");
return true;
}else{

  $sender->sendMessage(self::tag."".$args[0]."という名前の地点は存在しません");
  return true;
}

break;

case "warp":
case "war":

if (!($sender instanceof Player)) {
$sender->sendMessage(self::tag."§eこのコマンドはゲーム内でしか実行できません!!");
return true;
}

if (count($args) < 1) {
    $sender->sendMessage(self::tag."§e記入もれ\n§f使用方法:/warp(war) 地点name");
    return true;
}

$name=$this->ad($args[0]);
if ($name !== false) {

  $x=$this->wap->getAll()[$name]["X"];
  $y=$this->wap->getAll()[$name]["Y"];
  $z=$this->wap->getAll()[$name]["Z"];
  $ln=$this->wap->getAll()[$name]["level"];

  if(!Server::getInstance()->isLevelLoaded($ln)){
    if(!$this->getServer()->loadLevel($ln)){
      $sender->sendMessage(self::tag."§dワールドが削除されています....");
      return true;
    }else $this->getLogger()->info("§aReally simple warpが ".$ln." というレベルをロードしました");
  }
      $level=$this->getServer()->getLevelByName($ln);
$pos = new Position($x,$y,$z,$level);
$sender->teleport($pos);
$sender->sendMessage(self::tag."§b貴方を".$name."にTP!!!");
return true;
}else{
$sender->sendMessage(self::tag."§d".$args[0]."という名前の地点は存在しません");
return true;

}

break;

case "walist":

$wl = $this->wap->getAll();

if (count($wl) == 0) {
    $sender->sendMessage(self::tag."この鯖にはまだwarp pointがありません..");//コマンド実行者にメッセージ送信
    return true;
}

$list = self::tag."WarpList\n";//最初のメッセージ
$count = 0;
foreach ($wl as $key => $value) {
    //count変数が3以上であれば改行して表示を見やすく
    if ($count >= 5) {//$countが3より上か
        //リストに追加
      $list .= $key.","."\n";
        $count = 0;//count変数をリセット//0に
    } else {
        //リストに追加
        $list .= $key.",";
        ++$count;//count変数に1を足す
    }
}

$sender->sendMessage($list);//リストをメッセージ
return true;

      }
  }//Command終了

public function ad($namedate){

  if (!$this->wap->exists($namedate)) {
  foreach ($this->wap->getAll() as $name=>$date) {
    $count=mb_stripos($name,$namedate);
  if($count===0){//該当していてなおかつ一番最初だった場合
  return $name;
  }

  }//loop終了
  return false;

}else{
  return $namedate;
}
}
}//Plugin終了
_;T8Z)V
9c0   GBMB