mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-20 16:00:20 +00:00
Possible fix for #2046, removed embedded class names
This commit is contained in:
parent
8c627bd0af
commit
d312d2a143
@ -22,6 +22,7 @@
|
||||
namespace pocketmine;
|
||||
|
||||
use pocketmine\network\protocol\Info;
|
||||
use pocketmine\plugin\PluginBase;
|
||||
use pocketmine\plugin\PluginLoadOrder;
|
||||
use pocketmine\utils\Utils;
|
||||
use pocketmine\utils\VersionString;
|
||||
@ -179,7 +180,7 @@ class CrashDump{
|
||||
$this->addLine("THIS CRASH WAS CAUSED BY A PLUGIN");
|
||||
$this->data["plugin"] = true;
|
||||
|
||||
$reflection = new \ReflectionClass("pocketmine\\plugin\\PluginBase");
|
||||
$reflection = new \ReflectionClass(PluginBase::class);
|
||||
$file = $reflection->getProperty("file");
|
||||
$file->setAccessible(true);
|
||||
foreach($this->server->getPluginManager()->getPlugins() as $plugin){
|
||||
|
@ -42,9 +42,13 @@ use pocketmine\inventory\CraftingManager;
|
||||
use pocketmine\inventory\InventoryType;
|
||||
use pocketmine\inventory\Recipe;
|
||||
use pocketmine\item\Item;
|
||||
use pocketmine\level\format\anvil\Anvil;
|
||||
use pocketmine\level\format\LevelProviderManager;
|
||||
use pocketmine\level\format\mcregion\McRegion;
|
||||
use pocketmine\level\generator\Flat;
|
||||
use pocketmine\level\generator\GenerationRequestManager;
|
||||
use pocketmine\level\generator\Generator;
|
||||
use pocketmine\level\generator\Normal;
|
||||
use pocketmine\level\Level;
|
||||
use pocketmine\metadata\EntityMetadataStore;
|
||||
use pocketmine\metadata\LevelMetadataStore;
|
||||
@ -77,6 +81,7 @@ use pocketmine\scheduler\ServerScheduler;
|
||||
use pocketmine\tile\Tile;
|
||||
use pocketmine\updater\AutoUpdater;
|
||||
use pocketmine\utils\Binary;
|
||||
use pocketmine\utils\Cache;
|
||||
use pocketmine\utils\Config;
|
||||
use pocketmine\utils\MainLogger;
|
||||
use pocketmine\utils\TextFormat;
|
||||
@ -1057,7 +1062,7 @@ class Server{
|
||||
|
||||
$seed = $seed === null ? Binary::readInt(Utils::getRandomBytes(4, false)) : (int) $seed;
|
||||
|
||||
if($generator !== null and class_exists($generator) and is_subclass_of($generator, "pocketmine\\level\\generator\\Generator")){
|
||||
if($generator !== null and class_exists($generator) and is_subclass_of($generator, Generator::class)){
|
||||
$generator = new $generator($options);
|
||||
}else{
|
||||
$options["preset"] = $this->getConfigString("generator-settings", "");
|
||||
@ -1524,7 +1529,7 @@ class Server{
|
||||
$this->pluginManager = new PluginManager($this, $this->commandMap);
|
||||
$this->pluginManager->subscribeToPermission(Server::BROADCAST_CHANNEL_ADMINISTRATIVE, $this->consoleSender);
|
||||
$this->pluginManager->setUseTimings($this->getProperty("settings.enable-profiling", false));
|
||||
$this->pluginManager->registerInterface("pocketmine\\plugin\\PharPluginLoader");
|
||||
$this->pluginManager->registerInterface(PharPluginLoader::class);
|
||||
|
||||
set_exception_handler([$this, "exceptionHandler"]);
|
||||
register_shutdown_function([$this, "crashDump"]);
|
||||
@ -1538,13 +1543,13 @@ class Server{
|
||||
|
||||
$this->generationManager = new GenerationRequestManager($this);
|
||||
|
||||
LevelProviderManager::addProvider($this, "pocketmine\\level\\format\\anvil\\Anvil");
|
||||
LevelProviderManager::addProvider($this, "pocketmine\\level\\format\\mcregion\\McRegion");
|
||||
LevelProviderManager::addProvider($this, Anvil::class);
|
||||
LevelProviderManager::addProvider($this, McRegion::class);
|
||||
|
||||
|
||||
Generator::addGenerator("pocketmine\\level\\generator\\Flat", "flat");
|
||||
Generator::addGenerator("pocketmine\\level\\generator\\Normal", "normal");
|
||||
Generator::addGenerator("pocketmine\\level\\generator\\Normal", "default");
|
||||
Generator::addGenerator(Flat::class, "flat");
|
||||
Generator::addGenerator(Normal::class, "normal");
|
||||
Generator::addGenerator(Normal::class, "default");
|
||||
|
||||
//Temporal workaround, pthreads static property nullification test
|
||||
if(PluginManager::$pluginParentTimer === null){
|
||||
@ -1595,7 +1600,7 @@ class Server{
|
||||
return;
|
||||
}
|
||||
|
||||
$this->scheduler->scheduleDelayedRepeatingTask(new CallbackTask("pocketmine\\utils\\Cache::cleanup"), $this->getProperty("ticks-per.cache-cleanup", 900), $this->getProperty("ticks-per.cache-cleanup", 900));
|
||||
$this->scheduler->scheduleDelayedRepeatingTask(new CallbackTask([Cache::class, "cleanup"]), $this->getProperty("ticks-per.cache-cleanup", 900), $this->getProperty("ticks-per.cache-cleanup", 900));
|
||||
if($this->getConfigBoolean("auto-save", true) === true and $this->getProperty("ticks-per.autosave", 6000) > 0){
|
||||
$this->scheduler->scheduleDelayedRepeatingTask(new CallbackTask([$this, "doAutoSave"]), $this->getProperty("ticks-per.autosave", 6000), $this->getProperty("ticks-per.autosave", 6000));
|
||||
}
|
||||
@ -1760,7 +1765,7 @@ class Server{
|
||||
$this->operators->reload();
|
||||
|
||||
|
||||
$this->pluginManager->registerInterface("pocketmine\\plugin\\PharPluginLoader");
|
||||
$this->pluginManager->registerInterface(PharPluginLoader::class);
|
||||
$this->pluginManager->loadPlugins($this->pluginPath);
|
||||
$this->enablePlugins(PluginLoadOrder::STARTUP);
|
||||
$this->enablePlugins(PluginLoadOrder::POSTWORLD);
|
||||
|
@ -485,8 +485,8 @@ class Item{
|
||||
$meta = ((int) $b[1]) & 0xFFFF;
|
||||
}
|
||||
|
||||
if(defined("pocketmine\\item\\Item::" . strtoupper($b[0]))){
|
||||
$item = self::get(constant("pocketmine\\item\\Item::" . strtoupper($b[0])), $meta);
|
||||
if(defined(Item::class . T_DOUBLE_COLON . strtoupper($b[0]))){
|
||||
$item = self::get(constant(Item::class . T_DOUBLE_COLON . strtoupper($b[0])), $meta);
|
||||
if($item->getID() === self::AIR and strtoupper($b[0]) !== "AIR"){
|
||||
$item = self::get(((int) $b[0]) & 0xFFFF, $meta);
|
||||
}
|
||||
|
@ -236,7 +236,7 @@ class Level implements ChunkManager, Metadatable{
|
||||
|
||||
/** @var LevelProvider $provider */
|
||||
|
||||
if(is_subclass_of($provider, "pocketmine\\level\\format\\LevelProvider", true)){
|
||||
if(is_subclass_of($provider, LevelProvider::class, true)){
|
||||
$this->provider = new $provider($this, $path);
|
||||
}else{
|
||||
throw new \Exception("Provider is not a subclass of LevelProvider");
|
||||
|
@ -33,7 +33,7 @@ abstract class LevelProviderManager{
|
||||
* @throws \Exception
|
||||
*/
|
||||
public static function addProvider(Server $server, $class){
|
||||
if(!is_subclass_of($class, "pocketmine\\level\\format\\LevelProvider")){
|
||||
if(!is_subclass_of($class, LevelProvider::class)){
|
||||
throw new \Exception("Class is not a subclass of LevelProvider");
|
||||
}
|
||||
self::$providers[strtolower($class::getProviderName())] = $class;
|
||||
|
@ -140,7 +140,7 @@ class Chunk extends BaseChunk{
|
||||
return null;
|
||||
}
|
||||
|
||||
return new Chunk($provider instanceof LevelProvider ? $provider : "pocketmine\\level\\format\\anvil\\Anvil", $chunk->Level);
|
||||
return new Chunk($provider instanceof LevelProvider ? $provider : Anvil::class, $chunk->Level);
|
||||
}
|
||||
|
||||
public function toBinary(){
|
||||
|
@ -254,7 +254,7 @@ class Chunk extends BaseFullChunk{
|
||||
return null;
|
||||
}
|
||||
|
||||
return new Chunk($provider instanceof LevelProvider ? $provider : "pocketmine\\level\\format\\mcregion\\McRegion", $chunk->Level);
|
||||
return new Chunk($provider instanceof LevelProvider ? $provider : McRegion::class, $chunk->Level);
|
||||
}
|
||||
|
||||
public function toBinary(){
|
||||
|
@ -44,7 +44,7 @@ class GenerationChunkManager implements ChunkManager{
|
||||
protected $changes = [];
|
||||
|
||||
public function __construct(GenerationManager $manager, $levelID, $seed, $class, array $options){
|
||||
if(!class_exists($class, true) or !is_subclass_of($class, "pocketmine\\level\\generator\\Generator")){
|
||||
if(!class_exists($class, true) or !is_subclass_of($class, Generator::class)){
|
||||
throw new \Exception("Class $class does not exists or is not a subclass of Generator");
|
||||
}
|
||||
|
||||
|
@ -130,7 +130,6 @@ class GenerationRequestManager{
|
||||
public function shutdown(){
|
||||
$buffer = chr(GenerationManager::PACKET_SHUTDOWN);
|
||||
$this->generationThread->pushMainToThreadPacket($buffer);
|
||||
$this->generationThread->join();
|
||||
}
|
||||
|
||||
|
||||
|
@ -30,7 +30,7 @@ abstract class Generator{
|
||||
private static $list = [];
|
||||
|
||||
public static function addGenerator($object, $name){
|
||||
if(is_subclass_of($object, "pocketmine\\level\\generator\\Generator") and !isset(Generator::$list[$name = strtolower($name)])){
|
||||
if(is_subclass_of($object, Generator::class) and !isset(Generator::$list[$name = strtolower($name)])){
|
||||
Generator::$list[$name] = $object;
|
||||
|
||||
return true;
|
||||
@ -44,7 +44,7 @@ abstract class Generator{
|
||||
return Generator::$list[$name];
|
||||
}
|
||||
|
||||
return "pocketmine\\level\\generator\\Normal";
|
||||
return Normal::class;
|
||||
}
|
||||
|
||||
public static function getGeneratorName($class){
|
||||
|
@ -95,12 +95,12 @@ class PluginDescription{
|
||||
}
|
||||
if(isset($plugin["load"])){
|
||||
$order = strtoupper($plugin["load"]);
|
||||
if(!defined("pocketmine\\plugin\\PluginLoadOrder::" . $order)){
|
||||
if(!defined(PluginLoadOrder::class . T_DOUBLE_COLON . $order)){
|
||||
trigger_error("Invalid PluginDescription load", E_USER_ERROR);
|
||||
|
||||
return;
|
||||
}else{
|
||||
$this->order = constant("pocketmine\\plugin\\PluginLoadOrder::" . $order);
|
||||
$this->order = constant(PluginLoadOrder::class . T_DOUBLE_COLON . $order);
|
||||
}
|
||||
}
|
||||
$this->authors = [];
|
||||
|
@ -118,7 +118,7 @@ class PluginManager{
|
||||
* @return boolean
|
||||
*/
|
||||
public function registerInterface($loaderName){
|
||||
if(is_subclass_of($loaderName, "pocketmine\\plugin\\PluginLoader")){
|
||||
if(is_subclass_of($loaderName, PluginLoader::class)){
|
||||
$loader = new $loaderName($this->server);
|
||||
}else{
|
||||
return false;
|
||||
@ -676,8 +676,8 @@ class PluginManager{
|
||||
$ignoreCancelled = false;
|
||||
if(preg_match("/^[\t ]*\\* @priority[\t ]{1,}([a-zA-Z]{1,})$/m", (string) $method->getDocComment(), $matches) > 0){
|
||||
$matches[1] = strtoupper($matches[1]);
|
||||
if(defined("pocketmine\\event\\EventPriority::" . $matches[1])){
|
||||
$priority = constant("pocketmine\\event\\EventPriority::" . $matches[1]);
|
||||
if(defined(EventPriority::class . T_DOUBLE_COLON . $matches[1])){
|
||||
$priority = constant(EventPriority::class . T_DOUBLE_COLON . $matches[1]);
|
||||
}
|
||||
}
|
||||
if(preg_match("/^[\t ]*\\* @ignoreCancelled[\t ]{1,}([a-zA-Z]{1,})$/m", (string) $method->getDocComment(), $matches) > 0){
|
||||
@ -690,7 +690,7 @@ class PluginManager{
|
||||
}
|
||||
|
||||
$parameters = $method->getParameters();
|
||||
if(count($parameters) === 1 and $parameters[0]->getClass() instanceof \ReflectionClass and is_subclass_of($parameters[0]->getClass()->getName(), "pocketmine\\event\\Event")){
|
||||
if(count($parameters) === 1 and $parameters[0]->getClass() instanceof \ReflectionClass and is_subclass_of($parameters[0]->getClass()->getName(), Event::class)){
|
||||
$class = $parameters[0]->getClass()->getName();
|
||||
$reflection = new \ReflectionClass($class);
|
||||
if(preg_match("/^[\t ]*\\* @deprecated[\t ]{1,}$/m", (string) $reflection->getDocComment(), $matches) > 0 and $this->server->getProperty("settings.deprecated-verbose", true)){
|
||||
@ -713,7 +713,7 @@ class PluginManager{
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function registerEvent($event, Listener $listener, $priority, EventExecutor $executor, Plugin $plugin, $ignoreCancelled = false){
|
||||
if(!is_subclass_of($event, "pocketmine\\event\\Event") or (new \ReflectionClass($event))->isAbstract()){
|
||||
if(!is_subclass_of($event, Event::class) or (new \ReflectionClass($event))->isAbstract()){
|
||||
throw new \Exception($event . " is not a valid Event");
|
||||
}
|
||||
|
||||
|
@ -56,7 +56,7 @@ class ServerScheduler{
|
||||
|
||||
public function __construct(){
|
||||
$this->queue = new ReversePriorityQueue();
|
||||
$this->asyncPool = new \Pool(self::$WORKERS, "pocketmine\\scheduler\\AsyncWorker");
|
||||
$this->asyncPool = new \Pool(self::$WORKERS, AsyncWorker::class);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -145,6 +145,8 @@ class ServerScheduler{
|
||||
$this->tasks = [];
|
||||
$this->asyncPool->shutdown();
|
||||
$this->asyncTasks = 0;
|
||||
$this->queue = new ReversePriorityQueue();
|
||||
$this->asyncPool = new \Pool(self::$WORKERS, AsyncWorker::class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user