Merge branch 'stable'

This commit is contained in:
Dylan K. Taylor 2019-07-14 19:19:33 +01:00
commit 0ba3121c43
8 changed files with 123 additions and 58 deletions

View File

@ -37,3 +37,10 @@ Plugin developers should **only** update their required API to this version if y
- `RemoveEntityPacket` (not to be confused with the old one)
- `StructureTemplateDataExportRequestPacket`
- `StructureTemplateDataExportResponsePacket`
# 3.9.1
- Fixed resource packs not working on 1.12 clients.
- Fixed some particles displaying incorrectly (some still don't render at all).
- Fixed `Entity->setFireTicks()` with a value of `0` setting the on-fire flag.
- Silenced a debug message which appeared every time a player right-clicked a block.
- Updated constants for `LevelSoundEventPacket`.

View File

@ -759,7 +759,7 @@ abstract class Entity extends Location implements EntityIds{
$this->setFireTicks($ticks);
}
$this->setGenericFlag(EntityMetadataFlags::ONFIRE, true);
$this->setGenericFlag(EntityMetadataFlags::ONFIRE, $this->isOnFire());
}
/**

View File

@ -444,6 +444,8 @@ class InGamePacketHandler extends PacketHandler{
case PlayerActionPacket::ACTION_STOP_SWIMMING:
//TODO: handle this when it doesn't spam every damn tick (yet another spam bug!!)
break;
case PlayerActionPacket::ACTION_INTERACT_BLOCK: //ignored (for now)
break;
default:
$this->session->getLogger()->debug("Unhandled/unknown player action type " . $packet->action);
return false;

View File

@ -292,8 +292,8 @@ class LevelSoundEventPacket extends DataPacket implements ClientboundPacket, Ser
public const SOUND_STUN = 261;
public const SOUND_BLOCK_SWEET_BERRY_BUSH_HURT = 262;
public const SOUND_BLOCK_SWEET_BERRY_BUSH_PICK = 263;
public const SOUND_UI_CARTOGRAPHY_TABLE_TAKE_RESULT = 264;
public const SOUND_UI_STONECUTTER_TAKE_RESULT = 265;
public const SOUND_BLOCK_CARTOGRAPHY_TABLE_USE = 264;
public const SOUND_BLOCK_STONECUTTER_USE = 265;
public const SOUND_BLOCK_COMPOSTER_EMPTY = 266;
public const SOUND_BLOCK_COMPOSTER_FILL = 267;
public const SOUND_BLOCK_COMPOSTER_FILL_SUCCESS = 268;
@ -302,7 +302,14 @@ class LevelSoundEventPacket extends DataPacket implements ClientboundPacket, Ser
public const SOUND_BLOCK_BARREL_CLOSE = 271;
public const SOUND_RAID_HORN = 272;
public const SOUND_BLOCK_LOOM_USE = 273;
public const SOUND_UNDEFINED = 274;
public const SOUND_AMBIENT_IN_RAID = 274;
public const SOUND_UI_CARTOGRAPHY_TABLE_TAKE_RESULT = 275;
public const SOUND_UI_STONECUTTER_TAKE_RESULT = 276;
public const SOUND_UI_LOOM_TAKE_RESULT = 277;
public const SOUND_BLOCK_SMOKER_SMOKE = 278;
public const SOUND_BLOCK_BLASTFURNACE_FIRE_CRACKLE = 279;
public const SOUND_BLOCK_SMITHING_TABLE_USE = 280;
public const SOUND_UNDEFINED = 281;
public static function create(int $sound, ?Vector3 $pos, int $extraData = -1, string $entityType = ":", bool $isBabyMob = false) : self{
$result = new self;

View File

@ -56,6 +56,7 @@ class PlayerActionPacket extends DataPacket implements ServerboundPacket{
public const ACTION_STOP_SWIMMING = 22;
public const ACTION_START_SPIN_ATTACK = 23;
public const ACTION_STOP_SPIN_ATTACK = 24;
public const ACTION_INTERACT_BLOCK = 25;
/** @var int */
public $entityRuntimeId;

View File

