Recent Releases of gdmc_http_interface

gdmc_http_interface - GDMC-HTTP 1.6.0 (Minecraft 1.19.2 + 1.20.2 + 1.21.4)

Changelog:

  • NEW: GET /heightmap endpoint no longer requires having to set a build area using the in-game /setbuildarea command. It now also accepts x, z, dx and dz parameters to specify any area.
  • NEW: GET /heightmap endpoint also accepts a withinBuildArea flag to skip over positions outside the build area.
  • NEW: GET /heightmap endpoint can now also match specific block states when using custom heightmaps. For example: blocks=oak_log[axis=y] will only include upright oak tree logs, while horizontal oak logs (minecraft:oak_log[axis=x] and minecraft:oak_log[axis=z]) are excluded.
  • FIX: GET /blocks now returns minecraft:void_air instead of minecraft:air for positions outside the vertical world limit.
  • FIX: PUT /blocks discard placement instructions outside vertical world limit.
  • FIX: GET /heightmap fixed inconsistent responses when using custom block lists due to undefined behaviour during parsing of the blocks query parameter.
  • FIX: GET /heightmap when using custom heightmaps, match blocks on all possible block states instead of only the default ones. For example: blocks=oak_log now matches minecraft:oak_log[axis=x] and minecraft:oak_log[axis=z] in addition to the default minecraft:oak_log[axis=y].
  • FIX: GET /heightmap values of yBounds parameter are now clamped to the vertical world limit.
  • FIX: GET /biomes now returns an empty string for the biome ID if the requested position is outside vertical world limit.

- Java
Published by Niels-NTG 11 months ago

gdmc_http_interface - GDMC-HTTP 1.5.2 (Minecraft 1.19.2 + 1.20.2 + 1.21.4)

Changelog:

  • FIX: Critical bug in custom heightmaps due to upper and lower Y bounds being reversed.
  • FIX: Typos in documentation.

- Java
Published by Niels-NTG 12 months ago

gdmc_http_interface - GDMC-HTTP 1.5.1 (Minecraft 1.19.2 + 1.20.2 + 1.21.4)

Changelog:

  • NEW: GDMC-HTTP is now compatible with Minecraft 1.21.4!
  • FIX: Expanded and updated documentation.

- Java
Published by Niels-NTG about 1 year ago

gdmc_http_interface - GDMC-HTTP 1.5.0 (Minecraft 1.19.2 + 1.20.2)

Changelog:

  • NEW: GDMC-HTTP is now compatible with both the Forge and Fabric modding platform!
  • NEW: GET /heightmap can now receive a list of block IDs, block tag keys and fluid tag keys to create your own custom heightmaps!
  • NEW: GET /heightmap can now receive an upper and lower Y-value limit for the requested heightmap. Usefull for taking measurements of the surface of caves or The Nether dimension.
  • NEW: Add keepLiquids flag to POST /structure endpoint. When set to false it removes all water sources present at the placement locations of the to be placed structure.
  • FIX: Actually implement behaviour to prevent spawning drops when placing structures for the spawnDrops flag of the POST /structure endpoint.
  • FIX: /commands now returns a 405 is any other HTTP method besides POST is used.

- Java
Published by Niels-NTG over 1 year ago

gdmc_http_interface - GDMC-HTTP 1.4.6 (Minecraft 1.19.2 + 1.20.2)

Changelog:

  • NEW: To enhance backwards compatibility, all features introduced in GDMC-HTTP 1.4.0 are now also available for Minecraft 1.19.2!
  • FIX: When the doBlockUpdates=false parameter is set on PUT /blocks discard placement instructions for duplicate block positions except the last one for that position. This prevents an undefined behaviour that made it impossible to predict in what order placement instructions targeting the same block position would resolve.

- Java
Published by Niels-NTG almost 2 years ago

gdmc_http_interface - GDMC-HTTP 1.4.5 (Minecraft 1.20.2)

