mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-13 13:25:16 +00:00
Block Names
This commit is contained in:
parent
5a054a8ab4
commit
888e84dd69
@ -37,123 +37,134 @@ define("BLOCK_UPDATE_WEAK", 3);
|
|||||||
class BlockAPI{
|
class BlockAPI{
|
||||||
public static $class = array();
|
public static $class = array();
|
||||||
private $server;
|
private $server;
|
||||||
|
|
||||||
|
public static function get($id, $meta = 0){
|
||||||
|
$id = (int) $id;
|
||||||
|
if(isset(BlockAPI::$class[$id])){
|
||||||
|
$classname = BlockAPI::$class[$id];
|
||||||
|
return new $classname($meta);
|
||||||
|
}
|
||||||
|
return (new GenericBlock($id, $meta, ""));
|
||||||
|
}
|
||||||
|
|
||||||
function __construct(PocketMinecraftServer $server){
|
function __construct(PocketMinecraftServer $server){
|
||||||
$this->server = $server;
|
$this->server = $server;
|
||||||
BlockAPI::$class = array(
|
BlockAPI::$class = array(
|
||||||
AIR => new AirBlock(),
|
AIR => "AirBlock",
|
||||||
STONE => new StoneBlock(),
|
STONE => "StoneBlock",
|
||||||
GRASS => new GrassBlock(),
|
GRASS => "GrassBlock",
|
||||||
DIRT => new DirtBlock(),
|
DIRT => "DirtBlock",
|
||||||
COBBLESTONE => new CobblestoneBlock(),
|
COBBLESTONE => "CobblestoneBlock",
|
||||||
PLANKS => new PlanksBlock(),
|
PLANKS => "PlanksBlock",
|
||||||
SAPLING => new SaplingBlock(0),
|
SAPLING => "SaplingBlock",
|
||||||
BEDROCK => new BedrockBlock(),
|
BEDROCK => "BedrockBlock",
|
||||||
WATER => new GenericBlock(WATER, 0, ""),
|
/*WATER => (new GenericBlock(WATER, 0, "")),
|
||||||
STILL_WATER => new GenericBlock(STILL_WATER, 0, ""),
|
STILL_WATER => (new GenericBlock(STILL_WATER, 0, "")),
|
||||||
LAVA => new GenericBlock(LAVA, 0, ""),
|
LAVA => (new GenericBlock(LAVA, 0, "")),
|
||||||
STILL_LAVA => new GenericBlock(STILL_LAVA, 0, ""),
|
STILL_LAVA => (new GenericBlock(STILL_LAVA, 0, "")),*/
|
||||||
SAND => new SandBlock(),
|
SAND => "SandBlock",
|
||||||
GRAVEL => new GravelBlock(),
|
GRAVEL => "GravelBlock",
|
||||||
GOLD_ORE => new GoldOreBlock(),
|
GOLD_ORE => "GoldOreBlock",
|
||||||
IRON_ORE => new IronOreBlock(),
|
IRON_ORE => "IronOreBlock",
|
||||||
COAL_ORE => new CoalOreBlock(),
|
COAL_ORE => "CoalOreBlock",
|
||||||
WOOD => new WoodBlock(0),
|
WOOD => "WoodBlock",
|
||||||
LEAVES => new LeavesBlock(0),
|
LEAVES => "LeavesBlock",
|
||||||
GLASS => new GlassBlock(),
|
GLASS => "GlassBlock",
|
||||||
LAPIS_ORE => new LapisOreBlock(),
|
LAPIS_ORE => "LapisOreBlock",
|
||||||
LAPIS_BLOCK => new LapisBlock(),
|
LAPIS_BLOCK => "LapisBlock",
|
||||||
SANDSTONE => new SandstoneBlock(0),
|
SANDSTONE => "SandstoneBlock",
|
||||||
BED_BLOCK => new BedBlock(0),
|
BED_BLOCK => "BedBlock",
|
||||||
COBWEB => new CobwebBlock(),
|
COBWEB => "CobwebBlock",
|
||||||
TALL_GRASS => new TallGrassBlock(1),
|
TALL_GRASS => "TallGrassBlock",
|
||||||
DEAD_BUSH => new DeadBushBlock(),
|
DEAD_BUSH => "DeadBushBlock",
|
||||||
WOOL => new WoolBlock(0),
|
WOOL => "WoolBlock",
|
||||||
DANDELION => new DandelionBlock(),
|
DANDELION => "DandelionBlock",
|
||||||
CYAN_FLOWER => new CyanFlowerBlock(),
|
CYAN_FLOWER => "CyanFlowerBlock",
|
||||||
BROWN_MUSHROOM => new BrownMushroomBlock(),
|
BROWN_MUSHROOM => "BrownMushroomBlock",
|
||||||
RED_MUSHROOM => new RedMushRoomBlock(),
|
RED_MUSHROOM => "RedMushRoomBlock",
|
||||||
GOLD_BLOCK => new GoldBlock(),
|
GOLD_BLOCK => "GoldBlock",
|
||||||
IRON_BLOCK => new IronBlock(),
|
IRON_BLOCK => "IronBlock",
|
||||||
DOUBLE_SLAB => new GenericBlock(DOUBLE_SLAB, 0, ""),
|
/*DOUBLE_SLAB => (new GenericBlock(DOUBLE_SLAB, 0, "")),
|
||||||
DOUBLE_SLABS => new GenericBlock(DOUBLE_SLABS, 0, ""),
|
DOUBLE_SLABS => (new GenericBlock(DOUBLE_SLABS, 0, "")),
|
||||||
SLAB => new GenericBlock(SLAB, 0, ""),
|
SLAB => (new GenericBlock(SLAB, 0, "")),
|
||||||
SLABS => new GenericBlock(SLABS, 0, ""),
|
SLABS => (new GenericBlock(SLABS, 0, "")),
|
||||||
BICKS => new GenericBlock(BICKS, 0, ""),
|
BICKS => (new GenericBlock(BICKS, 0, "")),
|
||||||
TNT => new GenericBlock(TNT, 0, ""),
|
TNT => (new GenericBlock(TNT, 0, "")),
|
||||||
BOOKSHELF => new GenericBlock(BOOKSHELF, 0, ""),
|
BOOKSHELF => (new GenericBlock(BOOKSHELF, 0, "")),
|
||||||
MOSS_STONE => new GenericBlock(MOSS_STONE, 0, ""),
|
MOSS_STONE => (new GenericBlock(MOSS_STONE, 0, "")),
|
||||||
MOSSY_STONE => new GenericBlock(MOSSY_STONE, 0, ""),
|
MOSSY_STONE => (new GenericBlock(MOSSY_STONE, 0, "")),
|
||||||
OBSIDIAN => new GenericBlock(OBSIDIAN, 0, ""),
|
OBSIDIAN => (new GenericBlock(OBSIDIAN, 0, "")),
|
||||||
TORCH => new GenericBlock(TORCH, 0, ""),
|
TORCH => (new GenericBlock(TORCH, 0, "")),
|
||||||
FiRE => new GenericBlock(FiRE, 0, ""),
|
FIRE => (new GenericBlock(FIRE, 0, "")),
|
||||||
|
|
||||||
WOOD_STAIRS => new GenericBlock(WOOD_STAIRS, 0, ""),
|
WOOD_STAIRS => (new GenericBlock(WOOD_STAIRS, 0, "")),
|
||||||
CHEST => new GenericBlock(CHEST, 0, ""),
|
CHEST => (new GenericBlock(CHEST, 0, "")),
|
||||||
|
|
||||||
DIAMOND_ORE => new GenericBlock(DIAMOND_ORE, 0, ""),
|
DIAMOND_ORE => (new GenericBlock(DIAMOND_ORE, 0, "")),
|
||||||
DIAMOND_BLOCK => new GenericBlock(DIAMOND_BLOCK, 0, ""),
|
DIAMOND_BLOCK => (new GenericBlock(DIAMOND_BLOCK, 0, "")),
|
||||||
CRAFTING_TABLE => new GenericBlock(CRAFTING_TABLE, 0, ""),
|
CRAFTING_TABLE => (new GenericBlock(CRAFTING_TABLE, 0, "")),
|
||||||
WORKBENCH => new GenericBlock(WORKBENCH, 0, ""),
|
WORKBENCH => (new GenericBlock(WORKBENCH, 0, "")),
|
||||||
WHEAT => new GenericBlock(WHEAT, 0, ""),
|
WHEAT => (new GenericBlock(WHEAT, 0, "")),
|
||||||
FARMLAND => new GenericBlock(FARMLAND, 0, ""),
|
FARMLAND => (new GenericBlock(FARMLAND, 0, "")),
|
||||||
FURNACE => new GenericBlock(FURNACE, 0, ""),
|
FURNACE => (new GenericBlock(FURNACE, 0, "")),
|
||||||
BURNING_FURNACE => new GenericBlock(BURNING_FURNACE, 0, ""),
|
BURNING_FURNACE => (new GenericBlock(BURNING_FURNACE, 0, "")),
|
||||||
LIT_FURNACE => new GenericBlock(LIT_FURNACE, 0, ""),
|
LIT_FURNACE => (new GenericBlock(LIT_FURNACE, 0, "")),
|
||||||
SIGN => new GenericBlock(SIGN, 0, ""),
|
SIGN => (new GenericBlock(SIGN, 0, "")),
|
||||||
SIGN_POST => new GenericBlock(SIGN_POST, 0, ""),
|
SIGN_POST => (new GenericBlock(SIGN_POST, 0, "")),
|
||||||
DOOR => new GenericBlock(DOOR, 0, ""),
|
DOOR => (new GenericBlock(DOOR, 0, "")),
|
||||||
WOODEN_DOOR => new GenericBlock(WOODEN_DOOR, 0, ""),
|
WOODEN_DOOR => (new GenericBlock(WOODEN_DOOR, 0, "")),
|
||||||
WOOD_DOOR => new GenericBlock(WOOD_DOOR, 0, ""),
|
WOOD_DOOR => (new GenericBlock(WOOD_DOOR, 0, "")),
|
||||||
LADDER => new GenericBlock(LADDER, 0, ""),
|
LADDER => (new GenericBlock(LADDER, 0, "")),
|
||||||
|
|
||||||
COBBLE_STAIRS => new GenericBlock(COBBLE_STAIRS, 0, ""),
|
COBBLE_STAIRS => (new GenericBlock(COBBLE_STAIRS, 0, "")),
|
||||||
COBBLESTONE_STAIRS => new GenericBlock(COBBLESTONE_STAIRS, 0, ""),
|
COBBLESTONE_STAIRS => (new GenericBlock(COBBLESTONE_STAIRS, 0, "")),
|
||||||
WALL_SIGN => new GenericBlock(WALL_SIGN, 0, ""),
|
WALL_SIGN => (new GenericBlock(WALL_SIGN, 0, "")),
|
||||||
|
|
||||||
IRON_DOOR => new GenericBlock(IRON_DOOR, 0, ""),
|
IRON_DOOR => (new GenericBlock(IRON_DOOR, 0, "")),
|
||||||
REDSTONE_ORE => new GenericBlock(REDSTONE_ORE, 0, ""),
|
REDSTONE_ORE => (new GenericBlock(REDSTONE_ORE, 0, "")),
|
||||||
GLOWING_REDSTONE_ORE => new GenericBlock(GLOWING_REDSTONE_ORE, 0, ""),
|
GLOWING_REDSTONE_ORE => (new GenericBlock(GLOWING_REDSTONE_ORE, 0, "")),
|
||||||
LIT_REDSTONE_ORE => new GenericBlock(LIT_REDSTONE_ORE, 0, ""),
|
LIT_REDSTONE_ORE => (new GenericBlock(LIT_REDSTONE_ORE, 0, "")),
|
||||||
|
|
||||||
SNOW => new GenericBlock(SNOW, 0, ""),
|
SNOW => (new GenericBlock(SNOW, 0, "")),
|
||||||
ICE => new GenericBlock(ICE, 0, ""),
|
ICE => (new GenericBlock(ICE, 0, "")),
|
||||||
SNOW_BLOCK => new GenericBlock(SNOW_BLOCK, 0, ""),
|
SNOW_BLOCK => (new GenericBlock(SNOW_BLOCK, 0, "")),
|
||||||
CACTUS => new GenericBlock(CACTUS, 0, ""),
|
CACTUS => (new GenericBlock(CACTUS, 0, "")),
|
||||||
CLAY_BLOCK => new GenericBlock(CLAY_BLOCK, 0, ""),
|
CLAY_BLOCK => (new GenericBlock(CLAY_BLOCK, 0, "")),
|
||||||
SUGARCANE_BLOCK => new GenericBlock(SUGARCANE_BLOCK, 0, ""),
|
SUGARCANE_BLOCK => (new GenericBlock(SUGARCANE_BLOCK, 0, "")),
|
||||||
|
|
||||||
FENCE => new GenericBlock(FENCE, 0, ""),
|
FENCE => (new GenericBlock(FENCE, 0, "")),
|
||||||
|
|
||||||
NETHERRACK => new GenericBlock(NETHERRACK, 0, ""),
|
NETHERRACK => (new GenericBlock(NETHERRACK, 0, "")),
|
||||||
SOUL_SAND => new GenericBlock(SOUL_SAND, 0, ""),
|
SOUL_SAND => (new GenericBlock(SOUL_SAND, 0, "")),
|
||||||
GLOWSTONE_BLOCK => new GenericBlock(GLOWSTONE_BLOCK, 0, ""),
|
GLOWSTONE_BLOCK => (new GenericBlock(GLOWSTONE_BLOCK, 0, "")),
|
||||||
|
|
||||||
TRAPDOOR => new GenericBlock(TRAPDOOR, 0, ""),
|
TRAPDOOR => (new GenericBlock(TRAPDOOR, 0, "")),
|
||||||
|
|
||||||
STONE_BRICKS => new GenericBlock(STONE_BRICKS, 0, ""),
|
STONE_BRICKS => (new GenericBlock(STONE_BRICKS, 0, "")),
|
||||||
|
|
||||||
GLASS_PANE => new GenericBlock(GLASS_PANE, 0, ""),
|
GLASS_PANE => (new GenericBlock(GLASS_PANE, 0, "")),
|
||||||
GLASS_PANEL => new GenericBlock(GLASS_PANEL, 0, ""),
|
GLASS_PANEL => (new GenericBlock(GLASS_PANEL, 0, "")),
|
||||||
MELON => new GenericBlock(MELON, 0, ""),
|
MELON => (new GenericBlock(MELON, 0, "")),
|
||||||
|
|
||||||
MELON_STEM => new GenericBlock(MELON_STEM, 0, ""),
|
MELON_STEM => (new GenericBlock(MELON_STEM, 0, "")),
|
||||||
|
|
||||||
FENCE_GATE => new GenericBlock(FENCE_GATE, 0, ""),
|
FENCE_GATE => (new GenericBlock(FENCE_GATE, 0, "")),
|
||||||
BRICK_STAIRS => new GenericBlock(BRICK_STAIRS, 0, ""),
|
BRICK_STAIRS => (new GenericBlock(BRICK_STAIRS, 0, "")),
|
||||||
STONE_BRICK_STAIRS => new GenericBlock(STONE_BRICK_STAIRS, 0, ""),
|
STONE_BRICK_STAIRS => (new GenericBlock(STONE_BRICK_STAIRS, 0, "")),
|
||||||
|
|
||||||
NETHER_BRICK => new GenericBlock(NETHER_BRICK, 0, ""),
|
NETHER_BRICK => (new GenericBlock(NETHER_BRICK, 0, "")),
|
||||||
|
|
||||||
NETHER_BRICK_STAIRS => new GenericBlock(NETHER_BRICK_STAIRS, 0, ""),
|
NETHER_BRICK_STAIRS => (new GenericBlock(NETHER_BRICK_STAIRS, 0, "")),
|
||||||
|
|
||||||
SANDSTONE_STAIRS => new GenericBlock(SANDSTONE_STAIRS, 0, ""),
|
SANDSTONE_STAIRS => (new GenericBlock(SANDSTONE_STAIRS, 0, "")),
|
||||||
|
|
||||||
QUARTZ_BLOCK => new GenericBlock(QUARTZ_BLOCK, 0, ""),
|
QUARTZ_BLOCK => (new GenericBlock(QUARTZ_BLOCK, 0, "")),
|
||||||
QUARTZ_STAIRS => new GenericBlock(QUARTZ_STAIRS, 0, ""),
|
QUARTZ_STAIRS => (new GenericBlock(QUARTZ_STAIRS, 0, "")),
|
||||||
|
|
||||||
STONECUTTER => new GenericBlock(STONECUTTER, 0, ""),
|
STONECUTTER => (new GenericBlock(STONECUTTER, 0, "")),
|
||||||
GLOWING_OBSIDIAN => new GenericBlock(GLOWING_OBSIDIAN, 0, ""),
|
GLOWING_OBSIDIAN => (new GenericBlock(GLOWING_OBSIDIAN, 0, "")),
|
||||||
NETHER_REACTOR => new GenericBlock(NETHER_REACTOR, 0, ""),
|
NETHER_REACTOR => (new GenericBlock(NETHER_REACTOR, 0, "")),
|
||||||
|
*/
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -216,6 +227,11 @@ class BlockAPI{
|
|||||||
}
|
}
|
||||||
|
|
||||||
$target = $this->server->api->level->getBlock($data["x"], $data["y"], $data["z"]);
|
$target = $this->server->api->level->getBlock($data["x"], $data["y"], $data["z"]);
|
||||||
|
$entity = $this->server->api->entity->get($data["eid"]);
|
||||||
|
if(($entity instanceof Entity) !== true){
|
||||||
|
return $this->cancelAction($block); //No Entity WTF?
|
||||||
|
}
|
||||||
|
$data["entity"] = $entity;
|
||||||
if(isset(Material::$unbreakable[$target[0]]) or $this->server->gamemode === 2){
|
if(isset(Material::$unbreakable[$target[0]]) or $this->server->gamemode === 2){
|
||||||
return $this->cancelAction($target);
|
return $this->cancelAction($target);
|
||||||
}
|
}
|
||||||
@ -386,6 +402,7 @@ class BlockAPI{
|
|||||||
if(($entity instanceof Entity) !== true){
|
if(($entity instanceof Entity) !== true){
|
||||||
return $this->cancelAction($block); //No Entity WTF?
|
return $this->cancelAction($block); //No Entity WTF?
|
||||||
}
|
}
|
||||||
|
$data["entity"] = $entity;
|
||||||
if($target[0] === 0){ //If no block exists
|
if($target[0] === 0){ //If no block exists
|
||||||
$this->cancelAction($target);
|
$this->cancelAction($target);
|
||||||
$block = $this->server->api->level->getBlockFace($target, $data["face"]);
|
$block = $this->server->api->level->getBlockFace($target, $data["face"]);
|
||||||
|
@ -43,15 +43,17 @@ class LevelAPI{
|
|||||||
switch($event){
|
switch($event){
|
||||||
case "player.block.place":
|
case "player.block.place":
|
||||||
case "player.block.update":
|
case "player.block.update":
|
||||||
console("[DEBUG] EID ".$data["eid"]." placed ".$data["block"].":".$data["meta"]." at X ".$data["x"]." Y ".$data["y"]." Z ".$data["z"], true, true, 2);
|
$b = BlockAPI::get($data["block"]);
|
||||||
|
console("[DEBUG] Player ".$data["entity"]->player->username." placed ".$b->getName()." (".$data["block"].":".$data["meta"].") at (".$data["x"].", ".$data["y"].", ".$data["z"].")", true, true, 2);
|
||||||
$this->setBlock($data["x"], $data["y"], $data["z"], $data["block"], $data["meta"]);
|
$this->setBlock($data["x"], $data["y"], $data["z"], $data["block"], $data["meta"]);
|
||||||
break;
|
break;
|
||||||
case "player.block.break":
|
case "player.block.break":
|
||||||
$block = $this->getBlock($data["x"], $data["y"], $data["z"]);
|
$block = $this->getBlock($data["x"], $data["y"], $data["z"]);
|
||||||
console("[DEBUG] EID ".$data["eid"]." broke ".$block[0].":".$block[1]." at X ".$data["x"]." Y ".$data["y"]." Z ".$data["z"], true, true, 2);
|
|
||||||
if($block[0] === 0){
|
if($block[0] === 0){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
$b = BlockAPI::get($block[0]);
|
||||||
|
console("[DEBUG] Player ".$data["entity"]->player->username." broke ".$b->getName()." (".$block[0].":".$block[1].") at (".$data["x"].", ".$data["y"].", ".$data["z"].")", true, true, 2);
|
||||||
$this->setBlock($data["x"], $data["y"], $data["z"], 0, 0, true, true);
|
$this->setBlock($data["x"], $data["y"], $data["z"], 0, 0, true, true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -49,6 +49,10 @@ abstract class Block{
|
|||||||
$this->shortname = strtolower(str_replace(" ", "_", $name));
|
$this->shortname = strtolower(str_replace(" ", "_", $name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getName(){
|
||||||
|
return $this->name;
|
||||||
|
}
|
||||||
|
|
||||||
final public function getID(){
|
final public function getID(){
|
||||||
return $id;
|
return $id;
|
||||||
}
|
}
|
||||||
|
@ -82,7 +82,7 @@ define("MOSS_STONE", 48);
|
|||||||
define("MOSSY_STONE", 48);
|
define("MOSSY_STONE", 48);
|
||||||
define("OBSIDIAN", 49);
|
define("OBSIDIAN", 49);
|
||||||
define("TORCH", 50);
|
define("TORCH", 50);
|
||||||
define("FiRE", 51);
|
define("FIRE", 51);
|
||||||
|
|
||||||
define("WOOD_STAIRS", 53);
|
define("WOOD_STAIRS", 53);
|
||||||
define("CHEST", 54);
|
define("CHEST", 54);
|
||||||
|
@ -328,7 +328,7 @@ class Entity extends stdClass{
|
|||||||
switch($this->class){
|
switch($this->class){
|
||||||
case ENTITY_PLAYER:
|
case ENTITY_PLAYER:
|
||||||
$player->dataPacket(MC_ADD_PLAYER, array(
|
$player->dataPacket(MC_ADD_PLAYER, array(
|
||||||
"clientID" => $this->player->clientID,
|
"clientID" => 0,/*$this->player->clientID,*/
|
||||||
"username" => $this->player->username,
|
"username" => $this->player->username,
|
||||||
"eid" => $this->eid,
|
"eid" => $this->eid,
|
||||||
"x" => $this->x,
|
"x" => $this->x,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user