Releases: EndstoneMC/endstone
Releases · EndstoneMC/endstone
v0.5.1
This is an exciting update to support Minecraft v1.21.20 in the absence of PDB file.
Game version: v1.21.20
Added
- Support for Minecraft v1.21.20.
Player::getScoreboard
andPlayer::setScoreboard
methods to allow each player to have their own scoreboard (
separate from the main shared scoreboard).PlayerTeleportEvent
, which is called when a player is teleported from one location to another.Actor::teleport
method to teleport an actor to a given location or actor.- The server can now be gracefully shut down when
Ctrl
+C
is pressed. /status
command to show the uptime and performance of the server.- Basic network API to allow plugins to send custom packets. Currently, only
SpawnParticleEffectPacket
is supported. /reload
command to reload plugins in addition to addons.Player::sendToast
method to send a toast message to players.- Furnace-related item data to DevTools by @smartcmd.
Changed
Player::isOp
andPlayer::setOp
methods are now consistent with the similar methods in the scripting API.- The fix for the warning message about empty packets is now redundant and has been removed.
- BREAKING CHANGE:
Server::getLevels
has been replaced byServer::getLevel
. - BREAKING CHANGE:
Player::getDeviceId
now returns a string object instead of a UUID object, as it is not
guaranteed to be a UUID on all platforms.
Fixed
- #29 - Commands will no longer be sent to a player who doesn't have
- #32 - Creating an action form without an
on_submit
callback will
no longer crashes the server - Plugin config files are now always read and written in UTF-8 encoding.
- Added a missing parameter to
ActionForm::addButton
. - Action forms without any buttons can now be displayed correctly on the client side.
- The Python executable can now be located in multiple possible locations on Linux.
New Contributors
Full Changelog: v0.5.0...v0.5.1
v0.5.0
This is a major update to support Minecraft v1.21.3 with the new scoreboard and form API.
Game version: v1.21.3
Added
- Support for Minecraft v1.21.3.
Actor::getId
function to get an actor's unique id, persisting between server runs.Actor::isDead
function to check if an actor is marked for removal post-death.ActorTeleport
event that triggers when an entity teleports (e.g., Enderman, Wolf).Mob::isGliding
function to check if a living entity is gliding.Player::sendTitle
andPlayer::resetTitle
functions for sending and resetting an on-screen title.Player::transfer
function to transfer a player to another server.Player::getXuid
to get the Xbox User ID (XUID) of the player.- Python: package metadata can now be used as a fallback for plugin metadata.
- Python:
isinstance
function can now be used to check if aCommandSender
is aPlayer
orConsoleCommandSender
. - Experimental Scoreboard API.
- Experimental Form API.
Changed
Player
class now inherits from theMob
class instead ofActor
class.- BREAKING CHANGE: Plugin names should only contain lowercase letters, numbers, and underscores. Use the prefix
property to display a different name for the plugin logger. - BREAKING CHANGE: The
player.ping
property now returns anint
instead ofdatetime.timedelta
.
Fixed
- Fixed an issue where
Server::setMaxPlayers
would crash due to a change in the internal struct in BDS. - Fixed an issue that python executable cannot be located when running in a virtual environment.
v0.4.10
This is an update to support Minecraft v1.21.2 with a few bug fixes and minor enhancements.
Game version: v1.21.2
Added
- Support for Minecraft v1.21.2.
Player::getSkin
method to retrieve the current skin of a player.- Support for recipes with output items possessing NBT (Named Binary Tag) tags. These tags are now also included
in the dumped data.
Fixed
- Issue with shaped recipes. Recipes that have item tags as input (instead of item names) can now be dumped correctly.
v0.4.9
We are excited to introduce the new DevTools, which provides an easy and friendly way to dump data from BDS!
Game version: v1.21.1
Added
- Support for Minecraft v1.21.1.
ActorDeathEvent
andPlayerDeathEvent
triggers when an actor or a player dies.Player::giveExp
andPlayer::giveExpLevels
functionality for adding experience points/levels added.Player::getAllowFlight
andPlayer::setAllowFlight
to check or grant the ability for players not in creative mode
to fly.Player::setFlying
to toggle a player's flying status.- An overload of
sendMessage
to allow the sending of translatable messages with parameters that will be localized on the
client side. Player::getExpProgress
andPlayer::setExpProgress
to get or set a player's progress towards the next level.Player::getExpLevel
andPlayer::setExpLevel
to get or set a player's current experience level.Player::getTotalExp
to get the total amount of experiences a player has collected.Player::getLocale
to get the player's current locale.Player::getDeviceId
andPlayer::getDeviceOS
to get information related to the player's device.- A DevTools to help community projects get necessary data from BDS (currently only available on Windows). To open the
DevTools, use command/devtools
in the console.
Changed
Permissible.op
property in the python binding is renamed toPermissible.is_op
.- Crash dumps will now print system and version info in addition to stack traces.
Fixed
- Suppressed warning message about empty UDP packets from the output.
Full Changelog: v0.4.8...v0.4.9
v0.4.8.1
This is the first stable release of Endstone that supports Minecraft: Bedrock Edition v1.21.0.
Game version: v1.21.0
Added
- Adds support for Minecraft v1.21 (Tricky Trials)
Fixed
Player::getPing
now returns the correct value instead of -1 on Linux.Player::isFlying
now works correctly in all conditions.- Calling Python binding of
Server::getPlayer
with uuid no longer crashes. - Fixed a regression in vanilla command permissions.
- Permission attachment now works as expected.
Full Changelog: v0.4.7...v0.4.8.1
v0.4.7
Game version: v1.20.81
Added
Player::performCommand
allows a player to execute a given command. During the command execution, the player is
temporarily granted the operator permission.Level::getDimension
andLevel::getDimensions
for getting dimensions within a specific level.Actor::getDimension
for getting the dimension that an actor resides in.Player::getGameMode
andPlayer::setGameMode
for getting and setting a player's game mode.- Plugin configuration for Python plugins.
- Added more struct info by @Duckos-Mods in #11.
- World seed will no longer be sent to the client when
client-side-chunk-generation-enabled
is disabled
inserver.properties
. - Command permissions are now checked before its parsing.
Server::dispatchCommand
allows one to dispatch a command on the server.Server::getMaxPlayers
andServer::setMaxPlayers
for getting and setting the maximum amount of players allowed to
be logged in.Server::getPlayer
now also accepts a string argument to get a player by name instead of UUID.
Changed
- Changed logging level look-up from using a hashmap to using a switch by @Duckos-Mods in #12
- Endstone no longer requires the presence of debug symbols at runtime.
Fixed
Actor::getVelocity
now returns the correct velocity when the actor rides a vehicle.- Python plugin loader now works correctly with Python 3.9.
New Contributors
Full Changelog: v0.4.6...v0.4.7
v0.4.6
Game version: v1.20.81
Fixed
- Improved the detection of Python executable.
Full Changelog: v0.4.5...v0.4.6
v0.4.5
Game version: v1.20.81
Added
- Bootstrap now protects specific files from overwriting during update.
- Python plugin loader now loads all
*.whl
plugins under theplguins
folder and their dependencies during server
start up.
Fixed
- Scheduler now works on Linux.
Full Changelog: v0.4.3...v0.4.5
v0.4.3
Game version: v1.20.81
Added
Server::getOnlinePlayers
for getting all online players.Player::kick
for kicking a specific player with a custom message.Player::getPing
for getting the average latency of a connected player.Actor::getLocation
andActor::getVelocity
for getting the location and velocity of an actor respectively.Actor::getLevel
for getting theLevel
that an actor resides in.
Changed
Level
is no longer created for eachDimension
in a Minecraft world. Instead, oneLevel
now manages multiple
Dimension
s.Player::getAddress
now returns aSocketAddress
instead ofstd::string
.Player::getPort
was removed,
useSocketAddress::getPort
instead.- Executable
endstone
now accepts--server-folder
instead of--install-folder
, and--no-confirm
instead
of--install
. - Endstone server will now ask the user whether to update the Bedrock Dedicated Server if an older version is found.
Full Changelog: v0.4.2...v0.4.3
v0.4.2
Game version: v1.20.81
Added
Level::getDimension
for getting the dimension of a specific level.Player::getAddress
andPlayer::getPort
for getting the socket address and port of a specific player, respectively.- Logs are now written to
logs/latest.log
with rotations. - Basic scheduler implementation, currently supporting only synchronized task execution.
PlayerLoginEvent
is called when a player attempts to log in.
Changed
- Support for Minecraft v1.20.81 (Bedrock)
Fixed
- Server no longer crashes when the weather is changed on Linux.
Full Changelog: v0.4.1...v0.4.2