Skip to content

Releases: EndstoneMC/endstone

v0.5.1

24 Aug 16:34
a2df03a
Compare
Choose a tag to compare

This is an exciting update to support Minecraft v1.21.20 in the absence of PDB file.

Game version: v1.21.20

Minecraft - Version

Added

  • Support for Minecraft v1.21.20.
  • Player::getScoreboard and Player::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 and Player::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 by Server::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

29 Jul 23:19
94e617f
Compare
Choose a tag to compare

This is a major update to support Minecraft v1.21.3 with the new scoreboard and form API.

Game version: v1.21.3

Minecraft - Version

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 and Player::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 a CommandSender is a Player or ConsoleCommandSender.
  • Experimental Scoreboard API.
  • Experimental Form API.

Changed

  • Player class now inherits from the Mob class instead of Actor 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 an int instead of datetime.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

10 Jul 00:27
5d1d003
Compare
Choose a tag to compare

This is an update to support Minecraft v1.21.2 with a few bug fixes and minor enhancements.

Game version: v1.21.2

Minecraft - Version

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

05 Jul 16:27
cb519aa
Compare
Choose a tag to compare

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

Minecraft - Version

Added

  • Support for Minecraft v1.21.1.
  • ActorDeathEvent and PlayerDeathEvent triggers when an actor or a player dies.
  • Player::giveExp and Player::giveExpLevels functionality for adding experience points/levels added.
  • Player::getAllowFlight and Player::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 and Player::setExpProgress to get or set a player's progress towards the next level.
  • Player::getExpLevel and Player::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 and Player::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 to Permissible.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

15 Jun 22:05
072b5de
Compare
Choose a tag to compare

This is the first stable release of Endstone that supports Minecraft: Bedrock Edition v1.21.0.

Game version: v1.21.0

Minecraft - Version

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

13 Jun 11:53
1bf6b79
Compare
Choose a tag to compare

Game version: v1.20.81

Minecraft - Version

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 and Level::getDimensions for getting dimensions within a specific level.
  • Actor::getDimension for getting the dimension that an actor resides in.
  • Player::getGameMode and Player::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
    in server.properties.
  • Command permissions are now checked before its parsing.
  • Server::dispatchCommand allows one to dispatch a command on the server.
  • Server::getMaxPlayers and Server::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

  • @Duckos-Mods made their first contribution in #11
  • @Adrian8115 made their first contribution in #13

Full Changelog: v0.4.6...v0.4.7

v0.4.6

14 May 23:50
55c7f78
Compare
Choose a tag to compare

Game version: v1.20.81

Minecraft - Version

Fixed

  • Improved the detection of Python executable.

Full Changelog: v0.4.5...v0.4.6

v0.4.5

14 May 16:38
7c74f0c
Compare
Choose a tag to compare

Game version: v1.20.81

Minecraft - Version

Added

  • Bootstrap now protects specific files from overwriting during update.
  • Python plugin loader now loads all *.whl plugins under the plguins 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

13 May 17:28
503ac64
Compare
Choose a tag to compare

Game version: v1.20.81

Minecraft - Version

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 and Actor::getVelocity for getting the location and velocity of an actor respectively.
  • Actor::getLevel for getting the Level that an actor resides in.

Changed

  • Level is no longer created for each Dimension in a Minecraft world. Instead, one Level now manages multiple
    Dimensions.
  • Player::getAddress now returns a SocketAddress instead of std::string. Player::getPort was removed,
    use SocketAddress::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

30 Apr 16:51
613b1d4
Compare
Choose a tag to compare

Game version: v1.20.81

Minecraft - Version

Added

  • Level::getDimension for getting the dimension of a specific level.
  • Player::getAddress and Player::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