mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-08-29 14:35:09 +00:00
Removed PLUGIN_PATH constant
This commit is contained in:
parent
ff6672ba85
commit
d39348929f
@ -198,7 +198,8 @@ namespace pocketmine {
|
|||||||
$opts = getopt("", ["data:", "plugins:", "no-wizard", "enable-ansi", "disable-ansi"]);
|
$opts = getopt("", ["data:", "plugins:", "no-wizard", "enable-ansi", "disable-ansi"]);
|
||||||
|
|
||||||
$dataPath = isset($opts["data"]) ? $opts["data"] . DIRECTORY_SEPARATOR : realpath(getcwd()) . DIRECTORY_SEPARATOR;
|
$dataPath = isset($opts["data"]) ? $opts["data"] . DIRECTORY_SEPARATOR : realpath(getcwd()) . DIRECTORY_SEPARATOR;
|
||||||
define('pocketmine\PLUGIN_PATH', isset($opts["plugins"]) ? $opts["plugins"] . DIRECTORY_SEPARATOR : realpath(getcwd()) . DIRECTORY_SEPARATOR . "plugins" . DIRECTORY_SEPARATOR);
|
$pluginPath = isset($opts["plugins"]) ? $opts["plugins"] . DIRECTORY_SEPARATOR : realpath(getcwd()) . DIRECTORY_SEPARATOR . "plugins" . DIRECTORY_SEPARATOR;
|
||||||
|
Filesystem::addCleanedPath($pluginPath, Filesystem::CLEAN_PATH_PLUGINS_PREFIX);
|
||||||
|
|
||||||
if(!file_exists($dataPath)){
|
if(!file_exists($dataPath)){
|
||||||
mkdir($dataPath, 0777, true);
|
mkdir($dataPath, 0777, true);
|
||||||
@ -243,7 +244,7 @@ namespace pocketmine {
|
|||||||
$autoloader = new \BaseClassLoader();
|
$autoloader = new \BaseClassLoader();
|
||||||
$autoloader->register(false);
|
$autoloader->register(false);
|
||||||
|
|
||||||
new Server($autoloader, $logger, $dataPath, \pocketmine\PLUGIN_PATH);
|
new Server($autoloader, $logger, $dataPath, $pluginPath);
|
||||||
|
|
||||||
$logger->info("Stopping other threads");
|
$logger->info("Stopping other threads");
|
||||||
|
|
||||||
|
@ -40,7 +40,9 @@ use function rtrim;
|
|||||||
use function scandir;
|
use function scandir;
|
||||||
use function str_replace;
|
use function str_replace;
|
||||||
use function stream_get_contents;
|
use function stream_get_contents;
|
||||||
|
use function strlen;
|
||||||
use function strpos;
|
use function strpos;
|
||||||
|
use function uasort;
|
||||||
use function unlink;
|
use function unlink;
|
||||||
use const DIRECTORY_SEPARATOR;
|
use const DIRECTORY_SEPARATOR;
|
||||||
use const LOCK_EX;
|
use const LOCK_EX;
|
||||||
@ -52,6 +54,13 @@ use const SCANDIR_SORT_NONE;
|
|||||||
final class Filesystem{
|
final class Filesystem{
|
||||||
/** @var resource[] */
|
/** @var resource[] */
|
||||||
private static $lockFileHandles = [];
|
private static $lockFileHandles = [];
|
||||||
|
/**
|
||||||
|
* @var string[]
|
||||||
|
* @phpstan-var array<string, string>
|
||||||
|
*/
|
||||||
|
private static $cleanedPaths = [
|
||||||
|
\pocketmine\PATH => self::CLEAN_PATH_SRC_PREFIX
|
||||||
|
];
|
||||||
|
|
||||||
public const CLEAN_PATH_SRC_PREFIX = "pmsrc";
|
public const CLEAN_PATH_SRC_PREFIX = "pmsrc";
|
||||||
public const CLEAN_PATH_PLUGINS_PREFIX = "plugins";
|
public const CLEAN_PATH_PLUGINS_PREFIX = "plugins";
|
||||||
@ -79,6 +88,19 @@ final class Filesystem{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function addCleanedPath(string $path, string $replacement) : void{
|
||||||
|
self::$cleanedPaths[$path] = $replacement;
|
||||||
|
uksort(self::$cleanedPaths, function(string $str1, string $str2) : int{
|
||||||
|
return strlen($str2) <=> strlen($str1); //longest first
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string[]
|
||||||
|
* @phpstan-return array<string, string>
|
||||||
|
*/
|
||||||
|
public static function getCleanedPaths() : array{ return self::$cleanedPaths; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $path
|
* @param string $path
|
||||||
*
|
*
|
||||||
@ -88,12 +110,7 @@ final class Filesystem{
|
|||||||
$result = str_replace([DIRECTORY_SEPARATOR, ".php", "phar://"], ["/", "", ""], $path);
|
$result = str_replace([DIRECTORY_SEPARATOR, ".php", "phar://"], ["/", "", ""], $path);
|
||||||
|
|
||||||
//remove relative paths
|
//remove relative paths
|
||||||
//TODO: make these paths dynamic so they can be unit-tested against
|
foreach(self::$cleanedPaths as $cleanPath => $replacement){
|
||||||
static $cleanPaths = [
|
|
||||||
\pocketmine\PLUGIN_PATH => self::CLEAN_PATH_PLUGINS_PREFIX, //this has to come BEFORE \pocketmine\PATH because it's inside that by default on src installations
|
|
||||||
\pocketmine\PATH => self::CLEAN_PATH_SRC_PREFIX
|
|
||||||
];
|
|
||||||
foreach($cleanPaths as $cleanPath => $replacement){
|
|
||||||
$cleanPath = rtrim(str_replace([DIRECTORY_SEPARATOR, "phar://"], ["/", ""], $cleanPath), "/");
|
$cleanPath = rtrim(str_replace([DIRECTORY_SEPARATOR, "phar://"], ["/", ""], $cleanPath), "/");
|
||||||
if(strpos($result, $cleanPath) === 0){
|
if(strpos($result, $cleanPath) === 0){
|
||||||
$result = ltrim(str_replace($cleanPath, $replacement, $result), "/");
|
$result = ltrim(str_replace($cleanPath, $replacement, $result), "/");
|
||||||
|
@ -33,4 +33,3 @@ if(!extension_loaded('libdeflate')){
|
|||||||
|
|
||||||
//TODO: these need to be defined properly or removed
|
//TODO: these need to be defined properly or removed
|
||||||
define('pocketmine\COMPOSER_AUTOLOADER_PATH', dirname(__DIR__, 2) . '/vendor/autoload.php');
|
define('pocketmine\COMPOSER_AUTOLOADER_PATH', dirname(__DIR__, 2) . '/vendor/autoload.php');
|
||||||
define('pocketmine\PLUGIN_PATH', '');
|
|
||||||
|
@ -33,9 +33,6 @@ class UtilsTest extends TestCase{
|
|||||||
if(!defined('pocketmine\PATH')){
|
if(!defined('pocketmine\PATH')){
|
||||||
define('pocketmine\PATH', 'dummy');
|
define('pocketmine\PATH', 'dummy');
|
||||||
}
|
}
|
||||||
if(!defined('pocketmine\PLUGIN_PATH')){
|
|
||||||
define('pocketmine\PLUGIN_PATH', 'dummy');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user