From b3a2d3164f2ac4c8dd9d95b90a86c5adc032d6a0 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Tue, 11 Mar 2014 20:45:53 +0100 Subject: [PATCH] Finally, I can spawn AGAIN! --- src/EntityOLD.php | 2 +- src/PocketMine/BanAPI.php | 8 +- src/PocketMine/BlockAPI.php | 28 +- src/PocketMine/ConsoleAPI.php | 5 +- src/PocketMine/LevelAPI.php | 251 +----------- src/PocketMine/Player.php | 188 +++++---- src/PocketMine/PlayerAPI.php | 12 +- src/PocketMine/PluginAPI.php | 8 +- src/PocketMine/PocketMine.php | 138 ++++--- src/PocketMine/Server.php | 18 +- src/PocketMine/ServerAPI.php | 61 ++- src/PocketMine/TimeAPI.php | 6 +- src/PocketMine/block/Bed.php | 6 +- src/PocketMine/block/Bedrock.php | 2 +- src/PocketMine/block/Beetroot.php | 13 +- src/PocketMine/block/BirchWoodStairs.php | 2 +- src/PocketMine/block/Block.php | 45 ++- src/PocketMine/block/Bricks.php | 2 +- src/PocketMine/block/BrownMushroom.php | 7 +- src/PocketMine/block/BurningFurnace.php | 14 +- src/PocketMine/block/Cactus.php | 15 +- src/PocketMine/block/Cake.php | 7 +- src/PocketMine/block/Carpet.php | 7 +- src/PocketMine/block/Carrot.php | 13 +- src/PocketMine/block/Chest.php | 14 +- src/PocketMine/block/Clay.php | 2 +- src/PocketMine/block/Coal.php | 2 +- src/PocketMine/block/CoalOre.php | 2 +- src/PocketMine/block/Cobblestone.php | 2 +- src/PocketMine/block/Cobweb.php | 2 +- src/PocketMine/block/CyanFlower.php | 7 +- src/PocketMine/block/Dandelion.php | 7 +- src/PocketMine/block/DeadBush.php | 5 +- src/PocketMine/block/Diamond.php | 2 +- src/PocketMine/block/DiamondOre.php | 2 +- src/PocketMine/block/Dirt.php | 2 +- src/PocketMine/block/Door.php | 11 +- src/PocketMine/block/DoubleSlab.php | 2 +- src/PocketMine/block/DoubleWoodSlab.php | 2 +- src/PocketMine/block/Fallable.php | 7 +- src/PocketMine/block/Farmland.php | 2 +- src/PocketMine/block/FenceGate.php | 2 +- src/PocketMine/block/Fire.php | 11 +- src/PocketMine/block/Generic.php | 10 +- src/PocketMine/block/Glass.php | 2 +- src/PocketMine/block/GlowingRedstoneOre.php | 9 +- src/PocketMine/block/Glowstone.php | 2 +- src/PocketMine/block/Gold.php | 2 +- src/PocketMine/block/GoldOre.php | 2 +- src/PocketMine/block/Grass.php | 6 +- src/PocketMine/block/Gravel.php | 2 +- src/PocketMine/block/HayBale.php | 2 +- src/PocketMine/block/Ice.php | 2 +- src/PocketMine/block/Iron.php | 2 +- src/PocketMine/block/IronDoor.php | 2 +- src/PocketMine/block/IronOre.php | 2 +- src/PocketMine/block/JungleWoodStairs.php | 2 +- src/PocketMine/block/Ladder.php | 7 +- src/PocketMine/block/Lapis.php | 2 +- src/PocketMine/block/LapisOre.php | 2 +- src/PocketMine/block/Lava.php | 21 +- src/PocketMine/block/Leaves.php | 11 +- src/PocketMine/block/LitPumpkin.php | 2 +- src/PocketMine/block/Melon.php | 2 +- src/PocketMine/block/MelonStem.php | 15 +- src/PocketMine/block/MossStone.php | 2 +- src/PocketMine/block/NetherBrick.php | 2 +- src/PocketMine/block/Netherrack.php | 2 +- src/PocketMine/block/Obsidian.php | 2 +- src/PocketMine/block/Potato.php | 13 +- src/PocketMine/block/PumpkinStem.php | 15 +- src/PocketMine/block/Quartz.php | 2 +- src/PocketMine/block/RedMushroom.php | 7 +- src/PocketMine/block/RedstoneOre.php | 7 +- src/PocketMine/block/Sandstone.php | 2 +- src/PocketMine/block/Sapling.php | 17 +- src/PocketMine/block/SignPost.php | 7 +- src/PocketMine/block/Slab.php | 2 +- src/PocketMine/block/SnowLayer.php | 7 +- src/PocketMine/block/SpruceWoodStairs.php | 2 +- src/PocketMine/block/Stair.php | 2 +- src/PocketMine/block/Stone.php | 2 +- src/PocketMine/block/StoneBricks.php | 2 +- src/PocketMine/block/Stonecutter.php | 2 +- src/PocketMine/block/Sugarcane.php | 13 +- src/PocketMine/block/TNT.php | 2 +- src/PocketMine/block/TallGrass.php | 7 +- src/PocketMine/block/Torch.php | 7 +- src/PocketMine/block/Trapdoor.php | 2 +- src/PocketMine/block/Water.php | 19 +- src/PocketMine/block/Wheat.php | 9 +- src/PocketMine/block/Wood.php | 2 +- src/PocketMine/block/WoodDoor.php | 2 +- src/PocketMine/block/WoodSlab.php | 2 +- src/PocketMine/block/WoodStairs.php | 2 +- src/PocketMine/block/Workbench.php | 2 +- src/PocketMine/constants/GeneralConstants.php | 15 - src/PocketMine/entity/Entity.php | 32 +- src/PocketMine/entity/Human.php | 51 +-- src/PocketMine/entity/InventorySource.php | 2 +- src/PocketMine/entity/RealHuman.php | 2 +- src/PocketMine/event/Event.php | 2 +- .../event/entity/EntityArmorChangeEvent.php | 7 +- src/PocketMine/event/entity/EntityEvent.php | 5 +- .../entity/EntityInventoryChangeEvent.php | 7 +- .../event/entity/EntityLevelChangeEvent.php | 7 +- .../event/entity/EntityMotionEvent.php | 5 +- .../event/entity/EntityMoveEvent.php | 5 +- .../player/PlayerEquipmentChangeEvent.php | 4 +- src/PocketMine/event/player/PlayerEvent.php | 5 +- src/PocketMine/event/plugin/PluginEvent.php | 2 +- .../event/server/DataPacketReceiveEvent.php | 4 +- .../event/server/DataPacketSendEvent.php | 4 +- .../event/server/PacketReceiveEvent.php | 3 +- .../event/server/PacketSendEvent.php | 3 +- src/PocketMine/event/server/ServerEvent.php | 2 +- .../event/tile/TileInventoryChangeEvent.php | 4 +- src/PocketMine/item/Bed.php | 2 +- src/PocketMine/item/BeetrootSeeds.php | 2 +- src/PocketMine/item/Bucket.php | 12 +- src/PocketMine/item/Cake.php | 2 +- src/PocketMine/item/Carrot.php | 2 +- src/PocketMine/item/FlintSteel.php | 8 +- src/PocketMine/item/IronDoor.php | 2 +- src/PocketMine/item/Item.php | 17 +- src/PocketMine/item/MelonSeeds.php | 2 +- src/PocketMine/item/Painting.php | 6 +- src/PocketMine/item/Potato.php | 2 +- src/PocketMine/item/PumpkinSeeds.php | 2 +- src/PocketMine/item/Sign.php | 2 +- src/PocketMine/item/SpawnEgg.php | 4 +- src/PocketMine/item/Sugarcane.php | 2 +- src/PocketMine/item/WheatSeeds.php | 2 +- src/PocketMine/item/WoodenDoor.php | 2 +- src/PocketMine/level/Explosion.php | 12 +- src/PocketMine/level/Level.php | 379 ++++++++++++++++-- src/PocketMine/level/LevelImport.php | 4 +- src/PocketMine/level/PocketChunkParser.php | 7 +- src/PocketMine/level/WorldGenerator.php | 10 +- src/PocketMine/level/generator/Flat.php | 26 +- src/PocketMine/level/generator/Generator.php | 4 +- src/PocketMine/level/generator/Normal.php | 32 +- .../level/generator/noise/Perlin.php | 3 +- .../level/generator/noise/Simplex.php | 2 +- .../level/generator/object/BigTree.php | 4 +- .../level/generator/object/Object.php | 1 + src/PocketMine/level/generator/object/Ore.php | 8 +- .../level/generator/object/OreType.php | 2 +- .../level/generator/object/PineTree.php | 12 +- .../level/generator/object/Pond.php | 8 +- .../level/generator/object/SmallTree.php | 12 +- .../level/generator/object/SpruceTree.php | 12 +- .../level/generator/object/TallGrass.php | 4 +- .../level/generator/object/Tree.php | 9 +- .../level/generator/populator/Mineshaft.php | 4 +- .../level/generator/populator/Ore.php | 8 +- .../level/generator/populator/Pond.php | 8 +- .../level/generator/populator/Populator.php | 4 +- .../level/generator/populator/TallGrass.php | 10 +- .../level/generator/populator/Tree.php | 12 +- src/PocketMine/math/AxisAlignedBB.php | 1 + src/PocketMine/math/Math.php | 1 + src/PocketMine/nbt/NBT.php | 48 ++- src/PocketMine/nbt/tag/Byte.php | 2 +- src/PocketMine/nbt/tag/Byte_Array.php | 2 +- src/PocketMine/nbt/tag/Compound.php | 18 +- src/PocketMine/nbt/tag/Double.php | 2 +- src/PocketMine/nbt/tag/End.php | 2 +- src/PocketMine/nbt/tag/Enum.php | 15 +- src/PocketMine/nbt/tag/Float.php | 2 +- src/PocketMine/nbt/tag/Int.php | 2 +- src/PocketMine/nbt/tag/Int_Array.php | 2 +- src/PocketMine/nbt/tag/Long.php | 2 +- src/PocketMine/nbt/tag/Short.php | 2 +- src/PocketMine/nbt/tag/String.php | 2 +- src/PocketMine/nbt/tag/Tag.php | 7 +- src/PocketMine/network/Handler.php | 18 +- .../network/protocol/AddMobPacket.php | 2 +- .../network/protocol/AddPlayerPacket.php | 2 +- .../network/protocol/DataPacket.php | 57 +-- .../network/protocol/SetEntityDataPacket.php | 2 +- src/PocketMine/network/query/QueryHandler.php | 13 +- src/PocketMine/network/query/QueryPacket.php | 4 +- src/PocketMine/network/raknet/Packet.php | 125 +++--- src/PocketMine/network/rcon/RCON.php | 4 +- src/PocketMine/network/rcon/RCONInstance.php | 2 +- src/PocketMine/network/upnp/PortForward.php | 2 +- .../network/upnp/RemovePortForward.php | 2 +- src/PocketMine/pmf/LevelFormat.php | 13 +- src/PocketMine/pmf/Plugin.php | 2 +- src/PocketMine/recipes/Crafting.php | 6 +- src/PocketMine/recipes/Fuel.php | 2 +- src/PocketMine/recipes/Smelt.php | 3 +- src/PocketMine/tests/ServerSuiteTest.php | 60 --- src/PocketMine/tile/Chest.php | 12 +- src/PocketMine/tile/Container.php | 16 +- src/PocketMine/tile/Furnace.php | 8 +- src/PocketMine/tile/Sign.php | 11 +- src/PocketMine/tile/Tile.php | 14 +- src/PocketMine/utils/Config.php | 6 +- src/PocketMine/utils/Random.php | 2 +- src/PocketMine/utils/Utils.php | 23 +- src/PocketMine/wizard/Installer.php | 2 +- src/build/compile.sh | 3 + src/tests/ServerSuiteTest.php | 68 ++++ start.cmd | 4 +- start.sh | 4 +- 207 files changed, 1407 insertions(+), 1253 deletions(-) delete mode 100644 src/PocketMine/tests/ServerSuiteTest.php create mode 100644 src/tests/ServerSuiteTest.php diff --git a/src/EntityOLD.php b/src/EntityOLD.php index 5110c9dfa..4ae724ccc 100644 --- a/src/EntityOLD.php +++ b/src/EntityOLD.php @@ -176,7 +176,7 @@ $explosion->explode(); public function getDrops(){ if($this->class === ENTITY_PLAYER and $this->player instanceof Player and ($this->player->gamemode & 0x01) === 0){ $inv = array(); -for($i = 0; $i < PLAYER_SURVIVAL_SLOTS; ++$i){ +for($i = 0; $i < Player::SURVIVAL_SLOTS; ++$i){ $slot = $this->player->getSlot($i); $this->player->setSlot($i, Item\Item::get(AIR, 0, 0)); if($slot->getID() !== AIR and $slot->getCount() > 0){ diff --git a/src/PocketMine/BanAPI.php b/src/PocketMine/BanAPI.php index cfe416ed2..b79316cbc 100644 --- a/src/PocketMine/BanAPI.php +++ b/src/PocketMine/BanAPI.php @@ -21,7 +21,9 @@ namespace PocketMine; -use PocketMine\Utils\Config as Config; +use PocketMine\Level\Level; +use PocketMine\Math\Vector2; +use PocketMine\Utils\Config; class BanAPI{ private $server; @@ -103,7 +105,7 @@ class BanAPI{ case "player.block.place": //Spawn protection detection. Allows OPs to place/break blocks in the spawn area. if(!$this->isOp($data["player"]->getUsername())){ $t = new Vector2($data["target"]->x, $data["target"]->z); - $s = new Vector2($this->server->spawn->x, $this->server->spawn->z); + $s = new Vector2(Level::getDefault()->getSpawn()->x, Level::getDefault()->getSpawn()->z); if($t->distance($s) <= $this->server->api->getProperty("spawn-protection") and $this->server->api->dhandle($event . ".spawn", $data) !== true){ return false; } @@ -255,7 +257,7 @@ class BanAPI{ $ip = strtolower($params[0]); $player = Player::get($ip); if($player instanceof Player){ - $ip = $player->ip; + $ip = $player->getIP(); $player->close("banned"); } $this->bannedIPs->set($ip); diff --git a/src/PocketMine/BlockAPI.php b/src/PocketMine/BlockAPI.php index b460b7223..3bb1ef670 100644 --- a/src/PocketMine/BlockAPI.php +++ b/src/PocketMine/BlockAPI.php @@ -21,15 +21,15 @@ namespace PocketMine; -use PocketMine\Block\Block as Block; -use PocketMine\Block\GenericBlock as GenericBlock; -use PocketMine\Item\Item as Item; -use PocketMine\Level\Position as Position; -use PocketMine\NBT\Tag\Compound as Compound; -use PocketMine\NBT\Tag\Int as Int; -use PocketMine\NBT\Tag\String as String; -use PocketMine\Network\Protocol\UpdateBlockPacket as UpdateBlockPacket; -use PocketMine\Tile\Sign as Sign; +use PocketMine\Level\Level; +use PocketMine\Block\Block; +use PocketMine\Item\Item; +use PocketMine\Level\Position; +use PocketMine\NBT\Tag\Compound; +use PocketMine\NBT\Tag\Int; +use PocketMine\NBT\Tag\String; +use PocketMine\Network\Protocol\UpdateBlockPacket; +use PocketMine\Tile\Sign; class BlockAPI{ private $server; @@ -388,7 +388,7 @@ class BlockAPI{ return $this->cancelAction($block, $player); } } - $this->blockUpdate($target, BLOCK_UPDATE_TOUCH); + $this->blockUpdate($target, Level::BLOCK_UPDATE_TOUCH); if($target->isActivable === true){ if($this->server->api->dhandle("player.block.activate", array("player" => $player, "block" => $block, "target" => $target, "item" => $item)) !== false and $target->onActivate($item, $player) === true){ @@ -469,7 +469,7 @@ class BlockAPI{ return false; } - public function blockUpdateAround(Position $pos, $type = BLOCK_UPDATE_NORMAL, $delay = false){ + public function blockUpdateAround(Position $pos, $type = Level::BLOCK_UPDATE_NORMAL, $delay = false){ if($delay !== false){ $this->scheduleBlockUpdate($pos->getSide(0), $delay, $type); $this->scheduleBlockUpdate($pos->getSide(1), $delay, $type); @@ -487,7 +487,7 @@ class BlockAPI{ } } - public function blockUpdate(Position $pos, $type = BLOCK_UPDATE_NORMAL){ + public function blockUpdate(Position $pos, $type = Level::BLOCK_UPDATE_NORMAL){ if(!($pos instanceof Block)){ $block = $pos->level->getBlock($pos); } else{ @@ -499,14 +499,14 @@ class BlockAPI{ } $level = $block->onUpdate($type); - if($level === BLOCK_UPDATE_NORMAL){ + if($level === Level::BLOCK_UPDATE_NORMAL){ $this->blockUpdateAround($block, $level); } return $level; } - public function scheduleBlockUpdate(Position $pos, $delay, $type = BLOCK_UPDATE_SCHEDULED){ + public function scheduleBlockUpdate(Position $pos, $delay, $type = Level::BLOCK_UPDATE_SCHEDULED){ $type = (int) $type; if($delay < 0){ return false; diff --git a/src/PocketMine/ConsoleAPI.php b/src/PocketMine/ConsoleAPI.php index 0d8c14259..5b2c2b353 100644 --- a/src/PocketMine/ConsoleAPI.php +++ b/src/PocketMine/ConsoleAPI.php @@ -21,7 +21,8 @@ namespace PocketMine; -use PocketMine\Utils\TextFormat as TextFormat; +use PocketMine\Level\Level; +use PocketMine\Utils\TextFormat; class ConsoleAPI{ private $loop, $server, $event, $help, $cmds, $alias; @@ -207,7 +208,7 @@ class ConsoleAPI{ break; case "w": case "world": - $p = ($issuer instanceof Player) ? $issuer->level->getName() : $this->server->api->level->getDefault()->getName(); + $p = ($issuer instanceof Player) ? $issuer->level->getName() : Level::getDefault()->getName(); $params = substr_replace($params, $p, $selector[1] + $offsetshift - 1, strlen($selector[0]) + 1); $offsetshift -= strlen($selector[0]) - strlen($p) + 1; break; diff --git a/src/PocketMine/LevelAPI.php b/src/PocketMine/LevelAPI.php index 8b5ebfb18..080de806a 100644 --- a/src/PocketMine/LevelAPI.php +++ b/src/PocketMine/LevelAPI.php @@ -21,44 +21,13 @@ namespace PocketMine; -use PocketMine\Level\Generator\Flat as Flat; -use PocketMine\Level\Generator\Normal as Normal; -use PocketMine\Level\Level as Level; -use PocketMine\Level\LevelImport as LevelImport; -use PocketMine\Level\Position as Position; -use PocketMine\Level\WorldGenerator as WorldGenerator; -use PocketMine\NBT\Tag\Byte as Byte; -use PocketMine\NBT\Tag\Compound as Compound; -use PocketMine\NBT\Tag\Enum as Enum; -use PocketMine\NBT\Tag\Int as Int; -use PocketMine\NBT\Tag\Short as Short; -use PocketMine\NBT\Tag\String as String; -use PocketMine\PMF\LevelFormat as LevelFormat; -use PocketMine\Tile\Chest as Chest; -use PocketMine\Tile\Furnace as Furnace; -use PocketMine\Tile\Sign as Sign; -use PocketMine\Tile\Tile as Tile; -use PocketMine\Utils\Config as Config; -use PocketMine\Utils\Utils as Utils; +use PocketMine\Level\Level; class LevelAPI{ - private $server, $levels, $default; + private $server; public function __construct(){ $this->server = ServerAPI::request(); - $this->levels = array(); - } - - public function get($name){ - if(isset($this->levels[$name])){ - return $this->levels[$name]; - } - - return false; - } - - public function getDefault(){ - return $this->levels[$this->default]; } public function init(){ @@ -66,12 +35,6 @@ class LevelAPI{ $this->server->api->console->register("save-all", "", array($this, "commandHandler")); $this->server->api->console->register("save-on", "", array($this, "commandHandler")); $this->server->api->console->register("save-off", "", array($this, "commandHandler")); - $this->default = $this->server->api->getProperty("level-name"); - if($this->loadLevel($this->default) === false){ - $this->generateLevel($this->default, $this->server->seed); - $this->loadLevel($this->default); - } - $this->server->spawn = $this->getDefault()->getSafeSpawn(); } public function commandHandler($cmd, $params, $issuer, $alias){ @@ -80,7 +43,7 @@ class LevelAPI{ case "save-all": $save = $this->server->saveEnabled; $this->server->saveEnabled = true; - $this->saveAll(); + Level::saveAll(); $this->server->saveEnabled = $save; break; case "save-on": @@ -93,220 +56,22 @@ class LevelAPI{ if(!isset($params[0]) and ($issuer instanceof Player)){ $output .= "Seed: " . $issuer->level->getSeed() . "\n"; } elseif(isset($params[0])){ - if(($lv = $this->server->api->level->get(trim(implode(" ", $params)))) !== false){ + if(($lv = Level::get(trim(implode(" ", $params)))) !== false){ $output .= "Seed: " . $lv->getSeed() . "\n"; } } else{ - $output .= "Seed: " . $this->server->api->level->getDefault()->getSeed() . "\n"; + $output .= "Seed: " . Level::getDefault()->getSeed() . "\n"; } } return $output; } - public function generateLevel($name, $seed = false, $generator = false){ - if($name == "" or $this->levelExists($name)){ - return false; - } - $options = array(); - if($this->server->api->getProperty("generator-settings") !== false and trim($this->server->api->getProperty("generator-settings")) != ""){ - $options["preset"] = $this->server->api->getProperty("generator-settings"); - } - - if($generator !== false and class_exists($generator)){ - $generator = new $generator($options); - } else{ - if(strtoupper($this->server->api->getProperty("level-type")) == "FLAT"){ - $generator = new Flat($options); - } else{ - $generator = new Normal($options); - } - } - $gen = new WorldGenerator($generator, $name, $seed === false ? Utils::readInt(Utils::getRandomBytes(4, false)) : (int) $seed); - $gen->generate(); - $gen->close(); - - return true; - } - - public function levelExists($name){ - if($name === ""){ - return false; - } - $path = \PocketMine\DATA . "worlds/" . $name . "/"; - if($this->get($name) === false and !file_exists($path . "level.pmf")){ - $level = new LevelImport($path); - if($level->import() === false){ - return false; - } - } - - return true; - } - - public function unloadLevel(Level $level, $force = false){ - $name = $level->getName(); - if($name === $this->default and $force !== true){ - return false; - } - console("[INFO] Unloading level \"" . $name . "\""); - $level->nextSave = PHP_INT_MAX; - $level->save(); - foreach($level->getPlayers() as $player){ - $player->teleport($this->server->spawn); - } - $level->close(); - unset($this->levels[$name]); - - return true; - } - - public function loadLevel($name){ - if($this->get($name) !== false){ - return true; - } elseif($this->levelExists($name) === false){ - console("[NOTICE] Level \"" . $name . "\" not found"); - - return false; - } - $path = \PocketMine\DATA . "worlds/" . $name . "/"; - console("[INFO] Preparing level \"" . $name . "\""); - $level = new LevelFormat($path . "level.pmf"); - if(!$level->isLoaded){ - console("[ERROR] Could not load level \"" . $name . "\""); - - return false; - } - //$entities = new Config($path."entities.yml", Config::YAML); - if(file_exists($path . "tileEntities.yml")){ - @rename($path . "tileEntities.yml", $path . "tiles.yml"); - } - $blockUpdates = new Config($path . "bupdates.yml", Config::YAML); - $this->levels[$name] = new Level($level, $name); - /*foreach($entities->getAll() as $entity){ - if(!isset($entity["id"])){ - break; - } - if($entity["id"] === 64){ //Item Drop - $e = $this->server->api->entity->add($this->levels[$name], ENTITY_ITEM, $entity["Item"]["id"], array( - "meta" => $entity["Item"]["Damage"], - "stack" => $entity["Item"]["Count"], - "x" => $entity["Pos"][0], - "y" => $entity["Pos"][1], - "z" => $entity["Pos"][2], - "yaw" => $entity["Rotation"][0], - "pitch" => $entity["Rotation"][1], - )); - }elseif($entity["id"] === FALLING_SAND){ - $e = $this->server->api->entity->add($this->levels[$name], ENTITY_FALLING, $entity["id"], $entity); - $e->setPosition(new Vector3($entity["Pos"][0], $entity["Pos"][1], $entity["Pos"][2]), $entity["Rotation"][0], $entity["Rotation"][1]); - $e->setHealth($entity["Health"]); - }elseif($entity["id"] === OBJECT_PAINTING or $entity["id"] === OBJECT_ARROW){ //Painting - $e = $this->server->api->entity->add($this->levels[$name], ENTITY_OBJECT, $entity["id"], $entity); - $e->setPosition(new Vector3($entity["Pos"][0], $entity["Pos"][1], $entity["Pos"][2]), $entity["Rotation"][0], $entity["Rotation"][1]); - $e->setHealth(1); - }else{ - $e = $this->server->api->entity->add($this->levels[$name], ENTITY_MOB, $entity["id"], $entity); - $e->setPosition(new Vector3($entity["Pos"][0], $entity["Pos"][1], $entity["Pos"][2]), $entity["Rotation"][0], $entity["Rotation"][1]); - $e->setHealth($entity["Health"]); - } - }*/ - - if(file_exists($path . "tiles.yml")){ - $tiles = new Config($path . "tiles.yml", Config::YAML); - foreach($tiles->getAll() as $tile){ - if(!isset($tile["id"])){ - continue; - } - $this->levels[$name]->loadChunk($tile["x"] >> 4, $tile["z"] >> 4); - - $nbt = new Compound(false, array()); - foreach($tile as $index => $data){ - switch($index){ - case "Items": - $tag = new Enum("Items", array()); - $tag->setTagType(NBT::TAG_Compound); - foreach($data as $slot => $fields){ - $tag[(int) $slot] = new Compound(false, array( - "Count" => new Byte("Count", $fields["Count"]), - "Slot" => new Short("Slot", $fields["Slot"]), - "Damage" => new Short("Damage", $fields["Damage"]), - "id" => new String("id", $fields["id"]) - )); - } - $nbt["Items"] = $tag; - break; - - case "id": - case "Text1": - case "Text2": - case "Text3": - case "Text4": - $nbt[$index] = new String($index, $data); - break; - - case "x": - case "y": - case "z": - case "pairx": - case "pairz": - $nbt[$index] = new Int($index, $data); - break; - - case "BurnTime": - case "CookTime": - case "MaxTime": - $nbt[$index] = new Short($index, $data); - break; - } - } - switch($tile["id"]){ - case Tile::FURNACE: - new Furnace($this->levels[$name], $nbt); - break; - case Tile::CHEST: - new Chest($this->levels[$name], $nbt); - break; - case Tile::SIGN: - new Sign($this->levels[$name], $nbt); - break; - } - } - unlink($path . "tiles.yml"); - $this->levels[$name]->save(true, true); - } - - foreach($blockUpdates->getAll() as $bupdate){ - $this->server->api->block->scheduleBlockUpdate(new Position((int) $bupdate["x"], (int) $bupdate["y"], (int) $bupdate["z"], $this->levels[$name]), (float) $bupdate["delay"], (int) $bupdate["type"]); - } - - return true; - } - - public function handle($data, $event){ - switch($event){ - } - } - - public function saveAll(){ - foreach($this->levels as $level){ - $level->save(); - } - } - public function __destruct(){ - $this->saveAll(); - foreach($this->levels as $level){ - $this->unloadLevel($level, true); + Level::saveAll(); + foreach(Level::getAll() as $level){ + $level->unload(true); } } - public function getSpawn(){ - return $this->server->spawn; - } - - public function getAll(){ - return $this->levels; - } - } diff --git a/src/PocketMine/Player.php b/src/PocketMine/Player.php index 5462d6011..304e011f6 100644 --- a/src/PocketMine/Player.php +++ b/src/PocketMine/Player.php @@ -21,62 +21,74 @@ namespace PocketMine; -use PocketMine\Entity\RealHuman as RealHuman; -use PocketMine\Event\Event as Event; -use PocketMine\Event\EventHandler as EventHandler; -use PocketMine\Event\Server\DataPacketReceiveEvent as DataPacketReceiveEvent; -use PocketMine\Event\Server\DataPacketSendEvent as DataPacketSendEvent; -use PocketMine\Item\Item as Item; -use PocketMine\Level\Position as Position; +use PocketMine\Level\Level; +use PocketMine\Entity\RealHuman; +use PocketMine\Event; +use PocketMine\Event\EventHandler; +use PocketMine\Event\Server\DataPacketReceiveEvent; +use PocketMine\Event\Server\DataPacketSendEvent; +use PocketMine\Item\Item; +use PocketMine\Level\Position; use PocketMine\Math\Vector3 as Vector3; -use PocketMine\NBT\NBT as NBT; -use PocketMine\NBT\Tag\Byte as Byte; -use PocketMine\NBT\Tag\Compound as Compound; -use PocketMine\NBT\Tag\Double as Double; -use PocketMine\NBT\Tag\Enum as Enum; -use PocketMine\NBT\Tag\Float as Float; -use PocketMine\NBT\Tag\Int as Int; -use PocketMine\NBT\Tag\Short as Short; -use PocketMine\NBT\Tag\String as String; -use PocketMine\Network\Protocol\AdventureSettingsPacket as AdventureSettingsPacket; -use PocketMine\Network\Protocol\AnimatePacket as AnimatePacket; -use PocketMine\Network\Protocol\ChunkDataPacket as ChunkDataPacket; -use PocketMine\Network\Protocol\ContainerClosePacket as ContainerClosePacket; -use PocketMine\Network\Protocol\ContainerSetContentPacket as ContainerSetContentPacket; -use PocketMine\Network\Protocol\ContainerSetDataPacket as ContainerSetDataPacket; -use PocketMine\Network\Protocol\ContainerSetSlotPacket as ContainerSetSlotPacket; -use PocketMine\Network\Protocol\DataPacket as DataPacket; -use PocketMine\Network\Protocol\DisconnectPacket as DisconnectPacket; -use PocketMine\Network\Protocol\EntityEventPacket as EntityEventPacket; +use PocketMine\NBT\NBT; +use PocketMine\NBT\Tag\Byte; +use PocketMine\NBT\Tag\Compound; +use PocketMine\NBT\Tag\Double; +use PocketMine\NBT\Tag\Enum; +use PocketMine\NBT\Tag\Float; +use PocketMine\NBT\Tag\Int; +use PocketMine\NBT\Tag\Short; +use PocketMine\NBT\Tag\String; +use PocketMine\Network\Protocol\AdventureSettingsPacket; +use PocketMine\Network\Protocol\AnimatePacket; +use PocketMine\Network\Protocol\ChunkDataPacket; +use PocketMine\Network\Protocol\ContainerClosePacket; +use PocketMine\Network\Protocol\ContainerSetContentPacket; +use PocketMine\Network\Protocol\ContainerSetDataPacket; +use PocketMine\Network\Protocol\ContainerSetSlotPacket; +use PocketMine\Network\Protocol\DataPacket; +use PocketMine\Network\Protocol\DisconnectPacket; +use PocketMine\Network\Protocol\EntityEventPacket; use PocketMine\Network\Protocol\Info as ProtocolInfo; -use PocketMine\Network\Protocol\LoginStatusPacket as LoginStatusPacket; -use PocketMine\Network\Protocol\MessagePacket as MessagePacket; -use PocketMine\Network\Protocol\PongPacket as PongPacket; -use PocketMine\Network\Protocol\ServerHandshakePacket as ServerHandshakePacket; -use PocketMine\Network\Protocol\SetEntityDataPacket as SetEntityDataPacket; -use PocketMine\Network\Protocol\SetSpawnPositionPacket as SetSpawnPositionPacket; -use PocketMine\Network\Protocol\SetTimePacket as SetTimePacket; -use PocketMine\Network\Protocol\StartGamePacket as StartGamePacket; -use PocketMine\Network\Protocol\TakeItemEntityPacket as TakeItemEntityPacket; -use PocketMine\Network\Protocol\TileEventPacket as TileEventPacket; -use PocketMine\Network\Protocol\UnknownPacket as UnknownPacket; -use PocketMine\Network\Protocol\UpdateBlockPacket as UpdateBlockPacket; -use PocketMine\Network\RakNet\Info as Info; -use PocketMine\Network\RakNet\Packet as Packet; -use PocketMine\PMF\LevelFormat as LevelFormat; -use PocketMine\Recipes\Crafting as Crafting; -use PocketMine\Tile\Chest as Chest; -use PocketMine\Tile\Furnace as Furnace; -use PocketMine\Tile\Sign as Sign; -use PocketMine\Tile\Spawnable as Spawnable; -use PocketMine\Tile\Tile as Tile; -use PocketMine\Utils\Config as Config; -use PocketMine\Utils\TextFormat as TextFormat; -use PocketMine\Utils\Utils as Utils; +use PocketMine\Network\Protocol\LoginStatusPacket; +use PocketMine\Network\Protocol\MessagePacket; +use PocketMine\Network\Protocol\PongPacket; +use PocketMine\Network\Protocol\ServerHandshakePacket; +use PocketMine\Network\Protocol\SetEntityDataPacket; +use PocketMine\Network\Protocol\SetSpawnPositionPacket; +use PocketMine\Network\Protocol\SetTimePacket; +use PocketMine\Network\Protocol\StartGamePacket; +use PocketMine\Network\Protocol\TakeItemEntityPacket; +use PocketMine\Network\Protocol\TileEventPacket; +use PocketMine\Network\Protocol\UnknownPacket; +use PocketMine\Network\Protocol\UpdateBlockPacket; +use PocketMine\Network\RakNet\Info; +use PocketMine\Network\RakNet\Packet; +use PocketMine\PMF\LevelFormat; +use PocketMine\Recipes\Crafting; +use PocketMine\Tile\Chest; +use PocketMine\Tile\Furnace; +use PocketMine\Tile\Sign; +use PocketMine\Tile\Spawnable; +use PocketMine\Tile\Tile; +use PocketMine\Utils\Config; +use PocketMine\Utils\TextFormat; +use PocketMine\Utils\Utils; +/** + * Main class that handles networking, recovery, and packet sending to the server part + * TODO: Move reliability layer + * + * Class Player + * @package PocketMine + */ class Player extends RealHuman{ public static $list = array(); + const MAX_QUEUE = 2048; + const SURVIVAL_SLOTS = 36; + const CREATIVE_SLOTS = 112; //???? + private $recoveryQueue = array(); private $receiveQueue = array(); private $resendQueue = array(); @@ -166,17 +178,18 @@ class Player extends RealHuman{ $server = ServerAPI::request(); $iname = strtolower($name); if(!file_exists(\PocketMine\DATA . "players/" . $iname . ".dat")){ + $spawn = Level::getDefault()->getSafeSpawn(); $nbt = new Compound(false, array( "Pos" => new Enum("Pos", array( - 0 => new Double(0, $server->spawn->x), - 1 => new Double(1, $server->spawn->y), - 2 => new Double(2, $server->spawn->z) + 0 => new Double(0, $spawn->x), + 1 => new Double(1, $spawn->y), + 2 => new Double(2, $spawn->z) )), - "Level" => new String("Level", $server->spawn->level->getName()), - "SpawnLevel" => new String("SpawnLevel", $server->spawn->level->getName()), - "SpawnX" => new Int("SpawnX", (int) $server->spawn->x), - "SpawnY" => new Int("SpawnY", (int) $server->spawn->y), - "SpawnZ" => new Int("SpawnZ", (int) $server->spawn->z), + "Level" => new String("Level", Level::getDefault()->getName()), + "SpawnLevel" => new String("SpawnLevel", Level::getDefault()->getName()), + "SpawnX" => new Int("SpawnX", (int) $spawn->x), + "SpawnY" => new Int("SpawnY", (int) $spawn->y), + "SpawnZ" => new Int("SpawnZ", (int) $spawn->z), "SpawnForced" => new Byte("SpawnForced", 1), //TODO "Inventory" => new Enum("Inventory", array()), "Achievements" => new Compound("Achievements", array()), @@ -363,10 +376,10 @@ class Player extends RealHuman{ Player::$list[$this->CID] = $this; $this->ip = $ip; $this->port = $port; - $this->spawnPosition = $this->server->spawn; + $this->spawnPosition = Level::getDefault()->getSafeSpawn(); $this->timeout = microtime(true) + 20; $this->gamemode = $this->server->gamemode; - $this->level = $this->server->api->level->getDefault(); + $this->level = Level::getDefault(); $this->viewDistance = (int) $this->server->api->getProperty("view-distance"); $this->slot = 0; $this->hotbar = array(0, -1, -1, -1, -1, -1, -1, -1, -1); @@ -384,7 +397,9 @@ class Player extends RealHuman{ } /** - * @param Vector3 $pos + * Sets the spawnpoint of the player (and the compass direction) to a Vector3, or set it on another world with a Position object + * + * @param Vector3|Position $pos */ public function setSpawn(Vector3 $pos){ if(!($pos instanceof Position)){ @@ -942,39 +957,37 @@ class Player extends RealHuman{ } switch($item->getID()){ - case WORKBENCH: + case Item::WORKBENCH: $this->grantAchievement("buildWorkBench"); break; - case WOODEN_PICKAXE: + case Item::WOODEN_PICKAXE: $this->grantAchievement("buildPickaxe"); break; - case FURNACE: + case Item::FURNACE: $this->grantAchievement("buildFurnace"); break; - case WOODEN_HOE: + case Item::WOODEN_HOE: $this->grantAchievement("buildHoe"); break; - case BREAD: + case Item::BREAD: $this->grantAchievement("makeBread"); break; - case CAKE: + case Item::CAKE: $this->grantAchievement("bakeCake"); + $this->addItem(Item::get(Item::BUCKET, 0, 3)); break; - case STONE_PICKAXE: - case GOLD_PICKAXE: - case IRON_PICKAXE: - case DIAMOND_PICKAXE: + case Item::STONE_PICKAXE: + case Item::GOLD_PICKAXE: + case Item::IRON_PICKAXE: + case Item::DIAMOND_PICKAXE: $this->grantAchievement("buildBetterPickaxe"); break; - case WOODEN_SWORD: + case Item::WOODEN_SWORD: $this->grantAchievement("buildSword"); break; - case DIAMOND: + case Item::DIAMOND: $this->grantAchievement("diamond"); break; - case CAKE: - $this->addItem(Item::get(BUCKET, 0, 3)); - break; } } @@ -1062,11 +1075,11 @@ class Player extends RealHuman{ return false; } ksort($this->received); - if(($cnt = count($this->received)) > PLAYER_MAX_QUEUE){ + if(($cnt = count($this->received)) > self::MAX_QUEUE){ foreach($this->received as $c => $t){ unset($this->received[$c]); --$cnt; - if($cnt <= PLAYER_MAX_QUEUE){ + if($cnt <= self::MAX_QUEUE){ break; } } @@ -1220,7 +1233,7 @@ class Player extends RealHuman{ return; } - if(EventHandler::callEvent(new DataPacketReceiveEvent($this, $packet)) === Event::DENY){ + if(EventHandler::callEvent(new Event\Server\DataPacketReceiveEvent($this, $packet)) === Event\Event::DENY){ return; } @@ -1313,8 +1326,8 @@ class Player extends RealHuman{ $nbt = Player::getOffline($this->username); $nbt->NameTag = $this->username; $this->gamemode = $nbt->playerGameType & 0x03; - if(($this->level = $this->server->api->level->get($nbt->Level)) === false){ - $this->level = $this->server->api->level->getDefault(); + if(($this->level = Level::get($nbt->Level)) === false){ + $this->level = Level::getDefault(); $nbt->Level = $this->level->getName(); $nbt->Pos[0] = $this->level->getSpawn()->x; $nbt->Pos[1] = $this->level->getSpawn()->y; @@ -1334,7 +1347,7 @@ class Player extends RealHuman{ } $this->achievements = array(); - foreach($nbt->Achievements->getValue() as $achievement){ + foreach($nbt->Achievements as $achievement){ $this->achievements[$achievement->getName()] = $achievement->getValue() > 0 ? true : false; } @@ -1365,7 +1378,7 @@ class Player extends RealHuman{ $this->dataPacket($pk); - if(($level = $this->server->api->level->get($this->namedtag->SpawnLevel)) !== false){ + if(($level = Level::get($this->namedtag->SpawnLevel)) !== false){ $this->spawnPosition = new Position($this->namedtag->SpawnX, $this->namedtag->SpawnY, $this->namedtag->SpawnZ, $level); $pk = new SetSpawnPositionPacket; @@ -1478,7 +1491,7 @@ class Player extends RealHuman{ $item = $this->getSlot($packet->slot); } - if($packet->slot === false or EventHandler::callEvent(new PlayerEquipmentChangeEvent($this, $item, $packet->slot, 0)) === Event::DENY){ + if($packet->slot === false or EventHandler::callEvent(new Event\Player\PlayerEquipmentChangeEvent($this, $item, $packet->slot, 0)) === Event\Event::DENY){ $this->sendInventorySlot($packet->slot); } else{ $this->setEquipmentSlot(0, $packet->slot); @@ -2262,7 +2275,7 @@ class Player extends RealHuman{ return false; } - if(EventHandler::callEvent(new DataPacketSendEvent($this, $packet)) === Event::DENY){ + if(EventHandler::callEvent(new Event\Server\DataPacketSendEvent($this, $packet)) === Event\Event::DENY){ return array(); } $packet->encode(); @@ -2280,8 +2293,7 @@ class Player extends RealHuman{ } /** - * @param integer $id - * @param array $data + * @param DataPacket $packet * * @return array|bool */ @@ -2290,7 +2302,7 @@ class Player extends RealHuman{ return false; } - if(EventHandler::callEvent(new DataPacketSendEvent($this, $packet)) === Event::DENY){ + if(EventHandler::callEvent(new Event\Server\DataPacketSendEvent($this, $packet)) === Event\Event::DENY){ return; } diff --git a/src/PocketMine/PlayerAPI.php b/src/PocketMine/PlayerAPI.php index 1ac44c023..9f3f0b1a1 100644 --- a/src/PocketMine/PlayerAPI.php +++ b/src/PocketMine/PlayerAPI.php @@ -21,9 +21,9 @@ namespace PocketMine; -use PocketMine\Entity\Entity as Entity; -use PocketMine\Level\Level as Level; -use PocketMine\Level\Position as Position; +use PocketMine\Entity\Entity; +use PocketMine\Level\Level; +use PocketMine\Level\Position; use PocketMine\Math\Vector3 as Vector3; class PlayerAPI{ @@ -139,7 +139,7 @@ class PlayerAPI{ if(count($params) === 1 or count($params) === 4){ $tg = array_shift($params); if(count($params) === 3 and substr($tg, 0, 2) === "w:"){ - $target = $this->server->api->level->get(substr($tg, 2)); + $target = Level::get(substr($tg, 2)); } else{ $target = Player::get($tg); } @@ -176,7 +176,7 @@ class PlayerAPI{ $output .= "Please run this command in-game.\n"; break; } - $issuer->teleport($this->server->spawn); + $issuer->teleport(Level::getDefault()->getSafeSpawn()); break; case "ping": if(!($issuer instanceof Player)){ @@ -302,7 +302,7 @@ class PlayerAPI{ public function teleport(&$name, &$target){ if(substr($target, 0, 2) === "w:"){ - $lv = $this->server->api->level->get(substr($target, 2)); + $lv = Level::get(substr($target, 2)); if($lv instanceof Level){ $origin = Player::get($name); if($origin instanceof Player){ diff --git a/src/PocketMine/PluginAPI.php b/src/PocketMine/PluginAPI.php index a8fac3383..f183b5657 100644 --- a/src/PocketMine/PluginAPI.php +++ b/src/PocketMine/PluginAPI.php @@ -21,11 +21,11 @@ namespace PocketMine; -use PocketMine\Network\Protocol\Info as Info; +use PocketMine\Network\Protocol\Info; use PocketMine\PMF\Plugin as PMFPlugin; -use PocketMine\Utils\Config as Config; -use PocketMine\Utils\TextFormat as TextFormat; -use PocketMine\Utils\Utils as Utils; +use PocketMine\Utils\Config; +use PocketMine\Utils\TextFormat; +use PocketMine\Utils\Utils; class PluginAPI extends \stdClass{ private $server; diff --git a/src/PocketMine/PocketMine.php b/src/PocketMine/PocketMine.php index 0e76bc1e9..25af6ab9e 100644 --- a/src/PocketMine/PocketMine.php +++ b/src/PocketMine/PocketMine.php @@ -19,13 +19,21 @@ * */ -namespace{ +namespace { + /** + * Output text to the console, can contain Minecraft-formatted text. + * + * @param $message + * @param bool $EOL + * @param bool $log + * @param int $level + */ function console($message, $EOL = true, $log = true, $level = 1){ - return PocketMine\console($message, $EOL, $log, $level); + PocketMine\console($message, $EOL, $log, $level); } } -namespace PocketMine{ +namespace PocketMine { const VERSION = "Alpha_1.4dev"; const API_VERSION = "1.0.0"; const CODENAME = "絶好(Zekkou)ケーキ(Cake)"; @@ -38,28 +46,28 @@ namespace PocketMine{ $className = array_pop($path); if(count($path) > 0){ $path = implode(DIRECTORY_SEPARATOR, array_map("strtolower", $path)) . DIRECTORY_SEPARATOR; - }else{ + } else{ $path = ""; } $fPath = \PocketMine\PATH . "src" . DIRECTORY_SEPARATOR . "PocketMine" . DIRECTORY_SEPARATOR . $path . $className . ".php"; if(file_exists($fPath)){ require_once($fPath); } - }else{ //Try plugin + } else{ //Try plugin $className = array_pop($path); if(count($path) > 0){ $path = implode(DIRECTORY_SEPARATOR, array_map("strtolower", $path)) . DIRECTORY_SEPARATOR; - }else{ + } else{ $path = ""; } - $fPath = \PocketMine\PATH . "plugins". DIRECTORY_SEPARATOR . $parent . DIRECTORY_SEPARATOR . "src" . DIRECTORY_SEPARATOR . $path . $className . ".php"; + $fPath = \PocketMine\PATH . "plugins" . DIRECTORY_SEPARATOR . $parent . DIRECTORY_SEPARATOR . "src" . DIRECTORY_SEPARATOR . $path . $className . ".php"; if(file_exists($fPath)){ require_once($fPath); } } }); - define("PocketMine\PATH", \getcwd() . DIRECTORY_SEPARATOR); + define("PocketMine\\PATH", \getcwd() . DIRECTORY_SEPARATOR); //Startup code. Do not look at it, it can harm you. Most of them are hacks to fix date-related bugs, or basic functions used after this @@ -67,7 +75,7 @@ namespace PocketMine{ if(ini_get("date.timezone") == ""){ //No Timezone set date_default_timezone_set("GMT"); - if(strpos(" ".strtoupper(php_uname("s")), " WIN") !== false){ + if(strpos(" " . strtoupper(php_uname("s")), " WIN") !== false){ $time = time(); $time -= $time % 60; //TODO: Parse different time & date formats by region. ¬¬ world @@ -77,7 +85,7 @@ namespace PocketMine{ exec("date.exe /T", $date); $j = array_map("intval", explode(substr($date[0], 2, 1), trim($date[0]))); $offset = round((mktime($i[0], $i[1], 0, $j[1], $j[0], $j[2]) - $time) / 60) * 60; - }else{ + } else{ exec("date +%s", $t); $offset = round((intval(trim($t[0])) - time()) / 60) * 60; } @@ -86,7 +94,7 @@ namespace PocketMine{ $d = timezone_name_from_abbr("", $offset, $daylight); @ini_set("date.timezone", $d); date_default_timezone_set($d); - }else{ + } else{ $d = @date_default_timezone_get(); if(strpos($d, "/") === false){ $d = timezone_name_from_abbr($d); @@ -103,15 +111,15 @@ namespace PocketMine{ ini_set("default_charset", "utf-8"); ini_set("memory_limit", "128M"); //Default - define("PocketMine\START_TIME", microtime(true)); + define("PocketMine\\START_TIME", microtime(true)); $opts = getopt("", array("enable-ansi", "disable-ansi", "data-path:", "no-wizard")); - define("PocketMine\DATA", isset($opts["data-path"]) ? realpath($opts["data-path"]) . DIRECTORY_SEPARATOR : PATH); + define("PocketMine\\DATA", isset($opts["data-path"]) ? realpath($opts["data-path"]) . DIRECTORY_SEPARATOR : \PocketMine\PATH); if((strpos(strtoupper(php_uname("s")), "WIN") or isset($opts["enable-ansi"])) and !isset($opts["disable-ansi"])){ - define("PocketMine\ANSI", true); - }else{ - define("PocketMine\ANSI", false); + define("PocketMine\\ANSI", true); + } else{ + define("PocketMine\\ANSI", false); } function dummy(){ @@ -121,33 +129,33 @@ namespace PocketMine{ function safe_var_dump($var, $cnt = 0){ switch(true){ case is_array($var): - echo str_repeat(" ", $cnt)."array(".count($var).") {".PHP_EOL; + echo str_repeat(" ", $cnt) . "array(" . count($var) . ") {" . PHP_EOL; foreach($var as $key => $value){ - echo str_repeat(" ", $cnt + 1)."[".(is_integer($key) ? $key:'"'.$key.'"')."]=>".PHP_EOL; + echo str_repeat(" ", $cnt + 1) . "[" . (is_integer($key) ? $key : '"' . $key . '"') . "]=>" . PHP_EOL; safe_var_dump($value, $cnt + 1); } - echo str_repeat(" ", $cnt)."}".PHP_EOL; + echo str_repeat(" ", $cnt) . "}" . PHP_EOL; break; case is_integer($var): - echo str_repeat(" ", $cnt)."int(".$var.")".PHP_EOL; + echo str_repeat(" ", $cnt) . "int(" . $var . ")" . PHP_EOL; break; case is_float($var): - echo str_repeat(" ", $cnt)."float(".$var.")".PHP_EOL; + echo str_repeat(" ", $cnt) . "float(" . $var . ")" . PHP_EOL; break; case is_bool($var): - echo str_repeat(" ", $cnt)."bool(".($var === true ? "true":"false").")".PHP_EOL; + echo str_repeat(" ", $cnt) . "bool(" . ($var === true ? "true" : "false") . ")" . PHP_EOL; break; case is_string($var): - echo str_repeat(" ", $cnt)."string(".strlen($var).") \"$var\"".PHP_EOL; + echo str_repeat(" ", $cnt) . "string(" . strlen($var) . ") \"$var\"" . PHP_EOL; break; case is_resource($var): - echo str_repeat(" ", $cnt)."resource() of type (".get_resource_type($var).")".PHP_EOL; + echo str_repeat(" ", $cnt) . "resource() of type (" . get_resource_type($var) . ")" . PHP_EOL; break; case is_object($var): - echo str_repeat(" ", $cnt)."object(".get_class($var).")".PHP_EOL; + echo str_repeat(" ", $cnt) . "object(" . get_class($var) . ")" . PHP_EOL; break; case is_null($var): - echo str_repeat(" ", $cnt)."NULL".PHP_EOL; + echo str_repeat(" ", $cnt) . "NULL" . PHP_EOL; break; } } @@ -155,12 +163,12 @@ namespace PocketMine{ function kill($pid){ switch(Utils\Utils::getOS()){ case "win": - exec("taskkill.exe /F /PID ".((int) $pid)." > NUL"); + exec("taskkill.exe /F /PID " . ((int) $pid) . " > NUL"); break; case "mac": case "linux": default: - exec("kill -9 ".((int) $pid)." > /dev/null 2>&1"); + exec("kill -9 " . ((int) $pid) . " > /dev/null 2>&1"); } } @@ -174,34 +182,43 @@ namespace PocketMine{ } $var = null; unset($var); - }elseif(is_array($var)){ + } elseif(is_array($var)){ foreach($var as $i => $v){ hard_unset($var[$i]); } $var = null; unset($var); - }else{ + } else{ $var = null; unset($var); } } + /** + * Output text to the console, can contain Minecraft-formatted text. + * + * @param $message + * @param bool $EOL + * @param bool $log + * @param int $level + */ function console($message, $EOL = true, $log = true, $level = 1){ - if(!defined("DEBUG") or DEBUG >= $level){ - $message .= $EOL === true ? PHP_EOL:""; - $time = (ANSI === true ? Utils\TextFormat::AQUA . date("H:i:s") . Utils\TextFormat::RESET:date("H:i:s")) . " "; + if(!defined("PocketMine\\DEBUG") or \PocketMine\DEBUG >= $level){ + $message .= $EOL === true ? PHP_EOL : ""; + $time = (\PocketMine\ANSI === true ? Utils\TextFormat::AQUA . date("H:i:s") . Utils\TextFormat::RESET : date("H:i:s")) . " "; $replaced = Utils\TextFormat::clean(preg_replace('/\x1b\[[0-9;]*m/', "", $time . $message)); if($log === true and (!defined("LOG") or LOG === true)){ - log(date("Y-m-d")." ".$replaced, "console", false, $level); + log(date("Y-m-d") . " " . $replaced, "console", false, $level); } - if(ANSI === true){ + if(\PocketMine\ANSI === true){ $add = ""; - if(preg_match("/\[([a-zA-Z0-9]*)\]/", $message, $matches) > 0){ + if(preg_match("/\\[([a-zA-Z0-9]*)\\]/", $message, $matches) > 0){ switch($matches[1]){ case "ERROR": case "SEVERE": $add .= Utils\TextFormat::RED; break; + case "TRACE": case "INTERNAL": case "DEBUG": $add .= Utils\TextFormat::GRAY; @@ -218,7 +235,7 @@ namespace PocketMine{ } } $message = Utils\TextFormat::toANSI($time . $add . $message . Utils\TextFormat::RESET); - }else{ + } else{ $message = $replaced; } echo $message; @@ -234,11 +251,12 @@ namespace PocketMine{ $params = ""; if(isset($trace[$i]["args"])){ foreach($trace[$i]["args"] as $name => $value){ - $params .= (is_object($value) ? get_class($value)." ".(method_exists($value, "__toString") ? $value->__toString() : "object"):gettype($value)." ".@strval($value)).", "; + $params .= (is_object($value) ? get_class($value) . " " . (method_exists($value, "__toString") ? $value->__toString() : "object") : gettype($value) . " " . @strval($value)) . ", "; } } - $messages[] = "#$j ".(isset($trace[$i]["file"]) ? $trace[$i]["file"]:"")."(".(isset($trace[$i]["line"]) ? $trace[$i]["line"]:"")."): ".(isset($trace[$i]["class"]) ? $trace[$i]["class"].$trace[$i]["type"]:"").$trace[$i]["function"]."(".substr($params, 0, -2).")"; + $messages[] = "#$j " . (isset($trace[$i]["file"]) ? $trace[$i]["file"] : "") . "(" . (isset($trace[$i]["line"]) ? $trace[$i]["line"] : "") . "): " . (isset($trace[$i]["class"]) ? $trace[$i]["class"] . $trace[$i]["type"] : "") . $trace[$i]["function"] . "(" . substr($params, 0, -2) . ")"; } + return $messages; } @@ -263,23 +281,25 @@ namespace PocketMine{ E_DEPRECATED => "E_DEPRECATED", E_USER_DEPRECATED => "E_USER_DEPRECATED", ); - $errno = isset($errorConversion[$errno]) ? $errorConversion[$errno]:$errno; - console("[ERROR] A ".$errno." error happened: \"$errstr\" in \"$errfile\" at line $errline", true, true, 0); + $type = ($errno === E_ERROR or $errno === E_WARNING or $errno === E_USER_ERROR or $errno === E_USER_WARNING) ? "ERROR" : "NOTICE"; + $errno = isset($errorConversion[$errno]) ? $errorConversion[$errno] : $errno; + console("[$type] A $errno error happened: \"$errstr\" in \"$errfile\" at line $errline", true, true, 0); foreach(getTrace() as $i => $line){ console("[TRACE] $line"); } + return true; } function log($message, $name, $EOL = true, $level = 2, $close = false){ global $fpointers; - if((!defined("DEBUG") or DEBUG >= $level) and (!defined("LOG") or LOG === true)){ - $message .= $EOL === true ? PHP_EOL:""; + if((!defined("PocketMine\\DEBUG") or \PocketMine\DEBUG >= $level) and (!defined("PocketMine\\LOG") or LOG === true)){ + $message .= $EOL === true ? PHP_EOL : ""; if(!isset($fpointers)){ $fpointers = array(); } if(!isset($fpointers[$name]) or $fpointers[$name] === false){ - $fpointers[$name] = @fopen(\PocketMine\DATA."/".$name.".log", "ab"); + $fpointers[$name] = @fopen(\PocketMine\DATA . "/" . $name . ".log", "ab"); } @fwrite($fpointers[$name], $message); if($close === true){ @@ -290,7 +310,7 @@ namespace PocketMine{ } - set_error_handler("\PocketMine\\error_handler", E_ALL); + set_error_handler("\\PocketMine\\error_handler", E_ALL); $errors = 0; @@ -304,15 +324,15 @@ namespace PocketMine{ ++$errors; } - if(!extension_loaded("sockets") and @dl((PHP_SHLIB_SUFFIX === "dll" ? "php_":"") . "sockets." . PHP_SHLIB_SUFFIX) === false){ + if(!extension_loaded("sockets")){ console("[ERROR] Unable to find the Socket extension.", true, true, 0); ++$errors; } - if(!extension_loaded("pthreads") and @dl((PHP_SHLIB_SUFFIX === "dll" ? "php_":"") . "pthreads." . PHP_SHLIB_SUFFIX) === false){ + if(!extension_loaded("pthreads")){ console("[ERROR] Unable to find the pthreads extension.", true, true, 0); ++$errors; - }else{ + } else{ $pthreads_version = phpversion("pthreads"); if(substr_count($pthreads_version, ".") < 2){ $pthreads_version = "0.$pthreads_version"; @@ -323,22 +343,22 @@ namespace PocketMine{ } } - if(!extension_loaded("curl") and @dl((PHP_SHLIB_SUFFIX === "dll" ? "php_":"") . "curl." . PHP_SHLIB_SUFFIX) === false){ + if(!extension_loaded("curl")){ console("[ERROR] Unable to find the cURL extension.", true, true, 0); ++$errors; } - if(!extension_loaded("sqlite3") and @dl((PHP_SHLIB_SUFFIX === "dll" ? "php_":"") . "sqlite3." . PHP_SHLIB_SUFFIX) === false){ + if(!extension_loaded("sqlite3")){ console("[ERROR] Unable to find the SQLite3 extension.", true, true, 0); ++$errors; } - if(!extension_loaded("yaml") and @dl((PHP_SHLIB_SUFFIX === "dll" ? "php_":"") . "yaml." . PHP_SHLIB_SUFFIX) === false){ + if(!extension_loaded("yaml")){ console("[ERROR] Unable to find the YAML extension.", true, true, 0); ++$errors; } - if(!extension_loaded("zlib") and @dl((PHP_SHLIB_SUFFIX === "dll" ? "php_":"") . "zlib." . PHP_SHLIB_SUFFIX) === false){ + if(!extension_loaded("zlib")){ console("[ERROR] Unable to find the Zlib extension.", true, true, 0); ++$errors; } @@ -350,8 +370,8 @@ namespace PocketMine{ $gitsha1 = false; if(file_exists(\PocketMine\PATH . ".git/refs/heads/master")){ //Found Git information! - define("PocketMine\GIT_COMMIT", strtolower(trim(file_get_contents(\PocketMine\PATH .".git/refs/heads/master")))); - }else{ //Unknown :( + define("PocketMine\GIT_COMMIT", strtolower(trim(file_get_contents(\PocketMine\PATH . ".git/refs/heads/master")))); + } else{ //Unknown :( define("PocketMine\GIT_COMMIT", str_repeat("00", 20)); } @@ -363,10 +383,12 @@ namespace PocketMine{ $installer = new Wizard\Installer(); } - $server = new ServerAPI(); - $server->start(); + if(!defined("PARENT_API_EXISTENT")){ + $server = new ServerAPI(); + $server->start(); - kill(getmypid()); //Fix for ConsoleAPI being blocked - exit(0); + kill(getmypid()); //Fix for ConsoleAPI being blocked + exit(0); + } } \ No newline at end of file diff --git a/src/PocketMine/Server.php b/src/PocketMine/Server.php index 43449d2a7..b4a492f9c 100644 --- a/src/PocketMine/Server.php +++ b/src/PocketMine/Server.php @@ -25,14 +25,14 @@ */ namespace PocketMine; -use PocketMine\Entity\Entity as Entity; -use PocketMine\Network\Handler as Handler; -use PocketMine\Network\Packet as Packet; -use PocketMine\Network\Protocol\Info as Info; +use PocketMine\Entity\Entity; +use PocketMine\Network\Handler; +use PocketMine\Network\Packet; +use PocketMine\Network\Protocol\Info; use PocketMine\Network\RakNet\Info as RakNetInfo; use PocketMine\Network\RakNet\Packet as RakNetPacket; -use PocketMine\Utils\Utils as Utils; -use PocketMine\Utils\VersionString as VersionString; +use PocketMine\Utils\Utils; +use PocketMine\Utils\VersionString; class Server{ public $tCnt; @@ -46,7 +46,7 @@ class Server{ private function load(){ $this->version = new VersionString(); - if(defined("DEBUG") and DEBUG >= 0){ + if(defined("PocketMine\\DEBUG") and \PocketMine\DEBUG >= 0){ @cli_set_process_title("PocketMine-MP " . \PocketMine\VERSION); } console("[INFO] Starting Minecraft PE server on " . ($this->serverip === "0.0.0.0" ? "*" : $this->serverip) . ":" . $this->port); @@ -107,7 +107,7 @@ class Server{ public function titleTick(){ $time = microtime(true); - if(defined("DEBUG") and DEBUG >= 0 and ANSI === true){ + if(defined("PocketMine\\DEBUG") and \PocketMine\DEBUG >= 0 and ANSI === true){ echo "\x1b]0;PocketMine-MP " . VERSION . " | Online " . count(Player::$list) . "/" . $this->maxClients . " | RAM " . round((memory_get_usage() / 1024) / 1024, 2) . "MB | U " . round(($this->interface->bandwidth[1] / max(1, $time - $this->interface->bandwidth[2])) / 1024, 2) . " D " . round(($this->interface->bandwidth[0] / max(1, $time - $this->interface->bandwidth[2])) / 1024, 2) . " kB/s | TPS " . $this->getTPS() . "\x07"; } $this->interface->bandwidth = array(0, 0, $time); @@ -482,7 +482,7 @@ class Server{ ob_end_clean(); $dump .= "\r\n```"; $name = "Error_Dump_" . date("D_M_j-H.i.s-T_Y"); - logg($dump, $name, true, 0, true); + log($dump, $name, true, 0, true); console("[SEVERE] Please submit the \"{$name}.log\" file to the Bug Reporting page. Give as much info as you can.", true, true, 0); } diff --git a/src/PocketMine/ServerAPI.php b/src/PocketMine/ServerAPI.php index 90fd1d675..6e601355c 100644 --- a/src/PocketMine/ServerAPI.php +++ b/src/PocketMine/ServerAPI.php @@ -21,20 +21,21 @@ namespace PocketMine; -use PocketMine\Block\Block as Block; -use PocketMine\Entity\Entity as Entity; -use PocketMine\Item\Item as Item; -use PocketMine\Network\Protocol\Info as Info; -use PocketMine\Network\Query\QueryHandler as QueryHandler; -use PocketMine\Network\RCON\RCON as RCON; -use PocketMine\Network\UPnP\PortForward as PortForward; -use PocketMine\Network\UPnP\RemovePortForward as RemovePortForward; -use PocketMine\Recipes\Crafting as Crafting; -use PocketMine\Tile\Tile as Tile; -use PocketMine\Utils\Config as Config; -use PocketMine\Utils\TextFormat as TextFormat; -use PocketMine\Utils\Utils as Utils; -use PocketMine\Utils\VersionString as VersionString; +use PocketMine\Block\Block; +use PocketMine\Entity\Entity; +use PocketMine\Item\Item; +use PocketMine\Level\Level; +use PocketMine\Network\Protocol\Info; +use PocketMine\Network\Query\QueryHandler; +use PocketMine\Network\RCON\RCON; +use PocketMine\Network\UPnP\PortForward; +use PocketMine\Network\UPnP\RemovePortForward; +use PocketMine\Recipes\Crafting; +use PocketMine\Tile\Tile; +use PocketMine\Utils\Config; +use PocketMine\Utils\TextFormat; +use PocketMine\Utils\Utils; +use PocketMine\Utils\VersionString; class ServerAPI{ public $restart = false; @@ -112,22 +113,14 @@ class ServerAPI{ @mkdir(\PocketMine\DATA . "worlds/", 0755); @mkdir(\PocketMine\DATA . "plugins/", 0755); - //Init all the events - foreach(get_declared_classes() as $class){ - if(is_subclass_of($class, "Event") and property_exists($class, "handlers") and property_exists($class, "handlerPriority")){ - $class::unregisterAll(); - } - } - $version = new VersionString(); - console("[INFO] Starting Minecraft PE server version " . TextFormat::AQUA . MINECRAFT_VERSION); + console("[INFO] Starting Minecraft: PE server version " . TextFormat::AQUA . MINECRAFT_VERSION); console("[INFO] Loading properties..."); $this->config = new Config(\PocketMine\DATA . "server.properties", Config::PROPERTIES, array( "server-name" => "Minecraft: PE Server", "description" => "Server made using PocketMine-MP", "motd" => "Welcome @player to this server!", - "server-ip" => "", "server-port" => 19132, "server-type" => "normal", "memory-limit" => "128M", @@ -157,7 +150,7 @@ class ServerAPI{ $this->parseProperties(); //Load advanced properties - define("DEBUG", $this->getProperty("debug", 1)); + define("PocketMine\\DEBUG", $this->getProperty("debug", 1)); define("ADVANCED_CACHE", $this->getProperty("enable-advanced-cache", false)); define("MAX_CHUNK_RATE", 20 / $this->getProperty("max-chunks-per-second", 7)); //Default rate ~448 kB/s if(ADVANCED_CACHE == true){ @@ -188,7 +181,7 @@ class ServerAPI{ console("[NOTICE] " . TextFormat::YELLOW . "A new DEVELOPMENT version of PocketMine-MP has been released!"); console("[NOTICE] " . TextFormat::YELLOW . "Commit \"" . $info[0]["commit"]["message"] . "\" [" . substr($info[0]["sha"], 0, 10) . "] by " . $info[0]["commit"]["committer"]["name"]); console("[NOTICE] " . TextFormat::YELLOW . "Get it at PocketMine.net or at https://github.com/PocketMine/PocketMine-MP/archive/" . $info[0]["sha"] . ".zip"); - console("[NOTICE] This message will dissapear after issuing the command \"/update-done\""); + console("[NOTICE] This message will disappear after issuing the command \"/update-done\""); } else{ $this->setProperty("last-update", time()); console("[INFO] " . TextFormat::AQUA . "This is the latest DEVELOPMENT version"); @@ -207,7 +200,7 @@ class ServerAPI{ console("[NOTICE] " . TextFormat::GREEN . "A new STABLE version of PocketMine-MP has been released!"); console("[NOTICE] " . TextFormat::GREEN . "Version \"" . $info[0]["name"] . "\" #" . $updateN); console("[NOTICE] Get it at PocketMine.net or at " . $info[0]["zipball_url"]); - console("[NOTICE] This message will dissapear as soon as you update"); + console("[NOTICE] This message will disappear as soon as you update"); } else{ $this->setProperty("last-update", time()); console("[INFO] " . TextFormat::AQUA . "This is the latest STABLE version"); @@ -218,8 +211,10 @@ class ServerAPI{ $this->loadProperties(); + $this->apiList[] = $this->console = new ConsoleAPI(); $this->apiList[] = $this->level = new LevelAPI(); + $this->apiList[] = $this->block = new BlockAPI(); $this->apiList[] = $this->chat = new ChatAPI(); $this->apiList[] = $this->ban = new BanAPI(); @@ -239,7 +234,7 @@ class ServerAPI{ public function checkTickUpdates(){ //Update entities that need update if(count(Entity::$needUpdate) > 0){ - foreach(EntityEntity::$needUpdate as $id => $entity){ + foreach(Entity::$needUpdate as $id => $entity){ if($entity->onUpdate() === false){ unset(Entity::$needUpdate[$id]); } @@ -276,7 +271,7 @@ class ServerAPI{ public function autoSave(){ console("[DEBUG] Saving....", true, true, 2); - $this->server->api->level->saveAll(); + Level::saveAll(); } public function sendUsage(){ @@ -377,6 +372,12 @@ class ServerAPI{ self::$serverRequest = $this->server; } + Block::init(); + Item::init(); + Crafting::init(); + Level::init(); + + if($this->getProperty("send-usage", true) !== false){ $this->server->schedule(6000, array($this, "sendUsage"), array(), true); //Send the info after 5 minutes have passed $this->sendUsage(); @@ -392,10 +393,6 @@ class ServerAPI{ $this->query = new QueryHandler(); } - Block::init(); - Item::init(); - Crafting::init(); - $this->schedule(2, array($this, "checkTickUpdates"), array(), true); $this->server->init(); unregister_tick_function(array($this->server, "tick")); diff --git a/src/PocketMine/TimeAPI.php b/src/PocketMine/TimeAPI.php index 9854f28d8..b6bfdd064 100644 --- a/src/PocketMine/TimeAPI.php +++ b/src/PocketMine/TimeAPI.php @@ -91,7 +91,7 @@ class TimeAPI{ public function get($raw = false, $level = false){ if(!($level instanceof Level)){ - $level = $this->server->api->level->getDefault(); + $level = Level::getDefault(); } return $raw === true ? $level->getTime() : abs($level->getTime()) % 19200; @@ -99,7 +99,7 @@ class TimeAPI{ public function add($time, $level = false){ if(!($level instanceof Level)){ - $level = $this->server->api->level->getDefault(); + $level = Level::getDefault(); } $level->setTime($level->getTime() + (int) $time); } @@ -127,7 +127,7 @@ class TimeAPI{ public function set($time, $level = false){ if(!($level instanceof Level)){ - $level = $this->server->api->level->getDefault(); + $level = Level::getDefault(); } if(is_string($time) and isset(TimeAPI::$phases[$time])){ $level->setTime(TimeAPI::$phases[$time]); diff --git a/src/PocketMine/block/Bed.php b/src/PocketMine/block/Bed.php index fb356bb72..aaec5d0a0 100644 --- a/src/PocketMine/block/Bed.php +++ b/src/PocketMine/block/Bed.php @@ -21,10 +21,10 @@ namespace PocketMine\Block; -use PocketMine\Item\Item as Item; -use PocketMine\Network\Protocol\ChatPacket as ChatPacket; -use PocketMine\ServerAPI as ServerAPI; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\Network\Protocol\ChatPacket; +use PocketMine\ServerAPI; class Bed extends Transparent{ public function __construct($type = 0){ diff --git a/src/PocketMine/block/Bedrock.php b/src/PocketMine/block/Bedrock.php index dc837323c..c82cd86ad 100644 --- a/src/PocketMine/block/Bedrock.php +++ b/src/PocketMine/block/Bedrock.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Bedrock extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/Beetroot.php b/src/PocketMine/block/Beetroot.php index f1370a5d7..57243f3c1 100644 --- a/src/PocketMine/block/Beetroot.php +++ b/src/PocketMine/block/Beetroot.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class Beetroot extends Flowable{ public function __construct($meta = 0){ @@ -57,24 +58,24 @@ class Beetroot extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->isTransparent === true){ //Replace with common break method //TODO //ServerAPI::request()->api->entity->drop($this, Item::get(BEETROOT_SEEDS, 0, 1)); $this->level->setBlock($this, new Air(), false, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } - } elseif($type === BLOCK_UPDATE_RANDOM){ + } elseif($type === Level::BLOCK_UPDATE_RANDOM){ if(mt_rand(0, 2) == 1){ if($this->meta < 0x07){ ++$this->meta; $this->level->setBlock($this, $this, true, false, true); - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } } else{ - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } } diff --git a/src/PocketMine/block/BirchWoodStairs.php b/src/PocketMine/block/BirchWoodStairs.php index a99d2fa38..865ebbd8f 100644 --- a/src/PocketMine/block/BirchWoodStairs.php +++ b/src/PocketMine/block/BirchWoodStairs.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class BirchWoodStairs extends Stair{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/Block.php b/src/PocketMine/block/Block.php index 9e1f11749..016e808b0 100644 --- a/src/PocketMine/block/Block.php +++ b/src/PocketMine/block/Block.php @@ -23,11 +23,12 @@ * All Block classes are in here */ namespace PocketMine\Block; + +use PocketMine\Item\Item; +use PocketMine\Level\Level; +use PocketMine\Level\Position; +use PocketMine\Player; use PocketMine; -use PocketMine\Player as Player; -use PocketMine\Item\Item as Item; -use PocketMine\Level\Position as Position; -use PocketMine\Level\Level as Level; abstract class Block extends Position{ const AIR = 0; @@ -435,8 +436,8 @@ abstract class Block extends Position{ /** * Returns an array of Item objects to be dropped * - * @param Item $item - * @param Player $player + * @param Item $item + * @param Player $player * * @return array */ @@ -453,8 +454,8 @@ abstract class Block extends Position{ /** * Returns the seconds that this block takes to be broken using an specific Item * - * @param Item $item - * @param Player $player + * @param Item $item + * @param Player $player * * @return float */ @@ -490,8 +491,8 @@ abstract class Block extends Position{ /** * Returns if the item can be broken with an specific Item * - * @param Item $item - * @param Player $player + * @param Item $item + * @param Player $player * * @return bool */ @@ -500,8 +501,8 @@ abstract class Block extends Position{ /** * Do the actions needed so the block is broken with the Item * - * @param Item $item - * @param Player $player + * @param Item $item + * @param Player $player * * @return mixed */ @@ -510,14 +511,14 @@ abstract class Block extends Position{ /** * Places the Block, using block space and block target, and side. Returns if the block has been placed. * - * @param Item $item - * @param Player $player - * @param Block $block - * @param Block $target - * @param int $face - * @param float $fx - * @param float $fy - * @param float $fz + * @param Item $item + * @param Player $player + * @param Block $block + * @param Block $target + * @param int $face + * @param float $fx + * @param float $fy + * @param float $fz * * @return bool */ @@ -526,8 +527,8 @@ abstract class Block extends Position{ /** * Do actions when activated by Item. Returns if it has done anything * - * @param Item $item - * @param Player $player + * @param Item $item + * @param Player $player * * @return bool */ diff --git a/src/PocketMine/block/Bricks.php b/src/PocketMine/block/Bricks.php index 3259f1af3..cfdd03cfe 100644 --- a/src/PocketMine/block/Bricks.php +++ b/src/PocketMine/block/Bricks.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Bricks extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/BrownMushroom.php b/src/PocketMine/block/BrownMushroom.php index 1d36a0ed4..f45eb40e8 100644 --- a/src/PocketMine/block/BrownMushroom.php +++ b/src/PocketMine/block/BrownMushroom.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class BrownMushroom extends Flowable{ public function __construct(){ @@ -31,13 +32,13 @@ class BrownMushroom extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->isTransparent === true){ //Replace with common break method //TODO //ServerAPI::request()->api->entity->drop($this, Item::get($this->id)); $this->level->setBlock($this, new Air(), false, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } } diff --git a/src/PocketMine/block/BurningFurnace.php b/src/PocketMine/block/BurningFurnace.php index 349c70207..5359d23b3 100644 --- a/src/PocketMine/block/BurningFurnace.php +++ b/src/PocketMine/block/BurningFurnace.php @@ -21,14 +21,14 @@ namespace PocketMine\Block; -use PocketMine\Item\Item as Item; -use PocketMine\NBT\Tag\Compound as Compound; -use PocketMine\NBT\Tag\Enum as Enum; -use PocketMine\NBT\Tag\Int as Int; -use PocketMine\NBT\Tag\String as String; -use PocketMine\Tile\Furnace as Furnace; -use PocketMine\Tile\Tile as Tile; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\NBT\Tag\Compound; +use PocketMine\NBT\Tag\Enum; +use PocketMine\NBT\Tag\Int; +use PocketMine\NBT\Tag\String; +use PocketMine\Tile\Furnace; +use PocketMine\Tile\Tile; class BurningFurnace extends Solid{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/Cactus.php b/src/PocketMine/block/Cactus.php index ca37c7daf..a1d25adad 100644 --- a/src/PocketMine/block/Cactus.php +++ b/src/PocketMine/block/Cactus.php @@ -21,10 +21,11 @@ namespace PocketMine\Block; -use PocketMine\Item\Item as Item; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\ServerAPI as ServerAPI; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\ServerAPI; +use PocketMine\Level\Level; class Cactus extends Transparent{ public function __construct($meta = 0){ @@ -34,15 +35,15 @@ class Cactus extends Transparent{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ $down = $this->getSide(0); if($down->getID() !== self::SAND and $down->getID() !== self::CACTUS){ //Replace with common break method $this->level->setBlock($this, new Air(), false); ServerAPI::request()->api->entity->drop($this, Item::get($this->id)); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } - } elseif($type === BLOCK_UPDATE_RANDOM){ + } elseif($type === Level::BLOCK_UPDATE_RANDOM){ if($this->getSide(0)->getID() !== self::CACTUS){ if($this->meta == 0x0F){ for($y = 1; $y < 3; ++$y){ @@ -59,7 +60,7 @@ class Cactus extends Transparent{ $this->level->setBlock($this, $this, false); } - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } } diff --git a/src/PocketMine/block/Cake.php b/src/PocketMine/block/Cake.php index 2a0c73c71..0ab2cd5ed 100644 --- a/src/PocketMine/block/Cake.php +++ b/src/PocketMine/block/Cake.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class Cake extends Transparent{ public function __construct($meta = 0){ @@ -45,11 +46,11 @@ class Cake extends Transparent{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->getID() === self::AIR){ //Replace with common break method $this->level->setBlock($this, new Air(), true, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } } diff --git a/src/PocketMine/block/Carpet.php b/src/PocketMine/block/Carpet.php index f5be84d82..9bccb5fb0 100644 --- a/src/PocketMine/block/Carpet.php +++ b/src/PocketMine/block/Carpet.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class Carpet extends Flowable{ public function __construct($meta = 0){ @@ -63,13 +64,13 @@ class Carpet extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->getID() === self::AIR){ //Replace with common break method //TODO //ServerAPI::request()->api->entity->drop($this, Item::get($this->id, $this->meta, 1)); $this->level->setBlock($this, new Air(), true, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } } diff --git a/src/PocketMine/block/Carrot.php b/src/PocketMine/block/Carrot.php index 304bfde46..6f18bb9de 100644 --- a/src/PocketMine/block/Carrot.php +++ b/src/PocketMine/block/Carrot.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class Carrot extends Flowable{ public function __construct($meta = 0){ @@ -57,24 +58,24 @@ class Carrot extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->isTransparent === true){ //Replace with common break method //TODO //ServerAPI::request()->api->entity->drop($this, Item::get(CARROT, 0, 1)); $this->level->setBlock($this, new Air(), false, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } - } elseif($type === BLOCK_UPDATE_RANDOM){ + } elseif($type === Level::BLOCK_UPDATE_RANDOM){ if(mt_rand(0, 2) == 1){ if($this->meta < 0x07){ ++$this->meta; $this->level->setBlock($this, $this, true, false, true); - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } } else{ - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } } diff --git a/src/PocketMine/block/Chest.php b/src/PocketMine/block/Chest.php index 01aeb51c7..049b96a94 100644 --- a/src/PocketMine/block/Chest.php +++ b/src/PocketMine/block/Chest.php @@ -21,14 +21,14 @@ namespace PocketMine\Block; -use PocketMine\Item\Item as Item; -use PocketMine\NBT\Tag\Compound as Compound; -use PocketMine\NBT\Tag\Enum as Enum; -use PocketMine\NBT\Tag\Int as Int; -use PocketMine\NBT\Tag\String as String; -use PocketMine\Tile\Chest as TileChest; -use PocketMine\Tile\Tile as Tile; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\NBT\Tag\Compound; +use PocketMine\NBT\Tag\Enum; +use PocketMine\NBT\Tag\Int; +use PocketMine\NBT\Tag\String; +use PocketMine\Tile\Chest as TileChest; +use PocketMine\Tile\Tile; class Chest extends Transparent{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/Clay.php b/src/PocketMine/block/Clay.php index 6e80af91b..e024285f6 100644 --- a/src/PocketMine/block/Clay.php +++ b/src/PocketMine/block/Clay.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Clay extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/Coal.php b/src/PocketMine/block/Coal.php index be9030b29..8a77adcda 100644 --- a/src/PocketMine/block/Coal.php +++ b/src/PocketMine/block/Coal.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Coal extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/CoalOre.php b/src/PocketMine/block/CoalOre.php index 2d592a27d..0d3f7c310 100644 --- a/src/PocketMine/block/CoalOre.php +++ b/src/PocketMine/block/CoalOre.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class CoalOre extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/Cobblestone.php b/src/PocketMine/block/Cobblestone.php index 8d2c66ab4..2c7c1ed63 100644 --- a/src/PocketMine/block/Cobblestone.php +++ b/src/PocketMine/block/Cobblestone.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Cobblestone extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/Cobweb.php b/src/PocketMine/block/Cobweb.php index 183aaba00..4ae5d5c47 100644 --- a/src/PocketMine/block/Cobweb.php +++ b/src/PocketMine/block/Cobweb.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Cobweb extends Flowable{ public function __construct(){ diff --git a/src/PocketMine/block/CyanFlower.php b/src/PocketMine/block/CyanFlower.php index ca93c2359..35801adc8 100644 --- a/src/PocketMine/block/CyanFlower.php +++ b/src/PocketMine/block/CyanFlower.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class CyanFlower extends Flowable{ public function __construct(){ @@ -42,13 +43,13 @@ class CyanFlower extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->isTransparent === true){ //Replace with common break method //TODO //ServerAPI::request()->api->entity->drop($this, Item::get($this->id)); $this->level->setBlock($this, new Air(), false, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } } diff --git a/src/PocketMine/block/Dandelion.php b/src/PocketMine/block/Dandelion.php index 446acd568..cc6abce3f 100644 --- a/src/PocketMine/block/Dandelion.php +++ b/src/PocketMine/block/Dandelion.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class Dandelion extends Flowable{ public function __construct(){ @@ -42,13 +43,13 @@ class Dandelion extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->isTransparent === true){ //Replace with common break method //TODO //ServerAPI::request()->api->entity->drop($this, Item::get($this->id)); $this->level->setBlock($this, new Air(), false, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } } diff --git a/src/PocketMine/block/DeadBush.php b/src/PocketMine/block/DeadBush.php index 5dfe9e834..24b3e5636 100644 --- a/src/PocketMine/block/DeadBush.php +++ b/src/PocketMine/block/DeadBush.php @@ -22,6 +22,7 @@ namespace PocketMine\Block; use PocketMine; +use PocketMine\Level\Level; class DeadBush extends Flowable{ public function __construct(){ @@ -31,11 +32,11 @@ class DeadBush extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->isTransparent === true){ //Replace with common break method $this->level->setBlock($this, new Air(), false, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } } diff --git a/src/PocketMine/block/Diamond.php b/src/PocketMine/block/Diamond.php index 5cf670563..941bada44 100644 --- a/src/PocketMine/block/Diamond.php +++ b/src/PocketMine/block/Diamond.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Diamond extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/DiamondOre.php b/src/PocketMine/block/DiamondOre.php index 7563789cf..312a6e82c 100644 --- a/src/PocketMine/block/DiamondOre.php +++ b/src/PocketMine/block/DiamondOre.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class DiamondOre extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/Dirt.php b/src/PocketMine/block/Dirt.php index c86de30cd..1f940f9ce 100644 --- a/src/PocketMine/block/Dirt.php +++ b/src/PocketMine/block/Dirt.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Dirt extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/Door.php b/src/PocketMine/block/Door.php index b69e94b0b..2c47416c2 100644 --- a/src/PocketMine/block/Door.php +++ b/src/PocketMine/block/Door.php @@ -21,10 +21,11 @@ namespace PocketMine\Block; -use PocketMine\Item\Item as Item; -use PocketMine\Network\Protocol\LevelEventPacket as LevelEventPacket; -use PocketMine\Player as Player; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\Network\Protocol\LevelEventPacket; +use PocketMine\Player; +use PocketMine\Level\Level; abstract class Door extends Transparent{ @@ -34,14 +35,14 @@ abstract class Door extends Transparent{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->getID() === self::AIR){ //Replace with common break method $this->level->setBlock($this, new Air(), false); if($this->getSide(1) instanceof Door){ $this->level->setBlock($this->getSide(1), new Air(), false); } - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } } diff --git a/src/PocketMine/block/DoubleSlab.php b/src/PocketMine/block/DoubleSlab.php index 80c90e1e0..8fca926c5 100644 --- a/src/PocketMine/block/DoubleSlab.php +++ b/src/PocketMine/block/DoubleSlab.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class DoubleSlab extends Solid{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/DoubleWoodSlab.php b/src/PocketMine/block/DoubleWoodSlab.php index 565502bfd..6b6b09146 100644 --- a/src/PocketMine/block/DoubleWoodSlab.php +++ b/src/PocketMine/block/DoubleWoodSlab.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class DoubleWoodSlab extends Solid{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/Fallable.php b/src/PocketMine/block/Fallable.php index feedf959a..b8795d5bf 100644 --- a/src/PocketMine/block/Fallable.php +++ b/src/PocketMine/block/Fallable.php @@ -21,9 +21,10 @@ namespace PocketMine\Block; -use PocketMine\Item\Item as Item; -use PocketMine\ServerAPI as ServerAPI; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\ServerAPI; +use PocketMine\Level\Level; class Fallable extends Solid{ @@ -34,7 +35,7 @@ class Fallable extends Solid{ public function place(Item $item, PocketMine\Player $player, Block $block, Block $target, $face, $fx, $fy, $fz){ $ret = $this->level->setBlock($this, $this, true, false, true); - ServerAPI::request()->api->block->blockUpdate(clone $this, BLOCK_UPDATE_NORMAL); + ServerAPI::request()->api->block->blockUpdate(clone $this, Level::BLOCK_UPDATE_NORMAL); return $ret; } diff --git a/src/PocketMine/block/Farmland.php b/src/PocketMine/block/Farmland.php index eeecf1bd1..191a04329 100644 --- a/src/PocketMine/block/Farmland.php +++ b/src/PocketMine/block/Farmland.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Farmland extends Solid{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/FenceGate.php b/src/PocketMine/block/FenceGate.php index 8e2f56b58..ccf093c02 100644 --- a/src/PocketMine/block/FenceGate.php +++ b/src/PocketMine/block/FenceGate.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class FenceGate extends Transparent{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/Fire.php b/src/PocketMine/block/Fire.php index 260bc8783..6d1bd7447 100644 --- a/src/PocketMine/block/Fire.php +++ b/src/PocketMine/block/Fire.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class Fire extends Flowable{ public function __construct($meta = 0){ @@ -38,7 +39,7 @@ class Fire extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ for($s = 0; $s <= 5; ++$s){ $side = $this->getSide($s); if($side->getID() !== self::AIR and !($side instanceof Liquid)){ @@ -47,12 +48,12 @@ class Fire extends Flowable{ } $this->level->setBlock($this, new Air(), true, false, true); - return BLOCK_UPDATE_NORMAL; - } elseif($type === BLOCK_UPDATE_RANDOM){ + return Level::BLOCK_UPDATE_NORMAL; + } elseif($type === Level::BLOCK_UPDATE_RANDOM){ if($this->getSide(0)->getID() !== self::NETHERRACK){ $this->level->setBlock($this, new Air(), true, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } } diff --git a/src/PocketMine/block/Generic.php b/src/PocketMine/block/Generic.php index 65116e0fe..514f00d63 100644 --- a/src/PocketMine/block/Generic.php +++ b/src/PocketMine/block/Generic.php @@ -21,10 +21,10 @@ namespace PocketMine\Block; -use PocketMine\Player as Player; -use PocketMine\Item\Item as Item; -use PocketMine\ServerAPI as ServerAPI; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\ServerAPI; +use PocketMine\Level\Level; class Generic extends Block{ @@ -50,7 +50,7 @@ class Generic extends Block{ } public function onUpdate($type){ - if($this->hasPhysics === true and $type === BLOCK_UPDATE_NORMAL){ + if($this->hasPhysics === true and $type === Level::BLOCK_UPDATE_NORMAL){ $down = $this->getSide(0); if($down->getID() === self::AIR or ($down instanceof Liquid)){ $data = array( @@ -64,7 +64,7 @@ class Generic extends Block{ //TODO //$e = $server->api->entity->add($this->level, ENTITY_FALLING, FALLING_SAND, $data); //$e->spawnToAll(); - $server->api->block->blockUpdateAround(clone $this, BLOCK_UPDATE_NORMAL, 1); + $server->api->block->blockUpdateAround(clone $this, Level::BLOCK_UPDATE_NORMAL, 1); } return false; diff --git a/src/PocketMine/block/Glass.php b/src/PocketMine/block/Glass.php index 84377ffe3..20acc7373 100644 --- a/src/PocketMine/block/Glass.php +++ b/src/PocketMine/block/Glass.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Glass extends Transparent{ public function __construct(){ diff --git a/src/PocketMine/block/GlowingRedstoneOre.php b/src/PocketMine/block/GlowingRedstoneOre.php index 02000f688..c47b4a993 100644 --- a/src/PocketMine/block/GlowingRedstoneOre.php +++ b/src/PocketMine/block/GlowingRedstoneOre.php @@ -21,10 +21,9 @@ namespace PocketMine\Block; -use PocketMine\Item\Item as Item; -use PocketMine\Level\Position as Position; -use PocketMine\Utils\Utils as Utils; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class GlowingRedstoneOre extends Solid{ public function __construct(){ @@ -33,10 +32,10 @@ class GlowingRedstoneOre extends Solid{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_SCHEDULED or $type === BLOCK_UPDATE_RANDOM){ + if($type === Level::BLOCK_UPDATE_SCHEDULED or $type === Level::BLOCK_UPDATE_RANDOM){ $this->level->setBlock($this, Block::get(REDSTONE_ORE, $this->meta), false, false, true); - return BLOCK_UPDATE_WEAK; + return Level::BLOCK_UPDATE_WEAK; } return false; diff --git a/src/PocketMine/block/Glowstone.php b/src/PocketMine/block/Glowstone.php index 828af866a..cb936332f 100644 --- a/src/PocketMine/block/Glowstone.php +++ b/src/PocketMine/block/Glowstone.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Glowstone extends Transparent{ public function __construct(){ diff --git a/src/PocketMine/block/Gold.php b/src/PocketMine/block/Gold.php index ce614582e..8a21f9e97 100644 --- a/src/PocketMine/block/Gold.php +++ b/src/PocketMine/block/Gold.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Gold extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/GoldOre.php b/src/PocketMine/block/GoldOre.php index 64124278a..2ee7e08db 100644 --- a/src/PocketMine/block/GoldOre.php +++ b/src/PocketMine/block/GoldOre.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class GoldOre extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/Grass.php b/src/PocketMine/block/Grass.php index 3b6567d19..e82a6ff3f 100644 --- a/src/PocketMine/block/Grass.php +++ b/src/PocketMine/block/Grass.php @@ -21,10 +21,10 @@ namespace PocketMine\Block; -use PocketMine\Item\Item as Item; -use PocketMine\Level\Generator\Object\TallGrass as TallGrass; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\Level\Generator\Object\TallGrass; +use PocketMine\Utils\Random; class Grass extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/Gravel.php b/src/PocketMine/block/Gravel.php index 8de006e1f..8bf43fb39 100644 --- a/src/PocketMine/block/Gravel.php +++ b/src/PocketMine/block/Gravel.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Gravel extends Fallable{ public function __construct(){ diff --git a/src/PocketMine/block/HayBale.php b/src/PocketMine/block/HayBale.php index b5070200a..2c90a8ed8 100644 --- a/src/PocketMine/block/HayBale.php +++ b/src/PocketMine/block/HayBale.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class HayBale extends Solid{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/Ice.php b/src/PocketMine/block/Ice.php index ab1497519..bf09dab80 100644 --- a/src/PocketMine/block/Ice.php +++ b/src/PocketMine/block/Ice.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Ice extends Transparent{ public function __construct(){ diff --git a/src/PocketMine/block/Iron.php b/src/PocketMine/block/Iron.php index 7a2817599..a543e8ff0 100644 --- a/src/PocketMine/block/Iron.php +++ b/src/PocketMine/block/Iron.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Iron extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/IronDoor.php b/src/PocketMine/block/IronDoor.php index 8edb84961..933c0d7de 100644 --- a/src/PocketMine/block/IronDoor.php +++ b/src/PocketMine/block/IronDoor.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class IronDoor extends Door{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/IronOre.php b/src/PocketMine/block/IronOre.php index db097f37a..eda3dca02 100644 --- a/src/PocketMine/block/IronOre.php +++ b/src/PocketMine/block/IronOre.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class IronOre extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/JungleWoodStairs.php b/src/PocketMine/block/JungleWoodStairs.php index 323e23d74..7ffc525fa 100644 --- a/src/PocketMine/block/JungleWoodStairs.php +++ b/src/PocketMine/block/JungleWoodStairs.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class JungleWoodStairs extends Stair{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/Ladder.php b/src/PocketMine/block/Ladder.php index 2ac702435..6e81a17d9 100644 --- a/src/PocketMine/block/Ladder.php +++ b/src/PocketMine/block/Ladder.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class Ladder extends Transparent{ public function __construct($meta = 0){ @@ -52,11 +53,11 @@ class Ladder extends Transparent{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ /*if($this->getSide(0)->getID() === self::AIR){ //Replace with common break method ServerAPI::request()->api->entity->drop($this, Item::get(LADDER, 0, 1)); $this->level->setBlock($this, new Air(), true, true, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; }*/ } diff --git a/src/PocketMine/block/Lapis.php b/src/PocketMine/block/Lapis.php index c224ce85f..029c6abda 100644 --- a/src/PocketMine/block/Lapis.php +++ b/src/PocketMine/block/Lapis.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Lapis extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/LapisOre.php b/src/PocketMine/block/LapisOre.php index 9c8e100dc..36b9d0bab 100644 --- a/src/PocketMine/block/LapisOre.php +++ b/src/PocketMine/block/LapisOre.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class LapisOre extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/Lava.php b/src/PocketMine/block/Lava.php index 945bc841a..4b5dd31d5 100644 --- a/src/PocketMine/block/Lava.php +++ b/src/PocketMine/block/Lava.php @@ -21,10 +21,11 @@ namespace PocketMine\Block; -use PocketMine\Item\Item as Item; -use PocketMine\Level\Position as Position; -use PocketMine\ServerAPI as ServerAPI; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\Level\Position; +use PocketMine\ServerAPI; +use PocketMine\Level\Level; class Lava extends Liquid{ public function __construct($meta = 0){ @@ -34,7 +35,7 @@ class Lava extends Liquid{ public function place(Item $item, PocketMine\Player $player, Block $block, Block $target, $face, $fx, $fy, $fz){ $ret = $this->level->setBlock($this, $this, true, false, true); - ServerAPI::request()->api->block->scheduleBlockUpdate(clone $this, 40, BLOCK_UPDATE_NORMAL); + ServerAPI::request()->api->block->scheduleBlockUpdate(clone $this, 40, Level::BLOCK_UPDATE_NORMAL); return $ret; } @@ -87,7 +88,7 @@ class Lava extends Liquid{ //return false; $newId = $this->id; $level = $this->meta & 0x07; - if($type !== BLOCK_UPDATE_NORMAL){ + if($type !== Level::BLOCK_UPDATE_NORMAL){ return false; } @@ -103,7 +104,7 @@ class Lava extends Liquid{ if($level !== 0x07){ if($down instanceof Air || $down instanceof Lava){ $this->level->setBlock($down, new Lava(0x01), false, false, true); - ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($down, 0, 0, $this->level), 40, BLOCK_UPDATE_NORMAL); + ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($down, 0, 0, $this->level), 40, Level::BLOCK_UPDATE_NORMAL); } else{ for($side = 2; $side <= 5; ++$side){ $b = $this->getSide($side); @@ -111,7 +112,7 @@ class Lava extends Liquid{ } elseif($b->isFlowable === true){ $this->level->setBlock($b, new Lava(min($level + 2, 7)), false, false, true); - ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($b, 0, 0, $this->level), 40, BLOCK_UPDATE_NORMAL); + ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($b, 0, 0, $this->level), 40, Level::BLOCK_UPDATE_NORMAL); } } } @@ -125,7 +126,7 @@ class Lava extends Liquid{ if($tlevel != 0x00){ for($s = 0; $s <= 5; $s++){ $ssb = $sb->getSide($s); - ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($ssb, 0, 0, $this->level), 40, BLOCK_UPDATE_NORMAL); + ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($ssb, 0, 0, $this->level), 40, Level::BLOCK_UPDATE_NORMAL); } $this->level->setBlock($sb, new Air(), false, false, true); } @@ -136,12 +137,12 @@ class Lava extends Liquid{ if($tlevel != 0x00){ for($s = 0; $s <= 5; $s++){ $ssb = $sb->getSide($s); - ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($ssb, 0, 0, $this->level), 40, BLOCK_UPDATE_NORMAL); + ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($ssb, 0, 0, $this->level), 40, Level::BLOCK_UPDATE_NORMAL); } $this->level->setBlock($b, new Air(), false, false, true); } } - //ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($b, 0, 0, $this->level), 10, BLOCK_UPDATE_NORMAL); + //ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($b, 0, 0, $this->level), 10, Level::BLOCK_UPDATE_NORMAL); } $this->level->setBlock($this, new Air(), false, false, true); diff --git a/src/PocketMine/block/Leaves.php b/src/PocketMine/block/Leaves.php index 08ca0896b..b8df5b71e 100644 --- a/src/PocketMine/block/Leaves.php +++ b/src/PocketMine/block/Leaves.php @@ -21,9 +21,10 @@ namespace PocketMine\Block; -use PocketMine\Item\Item as Item; -use PocketMine\ServerAPI as ServerAPI; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\ServerAPI; +use PocketMine\Level\Level; class Leaves extends Transparent{ const OAK = 0; @@ -109,12 +110,12 @@ class Leaves extends Transparent{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if(($this->meta & 0b00001100) === 0){ $this->meta |= 0x08; $this->level->setBlock($this, $this, false, false, true); } - } elseif($type === BLOCK_UPDATE_RANDOM){ + } elseif($type === Level::BLOCK_UPDATE_RANDOM){ if(($this->meta & 0b00001100) === 0x08){ $this->meta &= 0x03; $visited = array(); @@ -132,7 +133,7 @@ class Leaves extends Transparent{ ServerAPI::request()->api->entity->drop($this, Item::get(APPLE, 0, 1)); } - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } } } diff --git a/src/PocketMine/block/LitPumpkin.php b/src/PocketMine/block/LitPumpkin.php index 65d095e44..aa78210a6 100644 --- a/src/PocketMine/block/LitPumpkin.php +++ b/src/PocketMine/block/LitPumpkin.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class LitPumpkin extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/Melon.php b/src/PocketMine/block/Melon.php index e350ecdce..ec21c0dbe 100644 --- a/src/PocketMine/block/Melon.php +++ b/src/PocketMine/block/Melon.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Melon extends Transparent{ public function __construct(){ diff --git a/src/PocketMine/block/MelonStem.php b/src/PocketMine/block/MelonStem.php index 30466786b..8d7ac2131 100644 --- a/src/PocketMine/block/MelonStem.php +++ b/src/PocketMine/block/MelonStem.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class MelonStem extends Flowable{ public function __construct($meta = 0){ @@ -43,26 +44,26 @@ class MelonStem extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->isTransparent === true){ //Replace with common break method //TODO //ServerAPI::request()->api->entity->drop($this, Item::get(MELON_SEEDS, 0, mt_rand(0, 2))); $this->level->setBlock($this, new Air(), false, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } - } elseif($type === BLOCK_UPDATE_RANDOM){ + } elseif($type === Level::BLOCK_UPDATE_RANDOM){ if(mt_rand(0, 2) == 1){ if($this->meta < 0x07){ ++$this->meta; $this->level->setBlock($this, $this, true, false, true); - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } else{ for($side = 2; $side <= 5; ++$side){ $b = $this->getSide($side); if($b->getID() === self::MELON_BLOCK){ - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } } $side = $this->getSide(mt_rand(2, 5)); @@ -73,7 +74,7 @@ class MelonStem extends Flowable{ } } - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } return false; diff --git a/src/PocketMine/block/MossStone.php b/src/PocketMine/block/MossStone.php index b426d1c96..e60ff2224 100644 --- a/src/PocketMine/block/MossStone.php +++ b/src/PocketMine/block/MossStone.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class MossStone extends Solid{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/NetherBrick.php b/src/PocketMine/block/NetherBrick.php index c4fbac058..64c50c709 100644 --- a/src/PocketMine/block/NetherBrick.php +++ b/src/PocketMine/block/NetherBrick.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class NetherBrick extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/Netherrack.php b/src/PocketMine/block/Netherrack.php index ab0c164cf..72b77acac 100644 --- a/src/PocketMine/block/Netherrack.php +++ b/src/PocketMine/block/Netherrack.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Netherrack extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/Obsidian.php b/src/PocketMine/block/Obsidian.php index ef5b2df74..86fd3711c 100644 --- a/src/PocketMine/block/Obsidian.php +++ b/src/PocketMine/block/Obsidian.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Obsidian extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/Potato.php b/src/PocketMine/block/Potato.php index 65a6a5d44..de2ffe020 100644 --- a/src/PocketMine/block/Potato.php +++ b/src/PocketMine/block/Potato.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class Potato extends Flowable{ public function __construct($meta = 0){ @@ -57,24 +58,24 @@ class Potato extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->isTransparent === true){ //Replace with common break method //TODO //ServerAPI::request()->api->entity->drop($this, Item::get(POTATO, 0, 1)); $this->level->setBlock($this, new Air(), false, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } - } elseif($type === BLOCK_UPDATE_RANDOM){ + } elseif($type === Level::BLOCK_UPDATE_RANDOM){ if(mt_rand(0, 2) == 1){ if($this->meta < 0x07){ ++$this->meta; $this->level->setBlock($this, $this, true, false, true); - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } } else{ - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } } diff --git a/src/PocketMine/block/PumpkinStem.php b/src/PocketMine/block/PumpkinStem.php index c8833228c..a19af7057 100644 --- a/src/PocketMine/block/PumpkinStem.php +++ b/src/PocketMine/block/PumpkinStem.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class PumpkinStem extends Flowable{ public function __construct($meta = 0){ @@ -43,26 +44,26 @@ class PumpkinStem extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->isTransparent === true){ //Replace with common break method //TODO //ServerAPI::request()->api->entity->drop($this, Item::get(PUMPKIN_SEEDS, 0, mt_rand(0, 2))); $this->level->setBlock($this, new Air(), false, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } - } elseif($type === BLOCK_UPDATE_RANDOM){ + } elseif($type === Level::BLOCK_UPDATE_RANDOM){ if(mt_rand(0, 2) == 1){ if($this->meta < 0x07){ ++$this->meta; $this->level->setBlock($this, $this, true, false, true); - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } else{ for($side = 2; $side <= 5; ++$side){ $b = $this->getSide($side); if($b->getID() === self::PUMPKIN){ - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } } $side = $this->getSide(mt_rand(2, 5)); @@ -73,7 +74,7 @@ class PumpkinStem extends Flowable{ } } - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } return false; diff --git a/src/PocketMine/block/Quartz.php b/src/PocketMine/block/Quartz.php index 7f4ba9fdf..93211f9e5 100644 --- a/src/PocketMine/block/Quartz.php +++ b/src/PocketMine/block/Quartz.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Quartz extends Solid{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/RedMushroom.php b/src/PocketMine/block/RedMushroom.php index ae1c20c01..081a45896 100644 --- a/src/PocketMine/block/RedMushroom.php +++ b/src/PocketMine/block/RedMushroom.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class RedMushroom extends Flowable{ public function __construct(){ @@ -31,13 +32,13 @@ class RedMushroom extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->isTransparent === true){ //Replace with common break method //TODO //ServerAPI::request()->api->entity->drop($this, Item::get($this->id)); $this->level->setBlock($this, new Air(), false); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } } diff --git a/src/PocketMine/block/RedstoneOre.php b/src/PocketMine/block/RedstoneOre.php index 761eb1646..7ee9dde7f 100644 --- a/src/PocketMine/block/RedstoneOre.php +++ b/src/PocketMine/block/RedstoneOre.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class RedstoneOre extends Solid{ public function __construct(){ @@ -31,10 +32,10 @@ class RedstoneOre extends Solid{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL or $type === BLOCK_UPDATE_TOUCH){ + if($type === Level::BLOCK_UPDATE_NORMAL or $type === Level::BLOCK_UPDATE_TOUCH){ $this->level->setBlock($this, Block::get(GLOWING_REDSTONE_ORE, $this->meta), false, false, true); - return BLOCK_UPDATE_WEAK; + return Level::BLOCK_UPDATE_WEAK; } return false; diff --git a/src/PocketMine/block/Sandstone.php b/src/PocketMine/block/Sandstone.php index 9f717e43c..12ffa5129 100644 --- a/src/PocketMine/block/Sandstone.php +++ b/src/PocketMine/block/Sandstone.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Sandstone extends Solid{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/Sapling.php b/src/PocketMine/block/Sapling.php index d57f9fd1c..fb106254a 100644 --- a/src/PocketMine/block/Sapling.php +++ b/src/PocketMine/block/Sapling.php @@ -21,10 +21,11 @@ namespace PocketMine\Block; -use PocketMine\Item\Item as Item; -use PocketMine\Level\Generator\Object\Tree as Tree; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\Level\Generator\Object\Tree; +use PocketMine\Utils\Random; +use PocketMine\Level\Level; class Sapling extends Flowable{ const OAK = 0; @@ -71,15 +72,15 @@ class Sapling extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->isTransparent === true){ //Replace with common break method //TODO //ServerAPI::request()->api->entity->drop($this, Item::get($this->id)); $this->level->setBlock($this, new Air(), false, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } - } elseif($type === BLOCK_UPDATE_RANDOM){ //Growth + } elseif($type === Level::BLOCK_UPDATE_RANDOM){ //Growth if(mt_rand(1, 7) === 1){ if(($this->meta & 0x08) === 0x08){ Tree::growTree($this->level, $this, new Random(), $this->meta & 0x03); @@ -87,10 +88,10 @@ class Sapling extends Flowable{ $this->meta |= 0x08; $this->level->setBlock($this, $this, true, false, true); - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } } else{ - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } } diff --git a/src/PocketMine/block/SignPost.php b/src/PocketMine/block/SignPost.php index 46b3b728d..385753854 100644 --- a/src/PocketMine/block/SignPost.php +++ b/src/PocketMine/block/SignPost.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class SignPost extends Transparent{ public function __construct($meta = 0){ @@ -57,13 +58,13 @@ class SignPost extends Transparent{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->getID() === self::AIR){ //Replace with common break method //TODO //ServerAPI::request()->api->entity->drop($this, Item::get(SIGN, 0, 1)); $this->level->setBlock($this, new Air(), true, true, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } } diff --git a/src/PocketMine/block/Slab.php b/src/PocketMine/block/Slab.php index 3ef977b87..b1632c658 100644 --- a/src/PocketMine/block/Slab.php +++ b/src/PocketMine/block/Slab.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Slab extends Transparent{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/SnowLayer.php b/src/PocketMine/block/SnowLayer.php index 3e7e9c41a..df3c174d0 100644 --- a/src/PocketMine/block/SnowLayer.php +++ b/src/PocketMine/block/SnowLayer.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class SnowLayer extends Flowable{ public function __construct($meta = 0){ @@ -45,11 +46,11 @@ class SnowLayer extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->getID() === self::AIR){ //Replace with common break method $this->level->setBlock($this, new Air(), true, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } } diff --git a/src/PocketMine/block/SpruceWoodStairs.php b/src/PocketMine/block/SpruceWoodStairs.php index 803eb47fd..45c9188f4 100644 --- a/src/PocketMine/block/SpruceWoodStairs.php +++ b/src/PocketMine/block/SpruceWoodStairs.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class SpruceWoodStairs extends Stair{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/Stair.php b/src/PocketMine/block/Stair.php index c752a08e5..e1ad7c28f 100644 --- a/src/PocketMine/block/Stair.php +++ b/src/PocketMine/block/Stair.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Stair extends Transparent{ diff --git a/src/PocketMine/block/Stone.php b/src/PocketMine/block/Stone.php index 9d65b9647..1e057053d 100644 --- a/src/PocketMine/block/Stone.php +++ b/src/PocketMine/block/Stone.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Stone extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/StoneBricks.php b/src/PocketMine/block/StoneBricks.php index 9e1d49828..bc799bcf5 100644 --- a/src/PocketMine/block/StoneBricks.php +++ b/src/PocketMine/block/StoneBricks.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class StoneBricks extends Solid{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/Stonecutter.php b/src/PocketMine/block/Stonecutter.php index de1bfc021..754be5708 100644 --- a/src/PocketMine/block/Stonecutter.php +++ b/src/PocketMine/block/Stonecutter.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Stonecutter extends Solid{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/Sugarcane.php b/src/PocketMine/block/Sugarcane.php index 984d7b237..3445acf5e 100644 --- a/src/PocketMine/block/Sugarcane.php +++ b/src/PocketMine/block/Sugarcane.php @@ -21,9 +21,10 @@ namespace PocketMine\Block; -use PocketMine\Item\Item as Item; -use PocketMine\Math\Vector3 as Vector3; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Level\Level; class Sugarcane extends Flowable{ public function __construct($meta = 0){ @@ -61,16 +62,16 @@ class Sugarcane extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ $down = $this->getSide(0); if($down->isTransparent === true and $down->getID() !== self::SUGARCANE_BLOCK){ //Replace with common break method //TODO //ServerAPI::request()->api->entity->drop($this, Item::get(SUGARCANE)); $this->level->setBlock($this, new Air(), false, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } - } elseif($type === BLOCK_UPDATE_RANDOM){ + } elseif($type === Level::BLOCK_UPDATE_RANDOM){ if($this->getSide(0)->getID() !== self::SUGARCANE_BLOCK){ if($this->meta === 0x0F){ for($y = 1; $y < 3; ++$y){ @@ -87,7 +88,7 @@ class Sugarcane extends Flowable{ $this->level->setBlock($this, $this, true, false, true); } - return BLOCK_UPDATE_RANDOM; + return Level::BLOCK_UPDATE_RANDOM; } } diff --git a/src/PocketMine/block/TNT.php b/src/PocketMine/block/TNT.php index 96d944396..d844df7d8 100644 --- a/src/PocketMine/block/TNT.php +++ b/src/PocketMine/block/TNT.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class TNT extends Solid{ public function __construct(){ diff --git a/src/PocketMine/block/TallGrass.php b/src/PocketMine/block/TallGrass.php index 8f8df469a..c2910c4b4 100644 --- a/src/PocketMine/block/TallGrass.php +++ b/src/PocketMine/block/TallGrass.php @@ -21,8 +21,9 @@ namespace PocketMine\Block; -use PocketMine\Item\Item as Item; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class TallGrass extends Flowable{ public function __construct($meta = 1){ @@ -38,11 +39,11 @@ class TallGrass extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->isTransparent === true){ //Replace with common break method $this->level->setBlock($this, new Air(), false, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } } diff --git a/src/PocketMine/block/Torch.php b/src/PocketMine/block/Torch.php index 2a9d27d0b..92f1a48a5 100644 --- a/src/PocketMine/block/Torch.php +++ b/src/PocketMine/block/Torch.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class Torch extends Flowable{ public function __construct($meta = 0){ @@ -31,7 +32,7 @@ class Torch extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ $side = $this->getMetadata(); $faces = array( 1 => 4, @@ -48,7 +49,7 @@ class Torch extends Flowable{ //ServerAPI::request()->api->entity->drop($this, Item::get($this->id, 0, 1)); $this->level->setBlock($this, new Air(), true, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } } diff --git a/src/PocketMine/block/Trapdoor.php b/src/PocketMine/block/Trapdoor.php index 0550cdb83..ebdb0562d 100644 --- a/src/PocketMine/block/Trapdoor.php +++ b/src/PocketMine/block/Trapdoor.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Trapdoor extends Transparent{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/Water.php b/src/PocketMine/block/Water.php index 37f1810e2..038631bd2 100644 --- a/src/PocketMine/block/Water.php +++ b/src/PocketMine/block/Water.php @@ -21,9 +21,10 @@ namespace PocketMine\Block; -use PocketMine\Item\Item as Item; -use PocketMine\ServerAPI as ServerAPI; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\ServerAPI; +use PocketMine\Level\Level; class Water extends Liquid{ public function __construct($meta = 0){ @@ -33,7 +34,7 @@ class Water extends Liquid{ public function place(Item $item, PocketMine\Player $player, Block $block, Block $target, $face, $fx, $fy, $fz){ $ret = $this->level->setBlock($this, $this, true, false, true); - ServerAPI::request()->api->block->scheduleBlockUpdate(clone $this, 10, BLOCK_UPDATE_NORMAL); + ServerAPI::request()->api->block->scheduleBlockUpdate(clone $this, 10, Level::BLOCK_UPDATE_NORMAL); return $ret; } @@ -93,7 +94,7 @@ class Water extends Liquid{ //return false; $newId = $this->id; $level = $this->meta & 0x07; - if($type !== BLOCK_UPDATE_NORMAL){ + if($type !== Level::BLOCK_UPDATE_NORMAL){ return false; } @@ -108,7 +109,7 @@ class Water extends Liquid{ if($level !== 0x07){ if($down instanceof Air || $down instanceof Water){ $this->level->setBlock($down, new Water(0x01), false, false, true); - ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($down, 0, 0, $this->level), 10, BLOCK_UPDATE_NORMAL); + ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($down, 0, 0, $this->level), 10, Level::BLOCK_UPDATE_NORMAL); } else{ for($side = 2; $side <= 5; ++$side){ $b = $this->getSide($side); @@ -118,7 +119,7 @@ class Water extends Liquid{ } } elseif($b->isFlowable === true){ $this->level->setBlock($b, new Water($level + 1), false, false, true); - ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($b, 0, 0, $this->level), 10, BLOCK_UPDATE_NORMAL); + ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($b, 0, 0, $this->level), 10, Level::BLOCK_UPDATE_NORMAL); } } } @@ -132,7 +133,7 @@ class Water extends Liquid{ if($tlevel != 0x00){ for($s = 0; $s <= 5; $s++){ $ssb = $sb->getSide($s); - ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($ssb, 0, 0, $this->level), 10, BLOCK_UPDATE_NORMAL); + ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($ssb, 0, 0, $this->level), 10, Level::BLOCK_UPDATE_NORMAL); } $this->level->setBlock($sb, new Air(), false, false, true); } @@ -143,12 +144,12 @@ class Water extends Liquid{ if($tlevel != 0x00){ for($s = 0; $s <= 5; $s++){ $ssb = $sb->getSide($s); - ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($ssb, 0, 0, $this->level), 10, BLOCK_UPDATE_NORMAL); + ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($ssb, 0, 0, $this->level), 10, Level::BLOCK_UPDATE_NORMAL); } $this->level->setBlock($b, new Air(), false, false, true); } } - //ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($b, 0, 0, $this->level), 10, BLOCK_UPDATE_NORMAL); + //ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($b, 0, 0, $this->level), 10, Level::BLOCK_UPDATE_NORMAL); } $this->level->setBlock($this, new Air(), false, false, true); } diff --git a/src/PocketMine/block/Wheat.php b/src/PocketMine/block/Wheat.php index f2b245560..9fa75b319 100644 --- a/src/PocketMine/block/Wheat.php +++ b/src/PocketMine/block/Wheat.php @@ -22,7 +22,8 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Level\Level; class Wheat extends Flowable{ public function __construct($meta = 0){ @@ -57,15 +58,15 @@ class Wheat extends Flowable{ } public function onUpdate($type){ - if($type === BLOCK_UPDATE_NORMAL){ + if($type === Level::BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->isTransparent === true){ //Replace with common break method //TODO //ServerAPI::request()->api->entity->drop($this, Item::get(WHEAT_SEEDS, 0, 1)); $this->level->setBlock($this, new Air(), false, false, true); - return BLOCK_UPDATE_NORMAL; + return Level::BLOCK_UPDATE_NORMAL; } - } elseif($type === BLOCK_UPDATE_RANDOM){ + } elseif($type === Level::BLOCK_UPDATE_RANDOM){ if(mt_rand(0, 2) == 1){ if($this->meta < 0x07){ ++$this->meta; diff --git a/src/PocketMine/block/Wood.php b/src/PocketMine/block/Wood.php index d4acc272c..8bec3645b 100644 --- a/src/PocketMine/block/Wood.php +++ b/src/PocketMine/block/Wood.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Wood extends Solid{ const OAK = 0; diff --git a/src/PocketMine/block/WoodDoor.php b/src/PocketMine/block/WoodDoor.php index c3d7c1bee..cb2865336 100644 --- a/src/PocketMine/block/WoodDoor.php +++ b/src/PocketMine/block/WoodDoor.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class WoodDoor extends Door{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/WoodSlab.php b/src/PocketMine/block/WoodSlab.php index aec6cdc19..b344a0b1b 100644 --- a/src/PocketMine/block/WoodSlab.php +++ b/src/PocketMine/block/WoodSlab.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class WoodSlab extends Transparent{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/WoodStairs.php b/src/PocketMine/block/WoodStairs.php index 718e36df8..b18a3788f 100644 --- a/src/PocketMine/block/WoodStairs.php +++ b/src/PocketMine/block/WoodStairs.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class WoodStairs extends Stair{ public function __construct($meta = 0){ diff --git a/src/PocketMine/block/Workbench.php b/src/PocketMine/block/Workbench.php index 1a9b2b893..2fdd09569 100644 --- a/src/PocketMine/block/Workbench.php +++ b/src/PocketMine/block/Workbench.php @@ -22,7 +22,7 @@ namespace PocketMine\Block; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Workbench extends Solid{ public function __construct($meta = 0){ diff --git a/src/PocketMine/constants/GeneralConstants.php b/src/PocketMine/constants/GeneralConstants.php index 63d2500a2..51605ab44 100644 --- a/src/PocketMine/constants/GeneralConstants.php +++ b/src/PocketMine/constants/GeneralConstants.php @@ -29,21 +29,6 @@ const VIEW = 3; const VIEWER = 3; -//Players -const PLAYER_MAX_QUEUE = 1024; - -const PLAYER_SURVIVAL_SLOTS = 36; -const PLAYER_CREATIVE_SLOTS = 112; - - -//Block Updates -const BLOCK_UPDATE_NORMAL = 1; -const BLOCK_UPDATE_RANDOM = 2; -const BLOCK_UPDATE_SCHEDULED = 3; -const BLOCK_UPDATE_WEAK = 4; -const BLOCK_UPDATE_TOUCH = 5; - - //Entities const ENTITY_PLAYER = 1; diff --git a/src/PocketMine/entity/Entity.php b/src/PocketMine/entity/Entity.php index dc4971d9f..06d54e0db 100644 --- a/src/PocketMine/entity/Entity.php +++ b/src/PocketMine/entity/Entity.php @@ -24,23 +24,23 @@ */ namespace PocketMine\Entity; -use PocketMine\Event\Entity\EntityLevelChangeEvent as EntityLevelChangeEvent; -use PocketMine\Event\Entity\EntityMotionEvent as EntityMotionEvent; -use PocketMine\Event\Entity\EntityMoveEvent as EntityMoveEvent; -use PocketMine\Event\Event as Event; -use PocketMine\Event\EventHandler as EventHandler; -use PocketMine\Level\Level as Level; -use PocketMine\Level\Position as Position; -use PocketMine\Math\AxisAlignedBB as AxisAlignedBB; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\NBT\Tag\Compound as Compound; -use PocketMine\Network\Protocol\MoveEntityPacket_PosRot as MoveEntityPacket_PosRot; -use PocketMine\Network\Protocol\MovePlayerPacket as MovePlayerPacket; -use PocketMine\Network\Protocol\RemoveEntityPacket as RemoveEntityPacket; -use PocketMine\Network\Protocol\SetEntityMotionPacket as SetEntityMotionPacket; -use PocketMine\Player as Player; -use PocketMine\PMF\LevelFormat as LevelFormat; use PocketMine; +use PocketMine\Event\Entity\EntityLevelChangeEvent; +use PocketMine\Event\Entity\EntityMotionEvent; +use PocketMine\Event\Entity\EntityMoveEvent; +use PocketMine\Event\Event; +use PocketMine\Event\EventHandler; +use PocketMine\Level\Level; +use PocketMine\Level\Position; +use PocketMine\Math\AxisAlignedBB; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\NBT\Tag\Compound; +use PocketMine\Network\Protocol\MoveEntityPacket_PosRot; +use PocketMine\Network\Protocol\MovePlayerPacket; +use PocketMine\Network\Protocol\RemoveEntityPacket; +use PocketMine\Network\Protocol\SetEntityMotionPacket; +use PocketMine\Player; +use PocketMine\PMF\LevelFormat; abstract class Entity extends Position{ public static $entityCount = 1; diff --git a/src/PocketMine/entity/Human.php b/src/PocketMine/entity/Human.php index 26d33f3d8..245f6acde 100644 --- a/src/PocketMine/entity/Human.php +++ b/src/PocketMine/entity/Human.php @@ -21,21 +21,22 @@ namespace PocketMine\Entity; -use PocketMine\Event\Entity\EntityArmorChangeEvent as EntityArmorChangeEvent; -use PocketMine\Event\Entity\EntityInventoryChangeEvent as EntityInventoryChangeEvent; -use PocketMine\Event\Event as Event; -use PocketMine\Event\EventHandler as EventHandler; -use PocketMine\Item\Item as Item; -use PocketMine\NBT\Tag\Byte as Byte; -use PocketMine\NBT\Tag\Compound as Compound; -use PocketMine\NBT\Tag\Short as Short; -use PocketMine\Network\Protocol\AddPlayerPacket as AddPlayerPacket; -use PocketMine\Network\Protocol\ContainerSetContentPacket as ContainerSetContentPacket; -use PocketMine\Network\Protocol\PlayerEquipmentPacket as PlayerEquipmentPacket; -use PocketMine\Network\Protocol\RemovePlayerPacket as RemovePlayerPacket; -use PocketMine\Network\Protocol\SetEntityMotionPacket as SetEntityMotionPacket; -use PocketMine\Player; use PocketMine; +use PocketMine\Event\Entity\EntityArmorChangeEvent; +use PocketMine\Event\Entity\EntityInventoryChangeEvent; +use PocketMine\Event\Event; +use PocketMine\Event\EventHandler; +use PocketMine\Item\Item; +use PocketMine\NBT\Tag\Byte; +use PocketMine\NBT\Tag\Compound; +use PocketMine\NBT\Tag\Short; +use PocketMine\Network\Protocol\AddPlayerPacket; +use PocketMine\Network\Protocol\ContainerSetContentPacket; +use PocketMine\Network\Protocol\PlayerEquipmentPacket; +use PocketMine\Network\Protocol\RemovePlayerPacket; +use PocketMine\Network\Protocol\SetEntityMotionPacket; +use PocketMine\Player; +use PocketMine\Network; class Human extends Creature implements ProjectileSource, InventorySource{ @@ -51,13 +52,13 @@ class Human extends Creature implements ProjectileSource, InventorySource{ } $this->hotbar = array(-1, -1, -1, -1, -1, -1, -1, -1, -1); $this->armor = array( - 0 => Item::get(AIR, 0, 0), - 1 => Item::get(AIR, 0, 0), - 2 => Item::get(AIR, 0, 0), - 3 => Item::get(AIR, 0, 0) + 0 => Item::get(Item::AIR, 0, 0), + 1 => Item::get(Item::AIR, 0, 0), + 2 => Item::get(Item::AIR, 0, 0), + 3 => Item::get(Item::AIR, 0, 0) ); - foreach($nbt->Inventory as $item){ + foreach($this->namedtag->Inventory as $item){ if($item->Slot >= 0 and $item->Slot < 9){ //Hotbar $this->hotbar[$item->Slot] = isset($item->TrueSlot) ? $item->TrueSlot : -1; } elseif($item->Slot >= 100 and $item->Slot < 104){ //Armor @@ -98,7 +99,7 @@ class Human extends Creature implements ProjectileSource, InventorySource{ } //Normal inventory - $slotCount = (($this->gamemode & 0x01) === 0 ? PLAYER_SURVIVAL_SLOTS : PLAYER_CREATIVE_SLOTS) + 9; + $slotCount = (($this->gamemode & 0x01) === 0 ? Player::SURVIVAL_SLOTS : Player::CREATIVE_SLOTS) + 9; for($slot = 9; $slot < $slotCount; ++$slot){ $item = $this->getSlot($slot); $this->namedtag->Inventory[$slot] = new Compound(false, array( @@ -218,15 +219,15 @@ class Human extends Creature implements ProjectileSource, InventorySource{ public function sendArmor(Player $player = null){ $slots = array(); for($i = 0; $i < 4; ++$i){ - if(isset($this->armor[$i]) and ($this->armor[$i] instanceof Item) and $this->armor[$i]->getID() > AIR){ - $slots[$i] = $this->armor[$i]->getID() !== AIR ? $this->armor[$i]->getID() - 256 : 0; + if(isset($this->armor[$i]) and ($this->armor[$i] instanceof Item) and $this->armor[$i]->getID() > Item::AIR){ + $slots[$i] = $this->armor[$i]->getID() !== Item::AIR ? $this->armor[$i]->getID() - 256 : 0; } else{ - $this->armor[$i] = Item::get(AIR, 0, 0); + $this->armor[$i] = Item::get(Item::AIR, 0, 0); $slots[$i] = 255; } } if($player instanceof Player){ - $pk = new Netowrk\Protocol\PlayerArmorEquipmentPacket; + $pk = new Network\Protocol\PlayerArmorEquipmentPacket; $pk->eid = $this->id; $pk->slots = $slots; $player->dataPacket($pk); @@ -385,7 +386,7 @@ class Human extends Creature implements ProjectileSource, InventorySource{ public function getSlot($slot){ $slot = (int) $slot; if(!isset($this->inventory[$slot])){ - $this->inventory[$slot] = Item::get(AIR, 0, 0); + $this->inventory[$slot] = Item::get(Item::AIR, 0, 0); } return $this->inventory[$slot]; diff --git a/src/PocketMine/entity/InventorySource.php b/src/PocketMine/entity/InventorySource.php index b835e2f47..bb3135190 100644 --- a/src/PocketMine/entity/InventorySource.php +++ b/src/PocketMine/entity/InventorySource.php @@ -22,7 +22,7 @@ namespace PocketMine\Entity; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; interface InventorySource{ diff --git a/src/PocketMine/entity/RealHuman.php b/src/PocketMine/entity/RealHuman.php index 26c5237ac..9564c7b7c 100644 --- a/src/PocketMine/entity/RealHuman.php +++ b/src/PocketMine/entity/RealHuman.php @@ -21,8 +21,8 @@ namespace PocketMine\Entity; -use PocketMine\Player; use PocketMine; +use PocketMine\Player; abstract class RealHuman extends Human{ diff --git a/src/PocketMine/event/Event.php b/src/PocketMine/event/Event.php index e4a4a761c..ebd053d95 100644 --- a/src/PocketMine/event/Event.php +++ b/src/PocketMine/event/Event.php @@ -25,7 +25,7 @@ namespace PocketMine\Event; use PocketMine; -use PocketMine\Utils\Utils as Utils; +use PocketMine\Utils\Utils; abstract class Event{ const ALLOW = 0; diff --git a/src/PocketMine/event/entity/EntityArmorChangeEvent.php b/src/PocketMine/event/entity/EntityArmorChangeEvent.php index e018dd464..079d6ff90 100644 --- a/src/PocketMine/event/entity/EntityArmorChangeEvent.php +++ b/src/PocketMine/event/entity/EntityArmorChangeEvent.php @@ -21,10 +21,11 @@ namespace PocketMine\Event\Entity; -use PocketMine\Entity\Entity as Entity; -use PocketMine\Event; +use PocketMine\Entity\Entity; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Event; +use PocketMine\Item\Item; +use PocketMine\Event\CancellableEvent; class EntityArmorChangeEvent extends EntityEvent implements CancellableEvent{ public static $handlers; diff --git a/src/PocketMine/event/entity/EntityEvent.php b/src/PocketMine/event/entity/EntityEvent.php index dda01e58c..42849f0c5 100644 --- a/src/PocketMine/event/entity/EntityEvent.php +++ b/src/PocketMine/event/entity/EntityEvent.php @@ -25,9 +25,12 @@ namespace PocketMine\Event\Entity; use PocketMine; -use PocketMine\Event; +use PocketMine\Event\Event; abstract class EntityEvent extends Event{ + /** + * @var PocketMine\Entity\Entity + */ protected $entity; public function getEntity(){ diff --git a/src/PocketMine/event/entity/EntityInventoryChangeEvent.php b/src/PocketMine/event/entity/EntityInventoryChangeEvent.php index 91066839d..fd5f6ed82 100644 --- a/src/PocketMine/event/entity/EntityInventoryChangeEvent.php +++ b/src/PocketMine/event/entity/EntityInventoryChangeEvent.php @@ -21,10 +21,11 @@ namespace PocketMine\Event\Entity; -use PocketMine\Entity\Entity as Entity; -use PocketMine\Event; +use PocketMine\Entity\Entity; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Event; +use PocketMine\Item\Item; +use PocketMine\Event\CancellableEvent; class EntityInventoryChangeEvent extends EntityEvent implements CancellableEvent{ public static $handlers; diff --git a/src/PocketMine/event/entity/EntityLevelChangeEvent.php b/src/PocketMine/event/entity/EntityLevelChangeEvent.php index 99a7b916a..97bac52cb 100644 --- a/src/PocketMine/event/entity/EntityLevelChangeEvent.php +++ b/src/PocketMine/event/entity/EntityLevelChangeEvent.php @@ -21,10 +21,11 @@ namespace PocketMine\Event\Entity; -use PocketMine\Entity\Entity as Entity; -use PocketMine\Event; +use PocketMine\Entity\Entity; use PocketMine; -use PocketMine\Level\Level as Level; +use PocketMine\Event; +use PocketMine\Level\Level; +use PocketMine\Event\CancellableEvent; class EntityLevelChangeEvent extends EntityEvent implements CancellableEvent{ public static $handlers; diff --git a/src/PocketMine/event/entity/EntityMotionEvent.php b/src/PocketMine/event/entity/EntityMotionEvent.php index 4f53c8015..eb3c6df00 100644 --- a/src/PocketMine/event/entity/EntityMotionEvent.php +++ b/src/PocketMine/event/entity/EntityMotionEvent.php @@ -21,10 +21,11 @@ namespace PocketMine\Event\Entity; -use PocketMine\Entity\Entity as Entity; -use PocketMine\Event; +use PocketMine\Entity\Entity; use PocketMine; +use PocketMine\Event; use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Event\CancellableEvent; class EntityMotionEvent extends EntityEvent implements CancellableEvent{ public static $handlers; diff --git a/src/PocketMine/event/entity/EntityMoveEvent.php b/src/PocketMine/event/entity/EntityMoveEvent.php index 4cddb703b..62ba39b61 100644 --- a/src/PocketMine/event/entity/EntityMoveEvent.php +++ b/src/PocketMine/event/entity/EntityMoveEvent.php @@ -21,10 +21,11 @@ namespace PocketMine\Event\Entity; -use PocketMine\Entity\Entity as Entity; -use PocketMine\Event; +use PocketMine\Entity\Entity; use PocketMine; +use PocketMine\Event; use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Event\CancellableEvent; class EntityMoveEvent extends EntityEvent implements CancellableEvent{ public static $handlers; diff --git a/src/PocketMine/event/player/PlayerEquipmentChangeEvent.php b/src/PocketMine/event/player/PlayerEquipmentChangeEvent.php index 1777bd34e..032cc5cf3 100644 --- a/src/PocketMine/event/player/PlayerEquipmentChangeEvent.php +++ b/src/PocketMine/event/player/PlayerEquipmentChangeEvent.php @@ -23,7 +23,9 @@ namespace PocketMine\Event\Player; use PocketMine\Event; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; +use PocketMine\Event\CancellableEvent; +use PocketMine\Player; class PlayerEquipmentChangeEvent extends PlayerEvent implements CancellableEvent{ public static $handlers; diff --git a/src/PocketMine/event/player/PlayerEvent.php b/src/PocketMine/event/player/PlayerEvent.php index b9ad2b9a6..4985089ff 100644 --- a/src/PocketMine/event/player/PlayerEvent.php +++ b/src/PocketMine/event/player/PlayerEvent.php @@ -25,9 +25,12 @@ namespace PocketMine\Event\Player; use PocketMine; -use PocketMine\Event; +use PocketMine\Event\Event; abstract class PlayerEvent extends Event{ + /** + * @var PocketMine\Player + */ protected $player; public function getPlayer(){ diff --git a/src/PocketMine/event/plugin/PluginEvent.php b/src/PocketMine/event/plugin/PluginEvent.php index 2576b8020..e3e32ef9c 100644 --- a/src/PocketMine/event/plugin/PluginEvent.php +++ b/src/PocketMine/event/plugin/PluginEvent.php @@ -25,7 +25,7 @@ namespace PocketMine\Event\Plugin; use PocketMine; -use PocketMine\Event; +use PocketMine\Event\Event; abstract class PluginEvent extends Event{ diff --git a/src/PocketMine/event/server/DataPacketReceiveEvent.php b/src/PocketMine/event/server/DataPacketReceiveEvent.php index 64b98ca15..e3abf461f 100644 --- a/src/PocketMine/event/server/DataPacketReceiveEvent.php +++ b/src/PocketMine/event/server/DataPacketReceiveEvent.php @@ -23,7 +23,9 @@ namespace PocketMine\Event\Server; use PocketMine\Event; use PocketMine; -use PocketMine\Network\Protocol\DataPacket as DataPacket; +use PocketMine\Network\Protocol\DataPacket; +use PocketMine\Event\CancellableEvent; +use PocketMine\Player; class DataPacketReceiveEvent extends ServerEvent implements CancellableEvent{ public static $handlers; diff --git a/src/PocketMine/event/server/DataPacketSendEvent.php b/src/PocketMine/event/server/DataPacketSendEvent.php index 36fb76e9b..4abb48dd2 100644 --- a/src/PocketMine/event/server/DataPacketSendEvent.php +++ b/src/PocketMine/event/server/DataPacketSendEvent.php @@ -23,7 +23,9 @@ namespace PocketMine\Event\Server; use PocketMine\Event; use PocketMine; -use PocketMine\Network\Protocol\DataPacket as DataPacket; +use PocketMine\Network\Protocol\DataPacket; +use PocketMine\Event\CancellableEvent; +use PocketMine\Player; class DataPacketSendEvent extends ServerEvent implements CancellableEvent{ public static $handlers; diff --git a/src/PocketMine/event/server/PacketReceiveEvent.php b/src/PocketMine/event/server/PacketReceiveEvent.php index 49341ceb8..32f25ba22 100644 --- a/src/PocketMine/event/server/PacketReceiveEvent.php +++ b/src/PocketMine/event/server/PacketReceiveEvent.php @@ -23,7 +23,8 @@ namespace PocketMine\Event\Server; use PocketMine\Event; use PocketMine; -use PocketMine\Network\Packet as Packet; +use PocketMine\Network\Packet; +use PocketMine\Event\CancellableEvent; class PacketReceiveEvent extends ServerEvent implements CancellableEvent{ public static $handlers; diff --git a/src/PocketMine/event/server/PacketSendEvent.php b/src/PocketMine/event/server/PacketSendEvent.php index db44ecf0b..633ba3a87 100644 --- a/src/PocketMine/event/server/PacketSendEvent.php +++ b/src/PocketMine/event/server/PacketSendEvent.php @@ -23,7 +23,8 @@ namespace PocketMine\Event\Server; use PocketMine\Event; use PocketMine; -use PocketMine\Network\Packet as Packet; +use PocketMine\Network\Packet; +use PocketMine\Event\CancellableEvent; class PacketSendEvent extends ServerEvent implements CancellableEvent{ public static $handlers; diff --git a/src/PocketMine/event/server/ServerEvent.php b/src/PocketMine/event/server/ServerEvent.php index cd3d374f8..4ba5d96ec 100644 --- a/src/PocketMine/event/server/ServerEvent.php +++ b/src/PocketMine/event/server/ServerEvent.php @@ -25,7 +25,7 @@ namespace PocketMine\Event\Server; use PocketMine; -use PocketMine\Event; +use PocketMine\Event\Event; abstract class ServerEvent extends Event{ diff --git a/src/PocketMine/event/tile/TileInventoryChangeEvent.php b/src/PocketMine/event/tile/TileInventoryChangeEvent.php index f990d861e..4d6e54e70 100644 --- a/src/PocketMine/event/tile/TileInventoryChangeEvent.php +++ b/src/PocketMine/event/tile/TileInventoryChangeEvent.php @@ -22,9 +22,9 @@ namespace PocketMine\Event\Tile; use PocketMine\Event; -use PocketMine\Item\Item as Item; use PocketMine; -use PocketMine\Tile\Tile as Tile; +use PocketMine\Item\Item; +use PocketMine\Tile\Tile; class TileInventoryChangeEvent extends TileEvent implements CancellableEvent{ public static $handlers; diff --git a/src/PocketMine/item/Bed.php b/src/PocketMine/item/Bed.php index 28a065fd6..35c538ac4 100644 --- a/src/PocketMine/item/Bed.php +++ b/src/PocketMine/item/Bed.php @@ -22,7 +22,7 @@ namespace PocketMine\Item; use PocketMine; -use PocketMine\Block\Block as Block; +use PocketMine\Block\Block; class Bed extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/item/BeetrootSeeds.php b/src/PocketMine/item/BeetrootSeeds.php index b8c14a9d6..3345a6e52 100644 --- a/src/PocketMine/item/BeetrootSeeds.php +++ b/src/PocketMine/item/BeetrootSeeds.php @@ -22,7 +22,7 @@ namespace PocketMine\Item; use PocketMine; -use PocketMine\Block\Block as Block; +use PocketMine\Block\Block; class BeetrootSeeds extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/item/Bucket.php b/src/PocketMine/item/Bucket.php index 6b2f54b9f..6bb9bf954 100644 --- a/src/PocketMine/item/Bucket.php +++ b/src/PocketMine/item/Bucket.php @@ -21,13 +21,13 @@ namespace PocketMine\Item; -use PocketMine\Block\Air as Air; -use PocketMine\Block\Block as Block; -use PocketMine\Block\Lava as Lava; -use PocketMine\Block\Liquid as Liquid; -use PocketMine\Block\Water as Water; -use PocketMine\Level\Level as Level; use PocketMine; +use PocketMine\Block\Air; +use PocketMine\Block\Block; +use PocketMine\Block\Lava; +use PocketMine\Block\Liquid; +use PocketMine\Block\Water; +use PocketMine\Level\Level; class Bucket extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/item/Cake.php b/src/PocketMine/item/Cake.php index 7a9fe0062..498eae914 100644 --- a/src/PocketMine/item/Cake.php +++ b/src/PocketMine/item/Cake.php @@ -22,7 +22,7 @@ namespace PocketMine\Item; use PocketMine; -use PocketMine\Block\Block as Block; +use PocketMine\Block\Block; class Cake extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/item/Carrot.php b/src/PocketMine/item/Carrot.php index fd4fce188..4ef070561 100644 --- a/src/PocketMine/item/Carrot.php +++ b/src/PocketMine/item/Carrot.php @@ -22,7 +22,7 @@ namespace PocketMine\Item; use PocketMine; -use PocketMine\Block\Block as Block; +use PocketMine\Block\Block; class Carrot extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/item/FlintSteel.php b/src/PocketMine/item/FlintSteel.php index 7d0ebb533..ae23c7660 100644 --- a/src/PocketMine/item/FlintSteel.php +++ b/src/PocketMine/item/FlintSteel.php @@ -21,11 +21,11 @@ namespace PocketMine\Item; -use PocketMine\Block\Block as Block; -use PocketMine\Block\Fire as Fire; -use PocketMine\Block\Solid as Solid; -use PocketMine\Level\Level as Level; use PocketMine; +use PocketMine\Block\Block; +use PocketMine\Block\Fire; +use PocketMine\Block\Solid; +use PocketMine\Level\Level; class FlintSteel extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/item/IronDoor.php b/src/PocketMine/item/IronDoor.php index 31d7ea063..b1202343a 100644 --- a/src/PocketMine/item/IronDoor.php +++ b/src/PocketMine/item/IronDoor.php @@ -22,7 +22,7 @@ namespace PocketMine\Item; use PocketMine; -use PocketMine\Block\Block as Block; +use PocketMine\Block\Block; class IronDoor extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/item/Item.php b/src/PocketMine/item/Item.php index 7b5ef3330..45ee6b6bc 100644 --- a/src/PocketMine/item/Item.php +++ b/src/PocketMine/item/Item.php @@ -23,13 +23,14 @@ * All the Item classes */ namespace PocketMine\Item; -use PocketMine\Block\Block as Block; -use PocketMine\Entity\Entity as Entity; -use PocketMine\Item\Block as ItemBlock; -use PocketMine\Level\Level as Level; -use PocketMine\Recipes\Fuel as Fuel; -use PocketMine\Recipes\Smelt as Smelt; + use PocketMine; +use PocketMine\Block\Block; +use PocketMine\Entity\Entity; +use PocketMine\Item\Block as ItemBlock; +use PocketMine\Level\Level; +use PocketMine\Recipes\Fuel; +use PocketMine\Recipes\Smelt; class Item{ //All Block IDs are here too @@ -441,8 +442,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("PocketMine\\Item\\Item::" . strtoupper($b[0]))){ + $item = self::get(constant("PocketMine\\Item\\Item::" . strtoupper($b[0])), $meta); if($item->getID() === self::AIR and strtoupper($b[0]) !== "AIR"){ $item = self::get(((int) $b[0]) & 0xFFFF, $meta); } diff --git a/src/PocketMine/item/MelonSeeds.php b/src/PocketMine/item/MelonSeeds.php index d539a2728..50c8264ba 100644 --- a/src/PocketMine/item/MelonSeeds.php +++ b/src/PocketMine/item/MelonSeeds.php @@ -22,7 +22,7 @@ namespace PocketMine\Item; use PocketMine; -use PocketMine\Block\Block as Block; +use PocketMine\Block\Block; class MelonSeeds extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/item/Painting.php b/src/PocketMine/item/Painting.php index 1f05eb6f8..66e4e9e8f 100644 --- a/src/PocketMine/item/Painting.php +++ b/src/PocketMine/item/Painting.php @@ -21,10 +21,10 @@ namespace PocketMine\Item; -use PocketMine\Block\Block as Block; -use PocketMine\Level\Level as Level; -use PocketMine\ServerAPI as ServerAPI; use PocketMine; +use PocketMine\Block\Block; +use PocketMine\Level\Level; +use PocketMine\ServerAPI; class Painting extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/item/Potato.php b/src/PocketMine/item/Potato.php index 72fea4483..c45113156 100644 --- a/src/PocketMine/item/Potato.php +++ b/src/PocketMine/item/Potato.php @@ -22,7 +22,7 @@ namespace PocketMine\Item; use PocketMine; -use PocketMine\Block\Block as Block; +use PocketMine\Block\Block; class Potato extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/item/PumpkinSeeds.php b/src/PocketMine/item/PumpkinSeeds.php index 569183b8d..356c717ad 100644 --- a/src/PocketMine/item/PumpkinSeeds.php +++ b/src/PocketMine/item/PumpkinSeeds.php @@ -22,7 +22,7 @@ namespace PocketMine\Item; use PocketMine; -use PocketMine\Block\Block as Block; +use PocketMine\Block\Block; class PumpkinSeeds extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/item/Sign.php b/src/PocketMine/item/Sign.php index 17c047cad..f7aa7803f 100644 --- a/src/PocketMine/item/Sign.php +++ b/src/PocketMine/item/Sign.php @@ -22,7 +22,7 @@ namespace PocketMine\Item; use PocketMine; -use PocketMine\Block\Block as Block; +use PocketMine\Block\Block; class Sign extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/item/SpawnEgg.php b/src/PocketMine/item/SpawnEgg.php index 064eee043..61d379f74 100644 --- a/src/PocketMine/item/SpawnEgg.php +++ b/src/PocketMine/item/SpawnEgg.php @@ -21,9 +21,9 @@ namespace PocketMine\Item; -use PocketMine\Block\Block as Block; -use PocketMine\Level\Level as Level; use PocketMine; +use PocketMine\Block\Block; +use PocketMine\Level\Level; class SpawnEgg extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/item/Sugarcane.php b/src/PocketMine/item/Sugarcane.php index d0b5397b9..e6a927a04 100644 --- a/src/PocketMine/item/Sugarcane.php +++ b/src/PocketMine/item/Sugarcane.php @@ -22,7 +22,7 @@ namespace PocketMine\Item; use PocketMine; -use PocketMine\Block\Block as Block; +use PocketMine\Block\Block; class Sugarcane extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/item/WheatSeeds.php b/src/PocketMine/item/WheatSeeds.php index 7c4fe7311..64b56e383 100644 --- a/src/PocketMine/item/WheatSeeds.php +++ b/src/PocketMine/item/WheatSeeds.php @@ -22,7 +22,7 @@ namespace PocketMine\Item; use PocketMine; -use PocketMine\Block\Block as Block; +use PocketMine\Block\Block; class WheatSeeds extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/item/WoodenDoor.php b/src/PocketMine/item/WoodenDoor.php index 8aa477f75..ebc4aaf9c 100644 --- a/src/PocketMine/item/WoodenDoor.php +++ b/src/PocketMine/item/WoodenDoor.php @@ -22,7 +22,7 @@ namespace PocketMine\Item; use PocketMine; -use PocketMine\Block\Block as Block; +use PocketMine\Block\Block; class WoodenDoor extends Item{ public function __construct($meta = 0, $count = 1){ diff --git a/src/PocketMine/level/Explosion.php b/src/PocketMine/level/Explosion.php index 29b9e1c7e..732d6ad55 100644 --- a/src/PocketMine/level/Explosion.php +++ b/src/PocketMine/level/Explosion.php @@ -21,13 +21,13 @@ namespace PocketMine\Level; -use PocketMine\Block\Block as Block; -use PocketMine\Block\TNT as TNT; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\Network\Protocol\ExplodePacket as ExplodePacket; -use PocketMine\Player as Player; -use PocketMine\ServerAPI as ServerAPI; use PocketMine; +use PocketMine\Block\Block; +use PocketMine\Block\TNT; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Network\Protocol\ExplodePacket; +use PocketMine\Player; +use PocketMine\ServerAPI; class Explosion{ public static $specialDrops = array( diff --git a/src/PocketMine/level/Level.php b/src/PocketMine/level/Level.php index 8df020e79..7fb6ba682 100644 --- a/src/PocketMine/level/Level.php +++ b/src/PocketMine/level/Level.php @@ -24,27 +24,47 @@ */ namespace PocketMine\Level; -use PocketMine\Block\Air as Air; -use PocketMine\Block\Block as Block; -use PocketMine\Item\Item as Item; -use PocketMine\Level\Generator\Generator as Generator; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\NBT\Tag\Compound as Compound; -use PocketMine\NBT\Tag\Enum as Enum; -use PocketMine\Network\Protocol\SetTimePacket as SetTimePacket; -use PocketMine\Network\Protocol\UpdateBlockPacket as UpdateBlockPacket; -use PocketMine\Player as Player; -use PocketMine\PMF\LevelFormat as LevelFormat; -use PocketMine\ServerAPI as ServerAPI; -use PocketMine\Tile\Chest as Chest; -use PocketMine\Tile\Furnace as Furnace; -use PocketMine\Tile\Sign as Sign; -use PocketMine\Tile\Tile as Tile; -use PocketMine\Utils\Cache as Cache; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Utils\Utils; +use PocketMine\Block\Air; +use PocketMine\Block\Block; +use PocketMine\Level\Generator\Generator; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\NBT\Tag\Compound; +use PocketMine\NBT\Tag\Enum; +use PocketMine\NBT\Tag\Short; +use PocketMine\NBT\NBT; +use PocketMine\Network\Protocol\SetTimePacket; +use PocketMine\Network\Protocol\UpdateBlockPacket; +use PocketMine\Player; +use PocketMine\PMF\LevelFormat; +use PocketMine\ServerAPI; +use PocketMine\Tile\Chest; +use PocketMine\Tile\Furnace; +use PocketMine\Tile\Sign; +use PocketMine\Tile\Tile; +use PocketMine\Utils\Cache; +use PocketMine\Utils\Config; +use PocketMine\Utils\Random; +use PocketMine\Level\Generator\Flat; +use PocketMine\Level\Generator\Normal; +/** + * Class Level + * Main Level handling class, includes all the methods used on them. + * @package PocketMine\Level + */ class Level{ + + const BLOCK_UPDATE_NORMAL = 1; + const BLOCK_UPDATE_RANDOM = 2; + const BLOCK_UPDATE_SCHEDULED = 3; + const BLOCK_UPDATE_WEAK = 4; + const BLOCK_UPDATE_TOUCH = 5; + + protected static $list = array(); + public static $default = null; + public $players = array(); public $entities = array(); @@ -56,12 +76,257 @@ class Level{ public $nextSave; /** - * @var PMFLevelFormat + * @var LevelFormat */ public $level; public $stopTime; private $time, $startCheck, $startTime, $server, $name, $usedChunks, $changedBlocks, $changedCount, $generator; + public static function init(){ + if(self::$default === null){ + $default = ServerAPI::request()->api->getProperty("level-name"); + if(self::loadLevel($default) === false){ + self::generateLevel($default, ServerAPI::request()->seed); + self::loadLevel($default); + } + self::$default = self::get($default); + } + } + + /** + * Saves all the levels + * + * @return void + */ + public static function saveAll(){ + foreach(self::$list as $level){ + $level->save(); + } + } + + /** + * Returns an array of all the loaded Levels + * + * @return Level[] + */ + public static function getAll(){ + return self::$list; + } + + /** + * Gets the default Level on the Server + * + * @return Level + */ + public static function getDefault(){ + return self::$default; + } + + /** + * Gets a loaded Level + * + * @param $name string Level name + * + * @return bool|Level + */ + public static function get($name){ + if(isset(self::$list[$name])){ + return self::$list[$name]; + } + + return false; + } + + /** + * Loads a level from the data directory + * + * @param $name + * + * @return bool + */ + public static function loadLevel($name){ + if(self::get($name) !== false){ + return true; + } elseif(self::levelExists($name) === false){ + console("[NOTICE] Level \"" . $name . "\" not found"); + + return false; + } + $path = \PocketMine\DATA . "worlds/" . $name . "/"; + console("[INFO] Preparing level \"" . $name . "\""); + $level = new LevelFormat($path . "level.pmf"); + if(!$level->isLoaded){ + console("[ERROR] Could not load level \"" . $name . "\""); + + return false; + } + //$entities = new Config($path."entities.yml", Config::YAML); + if(file_exists($path . "tileEntities.yml")){ + @rename($path . "tileEntities.yml", $path . "tiles.yml"); + } + $blockUpdates = new Config($path . "bupdates.yml", Config::YAML); + $level = new Level($level, $name); + /*foreach($entities->getAll() as $entity){ + if(!isset($entity["id"])){ + break; + } + if($entity["id"] === 64){ //Item Drop + $e = $this->server->api->entity->add($this->levels[$name], ENTITY_ITEM, $entity["Item"]["id"], array( + "meta" => $entity["Item"]["Damage"], + "stack" => $entity["Item"]["Count"], + "x" => $entity["Pos"][0], + "y" => $entity["Pos"][1], + "z" => $entity["Pos"][2], + "yaw" => $entity["Rotation"][0], + "pitch" => $entity["Rotation"][1], + )); + }elseif($entity["id"] === FALLING_SAND){ + $e = $this->server->api->entity->add($this->levels[$name], ENTITY_FALLING, $entity["id"], $entity); + $e->setPosition(new Vector3($entity["Pos"][0], $entity["Pos"][1], $entity["Pos"][2]), $entity["Rotation"][0], $entity["Rotation"][1]); + $e->setHealth($entity["Health"]); + }elseif($entity["id"] === OBJECT_PAINTING or $entity["id"] === OBJECT_ARROW){ //Painting + $e = $this->server->api->entity->add($this->levels[$name], ENTITY_OBJECT, $entity["id"], $entity); + $e->setPosition(new Vector3($entity["Pos"][0], $entity["Pos"][1], $entity["Pos"][2]), $entity["Rotation"][0], $entity["Rotation"][1]); + $e->setHealth(1); + }else{ + $e = $this->server->api->entity->add($this->levels[$name], ENTITY_MOB, $entity["id"], $entity); + $e->setPosition(new Vector3($entity["Pos"][0], $entity["Pos"][1], $entity["Pos"][2]), $entity["Rotation"][0], $entity["Rotation"][1]); + $e->setHealth($entity["Health"]); + } + }*/ + + if(file_exists($path . "tiles.yml")){ + $tiles = new Config($path . "tiles.yml", Config::YAML); + foreach($tiles->getAll() as $tile){ + if(!isset($tile["id"])){ + continue; + } + $level->loadChunk($tile["x"] >> 4, $tile["z"] >> 4); + + $nbt = new Compound(false, array()); + foreach($tile as $index => $data){ + switch($index){ + case "Items": + $tag = new Enum("Items", array()); + $tag->setTagType(NBT::TAG_Compound); + foreach($data as $slot => $fields){ + $tag[(int) $slot] = new Compound(false, array( + "Count" => new Byte("Count", $fields["Count"]), + "Slot" => new Short("Slot", $fields["Slot"]), + "Damage" => new Short("Damage", $fields["Damage"]), + "id" => new String("id", $fields["id"]) + )); + } + $nbt["Items"] = $tag; + break; + + case "id": + case "Text1": + case "Text2": + case "Text3": + case "Text4": + $nbt[$index] = new String($index, $data); + break; + + case "x": + case "y": + case "z": + case "pairx": + case "pairz": + $nbt[$index] = new Int($index, $data); + break; + + case "BurnTime": + case "CookTime": + case "MaxTime": + $nbt[$index] = new Short($index, $data); + break; + } + } + switch($tile["id"]){ + case Tile::FURNACE: + new Furnace($level, $nbt); + break; + case Tile::CHEST: + new Chest($level, $nbt); + break; + case Tile::SIGN: + new Sign($level, $nbt); + break; + } + } + unlink($path . "tiles.yml"); + $level->save(true, true); + } + + foreach($blockUpdates->getAll() as $bupdate){ + ServerAPI::request()->api->block->scheduleBlockUpdate(new Position((int) $bupdate["x"], (int) $bupdate["y"], (int) $bupdate["z"], $level), (float) $bupdate["delay"], (int) $bupdate["type"]); + } + + return true; + } + + /** + * Generates a new level + * + * @param $name + * @param bool $seed + * @param bool $generator + * @param bool|array $options + * + * @return bool + */ + public static function generateLevel($name, $seed = false, $generator = false, $options = false){ + if($name == "" or self::levelExists($name)){ + return false; + } + $options = array(); + if($options === false and ServerAPI::request()->api->getProperty("generator-settings") !== false and trim(ServerAPI::request()->api->getProperty("generator-settings")) != ""){ + $options["preset"] = ServerAPI::request()->api->getProperty("generator-settings"); + } + + if($generator !== false and class_exists($generator)){ + $generator = new $generator($options); + } else{ + if(strtoupper(ServerAPI::request()->api->getProperty("level-type")) == "FLAT"){ + $generator = new Flat($options); + } else{ + $generator = new Normal($options); + } + } + $gen = new WorldGenerator($generator, $name, $seed === false ? Utils::readInt(Utils::getRandomBytes(4, false)) : (int) $seed); + $gen->generate(); + $gen->close(); + + return true; + } + + /** + * Searches if a level exists on file + * + * @param $name + * + * @return bool + */ + public static function levelExists($name){ + if($name === ""){ + return false; + } + $path = \PocketMine\DATA . "worlds/" . $name . "/"; + if(self::get($name) === false and !file_exists($path . "level.pmf")){ + if(file_exists($path)){ + $level = new LevelImport($path); + if($level->import() === false){ + return false; + } + } else{ + return false; + } + } + + return true; + } + public function __construct(LevelFormat $level, $name){ $this->server = ServerAPI::request(); $this->level = $level; @@ -79,12 +344,43 @@ class Level{ $gen = Generator::getGenerator($this->level->levelData["generator"]); $this->generator = new $gen((array) $this->level->levelData["generatorSettings"]); $this->generator->init($this, new Random($this->level->levelData["seed"])); + self::$list[$name] = $this; } public function close(){ $this->__destruct(); } + + /** + * Unloads the current level from memory safely + * + * @param bool $force default false, force unload of default level + * + * @return bool + */ + public function unload($force = false){ + if($this === self::getDefault() and $force !== true){ + return false; + } + console("[INFO] Unloading level \"" . $this->getName() . "\""); + $this->nextSave = PHP_INT_MAX; + $this->save(); + foreach($this->getPlayers() as $player){ + if($this === self::getDefault()){ + $player->close("forced level unload"); + } else{ + $player->teleport(Level::getDefault()->getSafeSpawn()); + } + } + $this->close(); + if($this === self::getDefault()){ + self::$default = null; + } + + return true; + } + public function getUsingChunk($X, $Z){ $index = LevelFormat::getIndex($X, $Z); @@ -184,8 +480,8 @@ class Level{ for($i = 0; $i < 3; ++$i){ $block = $this->getBlockRaw(new Vector3(($X << 4) + mt_rand(0, 15), ($Y << 4) + mt_rand(0, 15), ($Z << 4) + mt_rand(0, 15))); if($block instanceof Block){ - if($block->onUpdate(BLOCK_UPDATE_RANDOM) === BLOCK_UPDATE_NORMAL){ - $this->server->api->block->blockUpdateAround($block, $this); + if($block->onUpdate(self::BLOCK_UPDATE_RANDOM) === self::BLOCK_UPDATE_NORMAL){ + $this->server->api->block->blockUpdateAround($block); } } } @@ -226,6 +522,7 @@ class Level{ } public function __destruct(){ + unset(self::$list[$this->getName()]); if(isset($this->level)){ $this->save(false, false); $this->level->closeLevel(); @@ -371,10 +668,10 @@ class Level{ } if($update === true){ - $this->server->api->block->blockUpdateAround($pos, BLOCK_UPDATE_NORMAL, 1); + $this->server->api->block->blockUpdateAround($pos, self::BLOCK_UPDATE_NORMAL, 1); } if($tiles === true){ - if($t = $this->getTile($pos) instanceof Tile){ + if(($t = $this->getTile($pos)) instanceof Tile){ $t->close(); } } @@ -459,22 +756,27 @@ class Level{ $this->usedChunks[$index] = array(); $this->chunkTiles[$index] = array(); $this->chunkEntities[$index] = array(); - foreach($this->level->getChunkNBT($X, $Z)->Entities as $nbt){ - switch($nbt->id){ - //TODO: spawn entities + $tags = $this->level->getChunkNBT($X, $Z); + if(isset($tags->Entities)){ + foreach($tags->Entities as $nbt){ + switch($nbt->id){ + //TODO: spawn entities + } } } - foreach($this->level->getChunkNBT($X, $Z)->TileEntities as $nbt){ - switch($nbt->id){ - case Tile::CHEST: - new Chest($this, $nbt); - break; - case Tile::FURNACE: - new Furnace($this, $nbt); - break; - case Tile::SIGN: - new Sign($this, $nbt); - break; + if(isset($tags->TileEntities)){ + foreach($tags->TileEntities as $nbt){ + switch($nbt->id){ + case Tile::CHEST: + new Chest($this, $nbt); + break; + case Tile::FURNACE: + new Furnace($this, $nbt); + break; + case Tile::SIGN: + new Sign($this, $nbt); + break; + } } } @@ -492,6 +794,7 @@ class Level{ if($force !== true and $this->isSpawnChunk($X, $Z)){ return false; } + $index = LevelFormat::getIndex($X, $Z); unset($this->usedChunks[$index]); unset($this->chunkEntities[$index]); unset($this->chunkTiles[$index]); @@ -636,7 +939,7 @@ class Level{ $this->level->setData("seed", (int) $seed); } - public function scheduleBlockUpdate(Position $pos, $delay, $type = BLOCK_UPDATE_SCHEDULED){ + public function scheduleBlockUpdate(Position $pos, $delay, $type = self::BLOCK_UPDATE_SCHEDULED){ return $this->server->api->block->scheduleBlockUpdate($pos, $delay, $type); } } diff --git a/src/PocketMine/level/LevelImport.php b/src/PocketMine/level/LevelImport.php index 9ac45aa8e..1b67acbf1 100644 --- a/src/PocketMine/level/LevelImport.php +++ b/src/PocketMine/level/LevelImport.php @@ -21,9 +21,9 @@ namespace PocketMine\Level; -use PocketMine\PMF\LevelFormat as LevelFormat; -use PocketMine\Utils\Config as Config; use PocketMine; +use PocketMine\PMF\LevelFormat; +use PocketMine\Utils\Config; class LevelImport{ private $path; diff --git a/src/PocketMine/level/PocketChunkParser.php b/src/PocketMine/level/PocketChunkParser.php index 3062051d9..f6459762f 100644 --- a/src/PocketMine/level/PocketChunkParser.php +++ b/src/PocketMine/level/PocketChunkParser.php @@ -22,7 +22,7 @@ namespace PocketMine\Level; use PocketMine; -use PocketMine\Utils\Utils as Utils; +use PocketMine\Utils\Utils; /** * WARNING: This code is old, and only supports the file format partially (reverse engineering) @@ -31,7 +31,7 @@ use PocketMine\Utils\Utils as Utils; */ class PocketChunkParser{ private $location; - private $raw = b""; + private $raw = ""; private $file; public $sectorLength = 4096; //16 * 16 * 16 public $chunkLength = 86016; //21 * $sectorLength @@ -144,8 +144,9 @@ class PocketChunkParser{ $this->map[$x][$z] = $this->parseChunk($x, $z); } } - $this->raw = b""; + $this->raw = ""; console("[DEBUG] Chunks loaded!", true, true, 2); + return true; } diff --git a/src/PocketMine/level/WorldGenerator.php b/src/PocketMine/level/WorldGenerator.php index 41c35f86d..edc757826 100644 --- a/src/PocketMine/level/WorldGenerator.php +++ b/src/PocketMine/level/WorldGenerator.php @@ -21,12 +21,12 @@ namespace PocketMine\Level; -use PocketMine\Level\Generator\Generator as Generator; -use PocketMine\PMF\LevelFormat as LevelFormat; -use PocketMine\Utils\Config as Config; -use PocketMine\Utils\Random as Random; -use PocketMine\Utils\Utils as Utils; use PocketMine; +use PocketMine\Level\Generator\Generator; +use PocketMine\PMF\LevelFormat; +use PocketMine\Utils\Config; +use PocketMine\Utils\Random; +use PocketMine\Utils\Utils; class WorldGenerator{ private $seed, $level, $path, $random, $generator, $height; diff --git a/src/PocketMine/level/generator/Flat.php b/src/PocketMine/level/generator/Flat.php index bf6a50040..0cfb6c3a4 100644 --- a/src/PocketMine/level/generator/Flat.php +++ b/src/PocketMine/level/generator/Flat.php @@ -21,20 +21,20 @@ namespace PocketMine\Level\Generator; -use PocketMine\Block\CoalOre as CoalOre; -use PocketMine\Block\DiamondOre as DiamondOre; -use PocketMine\Block\Dirt as Dirt; -use PocketMine\Block\GoldOre as GoldOre; -use PocketMine\Block\Gravel as Gravel; -use PocketMine\Block\IronOre as IronOre; -use PocketMine\Block\LapisOre as LapisOre; -use PocketMine\Block\RedstoneOre as RedstoneOre; -use PocketMine\BlockAPI as BlockAPI; -use PocketMine\Level\Generator\Populator\Ore as Ore; -use PocketMine\Level\Level as Level; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Block\CoalOre; +use PocketMine\Block\DiamondOre; +use PocketMine\Block\Dirt; +use PocketMine\Block\GoldOre; +use PocketMine\Block\Gravel; +use PocketMine\Block\IronOre; +use PocketMine\Block\LapisOre; +use PocketMine\Block\RedstoneOre; +use PocketMine\BlockAPI; +use PocketMine\Level\Generator\Populator\Ore; +use PocketMine\Level\Level; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Utils\Random; class Flat extends Generator{ private $level, $random, $structure, $chunks, $options, $floorLevel, $preset, $populators = array(); diff --git a/src/PocketMine/level/generator/Generator.php b/src/PocketMine/level/generator/Generator.php index f83dbbc4d..4237ccafc 100644 --- a/src/PocketMine/level/generator/Generator.php +++ b/src/PocketMine/level/generator/Generator.php @@ -24,9 +24,9 @@ */ namespace PocketMine\Level\Generator; -use PocketMine\Level\Level as Level; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Level\Level; +use PocketMine\Utils\Random; abstract class Generator{ private static $list = array(); diff --git a/src/PocketMine/level/generator/Normal.php b/src/PocketMine/level/generator/Normal.php index c2b20c82a..49ca35fa1 100644 --- a/src/PocketMine/level/generator/Normal.php +++ b/src/PocketMine/level/generator/Normal.php @@ -21,23 +21,23 @@ namespace PocketMine\Level\Generator; -use PocketMine\Block\CoalOre as CoalOre; -use PocketMine\Block\DiamondOre as DiamondOre; -use PocketMine\Block\Dirt as Dirt; -use PocketMine\Block\GoldOre as GoldOre; -use PocketMine\Block\Gravel as Gravel; -use PocketMine\Block\IronOre as IronOre; -use PocketMine\Block\LapisOre as LapisOre; -use PocketMine\Block\RedstoneOre as RedstoneOre; -use PocketMine\Level\Generator\Noise\Simplex as Simplex; -use PocketMine\Level\Generator\Object\OreType as OreType; -use PocketMine\Level\Generator\Populator\Ore as Ore; -use PocketMine\Level\Generator\Populator\TallGrass as TallGrass; -use PocketMine\Level\Generator\Populator\Tree as Tree; -use PocketMine\Level\Level as Level; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Block\CoalOre; +use PocketMine\Block\DiamondOre; +use PocketMine\Block\Dirt; +use PocketMine\Block\GoldOre; +use PocketMine\Block\Gravel; +use PocketMine\Block\IronOre; +use PocketMine\Block\LapisOre; +use PocketMine\Block\RedstoneOre; +use PocketMine\Level\Generator\Noise\Simplex; +use PocketMine\Level\Generator\Object\OreType; +use PocketMine\Level\Generator\Populator\Ore; +use PocketMine\Level\Generator\Populator\TallGrass; +use PocketMine\Level\Generator\Populator\Tree; +use PocketMine\Level\Level; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Utils\Random; class Normal extends Generator{ diff --git a/src/PocketMine/level/generator/noise/Perlin.php b/src/PocketMine/level/generator/noise/Perlin.php index 72d6e11ec..7be1404fc 100644 --- a/src/PocketMine/level/generator/noise/Perlin.php +++ b/src/PocketMine/level/generator/noise/Perlin.php @@ -20,8 +20,9 @@ */ namespace PocketMine\Level\Generator\Noise; -use PocketMine\Utils\Random as Random; + use PocketMine; +use PocketMine\Utils\Random; class Perlin extends Generator{ public static $grad3 = [ diff --git a/src/PocketMine/level/generator/noise/Simplex.php b/src/PocketMine/level/generator/noise/Simplex.php index cca88b956..ec40ee822 100644 --- a/src/PocketMine/level/generator/noise/Simplex.php +++ b/src/PocketMine/level/generator/noise/Simplex.php @@ -22,7 +22,7 @@ namespace PocketMine\Level\Generator\Noise; use PocketMine; -use PocketMine\Utils\Random as Random; +use PocketMine\Utils\Random; /** * Generates simplex-based noise. diff --git a/src/PocketMine/level/generator/object/BigTree.php b/src/PocketMine/level/generator/object/BigTree.php index 2d82f26cc..9f0a7d130 100644 --- a/src/PocketMine/level/generator/object/BigTree.php +++ b/src/PocketMine/level/generator/object/BigTree.php @@ -21,9 +21,9 @@ namespace PocketMine\Level\Generator\Object; -use PocketMine\Level\Level as Level; -use PocketMine\Math\Vector3 as Vector3; use PocketMine; +use PocketMine\Level\Level; +use PocketMine\Math\Vector3 as Vector3; class BigTree extends Tree{ private $trunkHeightMultiplier = 0.618; diff --git a/src/PocketMine/level/generator/object/Object.php b/src/PocketMine/level/generator/object/Object.php index eb277217f..438ab0cb5 100644 --- a/src/PocketMine/level/generator/object/Object.php +++ b/src/PocketMine/level/generator/object/Object.php @@ -23,6 +23,7 @@ * All the different object classes used in populators */ namespace PocketMine\Level\Generator\Object; + use PocketMine; abstract class Object{ diff --git a/src/PocketMine/level/generator/object/Ore.php b/src/PocketMine/level/generator/object/Ore.php index db559c805..8c279b049 100644 --- a/src/PocketMine/level/generator/object/Ore.php +++ b/src/PocketMine/level/generator/object/Ore.php @@ -21,11 +21,11 @@ namespace PocketMine\Level\Generator\Object; -use PocketMine\Level\Level as Level; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\Math\VectorMath as VectorMath; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Level\Level; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Math\VectorMath; +use PocketMine\Utils\Random; class Ore{ private $random; diff --git a/src/PocketMine/level/generator/object/OreType.php b/src/PocketMine/level/generator/object/OreType.php index 53b7ddc75..fb6a2aae1 100644 --- a/src/PocketMine/level/generator/object/OreType.php +++ b/src/PocketMine/level/generator/object/OreType.php @@ -22,7 +22,7 @@ namespace PocketMine\Level\Generator\Object; use PocketMine; -use PocketMine\Block\Block as Block; +use PocketMine\Block\Block; class OreType{ public $material, $clusterCount, $clusterSize, $maxHeight, $minHeight; diff --git a/src/PocketMine/level/generator/object/PineTree.php b/src/PocketMine/level/generator/object/PineTree.php index b550cb44a..67131a474 100644 --- a/src/PocketMine/level/generator/object/PineTree.php +++ b/src/PocketMine/level/generator/object/PineTree.php @@ -21,13 +21,13 @@ namespace PocketMine\Level\Generator\Object; -use PocketMine\Block\Dirt as Dirt; -use PocketMine\Block\Leaves as Leaves; -use PocketMine\Block\Wood as Wood; -use PocketMine\Level\Level as Level; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Block\Dirt; +use PocketMine\Block\Leaves; +use PocketMine\Block\Wood; +use PocketMine\Level\Level; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Utils\Random; class PineTree extends Tree{ var $type = 1; diff --git a/src/PocketMine/level/generator/object/Pond.php b/src/PocketMine/level/generator/object/Pond.php index 1b4e0d3e6..959456c60 100644 --- a/src/PocketMine/level/generator/object/Pond.php +++ b/src/PocketMine/level/generator/object/Pond.php @@ -21,11 +21,11 @@ namespace PocketMine\Level\Generator\Object; -use PocketMine\Block\Block as Block; -use PocketMine\Level\Level as Level; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Block\Block; +use PocketMine\Level\Level; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Utils\Random; class Pond{ private $random; diff --git a/src/PocketMine/level/generator/object/SmallTree.php b/src/PocketMine/level/generator/object/SmallTree.php index 69c0a9ac0..c9430da3e 100644 --- a/src/PocketMine/level/generator/object/SmallTree.php +++ b/src/PocketMine/level/generator/object/SmallTree.php @@ -21,13 +21,13 @@ namespace PocketMine\Level\Generator\Object; -use PocketMine\Block\Dirt as Dirt; -use PocketMine\Block\Leaves as Leaves; -use PocketMine\Block\Wood as Wood; -use PocketMine\Level\Level as Level; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Block\Dirt; +use PocketMine\Block\Leaves; +use PocketMine\Block\Wood; +use PocketMine\Level\Level; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Utils\Random; class SmallTree extends Tree{ public $type = 0; diff --git a/src/PocketMine/level/generator/object/SpruceTree.php b/src/PocketMine/level/generator/object/SpruceTree.php index 7b2dca1bf..65dce62e4 100644 --- a/src/PocketMine/level/generator/object/SpruceTree.php +++ b/src/PocketMine/level/generator/object/SpruceTree.php @@ -21,13 +21,13 @@ namespace PocketMine\Level\Generator\Object; -use PocketMine\Block\Dirt as Dirt; -use PocketMine\Block\Leaves as Leaves; -use PocketMine\Block\Wood as Wood; -use PocketMine\Level\Level as Level; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Block\Dirt; +use PocketMine\Block\Leaves; +use PocketMine\Block\Wood; +use PocketMine\Level\Level; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Utils\Random; class SpruceTree extends Tree{ var $type = 1; diff --git a/src/PocketMine/level/generator/object/TallGrass.php b/src/PocketMine/level/generator/object/TallGrass.php index 7441a7cb1..46c29a6e5 100644 --- a/src/PocketMine/level/generator/object/TallGrass.php +++ b/src/PocketMine/level/generator/object/TallGrass.php @@ -21,9 +21,9 @@ namespace PocketMine\Level\Generator\Object; -use PocketMine\Block\Block as Block; -use PocketMine\Level; +use PocketMine\Block\Block; use PocketMine; +use PocketMine\Level; use PocketMine\Math\Vector3 as Vector3; class TallGrass{ diff --git a/src/PocketMine/level/generator/object/Tree.php b/src/PocketMine/level/generator/object/Tree.php index 383e5cf16..736c19fce 100644 --- a/src/PocketMine/level/generator/object/Tree.php +++ b/src/PocketMine/level/generator/object/Tree.php @@ -21,12 +21,11 @@ namespace PocketMine\Level\Generator\Object; -use PocketMine\Block\Sapling as Sapling; -use PocketMine\Level\Level as Level; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\Block\Block as Block; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Block\Sapling; +use PocketMine\Level\Level; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Utils\Random; class Tree{ public $overridable = array( diff --git a/src/PocketMine/level/generator/populator/Mineshaft.php b/src/PocketMine/level/generator/populator/Mineshaft.php index 51e4c88b0..a6f564434 100644 --- a/src/PocketMine/level/generator/populator/Mineshaft.php +++ b/src/PocketMine/level/generator/populator/Mineshaft.php @@ -21,9 +21,9 @@ namespace PocketMine\Level\Generator\Populator; -use PocketMine\Level\Level as Level; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Level\Level; +use PocketMine\Utils\Random; class Mineshaft extends Populator{ private static $DISTANCE = 256; diff --git a/src/PocketMine/level/generator/populator/Ore.php b/src/PocketMine/level/generator/populator/Ore.php index 38e659c8e..a266c426b 100644 --- a/src/PocketMine/level/generator/populator/Ore.php +++ b/src/PocketMine/level/generator/populator/Ore.php @@ -21,11 +21,11 @@ namespace PocketMine\Level\Generator\Populator; -use PocketMine\Level\Generator\Object\Ore as ObjectOre; -use PocketMine\Level\Level as Level; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Level\Generator\Object\Ore as ObjectOre; +use PocketMine\Level\Level; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Utils\Random; class Ore extends Populator{ private $oreTypes = array(); diff --git a/src/PocketMine/level/generator/populator/Pond.php b/src/PocketMine/level/generator/populator/Pond.php index 486d517f3..6adcfd73a 100644 --- a/src/PocketMine/level/generator/populator/Pond.php +++ b/src/PocketMine/level/generator/populator/Pond.php @@ -21,11 +21,11 @@ namespace PocketMine\Level\Generator\Populator; -use PocketMine\Block\Water as Water; -use PocketMine\Level\Level as Level; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Block\Water; +use PocketMine\Level\Level; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Utils\Random; class Pond extends Populator{ private $waterOdd = 4; diff --git a/src/PocketMine/level/generator/populator/Populator.php b/src/PocketMine/level/generator/populator/Populator.php index aff26b397..e8ca51459 100644 --- a/src/PocketMine/level/generator/populator/Populator.php +++ b/src/PocketMine/level/generator/populator/Populator.php @@ -24,9 +24,9 @@ */ namespace PocketMine\Level\Generator\Populator; -use PocketMine\Level\Level as Level; -use PocketMine\Utils\Random as Random; use PocketMine; +use PocketMine\Level\Level; +use PocketMine\Utils\Random; abstract class Populator{ public abstract function populate(Level $level, $chunkX, $chunkZ, Random $random); diff --git a/src/PocketMine/level/generator/populator/TallGrass.php b/src/PocketMine/level/generator/populator/TallGrass.php index 03ea1d01b..820a3aa92 100644 --- a/src/PocketMine/level/generator/populator/TallGrass.php +++ b/src/PocketMine/level/generator/populator/TallGrass.php @@ -21,12 +21,12 @@ namespace PocketMine\Level\Generator\Populator; -use PocketMine\Block\TallGrass as BlockTallGrass; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\Level\Level as Level; -use PocketMine\Utils\Random as Random; -use PocketMine\Block\Block as Block; use PocketMine; +use PocketMine\Block\Block; +use PocketMine\Block\TallGrass as BlockTallGrass; +use PocketMine\Level\Level; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Utils\Random; class TallGrass extends Populator{ private $level; diff --git a/src/PocketMine/level/generator/populator/Tree.php b/src/PocketMine/level/generator/populator/Tree.php index 1003fab92..af3cc718e 100644 --- a/src/PocketMine/level/generator/populator/Tree.php +++ b/src/PocketMine/level/generator/populator/Tree.php @@ -21,13 +21,13 @@ namespace PocketMine\Level\Generator\Populator; -use PocketMine\Level\Level as Level; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\Utils\Random as Random; -use PocketMine\Block\Block as Block; -use PocketMine\Block\Sapling as Sapling; -use PocketMine\Level\Generator\Object\Tree as ObjectTree; use PocketMine; +use PocketMine\Block\Block; +use PocketMine\Block\Sapling; +use PocketMine\Level\Generator\Object\Tree as ObjectTree; +use PocketMine\Level\Level; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\Utils\Random; class Tree extends Populator{ private $level; diff --git a/src/PocketMine/math/AxisAlignedBB.php b/src/PocketMine/math/AxisAlignedBB.php index 9a4ec6bc7..39e2a6e6f 100644 --- a/src/PocketMine/math/AxisAlignedBB.php +++ b/src/PocketMine/math/AxisAlignedBB.php @@ -20,6 +20,7 @@ */ namespace PocketMine\Math; + use PocketMine; class AxisAlignedBB{ diff --git a/src/PocketMine/math/Math.php b/src/PocketMine/math/Math.php index 47b6e1d8e..6e1c46756 100644 --- a/src/PocketMine/math/Math.php +++ b/src/PocketMine/math/Math.php @@ -23,6 +23,7 @@ * Math related classes, like matrices, bounding boxes and vector */ namespace PocketMine\Math; + use PocketMine; abstract class Math{ diff --git a/src/PocketMine/nbt/NBT.php b/src/PocketMine/nbt/NBT.php index e007add2c..51346b228 100644 --- a/src/PocketMine/nbt/NBT.php +++ b/src/PocketMine/nbt/NBT.php @@ -23,22 +23,23 @@ * Named Binary Tag handling classes */ namespace PocketMine\NBT; -use PocketMine\NBT\Tag\Byte as Byte; -use PocketMine\NBT\Tag\Byte_Array as Byte_Array; -use PocketMine\NBT\Tag\Compound as Compound; -use PocketMine\NBT\Tag\Double as Double; -use PocketMine\NBT\Tag\End as End; -use PocketMine\NBT\Tag\Enum as Enum; -use PocketMine\NBT\Tag\Float as Float; -use PocketMine\NBT\Tag\Int as Int; -use PocketMine\NBT\Tag\Int_Array as Int_Array; -use PocketMine\NBT\Tag\Long as Long; -use PocketMine\NBT\Tag\NamedTAG as NamedTAG; -use PocketMine\NBT\Tag\Short as Short; -use PocketMine\NBT\Tag\String as String; -use PocketMine\NBT\Tag\Tag as Tag; -use PocketMine\Utils\Utils as Utils; + use PocketMine; +use PocketMine\NBT\Tag\Byte; +use PocketMine\NBT\Tag\Byte_Array; +use PocketMine\NBT\Tag\Compound; +use PocketMine\NBT\Tag\Double; +use PocketMine\NBT\Tag\End; +use PocketMine\NBT\Tag\Enum; +use PocketMine\NBT\Tag\Float; +use PocketMine\NBT\Tag\Int; +use PocketMine\NBT\Tag\Int_Array; +use PocketMine\NBT\Tag\Long; +use PocketMine\NBT\Tag\NamedTAG; +use PocketMine\NBT\Tag\Short; +use PocketMine\NBT\Tag\String; +use PocketMine\NBT\Tag\Tag; +use PocketMine\Utils\Utils; class NBT implements \ArrayAccess{ const LITTLE_ENDIAN = 0; @@ -70,10 +71,11 @@ class NBT implements \ArrayAccess{ return substr($this->buffer, $this->offset); } - $buffer = b""; + $buffer = ""; for(; $len > 0; --$len, ++$this->offset){ $buffer .= @$this->buffer{$this->offset}; } + return $buffer; } @@ -85,7 +87,7 @@ class NBT implements \ArrayAccess{ return !isset($this->buffer{$this->offset}); } - public function __construct($endianness = NBT\NBT::LITTLE_ENDIAN){ + public function __construct($endianness = self::LITTLE_ENDIAN){ $this->offset = 0; $this->endianness = $endianness & 0x01; } @@ -94,7 +96,7 @@ class NBT implements \ArrayAccess{ $this->offset = 0; $this->buffer = $buffer; $this->data = $this->readTag(); - $this->buffer = b""; + $this->buffer = ""; } public function write(){ @@ -234,12 +236,6 @@ class NBT implements \ArrayAccess{ return $ret; } - public function __set($name, $value){ - if($this->data instanceof Compound){ - $this->data[$name] = $value; - } - } - public function __isset($name){ return $this->data instanceof Compound ? isset($this->data[$name]) : false; } @@ -259,7 +255,9 @@ class NBT implements \ArrayAccess{ } public function offsetSet($name, $value){ - $this->__set($name, $value); + if($this->data instanceof Compound){ + $this->data[$name] = $value; + } } public function offsetUnset($name){ diff --git a/src/PocketMine/nbt/tag/Byte.php b/src/PocketMine/nbt/tag/Byte.php index 4e575afb2..76c0d3c53 100644 --- a/src/PocketMine/nbt/tag/Byte.php +++ b/src/PocketMine/nbt/tag/Byte.php @@ -22,7 +22,7 @@ namespace PocketMine\NBT\Tag; use PocketMine; -use PocketMine\NBT\NBT as NBT; +use PocketMine\NBT\NBT; class Byte extends NamedTag{ diff --git a/src/PocketMine/nbt/tag/Byte_Array.php b/src/PocketMine/nbt/tag/Byte_Array.php index cbbb4d2ad..33e393b01 100644 --- a/src/PocketMine/nbt/tag/Byte_Array.php +++ b/src/PocketMine/nbt/tag/Byte_Array.php @@ -22,7 +22,7 @@ namespace PocketMine\NBT\Tag; use PocketMine; -use PocketMine\NBT\NBT as NBT; +use PocketMine\NBT\NBT; class Byte_Array extends NamedTag{ diff --git a/src/PocketMine/nbt/tag/Compound.php b/src/PocketMine/nbt/tag/Compound.php index 691afc5f8..3713b6d56 100644 --- a/src/PocketMine/nbt/tag/Compound.php +++ b/src/PocketMine/nbt/tag/Compound.php @@ -22,10 +22,12 @@ namespace PocketMine\NBT\Tag; use PocketMine; -use PocketMine\NBT\NBT as NBT; +use PocketMine\NBT\NBT; class Compound extends NamedTag implements \ArrayAccess, \Iterator{ + protected $value = array(); + public function __construct($name = "", $value = array()){ $this->name = $name; $this->value = $value; @@ -66,7 +68,7 @@ class Compound extends NamedTag implements \ArrayAccess, \Iterator{ } public function offsetSet($name, $value){ - $this->__set($name, $value); + $this->value[$name] = $value; } public function offsetUnset($name){ @@ -82,17 +84,17 @@ class Compound extends NamedTag implements \ArrayAccess, \Iterator{ } } - public function __set($name, $value){ + /*public function __set($name, $value){ if($value instanceof Tag){ - $this->value[$name] = $value; - } elseif(isset($this->value[$name])){ if($value instanceof NamedTag and $value->getName() !== "" and $value->getName() !== false){ - $this->value[$value->getName()]->setValue($value); + $this->value[$value->getName()] = $value; } else{ - $this->value[$name]->setValue($value); + $this->value[$name] = $value; } + }elseif(isset($this->value[$name])){ + $this->value[$name]->setValue($value); } - } + }*/ public function __isset($name){ return isset($this->value[$name]); diff --git a/src/PocketMine/nbt/tag/Double.php b/src/PocketMine/nbt/tag/Double.php index 9a1ba89d6..cd4d4efd4 100644 --- a/src/PocketMine/nbt/tag/Double.php +++ b/src/PocketMine/nbt/tag/Double.php @@ -22,7 +22,7 @@ namespace PocketMine\NBT\Tag; use PocketMine; -use PocketMine\NBT\NBT as NBT; +use PocketMine\NBT\NBT; class Double extends NamedTag{ diff --git a/src/PocketMine/nbt/tag/End.php b/src/PocketMine/nbt/tag/End.php index 7f42b4bb2..0bfaa4af6 100644 --- a/src/PocketMine/nbt/tag/End.php +++ b/src/PocketMine/nbt/tag/End.php @@ -22,7 +22,7 @@ namespace PocketMine\NBT\Tag; use PocketMine; -use PocketMine\NBT\NBT as NBT; +use PocketMine\NBT\NBT; class End extends Tag{ diff --git a/src/PocketMine/nbt/tag/Enum.php b/src/PocketMine/nbt/tag/Enum.php index 0a09a2f1e..fc11062c4 100644 --- a/src/PocketMine/nbt/tag/Enum.php +++ b/src/PocketMine/nbt/tag/Enum.php @@ -21,13 +21,14 @@ namespace PocketMine\NBT\Tag; -use PocketMine\NBT\Tag\Enum as TagEnum; +use PocketMine\NBT\NBT; use PocketMine; -use PocketMine\NBT\NBT as NBT; +use PocketMine\NBT\Tag\Enum as TagEnum; class Enum extends NamedTag implements \ArrayAccess, \Iterator{ private $tagType; + protected $value = array(); public function __construct($name = "", $value = array()){ $this->name = $name; @@ -77,7 +78,7 @@ class Enum extends NamedTag implements \ArrayAccess, \Iterator{ } public function offsetSet($name, $value){ - $this->__set($name, $value); + $this->value[$name] = $value; } public function offsetUnset($name){ @@ -93,14 +94,6 @@ class Enum extends NamedTag implements \ArrayAccess, \Iterator{ } } - public function __set($name, $value){ - if($value instanceof Tag){ - $this->value[$name] = $value; - } elseif(isset($this->value[$name])){ - $this->value[$name]->setValue($value); - } - } - public function __isset($name){ return isset($this->value[$name]); } diff --git a/src/PocketMine/nbt/tag/Float.php b/src/PocketMine/nbt/tag/Float.php index 3b1fdc231..e5ddc41b8 100644 --- a/src/PocketMine/nbt/tag/Float.php +++ b/src/PocketMine/nbt/tag/Float.php @@ -22,7 +22,7 @@ namespace PocketMine\NBT\Tag; use PocketMine; -use PocketMine\NBT\NBT as NBT; +use PocketMine\NBT\NBT; class Float extends NamedTag{ diff --git a/src/PocketMine/nbt/tag/Int.php b/src/PocketMine/nbt/tag/Int.php index 9620476a5..e5b4b8a3c 100644 --- a/src/PocketMine/nbt/tag/Int.php +++ b/src/PocketMine/nbt/tag/Int.php @@ -22,7 +22,7 @@ namespace PocketMine\NBT\Tag; use PocketMine; -use PocketMine\NBT\NBT as NBT; +use PocketMine\NBT\NBT; class Int extends NamedTag{ diff --git a/src/PocketMine/nbt/tag/Int_Array.php b/src/PocketMine/nbt/tag/Int_Array.php index 838f9e7fb..6c568abe7 100644 --- a/src/PocketMine/nbt/tag/Int_Array.php +++ b/src/PocketMine/nbt/tag/Int_Array.php @@ -22,7 +22,7 @@ namespace PocketMine\NBT\Tag; use PocketMine; -use PocketMine\NBT\NBT as NBT; +use PocketMine\NBT\NBT; class Int_Array extends NamedTag{ diff --git a/src/PocketMine/nbt/tag/Long.php b/src/PocketMine/nbt/tag/Long.php index c1c5249f2..511043a67 100644 --- a/src/PocketMine/nbt/tag/Long.php +++ b/src/PocketMine/nbt/tag/Long.php @@ -22,7 +22,7 @@ namespace PocketMine\NBT\Tag; use PocketMine; -use PocketMine\NBT\NBT as NBT; +use PocketMine\NBT\NBT; class Long extends NamedTag{ diff --git a/src/PocketMine/nbt/tag/Short.php b/src/PocketMine/nbt/tag/Short.php index f198b0b97..5bc051f78 100644 --- a/src/PocketMine/nbt/tag/Short.php +++ b/src/PocketMine/nbt/tag/Short.php @@ -22,7 +22,7 @@ namespace PocketMine\NBT\Tag; use PocketMine; -use PocketMine\NBT\NBT as NBT; +use PocketMine\NBT\NBT; class Short extends NamedTag{ diff --git a/src/PocketMine/nbt/tag/String.php b/src/PocketMine/nbt/tag/String.php index 16bb636d9..e66e7060b 100644 --- a/src/PocketMine/nbt/tag/String.php +++ b/src/PocketMine/nbt/tag/String.php @@ -22,7 +22,7 @@ namespace PocketMine\NBT\Tag; use PocketMine; -use PocketMine\NBT\NBT as NBT; +use PocketMine\NBT\NBT; class String extends NamedTag{ diff --git a/src/PocketMine/nbt/tag/Tag.php b/src/PocketMine/nbt/tag/Tag.php index 9b1602eef..5b8c94587 100644 --- a/src/PocketMine/nbt/tag/Tag.php +++ b/src/PocketMine/nbt/tag/Tag.php @@ -23,10 +23,11 @@ * All the NBT Tags */ namespace PocketMine\NBT\Tag; -use PocketMine\NBT\NBT as NBT; -use PocketMine; -abstract class Tag{ +use PocketMine; +use PocketMine\NBT\NBT; + +abstract class Tag extends \stdClass{ protected $value; diff --git a/src/PocketMine/network/Handler.php b/src/PocketMine/network/Handler.php index 0fd03ac2d..55d06e139 100644 --- a/src/PocketMine/network/Handler.php +++ b/src/PocketMine/network/Handler.php @@ -24,16 +24,16 @@ */ namespace PocketMine\Network; -use PocketMine\Event\Event as Event; -use PocketMine\Event\EventHandler as EventHandler; -use PocketMine\Event\Server\PacketReceiveEvent as PacketReceiveEvent; -use PocketMine\Event\Server\PacketSendEvent as PacketSendEvent; -use PocketMine\Network\Query\QueryHandler as QueryHandler; -use PocketMine\Network\Query\QueryPacket as QueryPacket; -use PocketMine\Network\RakNet\Info as Info; -use PocketMine\Network\RakNet\Packet as Packet; -use PocketMine\ServerAPI as ServerAPI; use PocketMine; +use PocketMine\Event\Event; +use PocketMine\Event\EventHandler; +use PocketMine\Event\Server\PacketReceiveEvent; +use PocketMine\Event\Server\PacketSendEvent; +use PocketMine\Network\Query\QueryHandler; +use PocketMine\Network\Query\QueryPacket; +use PocketMine\Network\RakNet\Info; +use PocketMine\Network\RakNet\Packet; +use PocketMine\ServerAPI; class Handler{ public $bandwidth; diff --git a/src/PocketMine/network/protocol/AddMobPacket.php b/src/PocketMine/network/protocol/AddMobPacket.php index f34721505..137b7d64f 100644 --- a/src/PocketMine/network/protocol/AddMobPacket.php +++ b/src/PocketMine/network/protocol/AddMobPacket.php @@ -22,7 +22,7 @@ namespace PocketMine\Network\Protocol; use PocketMine; -use PocketMine\Utils\Utils as Utils; +use PocketMine\Utils\Utils; class AddMobPacket extends DataPacket{ public $eid; diff --git a/src/PocketMine/network/protocol/AddPlayerPacket.php b/src/PocketMine/network/protocol/AddPlayerPacket.php index 52c11b132..04cb41110 100644 --- a/src/PocketMine/network/protocol/AddPlayerPacket.php +++ b/src/PocketMine/network/protocol/AddPlayerPacket.php @@ -22,7 +22,7 @@ namespace PocketMine\Network\Protocol; use PocketMine; -use PocketMine\Utils\Utils as Utils; +use PocketMine\Utils\Utils; class AddPlayerPacket extends DataPacket{ public $clientID; diff --git a/src/PocketMine/network/protocol/DataPacket.php b/src/PocketMine/network/protocol/DataPacket.php index 5f0904fad..251b21c3e 100644 --- a/src/PocketMine/network/protocol/DataPacket.php +++ b/src/PocketMine/network/protocol/DataPacket.php @@ -21,14 +21,14 @@ namespace PocketMine\Network\Protocol; -use PocketMine\Item\Item as Item; -use PocketMine\Utils\Utils as Utils; use PocketMine; +use PocketMine\Item\Item; +use PocketMine\Utils\Utils; abstract class DataPacket{ private $offset = 0; - public $buffer = b""; - + public $buffer = ""; + public $reliability = 0; public $hasSplit = false; public $messageIndex; @@ -38,26 +38,26 @@ abstract class DataPacket{ public $splitID; public $splitIndex; - + abstract public function pid(); - + abstract public function encode(); - + abstract public function decode(); protected function reset(){ $this->setBuffer(chr($this->pid())); } - + public function setBuffer($buffer = ""){ $this->buffer = $buffer; $this->offset = 0; } - + public function getBuffer(){ return $this->buffer; } - + protected function get($len){ if($len <= 0){ $this->offset = strlen($this->buffer) - 1; @@ -67,17 +67,18 @@ abstract class DataPacket{ return substr($this->buffer, $this->offset); } - $buffer = b""; + $buffer = ""; for(; $len > 0; --$len, ++$this->offset){ $buffer .= @$this->buffer{$this->offset}; } + return $buffer; } - + protected function put($str){ $this->buffer .= $str; } - + protected function getLong($unsigned = false){ return Utils::readLong($this->get(8), $unsigned); } @@ -85,23 +86,23 @@ abstract class DataPacket{ protected function putLong($v){ $this->buffer .= Utils::writeLong($v); } - + protected function getInt(){ return Utils::readInt($this->get(4)); } - + protected function putInt($v){ $this->buffer .= Utils::writeInt($v); } - + protected function getShort($unsigned = false){ return Utils::readShort($this->get(2), $unsigned); } - + protected function putShort($v){ $this->buffer .= Utils::writeShort($v); } - + protected function getFloat(){ return Utils::readFloat($this->get(4)); } @@ -117,20 +118,20 @@ abstract class DataPacket{ protected function putTriad($v){ $this->buffer .= Utils::writeTriad($v); } - - + + protected function getLTriad(){ return Utils::readTriad(strrev($this->get(3))); } - + protected function putLTriad($v){ $this->buffer .= strrev(Utils::writeTriad($v)); } - + protected function getByte(){ return ord($this->buffer{$this->offset++}); } - + protected function putByte($v){ $this->buffer .= chr($v); } @@ -150,7 +151,7 @@ abstract class DataPacket{ $this->put($v); } } - + protected function getSlot(){ $id = $this->getShort(); $cnt = $this->getByte(); @@ -161,22 +162,22 @@ abstract class DataPacket{ $cnt ); } - + protected function putSlot(Item $item){ $this->putShort($item->getID()); $this->putByte($item->getCount()); $this->putShort($item->getMetadata()); } - + protected function getString(){ return $this->get($this->getShort(true)); } - + protected function putString($v){ $this->putShort(strlen($v)); $this->put($v); } - + protected function feof(){ return !isset($this->buffer{$this->offset}); } diff --git a/src/PocketMine/network/protocol/SetEntityDataPacket.php b/src/PocketMine/network/protocol/SetEntityDataPacket.php index fdcb8dfe9..ef8974d5d 100644 --- a/src/PocketMine/network/protocol/SetEntityDataPacket.php +++ b/src/PocketMine/network/protocol/SetEntityDataPacket.php @@ -22,7 +22,7 @@ namespace PocketMine\Network\Protocol; use PocketMine; -use PocketMine\Utils\Utils as Utils; +use PocketMine\Utils\Utils; class SetEntityDataPacket extends DataPacket{ public $eid; diff --git a/src/PocketMine/network/query/QueryHandler.php b/src/PocketMine/network/query/QueryHandler.php index d9c0f1e84..f5f45ef83 100644 --- a/src/PocketMine/network/query/QueryHandler.php +++ b/src/PocketMine/network/query/QueryHandler.php @@ -22,13 +22,14 @@ /** * Implementation of the UT3 Query Protocol (GameSpot) * Source: http://wiki.unrealadmin.org/UT3_query_protocol -*/ + */ namespace PocketMine\Network\Query; -use PocketMine\Player as Player; -use PocketMine\ServerAPI as ServerAPI; -use PocketMine\Utils\Utils as Utils; use PocketMine; +use PocketMine\Level\Level; +use PocketMine\Player; +use PocketMine\ServerAPI; +use PocketMine\Utils\Utils; class QueryHandler{ private $socket, $server, $lastToken, $token, $longData, $timeout; @@ -74,7 +75,7 @@ class QueryHandler{ "version" => PocketMine\MINECRAFT_VERSION, "server_engine" => "PocketMine-MP " . PocketMine\VERSION, "plugins" => $plist, - "map" => $this->server->api->level->getDefault()->getName(), + "map" => Level::getDefault()->getName(), "numplayers" => count(Player::$list), "maxplayers" => $this->server->maxClients, "whitelist" => $this->server->api->getProperty("white-list") === true ? "on" : "off", @@ -133,7 +134,7 @@ class QueryHandler{ } $pk->payload = $this->longData; } else{ - $pk->payload = $this->server->name . "\x00" . (($this->server->gamemode & 0x01) === 0 ? "SMP" : "CMP") . "\x00" . $this->server->api->level->getDefault()->getName() . "\x00" . count(Player::$list) . "\x00" . $this->server->maxClients . "\x00" . Utils::writeLShort($this->server->api->getProperty("server-port")) . $this->server->api->getProperty("server-ip", "0.0.0.0") . "\x00"; + $pk->payload = $this->server->name . "\x00" . (($this->server->gamemode & 0x01) === 0 ? "SMP" : "CMP") . "\x00" . Level::getDefault()->getName() . "\x00" . count(Player::$list) . "\x00" . $this->server->maxClients . "\x00" . Utils::writeLShort($this->server->api->getProperty("server-port")) . $this->server->api->getProperty("server-ip", "0.0.0.0") . "\x00"; } $pk->encode(); $this->server->send($pk); diff --git a/src/PocketMine/network/query/QueryPacket.php b/src/PocketMine/network/query/QueryPacket.php index f15f7b52a..9f96a62d7 100644 --- a/src/PocketMine/network/query/QueryPacket.php +++ b/src/PocketMine/network/query/QueryPacket.php @@ -21,9 +21,9 @@ namespace PocketMine\Network\Query; -use PocketMine\Network\Packet as Packet; -use PocketMine\Utils\Utils as Utils; use PocketMine; +use PocketMine\Network\Packet; +use PocketMine\Utils\Utils; class QueryPacket extends Packet{ const HANDSHAKE = 9; diff --git a/src/PocketMine/network/raknet/Packet.php b/src/PocketMine/network/raknet/Packet.php index 0e980f0c9..967da36ad 100644 --- a/src/PocketMine/network/raknet/Packet.php +++ b/src/PocketMine/network/raknet/Packet.php @@ -21,12 +21,12 @@ namespace PocketMine\Network\RakNet; -use PocketMine\Network\Packet as NetworkPacket; -use PocketMine\Network\Protocol\Info as ProtocolInfo; -use PocketMine\Utils\Utils as Utils; use PocketMine; +use PocketMine\Network; +use PocketMine\Network\Protocol\Info as ProtocolInfo; +use PocketMine\Utils\Utils; -class Packet extends NetworkPacket{ +class Packet extends Network\Packet{ private $packetID; private $offset = 1; public $data = array(); @@ -48,10 +48,11 @@ class Packet extends NetworkPacket{ return substr($this->buffer, $this->offset); } - $buffer = b""; + $buffer = ""; for(; $len > 0; --$len, ++$this->offset){ $buffer .= @$this->buffer{$this->offset}; } + return $buffer; } @@ -196,166 +197,166 @@ class Packet extends NetworkPacket{ } switch($pid){ case ProtocolInfo::PING_PACKET: - $data = new PingPacket; + $data = new Network\Protocol\PingPacket; break; case ProtocolInfo::PONG_PACKET: - $data = new PongPacket; + $data = new Network\Protocol\PongPacket; break; case ProtocolInfo::CLIENT_CONNECT_PACKET: - $data = new ClientConnectPacket; + $data = new Network\Protocol\ClientConnectPacket; break; case ProtocolInfo::SERVER_HANDSHAKE_PACKET: - $data = new ServerHandshakePacket; + $data = new Network\Protocol\ServerHandshakePacket; break; case ProtocolInfo::DISCONNECT_PACKET: - $data = new DisconnectPacket; + $data = new Network\Protocol\DisconnectPacket; break; case ProtocolInfo::LOGIN_PACKET: - $data = new LoginPacket; + $data = new Network\Protocol\LoginPacket; break; case ProtocolInfo::LOGIN_STATUS_PACKET: - $data = new LoginStatusPacket; + $data = new Network\Protocol\LoginStatusPacket; break; case ProtocolInfo::READY_PACKET: - $data = new ReadyPacket; + $data = new Network\Protocol\ReadyPacket; break; case ProtocolInfo::MESSAGE_PACKET: - $data = new MessagePacket; + $data = new Network\Protocol\MessagePacket; break; case ProtocolInfo::SET_TIME_PACKET: - $data = new SetTimePacket; + $data = new Network\Protocol\SetTimePacket; break; case ProtocolInfo::START_GAME_PACKET: - $data = new StartGamePacket; + $data = new Network\Protocol\StartGamePacket; break; case ProtocolInfo::ADD_MOB_PACKET: - $data = new AddMobPacket; + $data = new Network\Protocol\AddMobPacket; break; case ProtocolInfo::ADD_PLAYER_PACKET: - $data = new AddPlayerPacket; + $data = new Network\Protocol\AddPlayerPacket; break; case ProtocolInfo::REMOVE_PLAYER_PACKET: - $data = new RemovePlayerPacket; + $data = new Network\Protocol\RemovePlayerPacket; break; case ProtocolInfo::ADD_ENTITY_PACKET: - $data = new AddEntityPacket; + $data = new Network\Protocol\AddEntityPacket; break; case ProtocolInfo::REMOVE_ENTITY_PACKET: - $data = new RemoveEntityPacket; + $data = new Network\Protocol\RemoveEntityPacket; break; case ProtocolInfo::ADD_ITEM_ENTITY_PACKET: - $data = new AddItemEntityPacket; + $data = new Network\Protocol\AddItemEntityPacket; break; case ProtocolInfo::TAKE_ITEM_ENTITY_PACKET: - $data = new TakeItemEntityPacket; + $data = new Network\Protocol\TakeItemEntityPacket; break; case ProtocolInfo::MOVE_ENTITY_PACKET: - $data = new MoveEntityPacket; + $data = new Network\Protocol\MoveEntityPacket; break; case ProtocolInfo::MOVE_ENTITY_PACKET_POSROT: - $data = new MoveEntityPacket_PosRot; + $data = new Network\Protocol\MoveEntityPacket_PosRot; break; case ProtocolInfo::ROTATE_HEAD_PACKET: - $data = new RotateHeadPacket; + $data = new Network\Protocol\RotateHeadPacket; break; case ProtocolInfo::MOVE_PLAYER_PACKET: - $data = new MovePlayerPacket; + $data = new Network\Protocol\MovePlayerPacket; break; case ProtocolInfo::REMOVE_BLOCK_PACKET: - $data = new RemoveBlockPacket; + $data = new Network\Protocol\RemoveBlockPacket; break; case ProtocolInfo::UPDATE_BLOCK_PACKET: - $data = new UpdateBlockPacket; + $data = new Network\Protocol\UpdateBlockPacket; break; case ProtocolInfo::ADD_PAINTING_PACKET: - $data = new AddPaintingPacket; + $data = new Network\Protocol\AddPaintingPacket; break; case ProtocolInfo::EXPLODE_PACKET: - $data = new ExplodePacket; + $data = new Network\Protocol\ExplodePacket; break; case ProtocolInfo::LEVEL_EVENT_PACKET: - $data = new LevelEventPacket; + $data = new Network\Protocol\LevelEventPacket; break; case ProtocolInfo::TILE_EVENT_PACKET: - $data = new TileEventPacket; + $data = new Network\Protocol\TileEventPacket; break; case ProtocolInfo::ENTITY_EVENT_PACKET: - $data = new EntityEventPacket; + $data = new Network\Protocol\EntityEventPacket; break; case ProtocolInfo::REQUEST_CHUNK_PACKET: - $data = new RequestChunkPacket; + $data = new Network\Protocol\RequestChunkPacket; break; case ProtocolInfo::CHUNK_DATA_PACKET: - $data = new ChunkDataPacket; + $data = new Network\Protocol\ChunkDataPacket; break; case ProtocolInfo::PLAYER_EQUIPMENT_PACKET: - $data = new PlayerEquipmentPacket; + $data = new Network\Protocol\PlayerEquipmentPacket; break; case ProtocolInfo::PLAYER_ARMOR_EQUIPMENT_PACKET: - $data = new PlayerArmorEquipmentPacket; + $data = new Network\Protocol\PlayerArmorEquipmentPacket; break; case ProtocolInfo::INTERACT_PACKET: - $data = new InteractPacket; + $data = new Network\Protocol\InteractPacket; break; case ProtocolInfo::USE_ITEM_PACKET: - $data = new UseItemPacket; + $data = new Network\Protocol\UseItemPacket; break; case ProtocolInfo::PLAYER_ACTION_PACKET: - $data = new PlayerActionPacket; + $data = new Network\Protocol\PlayerActionPacket; break; case ProtocolInfo::HURT_ARMOR_PACKET: - $data = new HurtArmorPacket; + $data = new Network\Protocol\HurtArmorPacket; break; case ProtocolInfo::SET_ENTITY_DATA_PACKET: - $data = new SetEntityDataPacket; + $data = new Network\Protocol\SetEntityDataPacket; break; case ProtocolInfo::SET_ENTITY_MOTION_PACKET: - $data = new SetEntityMotionPacket; + $data = new Network\Protocol\SetEntityMotionPacket; break; case ProtocolInfo::SET_HEALTH_PACKET: - $data = new SetHealthPacket; + $data = new Network\Protocol\SetHealthPacket; break; case ProtocolInfo::SET_SPAWN_POSITION_PACKET: - $data = new SetSpawnPositionPacket; + $data = new Network\Protocol\SetSpawnPositionPacket; break; case ProtocolInfo::ANIMATE_PACKET: - $data = new AnimatePacket; + $data = new Network\Protocol\AnimatePacket; break; case ProtocolInfo::RESPAWN_PACKET: - $data = new RespawnPacket; + $data = new Network\Protocol\RespawnPacket; break; case ProtocolInfo::SEND_INVENTORY_PACKET: - $data = new SendInventoryPacket; + $data = new Network\Protocol\SendInventoryPacket; break; case ProtocolInfo::DROP_ITEM_PACKET: - $data = new DropItemPacket; + $data = new Network\Protocol\DropItemPacket; break; case ProtocolInfo::CONTAINER_OPEN_PACKET: - $data = new ContainerOpenPacket; + $data = new Network\Protocol\ContainerOpenPacket; break; case ProtocolInfo::CONTAINER_CLOSE_PACKET: - $data = new ContainerClosePacket; + $data = new Network\Protocol\ContainerClosePacket; break; case ProtocolInfo::CONTAINER_SET_SLOT_PACKET: - $data = new ContainerSetSlotPacket; + $data = new Network\Protocol\ContainerSetSlotPacket; break; case ProtocolInfo::CONTAINER_SET_DATA_PACKET: - $data = new ContainerSetDataPacket; + $data = new Network\Protocol\ContainerSetDataPacket; break; case ProtocolInfo::CONTAINER_SET_CONTENT_PACKET: - $data = new ContainerSetContentPacket; + $data = new Network\Protocol\ContainerSetContentPacket; break; case ProtocolInfo::CHAT_PACKET: - $data = new ChatPacket; + $data = new Network\Protocol\ChatPacket; break; case ProtocolInfo::ADVENTURE_SETTINGS_PACKET: - $data = new AdventureSettingsPacket; + $data = new Network\Protocol\AdventureSettingsPacket; break; case ProtocolInfo::ENTITY_DATA_PACKET: - $data = new EntityDataPacket; + $data = new Network\Protocol\EntityDataPacket; break; default: - $data = new UnknownPacket(); + $data = new Network\Protocol\UnknownPacket(); $data->packetID = $pid; break; } @@ -429,12 +430,12 @@ class Packet extends NetworkPacket{ break; case Info::NACK: case Info::ACK: - $payload = b""; + $payload = ""; $records = 0; $pointer = 0; sort($this->packets, SORT_NUMERIC); $max = count($this->packets); - + while($pointer < $max){ $type = true; $curr = $start = $this->packets[$pointer]; @@ -468,7 +469,7 @@ class Packet extends NetworkPacket{ } - private function encodeDataPacket(DataPacket $pk){ + private function encodeDataPacket(Network\Protocol\DataPacket $pk){ $this->putByte(($pk->reliability << 5) | ($pk->hasSplit > 0 ? 0b00010000 : 0)); $this->putShort(strlen($pk->buffer) << 3); if($pk->reliability === 2 diff --git a/src/PocketMine/network/rcon/RCON.php b/src/PocketMine/network/rcon/RCON.php index 6122346d7..a251cc206 100644 --- a/src/PocketMine/network/rcon/RCON.php +++ b/src/PocketMine/network/rcon/RCON.php @@ -22,11 +22,11 @@ /** * Implementation of the Source RCON Protocol to allow remote console commands * Source: https://developer.valvesoftware.com/wiki/Source_RCON_Protocol -*/ + */ namespace PocketMine\Network\RCON; use PocketMine; -use PocketMine\ServerAPI as ServerAPI; +use PocketMine\ServerAPI; class RCON{ diff --git a/src/PocketMine/network/rcon/RCONInstance.php b/src/PocketMine/network/rcon/RCONInstance.php index 8e57e0338..c68e5d46c 100644 --- a/src/PocketMine/network/rcon/RCONInstance.php +++ b/src/PocketMine/network/rcon/RCONInstance.php @@ -22,7 +22,7 @@ namespace PocketMine\Network\RCON; use PocketMine; -use PocketMine\Utils\Utils as Utils; +use PocketMine\Utils\Utils; class RCONInstance extends \Thread{ public $stop; diff --git a/src/PocketMine/network/upnp/PortForward.php b/src/PocketMine/network/upnp/PortForward.php index 7d3ead324..2dbd1a4b6 100644 --- a/src/PocketMine/network/upnp/PortForward.php +++ b/src/PocketMine/network/upnp/PortForward.php @@ -25,7 +25,7 @@ namespace PocketMine\Network\UPnP; use PocketMine; -use PocketMine\Utils\Utils as Utils; +use PocketMine\Utils\Utils; function PortForward($port){ if(Utils::$online === false){ diff --git a/src/PocketMine/network/upnp/RemovePortForward.php b/src/PocketMine/network/upnp/RemovePortForward.php index f2eec953e..642e7d201 100644 --- a/src/PocketMine/network/upnp/RemovePortForward.php +++ b/src/PocketMine/network/upnp/RemovePortForward.php @@ -22,7 +22,7 @@ namespace PocketMine\Network\UPnP; use PocketMine; -use PocketMine\Utils\Utils as Utils; +use PocketMine\Utils\Utils; function RemovePortForward($port){ if(Utils::$online === false){ diff --git a/src/PocketMine/pmf/LevelFormat.php b/src/PocketMine/pmf/LevelFormat.php index be43c0eed..c068308ef 100644 --- a/src/PocketMine/pmf/LevelFormat.php +++ b/src/PocketMine/pmf/LevelFormat.php @@ -21,12 +21,12 @@ namespace PocketMine\PMF; -use PocketMine\Level\Level as Level; -use PocketMine\NBT\NBT as NBT; -use PocketMine\NBT\Tag\Compound as Compound; -use PocketMine\NBT\Tag\Enum as Enum; -use PocketMine\Utils\Utils as Utils; use PocketMine; +use PocketMine\Level\Level; +use PocketMine\NBT\NBT; +use PocketMine\NBT\Tag\Compound; +use PocketMine\NBT\Tag\Enum; +use PocketMine\Utils\Utils; class LevelFormat extends PMF{ const VERSION = 2; @@ -700,7 +700,7 @@ class LevelFormat extends PMF{ } $this->chunkInfo[$index][0] = $bitmap; $this->chunkChange[$index][-1] = false; - $chunk = b""; + $chunk = ""; $chunk .= chr($bitmap); $chunk .= Utils::writeInt($this->chunkInfo[$index][1]); $namedtag = $this->chunkInfo[$index][2]->write(); @@ -713,6 +713,7 @@ class LevelFormat extends PMF{ } } file_put_contents($path, zlib_encode($chunk, self::ZLIB_ENCODING, self::ZLIB_LEVEL)); + return true; } diff --git a/src/PocketMine/pmf/Plugin.php b/src/PocketMine/pmf/Plugin.php index 38f47d38b..7c4e6a4d5 100644 --- a/src/PocketMine/pmf/Plugin.php +++ b/src/PocketMine/pmf/Plugin.php @@ -22,7 +22,7 @@ namespace PocketMine\PMF; use PocketMine; -use PocketMine\Utils\Utils as Utils; +use PocketMine\Utils\Utils; class Plugin extends PMF{ const VERSION = 0x02; diff --git a/src/PocketMine/recipes/Crafting.php b/src/PocketMine/recipes/Crafting.php index 9bb974edc..ddd017b17 100644 --- a/src/PocketMine/recipes/Crafting.php +++ b/src/PocketMine/recipes/Crafting.php @@ -24,10 +24,10 @@ */ namespace PocketMine\Recipes; -use PocketMine\BlockAPI as BlockAPI; -use PocketMine\ServerAPI as ServerAPI; -use PocketMine\Item\Item as Item; use PocketMine; +use PocketMine\BlockAPI; +use PocketMine\Item\Item; +use PocketMine\ServerAPI; abstract class Crafting{ private static $small = array( //Probably means craftable on crafting bench and in inventory. Name it better! diff --git a/src/PocketMine/recipes/Fuel.php b/src/PocketMine/recipes/Fuel.php index 3afe8c2a6..ad73ab1bf 100644 --- a/src/PocketMine/recipes/Fuel.php +++ b/src/PocketMine/recipes/Fuel.php @@ -22,7 +22,7 @@ namespace PocketMine\Recipes; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; abstract class Fuel{ public static $duration = array( diff --git a/src/PocketMine/recipes/Smelt.php b/src/PocketMine/recipes/Smelt.php index 212a9b290..0cb85cb13 100644 --- a/src/PocketMine/recipes/Smelt.php +++ b/src/PocketMine/recipes/Smelt.php @@ -20,8 +20,9 @@ */ namespace PocketMine\Recipes; + use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; class Smelt{ public static $product = array( diff --git a/src/PocketMine/tests/ServerSuiteTest.php b/src/PocketMine/tests/ServerSuiteTest.php deleted file mode 100644 index 232a7c5aa..000000000 --- a/src/PocketMine/tests/ServerSuiteTest.php +++ /dev/null @@ -1,60 +0,0 @@ -load(); - testCase("event attached", is_integer($server->event("server.start", array($this, "hook"))), true); - $server->init(); - } - - public function hook(){ - testCase("event fired", true, true); - $server = ServerAPI::request(); - testCase("defaultgamemode", $server->getGamemode(), "survival"); - - - //Everything done! - $server->close(); - } -} \ No newline at end of file diff --git a/src/PocketMine/tile/Chest.php b/src/PocketMine/tile/Chest.php index a6cd13a7f..e2cb9afda 100644 --- a/src/PocketMine/tile/Chest.php +++ b/src/PocketMine/tile/Chest.php @@ -21,13 +21,13 @@ namespace PocketMine\Tile; -use PocketMine\Level\Level as Level; -use PocketMine\Math\Vector3 as Vector3; -use PocketMine\NBT\Tag\Compound as Compound; -use PocketMine\NBT\Tag\Int as Int; -use PocketMine\NBT\Tag\String as String; -use PocketMine\Network\Protocol\EntityDataPacket as EntityDataPacket; use PocketMine; +use PocketMine\Level\Level; +use PocketMine\Math\Vector3 as Vector3; +use PocketMine\NBT\Tag\Compound; +use PocketMine\NBT\Tag\Int; +use PocketMine\NBT\Tag\String; +use PocketMine\Network\Protocol\EntityDataPacket; class Chest extends Spawnable{ use Container; diff --git a/src/PocketMine/tile/Container.php b/src/PocketMine/tile/Container.php index d0cbc923e..6fdffa2de 100644 --- a/src/PocketMine/tile/Container.php +++ b/src/PocketMine/tile/Container.php @@ -21,15 +21,15 @@ namespace PocketMine\Tile; -use PocketMine\Event\Event as Event; -use PocketMine\Event\EventHandler as EventHandler; -use PocketMine\Event\Tile\TileInventoryChangeEvent as TileInventoryChangeEvent; -use PocketMine\Item\Item as Item; -use PocketMine\NBT\Tag\Byte as Byte; -use PocketMine\NBT\Tag\Compound as Compound; -use PocketMine\NBT\Tag\Short as Short; -use PocketMine\Player as Player; use PocketMine; +use PocketMine\Event\Event; +use PocketMine\Event\EventHandler; +use PocketMine\Event\Tile\TileInventoryChangeEvent; +use PocketMine\Item\Item; +use PocketMine\NBT\Tag\Byte; +use PocketMine\NBT\Tag\Compound; +use PocketMine\NBT\Tag\Short; +use PocketMine\Player; trait Container{ public function openInventory(Player $player){ diff --git a/src/PocketMine/tile/Furnace.php b/src/PocketMine/tile/Furnace.php index 2cac10213..5135d6317 100644 --- a/src/PocketMine/tile/Furnace.php +++ b/src/PocketMine/tile/Furnace.php @@ -21,11 +21,11 @@ namespace PocketMine\Tile; -use PocketMine\Block\Block as Block; -use PocketMine\Item\Item as Item; -use PocketMine\Level\Level as Level; -use PocketMine\NBT\Tag\Compound as Compound; use PocketMine; +use PocketMine\Block\Block; +use PocketMine\Item\Item; +use PocketMine\Level\Level; +use PocketMine\NBT\Tag\Compound; class Furnace extends Tile{ use Container; diff --git a/src/PocketMine/tile/Sign.php b/src/PocketMine/tile/Sign.php index 233f6e660..5c4fa9beb 100644 --- a/src/PocketMine/tile/Sign.php +++ b/src/PocketMine/tile/Sign.php @@ -21,12 +21,13 @@ namespace PocketMine\Tile; -use PocketMine\NBT\NBT as NBT; -use PocketMine\NBT\Tag\Compound as Compound; -use PocketMine\NBT\Tag\Int as Int; -use PocketMine\NBT\Tag\String as String; -use PocketMine\Network\Protocol\EntityDataPacket as EntityDataPacket; use PocketMine; +use PocketMine\NBT\NBT; +use PocketMine\NBT\Tag\Compound; +use PocketMine\NBT\Tag\Int; +use PocketMine\NBT\Tag\String; +use PocketMine\Network\Protocol\EntityDataPacket; +use PocketMine\Level\Level; class Sign extends Spawnable{ diff --git a/src/PocketMine/tile/Tile.php b/src/PocketMine/tile/Tile.php index e59e2f205..847c59d80 100644 --- a/src/PocketMine/tile/Tile.php +++ b/src/PocketMine/tile/Tile.php @@ -25,12 +25,12 @@ */ namespace PocketMine\Tile; -use PocketMine\Level\Level as Level; -use PocketMine\NBT\Tag\Compound as Compound; -use PocketMine\PMF\LevelFormat as LevelFormat; -use PocketMine\ServerAPI as ServerAPI; -use PocketMine\Level\Position; use PocketMine; +use PocketMine\Level\Level; +use PocketMine\Level\Position; +use PocketMine\NBT\Tag\Compound; +use PocketMine\PMF\LevelFormat; +use PocketMine\ServerAPI; abstract class Tile extends Position{ const SIGN = "Sign"; @@ -51,8 +51,8 @@ abstract class Tile extends Position{ public $metadata; public $closed; public $namedtag; - private $lastUpdate; - private $server; + protected $lastUpdate; + protected $server; public static function getByID($tileID){ return isset(Tile::$list[$tileID]) ? Tile::$list[$tileID] : false; diff --git a/src/PocketMine/utils/Config.php b/src/PocketMine/utils/Config.php index a4fe40d2b..d7afcceaf 100644 --- a/src/PocketMine/utils/Config.php +++ b/src/PocketMine/utils/Config.php @@ -75,9 +75,9 @@ class Config{ ); /** - * @param $file Path of the file to be loaded - * @param int $type Config type to load, -1 by default (detect) - * @param array $default Array with the default values, will be set if not existent + * @param $file Path of the file to be loaded + * @param int $type Config type to load, -1 by default (detect) + * @param array $default Array with the default values, will be set if not existent * @param null &$correct Sets correct to true if everything has been loaded correctly */ public function __construct($file, $type = Config::DETECT, $default = array(), &$correct = null){ diff --git a/src/PocketMine/utils/Random.php b/src/PocketMine/utils/Random.php index 6dc1ac290..d6e8ca527 100644 --- a/src/PocketMine/utils/Random.php +++ b/src/PocketMine/utils/Random.php @@ -116,7 +116,7 @@ class Random{ * Returns a random integer between $start and $end * * @param int $start default 0 - * @param int $end default PHP_INT_MAX + * @param int $end default PHP_INT_MAX * * @return int */ diff --git a/src/PocketMine/utils/Utils.php b/src/PocketMine/utils/Utils.php index 6131c81f2..ea98d87d0 100644 --- a/src/PocketMine/utils/Utils.php +++ b/src/PocketMine/utils/Utils.php @@ -25,7 +25,7 @@ namespace PocketMine\Utils; use PocketMine; -use PocketMine\Item\Item as Item; +use PocketMine\Item\Item; /** * Class Utils @@ -62,7 +62,7 @@ class Utils{ * will be an identifier that won't change frequently. * The rest of the hash will change depending on other factors. * - * @param bool $raw default false, if true, returns the raw identifier, not hexadecimal + * @param bool $raw default false, if true, returns the raw identifier, not hexadecimal * @param string $extra optional, additional data to identify the machine * * @return string @@ -220,6 +220,7 @@ class Utils{ /** * Writes a 3-byte big-endian number + * * @param $value * * @return string @@ -401,18 +402,18 @@ class Utils{ * This function tries to get all the entropy available in PHP, and distills it to get a good RNG. * * - * @param int $length default 16, Number of bytes to generate - * @param bool $secure default true, Generate secure distilled bytes, slower - * @param bool $raw default true, returns a binary string if true, or an hexadecimal one + * @param int $length default 16, Number of bytes to generate + * @param bool $secure default true, Generate secure distilled bytes, slower + * @param bool $raw default true, returns a binary string if true, or an hexadecimal one * @param string $startEntropy default null, adds more initial entropy - * @param int &$rounds Will be set to the number of rounds taken - * @param int &$drop Will be set to the amount of dropped bytes + * @param int &$rounds Will be set to the number of rounds taken + * @param int &$drop Will be set to the amount of dropped bytes * * @return string */ public static function getRandomBytes($length = 16, $secure = true, $raw = true, $startEntropy = "", &$rounds = 0, &$drop = 0){ static $lastRandom = ""; - $output = b""; + $output = ""; $length = abs((int) $length); $secureValue = ""; $rounds = 0; @@ -504,6 +505,7 @@ class Utils{ ++$rounds; } $lastRandom = hash("sha512", $lastRandom, true); + return $raw === false ? bin2hex($output) : $output; } @@ -550,9 +552,10 @@ class Utils{ /** * POSTs data to an URL - * @param $page + * + * @param $page * @param array|string $args - * @param int $timeout + * @param int $timeout * * @return bool|mixed */ diff --git a/src/PocketMine/wizard/Installer.php b/src/PocketMine/wizard/Installer.php index 93eb7a0b4..5c4c70454 100644 --- a/src/PocketMine/wizard/Installer.php +++ b/src/PocketMine/wizard/Installer.php @@ -26,7 +26,7 @@ namespace PocketMine\Wizard; use PocketMine; -use PocketMine\Utils\Utils as Utils; +use PocketMine\Utils\Utils; class Installer{ const DEFAULT_NAME = "Minecraft: PE Server"; diff --git a/src/build/compile.sh b/src/build/compile.sh index 238ec04ee..b05062bd4 100644 --- a/src/build/compile.sh +++ b/src/build/compile.sh @@ -121,6 +121,9 @@ if [ "$IS_CROSSCOMPILE" == "yes" ]; then [ -z "$march" ] && march=armv6zk; [ -z "$mtune" ] && mtune=arm1176jzf-s; [ -z "$CFLAGS" ] && CFLAGS="-mfloat-abi=hard -mfpu=vfp"; + if [ "$DO_OPTIMIZE" == "yes" ]; then + CFLAGS="$CFLAGS -mfloat-abi=hard -mfpu=vfp" + fi export CC="$TOOLCHAIN_PREFIX-gcc" CONFIGURE_FLAGS="--host=$TOOLCHAIN_PREFIX" [ -z "$CFLAGS" ] && CFLAGS="-uclibc"; diff --git a/src/tests/ServerSuiteTest.php b/src/tests/ServerSuiteTest.php new file mode 100644 index 000000000..daff67e60 --- /dev/null +++ b/src/tests/ServerSuiteTest.php @@ -0,0 +1,68 @@ +load(); + testCase("event attached", is_integer($server->event("server.start", array($this, "hook"))), true); + $server->init(); + } + + public function hook(){ + testCase("event fired", true, true); + $server = \PocketMine\ServerAPI::request(); + //testCase("defaultgamemode", $server->getGamemode(), "survival"); + + + //Everything done! + $server->close(); + } +} \ No newline at end of file diff --git a/start.cmd b/start.cmd index 0dc2112b8..fd5d738b0 100644 --- a/start.cmd +++ b/start.cmd @@ -20,7 +20,7 @@ if exist src\PocketMine\PocketMine.php ( ) if exist bin\mintty.exe ( - start "" bin\mintty.exe -o Columns=88 -o Rows=32 -o AllowBlinking=0 -o FontQuality=3 -o Font="DejaVu Sans Mono" -o FontHeight=10 -o CursorType=0 -o CursorBlinks=1 -h error -t "PocketMine-MP" -i bin/pocketmine.ico -w max %PHP_BINARY% -d enable_dl=On %POCKETMINE_FILE% --enable-ansi %* + start "" bin\mintty.exe -o Columns=88 -o Rows=32 -o AllowBlinking=0 -o FontQuality=3 -o Font="DejaVu Sans Mono" -o FontHeight=10 -o CursorType=0 -o CursorBlinks=1 -h error -t "PocketMine-MP" -i bin/pocketmine.ico -w max %PHP_BINARY% %POCKETMINE_FILE% --enable-ansi %* ) else ( - %PHP_BINARY% -d enable_dl=On %POCKETMINE_FILE% %* + %PHP_BINARY% %POCKETMINE_FILE% %* ) diff --git a/start.sh b/start.sh index f9485cb34..6ed3d1b29 100755 --- a/start.sh +++ b/start.sh @@ -49,9 +49,9 @@ LOOPS=0 set +e while [ "$LOOPS" -eq 0 ] || [ "$DO_LOOP" == "yes" ]; do if [ "$DO_LOOP" == "yes" ]; then - "$PHP_BINARY" -d enable_dl=On "$POCKETMINE_FILE" $@ + "$PHP_BINARY" "$POCKETMINE_FILE" $@ else - exec "$PHP_BINARY" -d enable_dl=On "$POCKETMINE_FILE" $@ + exec "$PHP_BINARY" "$POCKETMINE_FILE" $@ fi ((LOOPS++)) done