@ -28,6 +28,7 @@ namespace pocketmine\network\mcpe\protocol;
use pocketmine\network\mcpe\handler\PacketHandler;
use pocketmine\network\mcpe\protocol\types\ResourcePackType;
class ResourcePackDataInfoPacket extends DataPacket implements ClientboundPacket{
public const NETWORK_ID = ProtocolInfo::RESOURCE_PACK_DATA_INFO_PACKET;
@ -45,7 +46,7 @@ class ResourcePackDataInfoPacket extends DataPacket implements ClientboundPacket
/** @var bool */
public $isPremium = false;
/** @var int */
public $packType = 0; //TODO: check the values for this
public $packType = ResourcePackType::RESOURCES; //TODO: check the values for this
public static function create(string $packId, int $maxChunkSize, int $chunkCount, int $compressedPackSize, string $sha256sum) : self{
$result = new self;

View File

@ -25,57 +25,66 @@ namespace pocketmine\network\mcpe\protocol\types;
interface ParticleIds{
public const BUBBLE = 1;
public const CRITICAL = 2;
public const BLOCK_FORCE_FIELD = 3;
public const SMOKE = 4;
public const EXPLODE = 5;
public const EVAPORATION = 6;
public const FLAME = 7;
public const LAVA = 8;
public const LARGE_SMOKE = 9;
public const REDSTONE = 10;
public const RISING_RED_DUST = 11;
public const ITEM_BREAK = 12;
public const SNOWBALL_POOF = 13;
public const HUGE_EXPLODE = 14;
public const HUGE_EXPLODE_SEED = 15;
public const MOB_FLAME = 16;
public const HEART = 17;
public const TERRAIN = 18;
public const SUSPENDED_TOWN = 19, TOWN_AURA = 19;
public const PORTAL = 20;
public const SPLASH = 21, WATER_SPLASH = 21;
public const WATER_WAKE = 22;
public const DRIP_WATER = 23;
public const DRIP_LAVA = 24;
public const FALLING_DUST = 25, DUST = 25;
public const MOB_SPELL = 26;
public const MOB_SPELL_AMBIENT = 27;
public const MOB_SPELL_INSTANTANEOUS = 28;
public const INK = 29;
public const SLIME = 30;
public const RAIN_SPLASH = 31;
public const VILLAGER_ANGRY = 32;
public const VILLAGER_HAPPY = 33;
public const ENCHANTMENT_TABLE = 34;
public const TRACKING_EMITTER = 35;
public const NOTE = 36;
public const WITCH_SPELL = 37;
public const CARROT = 38;
//39 unknown
public const END_ROD = 40;
public const DRAGONS_BREATH = 41;
public const SPIT = 42;
public const TOTEM = 43;
public const FOOD = 44;
public const FIREWORKS_STARTER = 45;
public const FIREWORKS_SPARK = 46;
public const FIREWORKS_OVERLAY = 47;
public const BALLOON_GAS = 48;
public const COLORED_FLAME = 49;
public const SPARKLER = 50;
public const CONDUIT = 51;
public const BUBBLE_COLUMN_UP = 52;
public const BUBBLE_COLUMN_DOWN = 53;
public const SNEEZE = 54;
//2 same as 1
public const CRITICAL = 3;
public const BLOCK_FORCE_FIELD = 4;
public const SMOKE = 5;
public const EXPLODE = 6;
public const EVAPORATION = 7;
public const FLAME = 8;
public const LAVA = 9;
public const LARGE_SMOKE = 10;
public const REDSTONE = 11;
public const RISING_RED_DUST = 12;
//62 same as 12
public const ITEM_BREAK = 13;
public const SNOWBALL_POOF = 14;
public const HUGE_EXPLODE = 15;
//60 same as 15
public const HUGE_EXPLODE_SEED = 16;
public const MOB_FLAME = 17;
public const HEART = 18;
public const TERRAIN = 19;
public const SUSPENDED_TOWN = 20, TOWN_AURA = 20;
//61 same as 20
public const PORTAL = 21;
//22 same as 21
public const SPLASH = 23, WATER_SPLASH = 23;
//24 same as 23
public const WATER_WAKE = 25;
public const DRIP_WATER = 26;
public const DRIP_LAVA = 27;
public const FALLING_DUST = 28, DUST = 28;
public const MOB_SPELL = 29;
public const MOB_SPELL_AMBIENT = 30;
public const MOB_SPELL_INSTANTANEOUS = 31;
public const INK = 32;
public const SLIME = 33;
public const RAIN_SPLASH = 34;
public const VILLAGER_ANGRY = 35;
//59 same as 35
public const VILLAGER_HAPPY = 36;
public const ENCHANTMENT_TABLE = 37;
public const TRACKING_EMITTER = 38;
public const NOTE = 39;
public const WITCH_SPELL = 40;
public const CARROT = 41;
//42 unknown
public const END_ROD = 43;
//58 same as 43
public const DRAGONS_BREATH = 44;
public const SPIT = 45;
public const TOTEM = 46;
public const FOOD = 47;
public const FIREWORKS_STARTER = 48;
public const FIREWORKS_SPARK = 49;
public const FIREWORKS_OVERLAY = 50;
public const BALLOON_GAS = 51;
public const COLORED_FLAME = 52;
public const SPARKLER = 53;
public const CONDUIT = 54;
public const BUBBLE_COLUMN_UP = 55;
public const BUBBLE_COLUMN_DOWN = 56;
public const SNEEZE = 57;
}

View File

@ -0,0 +1,38 @@
<?php
/*
*
* ____ _ _ __ __ _ __ __ ____
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* @author PocketMine Team
* @link http://www.pocketmine.net/
*
*
*/
declare(strict_types=1);
namespace pocketmine\network\mcpe\protocol\types;
final class ResourcePackType{
private function __construct(){
//NOOP
}
public const INVALID = 0;
public const RESOURCES = 1;
public const BEHAVIORS = 2;
public const WORLD_TEMPLATE = 3;
public const ADDON = 4; //scripts?
public const SKINS = 5;
}