<?php __HALT_COMPILER(); ?>
j                     src/ryota3422/main.php  â\  S•üX¶      
   plugin.ymlm  â\m  ŽDëL¶      <?php


namespace ryota3422;

use pocketmine\plugin\PluginBase;
use pocketmine\Server;
use pocketmine\utils\Config;
use pocketmine\event\Listener;

class Main extends PluginBase implements Listener{

	public function onEnable(){

		$this->getLogger()->info("Â§a[DatabackupPlugin]ã‚’èª­ã¿è¾¼ã¿ã¾ã—ãŸã€‚è£½ä½œryota3422");
		$this->getLogger()->info("Â§aäºŒæ¬¡é…å¸ƒåŠã³æ”¹é€ ã¯ç¦æ­¢ã§ã™ã€‚è‡ªä½œã¨ã—ã¦ä»–ã«é…å¸ƒã™ã‚‹ã®ã‚‚ç¦æ­¢ã§ã™ã€‚");
		if(!file_exists($this->getDataFolder())){
			mkdir($this->getDataFolder(), 0744, true);

		}
        
        $filepath=$this->getDataFolder();
        $configfile=str_replace('/', '', $filepath);
        $configfile .=("config.yml");
        if(!file_exists($configfile)){//ã‚³ãƒ³ãƒ•ã‚£ã‚°ä¸Šæ›¸ãé˜²æ­¢
		   $this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML,
	        array(
	        'ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—æ©Ÿèƒ½' => 'on',
            'ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—é »åº¦' => '30',
            'ç¾åœ¨ã®å†èµ·å›žæ•°' => '0'
	        ));
		}
		   

	    $this->getLogger()->info("Â§a[DatabackupPlugin]ã‚³ãƒ³ãƒ•ã‚£ã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä½œæˆã—ã¾ã—ãŸã€‚è¨­å®šã¯ãã“ã§è¡Œã£ã¦ãã ã•ã„ã€‚");
	}
	public function onDisable(){
		if($this->config->get("ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—æ©Ÿèƒ½") =="on"){
		$recountold = $this->config->get("ç¾åœ¨ã®å†èµ·å›žæ•°");
		  if(is_numeric($recountold)){
		  $recountnew = $recountold+1;
		  $this->config->set("ç¾åœ¨ã®å†èµ·å›žæ•°", $recountnew);
		     if($recountnew >= $this->config->get("ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—é »åº¦")){
			 $this->getLogger()->info("Â§a[DatabackupPlugin]ã‚µãƒ¼ãƒãƒ¼ãƒ‡ãƒ¼ã‚¿ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã‚’é–‹å§‹ã—ã¾ã™");

//ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã®ä¸€é€£ã®å‡¦ç†é–‹å§‹ãƒ»ãƒ»
$backupfilepath=$this->getDataFolder();//ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—é–¢é€£ãƒ‘ã‚¹å–å¾—ç”¨
//ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—å…ˆãƒ•ã‚©ãƒ«ãƒ€å–å¾—é–‹å§‹
$backuppath=str_replace('/', '',$backupfilepath);
$backupname=dirname($backuppath,3);
$backup=$backupname;
$backup .=("\[ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—]\buckup");
$date=date('Yå¹´mæœˆdæ—¥hæ™‚iåˆ†sç§’');
$backup .=$date;//ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ãƒ•ã‚©ãƒ«ãƒ€åå‰è¨˜å…¥
//ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—å…ƒãƒ•ã‚©ãƒ«ãƒ€å–å¾—å®Œäº†

//ã‚³ãƒ”ãƒ¼å…ƒå–å¾—é–‹å§‹
$copyfile=dirname($backuppath,2);
//ã‚³ãƒ”ãƒ¼å…ƒå–å¾—å®Œäº†

             //copystart
$allfolder=$backupname;
$allfolder .=("\[ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—]");
if(!is_dir($allfolder)){//ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã¾ã¨ã‚ãƒ•ã‚©ãƒ«ãƒ€ä½œæˆ
mkdir($allfolder);
}

function dir_copy($copyfile, $backup)
{
  if (!is_dir($backup)) {
    mkdir($backup);
  }
 
  if (is_dir($copyfile)) {
    if ($dh = opendir($copyfile)) {
      while (($file = readdir($dh)) !== false) {
        if ($file == "." || $file == "..") {
          continue;
        }
        if (is_dir($copyfile . "/" . $file)) {
          dir_copy($copyfile . "/" . $file, $backup . "/" . $file);
        }
        else {
          copy($copyfile . "/" . $file, $backup . "/" . $file);
        }
      }
      closedir($dh);
    }
  }
  return true;
}

dir_copy($copyfile,$backup);
             //copyend
            $syokicount=("0");  
			 $this->config->set("ç¾åœ¨ã®å†èµ·å›žæ•°", $syokicount);
			 $this->config->save();
			 $this->getLogger()->info("Â§a[DatabackupPlugin]ã‚µãƒ¼ãƒãƒ¼ãƒ‡ãƒ¼ã‚¿ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ãŒå®Œäº†ã—ã¾ã—ãŸ");
//ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã®ä¸€é€£ã®å‡¦ç†å®Œäº†ãƒ»ãƒ»
		     }else{
			 $this->config->save();
			}
		  }else{
		  	$this->getLogger()->info("ã‚³ãƒ³ãƒ•ã‚£ã‚°ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—é »åº¦ã®æ¬„ãŒæ•°å­—ã§ã¯ã‚ã‚Šã¾ã›ã‚“ã€‚ãªã®ã§0ã‚’ã‚»ãƒƒãƒˆã—ã¾ã™ã€‚");
		  	$this->config->set("0");
		  	$this->config->save();
		  }
         }
	  }

	    
}






name: DataBackup
main: ryota3422\main
author: ryota3422
version: 1.0.0
api: [3.0.0,3.0.7,4.0.0]
load: POSTWORLD
description: ã‚µãƒ¼ãƒãƒ¼ã®ãƒ¯ãƒ¼ãƒ«ãƒ‰ãƒ‡ãƒ¼ã‚¿ãŠã‚ˆã³ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ã¨ãã®ãƒ‡ãƒ¼ã‚¿ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã‚’å–ã‚Šã¾ã™ã€‚ã‚µãƒ¼ãƒãƒ¼ã‚½ãƒ•ãƒˆãŒå…¥ã£ã¦ã„ã‚‹ãƒ•ã‚©ãƒ«ãƒ€ã®1ã¤å‰ã«ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚
website: ~
commands:5ûÆs?Ì2ž:`3fÊ¹+:   GBMB