Releases: Ayfri/Kore
2.0.2-1.21.11
Small but big release, adding a lot of missing KDoc on commands, new documentation for Selectors, Arguments Internals for contributors and a Cookbook with common patterns you would want to know.
I've also fixed many small issues with rarely used commands. Point Of Interest enum generation and argument support for locate poi command, new way to configure Bindings Github API Key and url parameters.
Documentation
docs(bindings): UpdateBindings.mdwith new setup steps and example improvements.d0028c5docs(commands): Add KDoc to all commands.e5bf892docs(commands): Fix wrong syntaxes in commands examples.16ba50bdocs(concepts): AddSelectors.mdwith comprehensive overview on building Minecraft target selectors in Kore, including typed builders, filtering capabilities, and score-based conditions.2d44932docs(contributing): AddArguments.mdandCookbook.mdfor contributors. Introduction to Kore's argument system, practical datapack patterns, including setup functions, logic reuse, custom items, delayed actions, and more.150a54480bc008
New Features
feat(bindings): Add support for customizable HTTP request payload and headers, update related tests and documentation.eefe605feat(bindings): Enhance GitHub function with API key authentication details, add tests and docs.00f7dcffeat(commands): AddplaceJigsawoverload withJigsawArgument, enhanceplaceTemplatewithintegrityandTemplateMirror, and improve KDoc forplacefunctions.f885b8ffeat(commands): UpdatelocatePointOfInterestto usePointOfInterestTypeOrTagArgument, add KDoc comments tolocatefunctions.8a223fd513a6d7 d4a906efeat(predicates): Add utilityx,y,zsetter functions toPosition.40995b2
Bug Fixes
fix(advancement): Add missingfromAdvancementRoute, improve KDoc.bf07d93fix(bindings): Correct cache directory path ingetCacheDirfunction for consistency.48bde8dfix(bossbar): Add missingsetNamewith text component and improve KDoc.15b8767fix(commands): Addsetsub-literal forstyleinwaypoint modify, refine KDoc forWaypointModifyand related functions.c0a7fa2fix(commands): Add missingentityliteral toteleportoverloads, improve KDoc.318f75efix(commands): Add missing fill options for fill command.c76866efix(commands): Fix manyclonecommand grammar issues, add missing modes and sub-literals, improve KDoc.9ed7482fix(commands): ReplacesequenceIdwithRandomSequenceArgument, improverandomcommand KDoc.5eb7557fix(docs): Update test commands in contributing documentation for consistency.32feda0fix(item): Correct argument order intoItemArgumentmethod.669152c#216fix(playsound): Replace SoundArgument with SoundEventArgument in playSound command.4ae24e5fix(stopwatch): Update scale parameter to use float type.84edfb0
Full changelog: https://github.com/Ayfri/Kore/compare/v2.0.1-1.21.11..v2.0.2-1.21.11
2.0.1-1.21.11
Small fix to execute if block and a lot of new documentation on how to contribute to Kore!
Documentation
docs(commands): Add KDoc to all execute and execute condition functions.6773147docs(contributing): Add comprehensive contributor guides on architecture, workflow, CI/CD, and generator creation.50d926cdocs(contributing): Revise guidelines for contribution, link to detailed docs for architecture, workflow, and CI/CD, and update README and website with clearer contribution instructions.1fbb46adocs(home): Fix error in example code.8ea2d2e
Bug Fixes
fix(execute): Add missingexecute if blockwith BlockTag argument.993bf55
Full changelog: https://github.com/Ayfri/Kore/compare/v2.0.0-1.21.11..v2.0.1-1.21.11
2.0.0-1.21.11
Welcome to Kore 2.0!
Kore 2.0 is here! This release contains so many changes, improvements, and new features that it deserved a major version bump. From a completely revamped build system to powerful new OOP utilities and helpers, this is the biggest update Kore has ever seen.
What's new?
The new Helpers module provides a rich set of utilities for common datapack patterns:
- Math engine - vector math, area utilities, and floating-point formatting helpers for
Vec2,Vec3,Position, andRotation. - Raycasts - easily create block and entity raycasts with configurable step size, max distance, and hit callbacks.
- State delegates - Kotlin property delegates backed by scoreboards.
- Text utilities - selectors, text components, and formatting helpers.
- MiniMessageRenderer, MarkdownRenderer, and ANSIRenderer - advanced text formatting renderers.
- VFX & Particles - high-level particle helpers for visual effects.
Also, the prior Helpers have been moved to the
helpersmodule, such as Display Entities, Inventory Manager, Mannequins, Scheduler, and ScoreboardManager. See also Scoreboard Math.
The OOP module brings object-oriented abstractions on top of Minecraft commands:
- Boss Bars - create and manage boss bars with team integration.
- Entity management -
EntityCommandsfor fluent entity manipulation. - Events - event-driven architecture for datapack logic.
- Game State Machine -
GameStateandGameStateManagerfor managing game phases and transitions. - Spawners - configurable entity spawner utilities.
- Timers & Cooldowns - schedule delayed or repeating actions with
TimerandCooldownAPIs.
Code examples
Here are a few examples of what you can build with the biggest additions in Kore 2.0.
Helpers
This first example combines the math helpers with a raycast to measure a path and react to blocks or entities hit along the way.
val origin = pos(0, 64, 0)
val target = pos(12.75, 65.0, -3.5)
val distance = origin.distanceTo(target)
function("helpers_demo") {
comment("Formatted distance: ${distance.toStringTruncatedIfRound()}")
raycast(
from = origin,
direction = rotation(0f, 0f),
maxDistance = 32.0,
step = 0.25,
onHitBlock = ::hitBlock,
onHitEntity = ::hitEntity,
)
}And this one uses the particle helpers to turn an impact point into a small visual burst.
function("helpers_particles_demo") {
val impact = pos(4.5, 65.0, -2.5)
particle(
particle = flame(),
pos = impact,
delta = vec3(0.15, 0.35, 0.15),
speed = 0.02f,
count = 12,
)
}This one shows how state delegates let you read and write scoreboard-backed values like regular Kotlin properties.
class GameContext {
var score by score("game.score")
var phase by score("game.phase")
}
val context = GameContext()
function("state_delegate_demo") {
context.score += 10
context.phase = 2
comment("Score: ${context.score} | Phase: ${context.phase}")
runIf(context.phase eq 2) {
say("Phase 2 is over!")
}
}OOP
Here, a boss bar and a timer are wired together so players see the bar appear and initialize automatically when the intro starts.
val bossBar = BossBar("game:boss") {
name = text("Final Boss")
color = BossBarColor.PURPLE
max = 100
}
val introTimer = Timer("game:intro", 100) {
bossBar.players += allPlayers()
bossBar.value = 100
}This last example shows the event system forwarding a player join into the current game state, which keeps phase-specific logic nicely encapsulated.
val gameStateManager = GameStateManager(
initialState = LobbyState(),
)
events.listen<PlayerJoinEvent> {
gameStateManager.currentState.onPlayerJoin(player)
}And here a spawner is paired with a cooldown to keep waves under control without scattering timing logic everywhere.
val waveCooldown = Cooldown("game:next_wave", 200)
val arenaSpawner = Spawner("game:arena") {
spawnEntity = EntityTypes.ZOMBIE
position = pos(0, 64, 0)
}
events.listen<TickEvent> {
if (waveCooldown.isFinished) {
arenaSpawner.spawn()
waveCooldown.reset()
}
}Changelog
CI/CD
- Add
ci.ymlworkflow for automated tests.2720e85 - Add
publish-snapshot.ymlworkflow for snapshot builds, update docs with snapshot setup instructions, and enhance build logic for snapshot versioning.b93e1df
Documentation
- Update bindings documentation for namespace remapping and normalization.
5c066da- @e-psi-lon - Add scoreboard comparison examples for
equalTo,notEqualTo, and related helpers. Extend documentation with Kotlin DSL mappings to generated commands.a516ef1 - Add new documentation for helpers module (renderers, raycasts, math, particles, state delegates).
941fa47 - Enhance Helpers and OOP documentation with new workflows, API examples, expanded Events, Display Entities, Raycasts, and scheduling sections.
e6d986d - Update module descriptions, installation guides, and examples for bindings, helpers, and oop modules.
4c59c0b - Add OOP documentation for cooldowns, timers, game state machine, boss bars, events, entities, and spawners.
761d7ec89bb48933747c3
New Features
- State: Add score-based comparison functions,
runIf,runWhile, andrepeatScorehelpers. EnhanceScoreboardDelegatewithasExecuteScoreandscoreboardEntityintegration.fd63024 - State: Replace
repeatScorewithrepeat, update iteration handling, enhance documentation, and adjust tests and examples.ce4a0ef - Bindings: Add support for per-namespace renaming.
e9ded19- @e-psi-lon - Bindings: Use XDG-compliant caching and prefer
PathoverFile.67e8f76- @e-psi-lon - Maths: Add utility functions for truncation and formatting in
Position,Rotation,Time,Vec2, andVec3, improvetoStringmethods and type-specific property access.fb0be06 - Maths: Add delegate-based math helpers, improve trigonometric functions, enhance
sqrtinitialization, and update tests and documentation.c16b0e79 - OOP: Add OOP wrappers for entity management, game state transitions, timers, spawners, and boss bars.
d677d20a8b3ba946f9de7
Bug Fixes
- Bindings: Normalize namespace object name.
a1b167a- @e-psi-lon - Commands: Add missing
literal("under")argument tospreadPlayerscommand.c7cdcfa - Arguments: Fix unintended cast of
Doublecoordinates toInt(e.g.0.0→0), replacestrwithtoStringTruncatedIfRoundfor correct entity positioning.c28b4ba08a37ef- #213 - Files: Fix
createTempDirectoryactually not creating the temporary directory, add more utilities toPath, and update docs and tests.0c95069
Refactors
- Arguments: Add
Argumentparsing and deserialization logic, enhanceBlockArgumentserializer, and introduce proxy creation for arguments.6353257...
1.42.1-1.21.11
Small release to fix the default datapacks containing features field, also simplify the usage of pack formats and add more KDoc.
I've also revamped a bit the tool I use to generate changelogs.
Documentation
docs(datapack): UpdateCreating A Datapackguide, improveminFormat/maxFormatexamples, add legacy format handling andoverlaysDSL usage documentation.79a34d7
Bug Fixes
fix(datapack): Makefeaturesoptional.13d9bd8
Refactors
refactor(colors): AddColorSerializerdeserialization for hex and named colors.32f7e7arefactor(pack): Updatepack.mcmetahandling, add DSL foroverlays, improve serialization for legacy fields, and clarify deprecation warnings.fbf7e5drefactor(worldgen): SimplifyFeaturesserialization logic, addInlinableListSerializer, optimizetoListandfromListconversion methods.b3c5d96
Full changelog: https://github.com/Ayfri/Kore/compare/v1.42.0-1.21.11..v1.42.1-1.21.11
1.42.0-1.21.11
A release to fix many small issues with advancements/item-modifiers/loot-tables/predicates/structures/test-instances, also some simplifications of serializers.
It contains some small breaking changes so that's why the version bump.
Changelog
feat(maths): AddtoArrayandfromArrayconversion forVec3f, add deserialization support. 97a589cfeat(worldgen-structures): AddTerrain AdaptationandPool Aliasesdocumentation, enhance pool alias logic with weighted entries in tests. 6309c34fix(advancements): RenameAvoidVibrationstoAvoidVibration. 7c09253fix(docs): UpdateAdvancements.mdandTriggers.md, addbrewedPotion. EnhanceItem_Modifiers.mdwith new examples, correct inconsistencies. 5626439fix(item-modifiers): Add@SerializabletoSetBookCover. b9a2cc4fix(item-modifiers): Fix serialization ofApplyBonusitem modifier. e3a867ffix(item-modifiers): RemoveUUIDArgument, addidproperty inAttributeModifier. 3d51818fix(item-modifiers): RenamepotiontoidinSetPotion. dff1c54fix(item-modifiers): ReplacenbtwithtaginSetCustomDataand write as inline nbt, add helper tosetBannerPattern. c820f1ffix(loot-tables): RenamenametovalueinLootTable. 58b6d3efix(predicates): AddLightclass to replacelightfield inLocation. 64cdfa4fix(predicates): RenameEnchantmentint provider toEnchantmentLevel, update related functions. 6289eaefix(predicates): RenameEntityScoretoEntityScores. f46733afix(predicates): ReplaceBlockwithLocationinsteppingOn. 784e0d3fix(predicates): Set default value ofentityinEntityPropertiestoEntityType.THIS. 76d8717fix(test-instances): ReplaceFunctionArgumentwithStringfor function references, align logic and documentation with new GameTest framework. 7f3514afix(test-instances): ReplaceFunctionwithFunctionArgument, removeFunctionDSLBuilder. 41fda93fix(worldgen-structures): Update pool alias logic, introduce weighted entries. 309b9ferefactor(advancements): Replace criteria serialization logic withInlineSerializer, adjust trigger classes to removenameproperty. 82f6727refactor(advancements): Set default lambda value forrecipeUnlockedandrecipeCraftedcriteria. 4eb7e7frefactor(item-modifiers): AdjustSourceenum values, rename parameters incopyCustomData, add helper methods forMutableList<CopyNbtOperation>. 11f9481refactor(predicates): SimplifyFluidsub predicate usage. a4657b7
Full changelog: https://github.com/Ayfri/Kore/compare/v1.41.3-1.21.11..v1.42.0-1.21.11
1.41.3-1.21.11
Small release to fix a pretty important bug.
Changelog
docs(website): UpdateKore Templatelinks to reflect new GitHub repository. 15e05b0fix(arguments): Fix serialization ofIntRangeOrIntwith only min or max. 79b9c8d b8e3b2a
Full changelog: https://github.com/Ayfri/Kore/compare/v1.41.2-1.21.11..v1.41.3-1.21.11
1.41.2-1.21.11
Small fixes and improved predicates/pack usages.
Changelog
feat(pack): AddsupportedFormatsDSL, implement range and min-max validation, and add corresponding tests. 15d08f0feat(predicates): AddmatchToolfunction withItemArgumentsupport, enable multi-item condition handling. 60363c2feat(predicates): Extendenchantmentsto supportEnchantmentOrTagArgumentwith optional levels. 0ba6dd5feat(utils): AddextractBaseMinecraftVersion, implementcompareMinecraftVersions, update version filtering logic. 46be380fix(loot-tables): Fixalternativesbeing mis-spelled and simplify usage. 177b236
Full changelog: https://github.com/Ayfri/Kore/compare/v1.41.1-1.21.11..v1.41.2-1.21.11
1.41.1-1.21.11-rc3
Changelog
- No changes were required.
Full changelog: https://github.com/Ayfri/Kore/compare/v1.41.1-1.21.11-rc2..v1.41.1-1.21.11-rc3
1.41.1-1.21.11-rc2
Changelog
- No changes were required.
Full changelog: https://github.com/Ayfri/Kore/compare/v1.41.1-1.21.11-rc1..v1.41.1-1.21.11-rc2
1.41.1-1.21.11-rc1
Changelog
- No changes were required.
Full changelog: https://github.com/Ayfri/Kore/compare/v1.41.1-1.21.11-pre5..v1.41.1-1.21.11-rc1