<?php echo "Altay plugin Really_simple_warp v400\nThis file has been generated using Turanic at Tue, 13 Mar 2018 23:12:31 +1030.\n----------------\n";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";s:3:"400";s:4:"main";s:19:"Yomogisystem\Really";s:3:"api";a:1:{i:0;s:5:"3.0.0";}s:6:"depend";a:0:{}s:11:"description";s:39:"本当にシンプルなワープplugin";s:7:"authors";a:1:{i:0;s:8:"Yomogiβ";}s:7:"website";s:0:"";s:12:"creationDate";i:1520944951;}
   plugin.ymlB  7ǧZB  $݁         src/Yomogisystem/Really.php  7ǧZ  䉶      ﻿name: Really simple warp
main: Yomogisystem\Really
version: 400
api: [3.0.0]
load: POSTWORLD
author: Yomogiβ
description: 本当にシンプルなワープplugin
commands:
 warp:
  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\utils\TextFormat;
use pocketmine\Server;
use pocketmine\event\Listener;
use pocketmine\plugin\PluginBase;
use pocketmine\Player;//ここまでは流れ作業として(絶対いるって意味)

use pocketmine\utils\Config;//config作るなら絶対

use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\CommandExecutor;//コマンド使うなら絶対

use pocketmine\level\Level;
use pocketmine\block\Block;
use pocketmine\level\Position;
use pocketmine\math\Vector3;//level関連のuse


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 の二次配布、再配布、制作者を偽る行為を禁止します");
$this->getLogger()->info("Yomogi systemという文字は消さないでいただけるとありがたいです");
    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 (count($args) < 1) {
    $sender->sendMessage(self::tag."§e記入もれ\n§f使用方法:/setwa 地点name");
    return true;
}

if (!($sender instanceof Player)) {
$sender->sendMessage(self::tag."§eこのコマンドはゲーム内でしか実行できません!!");
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 (count($args) < 1) {
    $sender->sendMessage(self::tag."§e記入もれ\n§f使用方法:/wa(war) 地点name");
    return true;
}
if (!($sender instanceof Player)) {
$sender->sendMessage(self::tag."§eこのコマンドはゲーム内でしか実行できません!!");
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)){//レベルオブジェクトかを条件分岐
      $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."§cエラー!!ワールド".$ln."はなんらかの原因で存在しません");
  return true;
}

}else{
$sender->sendMessage(self::tag."§d".$args[0]."という名前の地点は存在しません");
return true;

}

break;

case "walist"://ここれへんはほぼ全てotuからの引用です。list系はかなりむずいので助かります！ありがとうございます

$wl = $this->wap->getAll();//otuリストを配列で取得

if (count($wl) == 0) {//otuリストの配列の数を取得し配列があるかをチェック
    $sender->sendMessage(self::tag."この鯖にはまだwarp pointがありません..");//コマンド実行者にメッセージ送信
    return true;
}

$list = self::tag."WarpList\n";//最初のメッセージ
$count = 0;
foreach ($wl as $key => $value) {//取得したotuリストの配列からキーと値を取得しループ
    //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終了
I2)   GBMB