mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-10 15:59:39 +00:00
(Splash)Potion: do not assume that META == potion ID
it probably will be, but meta might not be accessible anymore soon.
This commit is contained in:
parent
d62d0762ff
commit
62e7b0e2b1
@ -252,8 +252,8 @@ class ItemFactory{
|
||||
}
|
||||
|
||||
foreach(Potion::ALL as $type){
|
||||
$this->register(new Potion(ItemIds::POTION, $type, "Potion"));
|
||||
$this->register(new SplashPotion(ItemIds::SPLASH_POTION, $type, "Splash Potion"));
|
||||
$this->register(new Potion(ItemIds::POTION, $type, "Potion", $type));
|
||||
$this->register(new SplashPotion(ItemIds::SPLASH_POTION, $type, "Splash Potion", $type));
|
||||
}
|
||||
|
||||
foreach(TreeType::getAll() as $type){
|
||||
|
@ -253,6 +253,14 @@ class Potion extends Item implements Consumable{
|
||||
return [];
|
||||
}
|
||||
|
||||
/** @var int */
|
||||
private $potionId;
|
||||
|
||||
public function __construct(int $id, int $variant, string $name, int $potionId){
|
||||
parent::__construct($id, $variant, $name);
|
||||
$this->potionId = $potionId;
|
||||
}
|
||||
|
||||
public function getMaxStackSize() : int{
|
||||
return 1;
|
||||
}
|
||||
@ -263,7 +271,7 @@ class Potion extends Item implements Consumable{
|
||||
|
||||
public function getAdditionalEffects() : array{
|
||||
//TODO: check CustomPotionEffects NBT
|
||||
return self::getPotionEffectsById($this->meta);
|
||||
return self::getPotionEffectsById($this->potionId);
|
||||
}
|
||||
|
||||
public function getResidue(){
|
||||
|
@ -30,13 +30,21 @@ use pocketmine\player\Player;
|
||||
|
||||
class SplashPotion extends ProjectileItem{
|
||||
|
||||
/** @var int */
|
||||
private $potionId;
|
||||
|
||||
public function __construct(int $id, int $variant, string $name, int $potionId){
|
||||
parent::__construct($id, $variant, $name);
|
||||
$this->potionId = $potionId;
|
||||
}
|
||||
|
||||
public function getMaxStackSize() : int{
|
||||
return 1;
|
||||
}
|
||||
|
||||
protected function createEntity(Location $location, Player $thrower) : Throwable{
|
||||
$projectile = new SplashPotionEntity($location, $thrower);
|
||||
$projectile->setPotionId($this->meta);
|
||||
$projectile->setPotionId($this->potionId);
|
||||
return $projectile;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user