diff --git a/src/pocketmine/event/Event.php b/src/pocketmine/event/Event.php index a5575f47a..78744412d 100644 --- a/src/pocketmine/event/Event.php +++ b/src/pocketmine/event/Event.php @@ -46,8 +46,13 @@ abstract class Event{ /** * @return bool + * + * @throws \BadMethodCallException */ public function isCancelled(){ + if(!($this instanceof Cancellable)){ + throw new \BadMethodCallException("Event is not Cancellable"); + } return $this->isCancelled === true; } @@ -55,8 +60,13 @@ abstract class Event{ * @param bool $value * * @return bool + * + * @throws \BadMethodCallException */ public function setCancelled($value = true){ + if(!($this instanceof Cancellable)){ + throw new \BadMethodCallException("Event is not Cancellable"); + } $this->isCancelled = (bool) $value; } diff --git a/src/pocketmine/tile/Sign.php b/src/pocketmine/tile/Sign.php index 23086e24c..d893551c7 100644 --- a/src/pocketmine/tile/Sign.php +++ b/src/pocketmine/tile/Sign.php @@ -33,14 +33,26 @@ class Sign extends Spawnable{ public function __construct(Chunk $chunk, Compound $nbt){ $nbt["id"] = Tile::SIGN; + if(!isset($nbt->Text1)){ + $nbt->Text1 = new String("Text1", ""); + } + if(!isset($nbt->Text2)){ + $nbt->Text2 = new String("Text2", ""); + } + if(!isset($nbt->Text3)){ + $nbt->Text3 = new String("Text3", ""); + } + if(!isset($nbt->Text4)){ + $nbt->Text4 = new String("Text4", ""); + } parent::__construct($chunk, $nbt); } public function setText($line1 = "", $line2 = "", $line3 = "", $line4 = ""){ - $this->namedtag->Text1 = $line1; - $this->namedtag->Text2 = $line2; - $this->namedtag->Text3 = $line3; - $this->namedtag->Text4 = $line4; + $this->namedtag->Text1 = new String("Text1", $line1); + $this->namedtag->Text2 = new String("Text2", $line2); + $this->namedtag->Text3 = new String("Text3", $line3); + $this->namedtag->Text4 = new String("Text4", $line4); $this->spawnToAll(); return true; @@ -48,10 +60,10 @@ class Sign extends Spawnable{ public function getText(){ return array( - $this->namedtag->Text1, - $this->namedtag->Text2, - $this->namedtag->Text3, - $this->namedtag->Text4 + $this->namedtag["Text1"], + $this->namedtag["Text2"], + $this->namedtag["Text3"], + $this->namedtag["Text4"] ); } @@ -62,10 +74,10 @@ class Sign extends Spawnable{ $nbt = new NBT(NBT::LITTLE_ENDIAN); $nbt->setData(new Compound("", array( - new String("Text1", $this->namedtag->Text1), - new String("Text2", $this->namedtag->Text2), - new String("Text3", $this->namedtag->Text3), - new String("Text4", $this->namedtag->Text4), + new String("Text1", $this->namedtag["Text1"]), + new String("Text2", $this->namedtag["Text2"]), + new String("Text3", $this->namedtag["Text4"]), + new String("Text4", $this->namedtag["Text4"]), new String("id", Tile::SIGN), new Int("x", (int) $this->x), new Int("y", (int) $this->y),