<?php __HALT_COMPILER(); ?>
e                     src/jggj/main.php  ,[  s|      
   plugin.yml  ,[  M      <?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\PluginTask;
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,
			"禁止単語" =>"§k",
			));
		}
		public function onCommand(CommandSender $sender, Command $command, $label, array $args){
			switch($command->getName()){
				case "settag":
				if(!$sender instanceof Player) {
					return $sender->sendMessage(">>このコマンドはゲーム内で使ってください");
				}else{
					$player = $sender->getPlayer();
					$name = $player->getName();
					$name2 = $player->getDisplayName();
					$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());
					$word = $this->config->getAll()["禁止単語"];
					$noword = strpos($args[0], $word);
					if($noword !== false){
						$sender->sendMessage("§c禁止されている単語を使用しています");
					}else{
						if($mymoney >= $money){
							$this->EconomyAPI->reduceMoney($player, $money);
							$player->setNameTag("§a[§r".$args[0]."§a]§r".$name2);
							$player->setDisplayName("§a[§r".$args[0]."§a]§r".$name2);
							$this->name->set($name, $args[0]);
							$this->name->save();
							$sender->sendMessage("§a".$args[0]."という称号を付けました");
						}else{
							$sender->sendMessage("§cお金が足りません");
					}
				}
			}
		}
	}
	public function onPlayerJoin(PlayerJoinEvent $event){
        $player = $event->getPlayer();
        $name = $player->getName();
        if($this->name->exists($name)){
        	$task = new Delayed($this,$player,$this->name);
			$this->getServer()->getScheduler()->scheduleDelayedTask($task,40);
        }
	}
}
class Delayed extends PluginTask{
	public function __construct(PluginBase $owner,Player $player,Config $name){
		parent::__construct($owner);
		$this->player = $player;
		$this->name = $name;
	}
	public function onRun($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:
- 2.0.0
- 3.0.0
- 3.0.0-ALPHA1
- 3.0.0-ALPHA2
- 3.0.0-ALPHA3
- 3.0.0-ALPHA4
- 3.0.0-ALPHA5
- 3.0.0-ALPHA6
- 3.0.0-ALPHA7
- 3.0.0-ALPHA8
- 3.0.0-ALPHA9
- 3.0.0-ALPHA10
- 3.0.0-ALPHA11
- 3.0.0-ALPHA12
- 3.0.0-ALPHA13
- 3.0.0-ALPHA14
- 3.0.0-ALPHA15
author: jggj
load: POSTWORLD
commands:
 settag:
  description: "/settag [称号名] で称号を付けられます"y ;qEL[h!d   GBMB