mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-17 11:18:52 +00:00
0.8.0 partial compatibility
* Not compatible with Creative mode
This commit is contained in:
parent
3d53b9eb3a
commit
ba7c9503d8
@ -852,8 +852,9 @@ class Player{
|
||||
"x" => $pos->x,
|
||||
"y" => $pos->y,
|
||||
"z" => $pos->z,
|
||||
"yaw" => $yaw,
|
||||
"bodyYaw" => $yaw,
|
||||
"pitch" => $pitch,
|
||||
"yaw" => $yaw,
|
||||
));
|
||||
}
|
||||
|
||||
@ -1310,6 +1311,20 @@ class Player{
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case MC_ROTATE_HEAD:
|
||||
if($this->spawned === false){
|
||||
break;
|
||||
}
|
||||
if(($this->entity instanceof Entity)){
|
||||
if($this->blocked === true or $this->server->api->handle("player.move", $this->entity) === false){
|
||||
if($this->lastCorrect instanceof Vector3){
|
||||
$this->teleport($this->lastCorrect, $this->entity->yaw, $this->entity->pitch, false);
|
||||
}
|
||||
}else{
|
||||
$this->entity->setPosition($this->entity, $data["yaw"], $data["pitch"]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case MC_MOVE_PLAYER:
|
||||
if($this->spawned === false){
|
||||
break;
|
||||
@ -1340,7 +1355,6 @@ class Player{
|
||||
if($this->spawned === false){
|
||||
break;
|
||||
}
|
||||
|
||||
$data["eid"] = $this->eid;
|
||||
$data["player"] = $this;
|
||||
|
||||
|
@ -59,9 +59,9 @@ set_include_path(get_include_path() . PATH_SEPARATOR . FILE_PATH);
|
||||
ini_set("memory_limit", "128M"); //Default
|
||||
define("LOG", true);
|
||||
define("START_TIME", microtime(true));
|
||||
define("MAJOR_VERSION", "Alpha_1.3.10");
|
||||
define("CURRENT_MINECRAFT_VERSION", "v0.7.6 alpha");
|
||||
define("CURRENT_API_VERSION", 10);
|
||||
define("MAJOR_VERSION", "Alpha_1.3.11dev");
|
||||
define("CURRENT_MINECRAFT_VERSION", "v0.8.0 alpha build 2");
|
||||
define("CURRENT_API_VERSION", 11);
|
||||
define("CURRENT_PHP_VERSION", "5.5");
|
||||
$gitsha1 = false;
|
||||
if(file_exists(FILE_PATH.".git/refs/heads/master")){ //Found Git information!
|
||||
|
@ -367,21 +367,34 @@ class CustomPacketHandler{
|
||||
$this->raw .= Utils::writeFloat($this->data["pitch"]);
|
||||
}
|
||||
break;
|
||||
case MC_ROTATE_HEAD:
|
||||
if($this->c === false){
|
||||
$this->data["eid"] = Utils::readInt($this->get(4));
|
||||
$this->data["yaw"] = Utils::readFloat($this->get(4));
|
||||
$this->data["pitch"] = Utils::readFloat($this->get(4));
|
||||
}else{
|
||||
$this->raw .= Utils::writeInt($this->data["eid"]);
|
||||
$this->raw .= Utils::writeFloat($this->data["yaw"]);
|
||||
$this->raw .= Utils::writeFloat($this->data["pitch"]);
|
||||
}
|
||||
break;
|
||||
case MC_MOVE_PLAYER:
|
||||
if($this->c === false){
|
||||
$this->data["eid"] = Utils::readInt($this->get(4));
|
||||
$this->data["x"] = Utils::readFloat($this->get(4));
|
||||
$this->data["y"] = Utils::readFloat($this->get(4));
|
||||
$this->data["z"] = Utils::readFloat($this->get(4));
|
||||
$this->data["yaw"] = Utils::readFloat($this->get(4));
|
||||
$this->data["bodyYaw"] = Utils::readFloat($this->get(4));
|
||||
$this->data["pitch"] = Utils::readFloat($this->get(4));
|
||||
$this->data["yaw"] = Utils::readFloat($this->get(4));
|
||||
}else{
|
||||
$this->raw .= Utils::writeInt($this->data["eid"]);
|
||||
$this->raw .= Utils::writeFloat($this->data["x"]);
|
||||
$this->raw .= Utils::writeFloat($this->data["y"]);
|
||||
$this->raw .= Utils::writeFloat($this->data["z"]);
|
||||
$this->raw .= Utils::writeFloat($this->data["yaw"]);
|
||||
$this->raw .= Utils::writeFloat($this->data["bodyYaw"]);
|
||||
$this->raw .= Utils::writeFloat($this->data["pitch"]);
|
||||
$this->raw .= Utils::writeFloat($this->data["yaw"]);
|
||||
}
|
||||
break;
|
||||
case MC_PLACE_BLOCK:
|
||||
|
@ -23,7 +23,7 @@
|
||||
define("DEFLATEPACKET_LEVEL", 1);
|
||||
|
||||
define("CURRENT_STRUCTURE", 5);
|
||||
define("CURRENT_PROTOCOL", 12);
|
||||
define("CURRENT_PROTOCOL", 13);
|
||||
|
||||
define("RAKNET_MAGIC", "\x00\xff\xff\x00\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\x12\x34\x56\x78");
|
||||
|
||||
@ -41,6 +41,7 @@ define("MC_DISCONNECT", 0x15);
|
||||
|
||||
define("MC_BANNED", 0x17);
|
||||
|
||||
|
||||
define("MC_LOGIN", 0x82);
|
||||
define("MC_LOGIN_STATUS", 0x83);
|
||||
define("MC_READY", 0x84);
|
||||
@ -58,130 +59,47 @@ define("MC_TAKE_ITEM_ENTITY", 0x8f);
|
||||
define("MC_MOVE_ENTITY", 0x90);
|
||||
|
||||
define("MC_MOVE_ENTITY_POSROT", 0x93);
|
||||
define("MC_MOVE_PLAYER", 0x94);
|
||||
define("MC_PLACE_BLOCK", 0x95);
|
||||
define("MC_REMOVE_BLOCK", 0x96);
|
||||
define("MC_UPDATE_BLOCK", 0x97);
|
||||
define("MC_ADD_PAINTING", 0x98);
|
||||
define("MC_EXPLOSION", 0x99);
|
||||
define("MC_LEVEL_EVENT", 0x9a);
|
||||
define("MC_TILE_EVENT", 0x9b);
|
||||
define("MC_ENTITY_EVENT", 0x9c);
|
||||
define("MC_REQUEST_CHUNK", 0x9d);
|
||||
define("MC_CHUNK_DATA", 0x9e);
|
||||
define("MC_PLAYER_EQUIPMENT", 0x9f);
|
||||
define("MC_PLAYER_ARMOR_EQUIPMENT", 0xa0);
|
||||
define("MC_INTERACT", 0xa1);
|
||||
define("MC_USE_ITEM", 0xa2);
|
||||
define("MC_PLAYER_ACTION", 0xa3);
|
||||
define("MC_ROTATE_HEAD", 0x94);
|
||||
define("MC_MOVE_PLAYER", 0x95);
|
||||
define("MC_PLACE_BLOCK", 0x96);
|
||||
define("MC_REMOVE_BLOCK", 0x97);
|
||||
define("MC_UPDATE_BLOCK", 0x98);
|
||||
define("MC_ADD_PAINTING", 0x99);
|
||||
define("MC_EXPLOSION", 0x9a);
|
||||
define("MC_LEVEL_EVENT", 0x9b);
|
||||
define("MC_TILE_EVENT", 0x9c);
|
||||
define("MC_ENTITY_EVENT", 0x9d);
|
||||
define("MC_REQUEST_CHUNK", 0x9e);
|
||||
define("MC_CHUNK_DATA", 0x9f);
|
||||
define("MC_PLAYER_EQUIPMENT", 0xa0);
|
||||
define("MC_PLAYER_ARMOR_EQUIPMENT", 0xa1);
|
||||
define("MC_INTERACT", 0xa2);
|
||||
define("MC_USE_ITEM", 0xa3);
|
||||
define("MC_PLAYER_ACTION", 0xa4);
|
||||
|
||||
define("MC_HURT_ARMOR", 0xa5);
|
||||
define("MC_SET_ENTITY_DATA", 0xa6);
|
||||
define("MC_SET_ENTITY_MOTION", 0xa7);
|
||||
//define("MC_SET_RIDING_PACKET", 0xa8);
|
||||
define("MC_SET_HEALTH", 0xa9);
|
||||
define("MC_SET_SPAWN_POSITION", 0xaa);
|
||||
define("MC_ANIMATE", 0xab);
|
||||
define("MC_RESPAWN", 0xac);
|
||||
define("MC_SEND_INVENTORY", 0xad);
|
||||
define("MC_DROP_ITEM", 0xae);
|
||||
define("MC_CONTAINER_OPEN", 0xaf);
|
||||
define("MC_CONTAINER_CLOSE", 0xb0);
|
||||
define("MC_CONTAINER_SET_SLOT", 0xb1);
|
||||
define("MC_CONTAINER_SET_DATA", 0xb2);
|
||||
define("MC_CONTAINER_SET_CONTENT", 0xb3);
|
||||
//define("MC_CONTAINER_ACK", 0xb4);
|
||||
define("MC_CLIENT_MESSAGE", 0xb5);
|
||||
define("MC_ADVENTURE_SETTINGS", 0xb6);
|
||||
define("MC_ENTITY_DATA", 0xb7);
|
||||
define("MC_HURT_ARMOR", 0xa6);
|
||||
define("MC_SET_ENTITY_DATA", 0xa7);
|
||||
define("MC_SET_ENTITY_MOTION", 0xa8);
|
||||
//define("MC_SET_ENTITY_LINK", 0xa9);
|
||||
define("MC_SET_HEALTH", 0xaa);
|
||||
define("MC_SET_SPAWN_POSITION", 0xab);
|
||||
define("MC_ANIMATE", 0xac);
|
||||
define("MC_RESPAWN", 0xad);
|
||||
define("MC_SEND_INVENTORY", 0xae);
|
||||
define("MC_DROP_ITEM", 0xaf);
|
||||
define("MC_CONTAINER_OPEN", 0xb0);
|
||||
define("MC_CONTAINER_CLOSE", 0xb1);
|
||||
define("MC_CONTAINER_SET_SLOT", 0xb2);
|
||||
define("MC_CONTAINER_SET_DATA", 0xb3);
|
||||
define("MC_CONTAINER_SET_CONTENT", 0xb4);
|
||||
//define("MC_CONTAINER_ACK", 0xb5);
|
||||
define("MC_CLIENT_MESSAGE", 0xb6);
|
||||
define("MC_ADVENTURE_SETTINGS", 0xb7);
|
||||
define("MC_ENTITY_DATA", 0xb8);
|
||||
//define("MC_PLAYER_INPUT", 0xb9);
|
||||
|
||||
|
||||
class Protocol{
|
||||
public static $dataName = array(
|
||||
MC_PING => "Ping",
|
||||
|
||||
MC_CLIENT_CONNECT => "Client Connect",
|
||||
MC_SERVER_HANDSHAKE => "Server Handshake",
|
||||
|
||||
MC_CLIENT_HANDSHAKE => "Client Handshake",
|
||||
|
||||
//MC_SERVER_FULL => "Server Full",
|
||||
MC_DISCONNECT => "Disconnect",
|
||||
|
||||
0x18 => "Unknown",
|
||||
|
||||
MC_LOGIN => "Login",
|
||||
MC_LOGIN_STATUS => "Login Status",
|
||||
MC_READY => "Ready",
|
||||
MC_CHAT => "Chat",
|
||||
MC_SET_TIME => "Set Time",
|
||||
MC_START_GAME => "Start Game",
|
||||
|
||||
MC_ADD_MOB => "Add Mob",
|
||||
MC_ADD_PLAYER => "Add Player",
|
||||
|
||||
MC_ADD_ENTITY => "Add Entity",
|
||||
MC_REMOVE_ENTITY => "Remove Entity",
|
||||
MC_ADD_ITEM_ENTITY => "Add Item",
|
||||
MC_TAKE_ITEM_ENTITY => "Take Item",
|
||||
|
||||
MC_MOVE_ENTITY => "Move Entity",
|
||||
|
||||
MC_MOVE_ENTITY_POSROT => "Move Entity PosRot",
|
||||
MC_MOVE_PLAYER => "Move Player",
|
||||
MC_PLACE_BLOCK => "Place Block",
|
||||
MC_REMOVE_BLOCK => "Remove Block",
|
||||
MC_UPDATE_BLOCK => "Update Block",
|
||||
MC_ADD_PAINTING => "Add Painting",
|
||||
MC_EXPLOSION => "Explosion",
|
||||
|
||||
MC_LEVEL_EVENT => "Level Event",
|
||||
|
||||
MC_ENTITY_EVENT => "Entity Event",
|
||||
MC_REQUEST_CHUNK => "Chunk Request",
|
||||
MC_CHUNK_DATA => "Chunk Data",
|
||||
|
||||
MC_PLAYER_EQUIPMENT => "Player Equipment",
|
||||
MC_PLAYER_ARMOR_EQUIPMENT => "Player Armor",
|
||||
MC_INTERACT => "Interact",
|
||||
MC_USE_ITEM => "Use Item",
|
||||
MC_PLAYER_ACTION => "Player Action",
|
||||
MC_SET_ENTITY_DATA => "Entity Data",
|
||||
MC_SET_ENTITY_MOTION => "Entity Motion",
|
||||
MC_HURT_ARMOR => "Hurt Armor",
|
||||
MC_SET_HEALTH => "Set Health",
|
||||
MC_SET_SPAWN_POSITION => "Set Spawn Position",
|
||||
MC_ANIMATE => "Animate",
|
||||
MC_RESPAWN => "Respawn",
|
||||
MC_SEND_INVENTORY => "Send Inventory",
|
||||
MC_DROP_ITEM => "Drop Item",
|
||||
MC_CONTAINER_OPEN => "Open Container",
|
||||
MC_CONTAINER_CLOSE => "Close Container",
|
||||
MC_CONTAINER_SET_SLOT => "Set Container Slot",
|
||||
|
||||
MC_CLIENT_MESSAGE => "Client Message",
|
||||
MC_ADVENTURE_SETTINGS => "Adventure Settings",
|
||||
MC_ENTITY_DATA => "Entity Data",
|
||||
);
|
||||
|
||||
public static $packetName = array(
|
||||
0x01 => "ID_CONNECTED_PING_OPEN_CONNECTIONS", //RakNet
|
||||
0x02 => "ID_UNCONNECTED_PING_OPEN_CONNECTIONS", //RakNet
|
||||
0x05 => "ID_OPEN_CONNECTION_REQUEST_1", //RakNet
|
||||
0x06 => "ID_OPEN_CONNECTION_REPLY_1", //RakNet
|
||||
0x07 => "ID_OPEN_CONNECTION_REQUEST_2", //RakNet
|
||||
0x08 => "ID_OPEN_CONNECTION_REPLY_2", //RakNet
|
||||
0x1a => "ID_INCOMPATIBLE_PROTOCOL_VERSION", //RakNet
|
||||
0x1c => "ID_UNCONNECTED_PONG", //RakNet
|
||||
0x1d => "ID_ADVERTISE_SYSTEM", //RakNet
|
||||
0x80 => "Custom Packet", //Minecraft Implementation
|
||||
0x84 => "Custom Packet", //Minecraft Implementation
|
||||
0x88 => "Custom Packet", //Minecraft Implementation
|
||||
0x8c => "Custom Packet", //Minecraft Implementation
|
||||
0xa0 => "NACK", //Minecraft Implementation
|
||||
0xc0 => "ACK", //Minecraft Implementation
|
||||
);
|
||||
|
||||
class Protocol{
|
||||
public static $raknet = array(
|
||||
0x01 => array(
|
||||
"long", //Ping ID
|
||||
|
@ -802,7 +802,7 @@ class Entity extends Position{
|
||||
}
|
||||
|
||||
public function setPosition(Vector3 $pos, $yaw = false, $pitch = false){
|
||||
if($pos instanceof Position){
|
||||
if($pos instanceof Position and $this->level !== $pos->level){
|
||||
$this->level = $pos->level;
|
||||
$this->server->preparedSQL->entity->setLevel->reset();
|
||||
$this->server->preparedSQL->entity->setLevel->clear();
|
||||
|
Loading…
x
Reference in New Issue
Block a user