<?php __HALT_COMPILER(); ?>
e                     src/jggj/main.php  [   ~      
   plugin.yml   [   &A5      <?php

namespace jggj;

use pocketmine\Player;
use pocketmine\Server;
use pocketmine\utils\Config;
use pocketmine\event\Listener;
use pocketmine\plugin\PluginBase;
use pocketmine\command\Command;
use pocketmine\scheduler\Task;
use onebone\economyapi\EconomyAPI;
use pocketmine\command\CommandSender;
use pocketmine\event\player\PlayerJoinEvent;
use pocketmine\command\ConsoleCommandSender;

class main extends PluginBase implements Listener{
    public function onEnable(){ 
    	$this->getServer()->getPluginManager()->registerEvents($this,$this);
		$this->getLogger()->info("§aプラグインを読み込みました。");
		$this->getLogger()->info("§a二次配布は禁止です。§bby:jggj");
		$this->EconomyAPI = $this->getServer()->getPluginManager()->getPlugin("EconomyAPI");
		if($this->EconomyAPI === null){
			$this->getLogger()->info("§cError:EconomyAPIが見つかりません");
			$this->getServer()->shutdown();
		}
		if(!file_exists($this->getDataFolder())){
			mkdir($this->getDataFolder(), 0744, true);
		}
		$this->name = new Config($this->getDataFolder()."Name.yml",Config::YAML);
		$this->config = new Config($this->getDataFolder() . "Config.yml", Config::YAML,
			array(
			"1文字の金額" => 500,
			"§の金額" => 700,
			));
		}
		public function onCommand(CommandSender $sender, Command $command, string $label, array $args) : bool{
			switch($command->getName()){
				case "settag":
				if(!$sender instanceof Player){
					$sender->sendMessage(">>このコマンドはゲーム内で使ってください");
					return false;
				}else{
					$player = $sender->getPlayer();
					$name = $player->getName();
					if(!isset($args[0])){
						$sender->sendMessage("§a/settag 称号名");	
						return false;
					}else{
						if($args[0] === ""){
							$sender->sendMessage("称号名を記入してください");
						}else{
							$secmoney = $this->config->get("§の金額");
							$section = mb_substr_count($args[0], "§");
							$kingaku = $section*$secmoney;
							$onemoney = $this->config->get("1文字の金額");
							$syo = mb_strlen($args[0]);
							$syosec = $syo-$section;
							$money = $syosec*$onemoney+$kingaku;
							$mymoney = $this->EconomyAPI->myMoney($player->getName());
							if($mymoney >= $money){
								$this->EconomyAPI->reduceMoney($player, $money);
								$player->setNameTag("§a[§r".$args[0]."§a]§r".$name);
								$player->setDisplayName("§a[§r".$args[0]."§a]§r".$name);
								$this->name->set($name, $args[0]);
								$this->name->save();
								$sender->sendMessage("§a".$args[0]."という称号を付けました");
							}else{
								$sender->sendMessage("§cお金が足りません");
						}
					}
				}
			}
			return true;
		}
	}
	public function onPlayerJoin(PlayerJoinEvent $event){
        $player = $event->getPlayer();
        $name = $player->getName();
        if($this->name->exists($name)){
        	$task = new Delayed($player,$this->name);
			$this->getScheduler()->scheduleDelayedTask($task,40);
        }
	}
}
class Delayed extends Task{
	public function __construct(Player $player,Config $name){
		$this->player = $player;
		$this->name = $name;
	}
	public function onRun(int$tick){
		$player = $this->player;
		$name = $player->getName();
		$name1 = $player->getNameTag();
		$name2 = $player->getDisplayName();
		$player->setNameTag("§a[§f".$this->name->get($name)."§a]§r".$name1);
		$player->setDisplayName("§a[§f".$this->name->get($name)."§a]§r".$name2);
	}
}  	
		
		
		name: CommandNameChanger
main: jggj\main
version: 1.0.0
api: [3.0.0-ALPHA8,3.0.0,4.0.0]
author: jggj
load: POSTWORLD
commands:
 settag:
  description: "/settag [称号名]"o`w\r|TϮ   GBMB