valiant-bedrock / libscoreboard
A small scoreboard library built for PocketMine-MP
0.5.0
2022-05-20 00:27 UTC
Requires (Dev)
- pocketmine/bedrock-protocol: >=9.0.0+bedrock-1.18.30
- pocketmine/pocketmine-mp: >=4.3.0
This package is auto-updated.
Last update: 2025-02-16 06:11:04 UTC
README
A small scoreboard library built for Minecraft: Bedrock Edition
Installation
Composer
Run the command composer require valiant-bedrock/libscoreboard
to install this package.
Virion
The virion for this project is located & can be installed from here
Enums
This library provides two types of enums used when sending the scoreboard:
DisplaySlot
- Used to specify where the scoreboard should be displayedSortOrder
- Used as a way to sort the scoreboard (ascending or descending)
Methods
Managing View
send(?SortOrder $sortOrder = null, ?DisplaySlot $displaySlot = null): void
- Sends the scoreboard to the playerremove(): void
- Removes the scoreboard from the client's viewupdate(): void
- Forcefully updates the client's scoreboard (Throws an exception if the scoreboard is not already visible)
Setting Data
This library provides multiple methods for updating the scoreboard:
setLines(array $lines, bool $clear = true, bool $update = true): void
- Sets the values of all linessetLine(int $index, string $value, bool $update = true): void
- Sets the value of a specific lineremoveLine(int $index, bool $update = true): void
- Removes a specific lineclear(bool $update = true): void
- Clears the scoreboardsetDisplaySlot(DisplaySlot $slot, bool $update = true): void
- Sets the display slot of the scoreboardsetSortOrder(SortOrder $order, bool $update = true): void
- Sets the sort order of the scoreboard
Example
assert($player instanceof Player); $scoreboard = new Scoreboard( player: $player, title: "Test Scoreboard", lines: [ 0 => "Name: {$player->getName()}", 1 => "", 2 => "Test Entry", 3 => "", 4 => "Test Entry 2", ] ); // Sends the scoreboard to the player $scoreboard->send( slot: DisplaySlot::SIDEBAR(), order: SortOrder::ASCENDING() ); // Sets the line and sends it to the player (if visible) $scoreboard->setLine(index: 2, value: "New Text Entry"); // Set multiple lines $scoreboard->setLines( lines: [ 0 => "Display Name: {$player->getDisplayName()}", 1 => "Health: " . (string) round($player->getHealth(), 2), 2 => "", 3 => "Updated Test Entry", ], // If clear is set to true, it'll clear the scoreboard before setting the lines clear: true ); // Remove a line $scoreboard->removeLine(index: 2); // Changes the current sort order $scoreboard->setSortOrder(SortOrder::DESCENDING()); // Removes the scoreboard from the player's view $scoreboard->remove();
Issues
Any issues / suggestions with this library can be reported here.