25 public const NETWORK_ID = ProtocolInfo::BOSS_EVENT_PACKET;
46 public int $bossActorUniqueId;
47 public int $eventType;
49 public int $playerActorUniqueId = 0;
50 public float $healthPercent = 0.0;
51 public string $title =
"";
52 public string $filteredTitle =
"";
53 public int $color = BossBarColor::PINK;
54 public int $overlay = 0;
56 private static function base(
int $bossActorUniqueId,
int $eventId) : self{
58 $result->bossActorUniqueId = $bossActorUniqueId;
59 $result->eventType = $eventId;
63 public static function show(
int $bossActorUniqueId,
string $title,
float $healthPercent,
int $color = BossBarColor::PURPLE,
int $overlay = 0) : self{
64 $result = self::base($bossActorUniqueId, self::TYPE_SHOW);
65 $result->title = $title;
66 $result->filteredTitle = $title;
67 $result->healthPercent = $healthPercent;
68 $result->color = $color;
69 $result->overlay = $overlay;
73 public static function hide(
int $bossActorUniqueId) : self{
74 return self::base($bossActorUniqueId, self::TYPE_HIDE);
77 public static function registerPlayer(
int $bossActorUniqueId,
int $playerActorUniqueId) : self{
78 $result = self::base($bossActorUniqueId, self::TYPE_REGISTER_PLAYER);
79 $result->playerActorUniqueId = $playerActorUniqueId;
83 public static function unregisterPlayer(
int $bossActorUniqueId,
int $playerActorUniqueId) : self{
84 $result = self::base($bossActorUniqueId, self::TYPE_UNREGISTER_PLAYER);
85 $result->playerActorUniqueId = $playerActorUniqueId;
89 public static function healthPercent(
int $bossActorUniqueId,
float $healthPercent) : self{
90 $result = self::base($bossActorUniqueId, self::TYPE_HEALTH_PERCENT);
91 $result->healthPercent = $healthPercent;
95 public static function title(
int $bossActorUniqueId,
string $title) : self{
96 $result = self::base($bossActorUniqueId, self::TYPE_TITLE);
97 $result->title = $title;
98 $result->filteredTitle = $title;
102 public static function properties(
int $bossActorUniqueId,
int $color = BossBarColor::PURPLE,
int $overlay = 0) : self{
103 $result = self::base($bossActorUniqueId, self::TYPE_PROPERTIES);
104 $result->color = $color;
105 $result->overlay = $overlay;
109 public static function query(
int $bossActorUniqueId,
int $playerActorUniqueId) : self{
110 $result = self::base($bossActorUniqueId, self::TYPE_QUERY);
111 $result->playerActorUniqueId = $playerActorUniqueId;
116 $this->bossActorUniqueId =
CommonTypes::getActorUniqueId($in);
117 $this->playerActorUniqueId = CommonTypes::getActorUniqueId($in);
118 $this->eventType = Byte::readUnsigned($in);
119 $this->title = CommonTypes::getString($in);
120 $this->filteredTitle = CommonTypes::getString($in);
121 $this->healthPercent = LE::readFloat($in);
122 $this->color = Byte::readUnsigned($in);
123 $this->overlay = Byte::readUnsigned($in);
127 CommonTypes::putActorUniqueId($out, $this->bossActorUniqueId);
128 CommonTypes::putActorUniqueId($out, $this->playerActorUniqueId);
129 Byte::writeUnsigned($out, $this->eventType);
130 CommonTypes::putString($out, $this->title);
131 CommonTypes::putString($out, $this->filteredTitle);
132 LE::writeFloat($out, $this->healthPercent);
133 Byte::writeUnsigned($out, $this->color);
134 Byte::writeUnsigned($out, $this->overlay);
138 return $handler->handleBossEvent($this);