Changelog:

  • NEW: GDMC-HTTP can now also be obtained via the Modrinth mod portal!
  • FIX: Add proper error handling for some instances where NBT data for a sign block submitted via PUT /blocks was formatted incorrectly (#26).
  • FIX: Restore spawnDrops flag of PUT /blocks back to working order (#27).
  • FIX: /item command now works as expected when called via the POST /commands endpoint (#28).

- Java
Published by Niels-NTG almost 2 years ago

gdmc_http_interface - GDMC-HTTP 1.4.4 (Minecraft 1.20.2)

Changelog:

  • FIX: Allow GET /chunks to be used without having to set a build area.
  • FIX: Off-by-one bugs for block/chunk ranges in request URLs.
  • FIX: Documentation cleanup.

- Java
Published by Niels-NTG almost 2 years ago

gdmc_http_interface - GDMC-HTTP 1.4.3 (Minecraft 1.20.2)

Changelog:

  • FIX: OPTIONS / now also returns the DataVersion field.
  • FIX: Expanded and updated documentation.

- Java
Published by Niels-NTG about 2 years ago

gdmc_http_interface - GDMC-HTTP 1.4.2 (Minecraft 1.20.2)

Changelog:

  • FIX: GET /biomes do not return entries for positions beyond the world's build height range.
  • FIX: Respond with 404 status when GET /biomes has the withinBuildArea=true flag while no build area has been set using the /setbuildarea command.
  • FIX: Respond with 404 status when GET /blocks has the withinBuildArea=true flag while no build area has been set using the /setbuildarea command.

- Java
Published by Niels-NTG about 2 years ago

gdmc_http_interface - GDMC-HTTP 1.4.1 (Minecraft 1.20.2)

Changelog:

  • FIX: Upgrade to Forge 1.20.2-48.1.0

- Java
Published by Niels-NTG about 2 years ago

gdmc_http_interface - GDMC-HTTP 1.4.0 (Minecraft 1.20.2)

Changelog:

TL;DR:

  • ⛏ Minecraft 1.20.2 compatibility!
  • ⏱ Huge performance improvements!
  • 📜 Commands now return usefull feedback to the client!
  • 📐 Restrict actions to the build area with the withinBuildArea flag!
  • 🏗 SNBT support for placing structures!
  • 😸 Lots of quality-of-life improvements!

Full changelog: - NEW: Compatibility with Minecraft version 1.20.2. No longer compatible with older versions of Minecraft. Any GDMC client (eg. your settlement generator) that works with GDMC-HTTP 1.0.0 or later should work with GDMC-HTTP 1.4.0 without making any changes to your code. - NEW: The value "message" property returned by the POST /commands endpoint is now equal to what you would see in the in-game chat. - NEW: POST /structure endpoint now also accepts SNBT-encoded files. - NEW: GET /chunks default to using the build area if no URL query parameters are given. - NEW: Add withinBuildArea flag to GET /chunks. If set to true and a build area is set, chunks outside of the build area are skipped. - NEW: Add withinBuildArea flag to GET /biomes. If set to true and a build area is set, it skips positions outside of the build area. - NEW: Add withinBuildArea flag to GET /structure. If set to true and a build area is set, it skips positions outside of the build area. - NEW: Add withinBuildArea flag to POST /structure. If set to true and a build area is set, structures that are (partially) outside of the build area cannot be placed. - NEW: Copy JSON representation of the current build area to clipboard when clicking on the chat message after setting it with the /setbuildarea command. - NEW: Display GDMC-HTTP server status in chat message when player joins the world. - NEW: Revert interface port to default (9000) if /sethttpport command has no arguments. - FIX: Requests to PUT /blocks are up to 80%[^1] faster when block updates are enabled (default). - FIX: Requests to PUT /blocks are up to 90%[^1] faster when block updates are disabled. - FIX: Requests to GET /blocks are up to 60%[^1] faster! - FIX: Requests to GET /chunks are up to 60%[^1] faster! - FIX: Requests to GET /heightmap are now up to 85%[^1] faster! - FIX: Requests to GET /biomes are now up to 60%[^1] faster! - FIX: Requests to GET /structure are now up to 60%[^1] faster! - FIX: Requests to GET /chunks larger than than 52x52 chunks should no longer time out[^1]. - FIX: Parse arguments dx, dy and dz in GET /entities as ranges (correct) instead of absolute coordinates (wrong). - FIX: Improved error handling across all endpoints. - FIX: Do not ignore blank entries in requests to DELETE /entities.

[^1]: Tested using an AMD Ryzen 3600 6-core CPU. Actual performance gains may vary depending on the amount of available CPU threads

- Java
Published by Niels-NTG about 2 years ago

gdmc_http_interface - GDMC-HTTP 1.3.3 (Minecraft 1.19.2)

  • NEW: Add logo designed by Blinkenlights.
  • FIX: Improved documentation.
  • FIX: Replace links to Minecraft wiki the new domain (https://minecraft.wiki/).

- Java
Published by Niels-NTG over 2 years ago

gdmc_http_interface - GDMC-HTTP 1.3.2 (Minecraft 1.19.2)

Changelog:

  • NEW: Add GET /heightmap to get heightmap data of a given type of the currently set build area. Thanks to cmoyates!
  • NEW: Add custom heightmap types MOTION_BLOCKING_NO_PLANTS and OCEAN_FLOOR_NO_PLANTS.
  • NEW: Add withinBuildArea flag to GET /blocks. If set to true it skips over positions outside of the build area.
  • NEW: Add withinBuildArea flag to PUT /blocks. If set to true it does not place blocks outside of the build area.

- Java
Published by Niels-NTG over 2 years ago

gdmc_http_interface - GDMC-HTTP 1.2.3 (Minecraft 1.19.2)

Changelog:

  • FIX: With PUT /blocks, allow for changing the block entity (NBT) data of a block even if the target block matches the block state and block ID of the placement instruction. This makes it possible to do things such as changing the text on an existing sign or changing the items of an already placed chest.
  • FIX: Reworked the algorithm for changing the shape of a block to fit with directly adjacent blocks (eg. fences) to be more efficient.

- Java
Published by Niels-NTG almost 3 years ago

gdmc_http_interface - GDMC-HTTP 1.2.2 (Minecraft 1.19.2)

Changelog:

  • FIX: Ensure blocks placed via POST /structure always update on the client side to reflect its block entity data (eg. text on signs, pieces of armor on armor stands, etc.). Prior to this fix the data was correctly parsed, but only became visible in-game if the relevant chunks were reloaded.
  • FIX: Remove support for pivotY URL query parameter in the POST /structure endpoint since it wasn't implemented in the first place. Minecraft does not support it. This is not a breaking change since unknown query parameters will be ignored by GDMC-HTTP.
  • FIX: Add clarification on the transformation order of structures in the POST /structure endpoint to documentation.

- Java
Published by Niels-NTG almost 3 years ago

gdmc_http_interface - GDMC-HTTP 1.2.1 (Minecraft 1.19.2)

Changelog:

  • FIX: Issue where NBT file returned by GET /structure wasn't GZIP-compressed even if the "Content-Encoding" request header contained the word "gzip".
  • FIX: Improve error handling when an empty file is submitted to POST /structure.

- Java
Published by Niels-NTG almost 3 years ago

gdmc_http_interface - GDMC-HTTP 1.2.0 (Minecraft 1.19.2)

Changelog:

  • NEW: Add GET /players endpoint to get all players on the server. Thanks to cmoyates!
  • NEW: Add support for target selector for entities in the GET /entities endpoint using the selector query parameter.
  • NEW: Add support for target selector for players in the GET /players endpoint using the selector query parameter.
  • NEW: Unset build area by entering the /setbuildarea command without arguments.

- Java
Published by Niels-NTG almost 3 years ago

gdmc_http_interface - GDMC-HTTP 1.1.1 (Minecraft 1.19.2)

Changelog:

  • NEW: POST /command now accepts x, y, z parameters, useful for when using commands with relative coordinates or commands such as /locate.
  • NEW: Add OPTIONS / to get version of Minecraft and version of GDMC-HTTP interface.
  • NEW: Port number of the HTTP interface can be changed using the /sethttpport <port> Minecraft console command. This value will be saved to a config file and therefore will be persistent.
  • NEW: Get port number of the HTTP interface via the /gethttpport Minecraft console command.
  • FIX: The /setbuildarea console command can now also accept coordinates that aren't loaded yet.

- Java
Published by Niels-NTG about 3 years ago

gdmc_http_interface - GDMC-HTTP 1.0.0 (Minecraft 1.19.2)

Changelog:

  • NEW: First stable release!
  • BREAKING: JSON-formatted NBT-like data is no longer supported in request bodies. Use SNBT notation instead.
  • BREAKING: Properties containing NBT values in JSON responses are no longer formatted as JSON, but as SNBT strings.
  • BREAKING: Plain-text formatted responses have been removed in favour of JSON.
  • BREAKING: Consistent error messages.
  • BREAKING: Plain-text request bodies are no longer accepted (except for POST /command). JSON-formatted request bodies are expected instead.
  • FIX: Improved performance!

- Java
Published by Niels-NTG about 3 years ago

gdmc_http_interface - GDMC-HTTP 0.7.6 (Minecraft 1.19.2)

Changelog:

  • FIX: GET /biomes now returns an empty string for the biome ID if the requested position is outside of the vertical boundaries of the world.
  • FIX: Typo in error message POST /structure handler.

- Java
Published by Niels-NTG about 3 years ago

gdmc_http_interface - GDMC-HTTP 0.7.5 (Minecraft 1.19.2)

Changelog:

  • NEW: GET /entities, read entities from a given area.
  • NEW: PUT /entities, place any number of entities into the world.
  • NEW: PATCH /entities, edit any number of entities already present in the world.
  • NEW: DELETE /entities, remove any number of entities from the world.
  • NEW: Add doBlockUpdates, spawnDrops and customFlags parameters to POST /structure endpoint.
  • FIX: Minor performance improvements and code readability by reducing branching.
  • FIX: Updated build tools.

- Java
Published by Niels-NTG about 3 years ago

gdmc_http_interface - GDMC-HTTP 0.7.4 (Minecraft 1.19.2)

Changelog: - FIX: Placement of multi-part blocks such as beds and doors. - FIX: Add proper exception handling for malformed JSON input at PUT /blocks.

- Java
Published by Niels-NTG about 3 years ago

gdmc_http_interface - GDMC-HTTP 0.7.1 (Minecraft 1.19.2)

Changelog:

  • Fix at PUT /blocks for placing block without (valid) coordinates. It places it at the URL query coordinates instead.

- Java
Published by Niels-NTG about 3 years ago

gdmc_http_interface - GDMC-HTTP 0.7.0 (Minecraft 1.19.2)

Changelog:

  • PUT /blocks endpoint can now accept a JSON-formatted request body as input using the request header "Content-Type": "application/json". The format is identical the response of the GET /blocks with the "Accept": "application/json" request header, with a few minor additional features:
    • For each placement instruction, x, y and z are optional. If omitted, it uses the coordinate set in the request's URL query as a fallback, or 0 if these aren't set.
    • For each placement instruction, x, y and z can be a integer ("x": 32) or use tilde ("x": "~32") or caret ("x": "^32") notation in a string.
    • Block state ("state") and block entity data ("data") can be an JSON object, a single string or can be omitted all together.
    • When placing blocks with PUT /blocks, the "shapes" of directly adjacent blocks are updated, unless the doBlockUpdates flag is explicitly disabled. This means that placing a fence block directly adjacent to an existing block changes the shape of the fence such that it makes the appropriate connections.
  • JSON response format of PUT /blocks has changed to a simple array of strings.
  • For GET /chunks, the binary format is now the default unless the "Accept" header is set to "application/json" or "text/plain".
  • POST /structure can now accept both GZIP-compressed and uncompressed NBT files.
  • GET /structure can now output GZIP-compressed (default) or uncompressed NBT files. The latter can be achieved by setting the request header "Accept-Encoding": "*".
  • /version now returns a 405 is any other HTTP method besides GET is used.
  • Improvements to code readability.
  • Minor improvements to performance.

- Java
Published by Niels-NTG about 3 years ago

gdmc_http_interface - GDMC-HTTP 0.6.5 (Minecraft 1.19.2)

Changelog:

  • Add GET /structure endpoint, for generating an NBT-formatted file of an area of blocks in the world.
  • Add POST /structure endpoint, for placing an NBT-formatted file of a structure into the world.

- Java
Published by Niels-NTG about 3 years ago

gdmc_http_interface - GDMC-HTTP 0.6.4 (Minecraft 1.19.2)

Changelog:

  • Enable GET /chunks to return a JSON-formatted response when the request header Accept is set to application/json.

- Java
Published by Niels-NTG about 3 years ago

gdmc_http_interface - GDMC-HTTP 0.6.3 (Minecraft 1.19.2)

Changelog:

  • Allow negative values for range coordinates in all endpoints that take the dx, dy and dz parameters.

- Java
Published by Niels-NTG about 3 years ago

gdmc_http_interface - GDMC-HTTP 0.6.2 (Minecraft 1.19.2)

Changelog:

  • Fix plain text response for GET /blocks endpoint

- Java
Published by Niels-NTG about 3 years ago

gdmc_http_interface - GDMC-HTTP 0.6.1 (Minecraft 1.19.2)

Changelog:

  • Add GET /biomes endpoint to request biome of a location in the world.
  • Minor performance enhancements.

- Java
Published by Niels-NTG about 3 years ago

gdmc_http_interface - GDMC-HTTP 0.6.0 (Minecraft 1.19.2)

Changelog:

  • GET /blocks can return multiple blocks within a given area.
  • JSON response format of GET /blocks is now a JSON array instead of a single object.
  • Response of GET /blocks now always includes a block's position in front of its material.
  • Response of GET /blocks now can include tile entity data associated with a block (eg. contents of a chest).
  • Endpoint OPTIONS /blocks has been removed.
  • PUT /blocks can now also process block entity data (eg. chest contents, a book on a lectern, armor on an armor stand, etc.).
  • Upgrade to Forge 1.19.2-43-2.0.
  • Some minor performance improvements.

- Java
Published by Niels-NTG about 3 years ago

gdmc_http_interface - GDMC-HTTP 0.5.3 (Minecraft 1.19.2)

Changelog:

  • Implement parameter for specify target dimension (overworld, nether, end, etc.) for the /blocks, /command and /chunks endpoints. For example PUT /blocks?dimension=nether places blocks in the nether instead of the overworld. If parameter is omitted it defaults to the overworld.
  • Fix relative position placement for blocks with a ~<int> position when placing blocks with the PUT /blocks endpoint.
  • Implement OPTIONS method for the /blocks endpoint.

- Java
Published by Niels-NTG about 3 years ago

gdmc_http_interface - GDMC-HTTP 0.5.1 (Minecraft 1.19.2)

Changelog: - Add GET /version endpoint, to get the current Minecraft version

- Java
Published by Niels-NTG about 3 years ago

gdmc_http_interface - GDMC-HTTP 0.5.0 (Minecraft 1.19.2)

Changelog:

  • Adds compatibility for Minecraft version 1.19.2

- Java
Published by Niels-NTG about 3 years ago