Skip to content

Releases: EndstoneMC/endstone

v0.5.6

06 Dec 19:00
Compare
Choose a tag to compare

This is a minor update that adds support for the latest version of Minecraft - The Garden Awakens!!

Game version: v1.21.50

Minecraft - Version

Added

  • Added support for Minecraft v1.21.50 (The Garden Awakens).
  • Added Inventory::getItem and Inventory::setItem methods to manipulate a player's inventory.
  • Added Inventory::getContents method to retrieve all items in an inventory.
  • Added /ban and /unban commands to add or remove players from the deny list.
  • Added /banlist [ips|players] command to list all banned players and/or IPs.
  • Added PluginManager::loadPlugin to allow third-party plugin loaders to load plugins from single files instead of
    directories. #98

Fixed

  • Fixed an issue where block_palette.nbt was dumped twice in the DevTools.

Changed

  • Added support for loading a mixture of folder packs listed in world_resource_packs.json (the conventional method)
    and zipped packs in .zip or .mcpack format placed under resource_packs.

v0.5.5

26 Oct 08:24
17ba20a
Compare
Choose a tag to compare

This is a minor update that adds support for the latest version of Minecraft - Bundles of Bravery!!

Game version: v1.21.40/41

Minecraft - Version

Added

  • Added support for Minecraft v1.21.40/41 (Bundles of Bravery).
  • CommandSender will now be downcast to the correct derived type on the Python side.
  • Added the Objective::isDisplayed method to check if an objective is being displayed in any of the scoreboard slots.
  • Added Server::getOnlineMode to check if the server is running with authentication enabled.
  • Added Actor::getScoreboardTags to get the list of tags added to the actor.
  • Added Actor::addScoreboardTag and Actor::removeScoreboardTag to modify the actor's tags.
  • Added support for loading zipped resource packs. You can now put .zip and .mcpack resource packs under
    the resource_packs folder, and they will be loaded automatically when the server starts.
  • Added support for encrypted resource packs. You can put the keys in the .zip.key or .mcpack.key format next to the
    resource packs.
  • Added the ScriptMessageEvent, which will get called when a script message is sent using the /scriptevent command.
  • Added Server::getLanguage to translate a message into a specific locale.
  • Added Actor::getHealth, Actor::setHealth, and Actor::getMaxHealth for getting and setting actor health.
  • Added CommandSenderWrapper to capture the output of command execution for any command sender.
  • Added Player::spawnParticle to send a particle effect that is only visible to the player.

Changed

  • Error messages from DevTools, when OpenGL is not available, are now suppressed.
  • The return type of several methods has been changed to endstone::Result to include error messages, which will
    automatically throw exceptions with the same messages on the Python side.

Fixed

  • Fixed a crash that occurred while handling server ping
    requests (#60).

New Contributors

Full Changelog: v0.5.4.1...v0.5.5

v0.5.4.1

19 Sep 16:49
e3ea3fa
Compare
Choose a tag to compare

This is a hotfix release that resolves a crash that could occur.

Game version: v1.21.30

Minecraft - Version

Fixed

  • Fixed a crash that could occur when the player uses emotes.

Full Changelog: v0.5.4...v0.5.4.1

v0.5.4

19 Sep 13:35
6640348
Compare
Choose a tag to compare

This is a minor update that adds the support for the latest version of Minecraft

Game version: v1.21.30

Minecraft - Version

Added

  • Added support for Minecraft v1.21.30.
  • Added support for Python 3.13.
  • Added biome data to the DevTools by @CoolLoong.

Changed

  • BREAKING CHANGE: Player::performCommand now executes the command as a Player to
    resolve #53. This means the command execution will now depend on
    the player's permissions as operator permissions are no longer granted. If you still want to have the player perform a
    command with elevated permissions, consider using Server::dispatchCommand to execute
    execute as {player_name} run {command}.

Fixed

  • Actor::isOnGround, Actor::isInWater, and Actor::isInLava now return the correct values.
  • Fixed a typo in the documentation by @thatgurkangurk.
  • Fixed the command parser logic for chained commands.
  • Fixed a server crash when spawning a simulated player due to the absence of an invalid network identifier.

New Contributors

Full Changelog: v0.5.3...v0.5.4

v0.5.3

12 Sep 10:12
53befab
Compare
Choose a tag to compare

This is a minor update that fixes a few crashes.

Game version: v1.21.23

Minecraft - Version

Added

  • Added support for Minecraft v1.21.23.
  • Introduced the BlockData class, which encapsulates both the block type and a specific state from all possible block
    states.
  • Block types and block states can now be used as command arguments.
  • Added PlayerKnockbackEvent, triggered when a player receives knockback. Developers can modify the knockback that the
    player will receive.
  • Added PlayerKickEvent, triggered when a player is kicked from the server, allowing for customization of kick
    messages.
  • Introduced the BlockState class, representing a snapshot of a block at a specific point in time.
  • PlayerJoinEvent and PlayerQuitEvent now include getter and setter methods for customizing join/quit messages.
  • Integrated bStats metrics.

Changed

  • BREAKING CHANGE: Renamed Server::getNewScoreboard to Server::createScoreboard for consistency with other
    methods like createBossbar and createBlockData.
  • Lifted the restriction on the /reload command for console use. It can now be executed in-game.

Fixed

  • Enforced the use of libc++ for C++ plugins on Linux to resolve symbol errors.
  • Player::setExpProgress now correctly sets experience progress without precision loss.
  • Fixed an issue where death messages were being sent to players twice.
  • Resolved a crash when calling ItemStack::getType on an item from PlayerInteractEvent when the player interacts
    with a block with bare hands.
  • PlayerInteractEvent::hasItem now correctly returns false if the player has no item in hand when interacting.

Full Changelog: v0.5.2...v0.5.3

v0.5.2

29 Aug 23:44
aaed9cd
Compare
Choose a tag to compare

This is a minor update introducing the new Boss Bar API and more events.

Game version: v1.21.22

Minecraft - Version

Added

  • Support for Minecraft v1.21.22.
  • Boss bar API.
  • Block::getRelative to get a block relative to a block face.
  • BlockBreakEvent triggered when a player breaks a block.
  • BlockPlaceEvent triggered when a player places a block against another block.
  • PlayerInteractEvent triggered when a player right-clicks a block.
  • PlayerInteractActorEvent triggered when a player interacts with an actor.
  • An auto installer script for installing Endstone on Linux (thanks to @legitbox).

Changed

  • Check chunk states before getting the block in Dimension::getBlockAt.

Fixed

  • #38 - Plugins can now be properly loaded inside a virtual
    environment on Linux.

New Contributors

Full Changelog: v0.5.1...v0.5.2

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