All imports have been rewritten. Imports from sandstone/core, sandstone/core, sandstone/commands, sandstone/variables are now imports from sandstone. Imports from sandstone/_internals/* are now imports from sandstone/*.
Renamed MCFunction.clearSchedule to MCFunction.schedule.clear
All ressources (MCFunction, LootTable, Advancement, Recipe, Tag, Predicate) now follow a new naming convention, which might break some previous types:
To create a resource, the name will still be Resource(...). Example: Advancement(), MCFunction(...).
The argument type will now be named ResourceJSON. Example: Recipe(name: string, recipe: RecipeJSON), Predicate(name: string, predicate: PredicateJSON). The only exception is MCFunction, as the argument is a callback.
The return type will now be named ResourceInstance. Example: MCFunction(...) => MCFunctionInstance, Tag(...) => TagInstance.
A full example of type definitions would be:
type Recipe = (name: string, recipe: RecipeJSON) => RecipeInstance
type Predicate = (name: string, recipe: PredicateJSON) => PredicateInstance
PlayerScore.lowerThan and PlayerScore.lowerOrEqualThan have been renamed PlayerScore.lessThan and PlayerScore.lessOrEqualThan
New additions:
You can now call BasePath instances, to find the name of a given resource under this base path. You can also use the backticks notation to achieve the same effect. Example:
execute.run now accepts asynchronous callbacks, to use with sleep for example.
You can now schedule a callback directly, using the callback command. Example:
schedule.function(() => {
say('Hello, but in the future!')
}, '1d', 'replace')
This also works with asynchronous callbacks.
You can now provide an optional absolute name to execute.run, to change the name of the newly created function. This is especially useful for debugging.
Breaking changes:
sandstone/core
,sandstone/core
,sandstone/commands
,sandstone/variables
are now imports fromsandstone
. Imports fromsandstone/_internals/*
are now imports fromsandstone/*
.MCFunction.clearSchedule
toMCFunction.schedule.clear
MCFunction
,LootTable
,Advancement
,Recipe
,Tag
,Predicate
) now follow a new naming convention, which might break some previous types:Resource(...)
. Example:Advancement()
,MCFunction(...)
.ResourceJSON
. Example:Recipe(name: string, recipe: RecipeJSON)
,Predicate(name: string, predicate: PredicateJSON)
. The only exception isMCFunction
, as the argument is a callback.ResourceInstance
. Example:MCFunction(...) => MCFunctionInstance
,Tag(...) => TagInstance
. A full example of type definitions would be:PlayerScore.lowerThan
andPlayerScore.lowerOrEqualThan
have been renamedPlayerScore.lessThan
andPlayerScore.lessOrEqualThan
New additions:
BasePath
instances, to find the name of a given resource under this base path. You can also use the backticks notation to achieve the same effect. Example:execute.run
now accepts asynchronous callbacks, to use withsleep
for example.callback
command. Example:This also works with asynchronous callbacks.
You can now provide an optional absolute name to
execute.run
, to change the name of the newly created function. This is especially useful for debugging.This feature is also available for the new
schedule.function
functionnality, taking a callback:schedule.function('my_callback', () => { ... }, '1d')
Minor changes:
sleep
calls won't output nested functions anymoresummon
coordinates not being properly outputed in some cases