sandstone 1.0.0-beta.4 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -4
- package/dist/_internal/index.d.ts +992 -335
- package/dist/_internal/index.js +516 -518
- package/dist/_internal/index.js.map +1 -1
- package/dist/_internal/types/arguments/coords.d.ts +13 -14
- package/dist/_internal/types/arguments/generated/_registry/activities.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/atlases.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/attribute_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/attributes.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/banner_patterns.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/block_definitions.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/block_entity_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/block_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/blocks.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/chunk_statuses.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/command_argument_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/creative_mode_tabs.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/custom_stats.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/damage_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/data_component_predicate_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/data_component_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/debug_subscriptions.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/decorated_pot_patterns.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/dimension_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/enchantment_effect_component_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/enchantment_entity_effect_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/enchantment_level_based_value_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/enchantment_location_based_effect_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/enchantment_provider_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/enchantment_value_effect_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/enchantments.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/equipments.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/float_provider_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/fluids.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/game_events.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/game_rules.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/height_provider_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/int_provider_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/item_definitions.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/items.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/jukebox_songs.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/loot_condition_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/loot_function_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/loot_nbt_provider_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/loot_number_provider_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/memory_module_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/menus.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/mob_effects.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/models.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/painting_variants.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/particle_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/point_of_interest_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/post_effects.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/potions.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/recipe_displays.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/recipe_serializers.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/recipe_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/recipes.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/slot_displays.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/slot_source_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/structures.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_blocks.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_entity_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_fluids.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_items.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_point_of_interest_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_timelines.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_villager_trades.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/tag_worldgen_structures.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/textures.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/ticket_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/trigger_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/trim_patterns.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/villager_professions.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/wolf_variants.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_biomes.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_density_function_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_features.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_material_conditions.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_noise_settings.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_noises.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_placed_features.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_placement_modifier_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_processor_lists.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_structure_sets.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_structure_types.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_structures.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_template_pools.d.ts +1 -1
- package/dist/_internal/types/arguments/generated/_registry/worldgen_tree_decorator_types.d.ts +1 -1
- package/dist/_internal/types/arguments/objective.d.ts +1 -1
- package/dist/_internal/types/arguments/range.d.ts +7 -7
- package/dist/_internal/types/commands/commands.d.ts +1 -4
- package/dist/_internal/types/commands/implementations/entity/execute.d.ts +9 -3
- package/dist/_internal/types/commands/implementations/server/gamerule.d.ts +38 -3
- package/dist/_internal/types/commands/implementations/server/random.d.ts +3 -3
- package/dist/_internal/types/commands/implementations/world/time.d.ts +6 -6
- package/dist/_internal/types/core/Macro.d.ts +0 -1
- package/dist/_internal/types/core/sandstoneCore.d.ts +8 -0
- package/dist/_internal/types/pack/pack.d.ts +2 -3
- package/dist/_internal/types/utils.d.ts +79 -0
- package/dist/_internal/types/variables/Score.d.ts +20 -4
- package/dist/_internal/types/variables/Sleep.d.ts +0 -3
- package/dist/_internal/types/variables/nbt/NBTs.d.ts +28 -1
- package/dist/browser/package.json +3 -0
- package/dist/browser/sandstone.esm.js +61581 -0
- package/dist/browser/sandstone.esm.js.map +1 -0
- package/dist/exports/commands/index.d.ts +1 -1
- package/dist/exports/core/index.d.ts +1 -1
- package/dist/exports/index.d.ts +1 -1
- package/dist/exports/index.js +1 -1
- package/package.json +22 -18
- package/src/arguments/coords.ts +11 -14
- package/src/arguments/objective.ts +1 -1
- package/src/arguments/range.ts +9 -9
- package/src/commands/commands.ts +3 -3
- package/src/commands/implementations/block/fill.ts +3 -3
- package/src/commands/implementations/block/setblock.ts +2 -2
- package/src/commands/implementations/entity/clear.ts +5 -1
- package/src/commands/implementations/entity/execute.ts +27 -6
- package/src/commands/implementations/entity/summon.ts +2 -2
- package/src/commands/implementations/player/dialog.ts +2 -2
- package/src/commands/implementations/player/give.ts +2 -2
- package/src/commands/implementations/player/particle.ts +2 -2
- package/src/commands/implementations/server/debug.ts +6 -1
- package/src/commands/implementations/server/function.ts +8 -3
- package/src/commands/implementations/server/gamerule.ts +75 -3
- package/src/commands/implementations/server/random.ts +3 -3
- package/src/commands/implementations/server/schedule.ts +10 -2
- package/src/commands/implementations/world/data.ts +5 -5
- package/src/commands/implementations/world/item.ts +2 -2
- package/src/commands/implementations/world/time.ts +5 -5
- package/src/core/Macro.ts +0 -2
- package/src/core/nodes.ts +17 -1
- package/src/core/resources/datapack/mcfunction.ts +12 -5
- package/src/core/resources/datapack/structure.ts +1 -0
- package/src/core/resources/resourcepack/sound.ts +2 -4
- package/src/core/sandstoneCore.ts +17 -0
- package/src/flow/conditions/variables/block.ts +2 -2
- package/src/flow/loops/for_i.ts +17 -15
- package/src/flow/loops/for_of.ts +0 -1
- package/src/pack/pack.ts +13 -6
- package/src/sandstone.ts +2 -2
- package/src/utils.ts +159 -0
- package/src/variables/Data.ts +3 -3
- package/src/variables/ItemPredicate.ts +2 -2
- package/src/variables/Score.ts +18 -10
- package/src/variables/Selector.ts +21 -3
- package/src/variables/Sleep.ts +2 -10
- package/src/variables/Trigger.ts +3 -5
- package/src/variables/nbt/NBTs.ts +70 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
export { AdvancementArgumentsCommand, AdvancementCommand, AdvancementCommandNode, AttributeCommand, AttributeCommandNode, AttributeOperationCommand, BlockEntity, BlockStatic, BossBarCommand, BossBarCommandNode, BossBarSetCommand, ClearCommand, ClearCommandNode, CloneCommand, CloneCommandNode, CloneFromDimensionCommand, CloneModeCommand, CloneOptionsCommand, CloneStrictOptionsCommand, CloneToDimensionCommand, CommandArguments, CommandArgumentsConstructor, CommandNodeConstructor, CommentCommand, CommentCommandNode, DamageCauseCommand, DamageCommand, DamageCommandNode, DamageSourceCommand, DataCommand, DataCommandNode, DataGetCommand, DataMergeCommand, DataModifyCommand, DataModifyFromCommand, DataModifyTypeCommand, DataModifyValuesCommand, DataPackCommand, DataPackCommandNode, DataPackEnableCommand, DataRemoveCommand, DebugCommand, DebugCommandNode, DefaultGameModeCommand, DefaultGameModeCommandNode, DeferredMacroExecuteOptions, DialogCommand, DialogCommandNode, DifficultyCommand, DifficultyCommandNode, EffectCommand, EffectCommandNode, EnchantCommand, EnchantCommandNode, ExecuteCommand, ExecuteCommandNode, ExecuteCommandPart, ExecuteDataArgsCommand, ExecuteFacingEntityCommand, ExecuteIfUnlessCommand, ExecuteItemsCommand, ExecutePositionedCommand, ExecuteRotatedAsCommand, ExecuteStoreArgsCommand, ExecuteStoreCommand, ExperienceCommand, ExperienceCommandNode, FillArgumentsCommand, FillBiomeCommand, FillBiomeCommandNode, FillCommand, FillCommandNode, FillReplaceFilterCommand, FinalCommandOutput, ForceLoadCommand, ForceLoadCommandNode, FunctionCommand, FunctionCommandNode, GameModeCommand, GameModeCommandNode, GameRuleCommand, GameRuleCommandNode, GiveCommand, GiveCommandNode, HelpCommand, HelpCommandNode, ItemCommand, ItemCommandNode, ItemSourceCommand, JFRCommand, JFRCommandNode, KillCommand, KillCommandNode, ListCommand, ListCommandNode, LocateCommand, LocateCommandNode, LootCommand, LootCommandNode, LootSourceCommand, MeCommand, MeCommandNode, ParseBlockState, ParseLiteral, ParticleCommand, ParticleCommandNode, PerfCommand, PerfCommandNode, PlaceCommand, PlaceCommandNode, PlaySoundCommand, PlaySoundCommandNode, RandomCommand, RandomCommandNode, RawCommand, RawCommandNode, RecipeCommand, RecipeCommandNode, RelationType, ReloadCommand, ReloadCommandNode, ReturnArgumentsCommand, ReturnCommand, ReturnCommandNode, ReturnRunCommandNode, RideArgumentsCommand, RideCommand, RideCommandNode, RotateCommand, RotateCommandNode, RotateFacingArguments, SandstoneCommands, SayCommand, SayCommandNode, ScheduleCommand, ScheduleCommandNode, ScheduleType, ScoreboardCommand, ScoreboardCommandNode, ScoreboardObjectivesModifyCommand, SeedCommand, SeedCommandNode, SetBlockCommand, SetBlockCommandNode, SetIdleTimeoutCommand, SetIdleTimeoutCommandNode, SetWorldSpawnCommand, SetWorldSpawnCommandNode, SpawnPointCommand, SpawnPointCommandNode, SpectateCommand, SpectateCommandNode, SpreadPlayersCommand, SpreadPlayersNode, StopSoundCommand, StopSoundCommandNode, StopwatchCommand, StopwatchCommandNode, StoreType, SubCommand, SummonCommand, SummonCommandNode, SwingCommand, SwingCommandNode, TEST_INSTANCE_SELECTOR, TagArgumentsCommand, TagCommand, TagCommandNode, TeamCommand, TeamCommandNode, TeamMessageCommand, TeamMessageCommandNode, TeleportCommand, TeleportCommandNode, TeleportFacingCommand, TellCommand, TellCommandNode, TellRawCommand, TellRawCommandNode, TestCommand, TestCommandNode, TimeArguments, TimeCommand, TimeCommandNode, TitleArgumentsCommand, TitleCommand, TitleCommandNode, TransferCommand, TransferCommandNode, TriggerArgumentsCommand, TriggerCommand, TriggerCommandNode, VersionCommand, VersionCommandNode, WaypointCommand, WaypointCommandNode, WaypointModifyArguments, WeatherCommand, WeatherCommandNode, WorldBorderCommand, WorldBorderNode, blockStateStringifier, componentPatchStringifier, createDeferredMacroExecute } from '../../_internal/index.js'
|
|
1
|
+
export { AdvancementArgumentsCommand, AdvancementCommand, AdvancementCommandNode, AttributeCommand, AttributeCommandNode, AttributeOperationCommand, BlockEntity, BlockStatic, BossBarCommand, BossBarCommandNode, BossBarSetCommand, ClearCommand, ClearCommandNode, CloneCommand, CloneCommandNode, CloneFromDimensionCommand, CloneModeCommand, CloneOptionsCommand, CloneStrictOptionsCommand, CloneToDimensionCommand, CommandArguments, CommandArgumentsConstructor, CommandNodeConstructor, CommentCommand, CommentCommandNode, DamageCauseCommand, DamageCommand, DamageCommandNode, DamageSourceCommand, DataCommand, DataCommandNode, DataGetCommand, DataMergeCommand, DataModifyCommand, DataModifyFromCommand, DataModifyTypeCommand, DataModifyValuesCommand, DataPackCommand, DataPackCommandNode, DataPackEnableCommand, DataRemoveCommand, DebugCommand, DebugCommandNode, DefaultGameModeCommand, DefaultGameModeCommandNode, DeferredMacroExecuteOptions, DialogCommand, DialogCommandNode, DifficultyCommand, DifficultyCommandNode, EffectCommand, EffectCommandNode, EnchantCommand, EnchantCommandNode, ExecuteCommand, ExecuteCommandNode, ExecuteCommandPart, ExecuteDataArgsCommand, ExecuteFacingEntityCommand, ExecuteIfUnlessCommand, ExecuteItemsCommand, ExecutePositionedCommand, ExecuteRotatedAsCommand, ExecuteStoreArgsCommand, ExecuteStoreCommand, ExperienceCommand, ExperienceCommandNode, ExtractNBTIntRange, FillArgumentsCommand, FillBiomeCommand, FillBiomeCommandNode, FillCommand, FillCommandNode, FillReplaceFilterCommand, FinalCommandOutput, ForceLoadCommand, ForceLoadCommandNode, FunctionCommand, FunctionCommandNode, GameModeCommand, GameModeCommandNode, GameRuleCommand, GameRuleCommandNode, GiveCommand, GiveCommandNode, HelpCommand, HelpCommandNode, Inf, ItemCommand, ItemCommandNode, ItemSourceCommand, JFRCommand, JFRCommandNode, KillCommand, KillCommandNode, ListCommand, ListCommandNode, LocateCommand, LocateCommandNode, LootCommand, LootCommandNode, LootSourceCommand, MeCommand, MeCommandNode, NegativeInf, ParseBlockState, ParseLiteral, ParticleCommand, ParticleCommandNode, PerfCommand, PerfCommandNode, PlaceCommand, PlaceCommandNode, PlaySoundCommand, PlaySoundCommandNode, RandomCommand, RandomCommandNode, RangeError, RangedInt, RawCommand, RawCommandNode, RecipeCommand, RecipeCommandNode, RelationType, ReloadCommand, ReloadCommandNode, ReturnArgumentsCommand, ReturnCommand, ReturnCommandNode, ReturnRunCommandNode, RideArgumentsCommand, RideCommand, RideCommandNode, RotateCommand, RotateCommandNode, RotateFacingArguments, SandstoneCommands, SayCommand, SayCommandNode, ScheduleCommand, ScheduleCommandNode, ScheduleType, ScoreboardCommand, ScoreboardCommandNode, ScoreboardObjectivesModifyCommand, SeedCommand, SeedCommandNode, SetBlockCommand, SetBlockCommandNode, SetIdleTimeoutCommand, SetIdleTimeoutCommandNode, SetWorldSpawnCommand, SetWorldSpawnCommandNode, SpawnPointCommand, SpawnPointCommandNode, SpectateCommand, SpectateCommandNode, SpreadPlayersCommand, SpreadPlayersNode, StopSoundCommand, StopSoundCommandNode, StopwatchCommand, StopwatchCommandNode, StoreType, SubCommand, SummonCommand, SummonCommandNode, SwingCommand, SwingCommandNode, TEST_INSTANCE_SELECTOR, TagArgumentsCommand, TagCommand, TagCommandNode, TeamCommand, TeamCommandNode, TeamMessageCommand, TeamMessageCommandNode, TeleportCommand, TeleportCommandNode, TeleportFacingCommand, TellCommand, TellCommandNode, TellRawCommand, TellRawCommandNode, TestCommand, TestCommandNode, TimeArguments, TimeCommand, TimeCommandNode, TitleArgumentsCommand, TitleCommand, TitleCommandNode, TransferCommand, TransferCommandNode, TriggerArgumentsCommand, TriggerCommand, TriggerCommandNode, VersionCommand, VersionCommandNode, WaypointCommand, WaypointCommandNode, WaypointModifyArguments, WeatherCommand, WeatherCommandNode, WorldBorderCommand, WorldBorderNode, blockStateStringifier, componentPatchStringifier, createDeferredMacroExecute } from '../../_internal/index.js'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { AdvancementClassArguments, AdvancementNode, AtlasClassArguments, AtlasNode, AudibleVariantType, AwaitNode, BannerPatternClassArguments, BannerPatternNode, BlockStateArguments, BlockStateJSON, BlockStateNode, BlockStateType, CallableResourceClass, ChatTypeClassArguments, ChatTypeNode, CommandNode, ConditionalDataPointPickClass, ContainerCommandNode, ContainerNode, CustomResourceClass, CustomResourceClassArguments, CustomResourceNode, DamageTypeClassArguments, DamageTypeNode, DataPointPickClass, DialogClassArguments, DialogNode, EnchantmentClassArguments, EnchantmentNode, EnchantmentProviderClassArguments, EnchantmentProviderNode, EquipmentClassArguments, EquipmentNode, FontArguments, FontNode, HintedTagStringType, InstrumentClassArguments, InstrumentNode, ItemModelBuilder, ItemModelDefinitionClassArguments, ItemModelDefinitionInput, ItemModelDefinitionNode, ItemModifierClassArguments, ItemModifierNode, JukeboxSongClassArguments, JukeboxSongNode, LanguageArguments, LanguageNode, ListResource, LootTableClassArguments, LootTableNode, MCFunctionClassArguments, MCFunctionNode, MacroArgument, MacroLiteral,
|
|
1
|
+
export { AdvancementClassArguments, AdvancementNode, AtlasClassArguments, AtlasNode, AudibleVariantType, AwaitNode, BannerPatternClassArguments, BannerPatternNode, BlockStateArguments, BlockStateJSON, BlockStateNode, BlockStateType, CallableResourceClass, ChatTypeClassArguments, ChatTypeNode, CommandNode, ConditionalDataPointPickClass, ContainerCommandNode, ContainerNode, CustomResourceClass, CustomResourceClassArguments, CustomResourceNode, DamageTypeClassArguments, DamageTypeNode, DataPointPickClass, DialogClassArguments, DialogNode, EnchantmentClassArguments, EnchantmentNode, EnchantmentProviderClassArguments, EnchantmentProviderNode, EquipmentClassArguments, EquipmentNode, FontArguments, FontNode, HintedTagStringType, InstrumentClassArguments, InstrumentNode, ItemModelBuilder, ItemModelDefinitionClassArguments, ItemModelDefinitionInput, ItemModelDefinitionNode, ItemModifierClassArguments, ItemModifierNode, JukeboxSongClassArguments, JukeboxSongNode, LanguageArguments, LanguageNode, ListResource, LootTableClassArguments, LootTableNode, MCFunctionClassArguments, MCFunctionNode, MacroArgument, MacroLiteral, Macroable, ModelClassArguments, ModelNode, Node, ParticleClassArguments, ParticleNode, PlainTextArguments, PlainTextClass, PlainTextNode, PostEffectClassArguments, PostEffectNode, PredicateClassArguments, PredicateNode, RecipeClassArguments, RecipeNode, ResourceClass, ResourceClassArguments, ResourceNode, ResourceNodeConstructor, ResourceNodesMap, SandstoneCore, ShaderClass, ShaderClassArguments, ShaderNode, SoundEventArguments, SoundEventNode, SoundsArguments, SoundsClass, SoundsNode, StructureClassArguments, StructureNode, TagClassArguments, TagNode, TagSingleValue, TagValuesJSON, TestEnvironmentClassArguments, TestEnvironmentNode, TestInstanceClassArguments, TestInstanceNode, TextureArguments, TextureNode, TimelineClassArguments, TimelineNode, TradeSetClassArguments, TradeSetNode, TrialSpawnerClassArguments, TrialSpawnerNode, TrimMaterialClassArguments, TrimMaterialNode, TrimPatternClassArguments, TrimPatternNode, VariantClassArguments, VariantNode, VariantType, VillagerTradeClassArguments, VillagerTradeNode, WaypointStyleClassArguments, WaypointStyleNode, WorldClockClassArguments, WorldClockNode, _RawMCFunctionClass, isMacroArgument, jsonStringify } from '../../_internal/index.js'
|
package/dist/exports/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Advancement, AdvancementClass, Atlas, AtlasClass, BannerPattern, BannerPatternClass, BlockState, BlockStateClass, ChatType, ChatTypeClass, Condition, ContentStrategyKind, DamageType, DamageTypeClass, Data, DataArray, DataIndexMap, DataPointClass, DataVariable, DatapackConfig, Dialog, DialogClass, Enchantment, EnchantmentClass, EnchantmentProvider, EnchantmentProviderClass, Equipment, EquipmentClass, Font, FontClass, Instrument, InstrumentClass, ItemModelDefinition, ItemModelDefinitionClass, ItemModifier, ItemModifierClass, ItemPredicate, JukeboxSong, JukeboxSongClass, Label, LabelClass, Language, LanguageClass, LiteralUnion, LootTable, LootTableClass, MCFunction, MCFunctionClass, Macro, Model, ModelClass, NBT, NBTAllArrays, NBTAllNumberClasses, NBTAllNumbers, NBTAllPrimitives, NBTAllValues, NBTAnyValue, NBTByte, NBTByteArray, NBTClass, NBTDouble, NBTFloat, NBTInt, NBTIntArray, NBTList, NBTLong, NBTLongArray, NBTPrimitive, NBTRange, NBTShort, NBTSimpleClasses, NBTString, NBTTypedArray, NamespacedLiteralUnion, NotNBT, Objective, ObjectiveClass, ParticleClass, ParticleResource, PlainText, PostEffect, PostEffectClass, Predicate, PredicateClass, RawResource, Recipe, RecipeClass, ResolveNBT, ResolveNBTPart, ResourcePackConfig, SandstoneConfig, SandstoneContext, SandstonePack, Score, Selector, SelectorClass, Set, SetType, Shader, SoundEvent, SoundEventClass, StructureClass, Tag, TagClass, TestEnvironment, TestEnvironmentClass, TestInstance, TestInstanceClass, Texture, TextureClass, Timeline, TimelineClass, TradeSet, TradeSetClass, TrialSpawner, TrialSpawnerClass, Trigger, TrimMaterial, TrimMaterialClass, TrimPattern, TrimPatternClass, UUID, UUIDClass, Variable, Variant, VariantClass, VillagerTrade, VillagerTradeClass, WaypointStyle, WaypointStyleClass, WorldClock, WorldClockClass, _, abs, absolute, advancement, attribute, bossbar, clear, clone, comment, createSandstonePack, damage, data, datapack, debug, defaultNamespace, defaultgamemode, depend, dialog, difficulty, effect, enchant, execute, experience, fill, fillbiome, flowVariable, forceload, functionCmd, gamemode, gamerule, getExistingResource, getSandstoneContext, getTempStorage, getVanillaResource, give, hasContext, help, item, jfr, kill, list, loadTags, loc, local, locate, loot, makeCustomResource, mcMetaCache, me, msg,
|
|
1
|
+
export { Advancement, AdvancementClass, Atlas, AtlasClass, BannerPattern, BannerPatternClass, BlockState, BlockStateClass, ChatType, ChatTypeClass, Condition, ContentStrategyKind, DamageType, DamageTypeClass, Data, DataArray, DataIndexMap, DataPointClass, DataVariable, DatapackConfig, Dialog, DialogClass, Enchantment, EnchantmentClass, EnchantmentProvider, EnchantmentProviderClass, Equipment, EquipmentClass, Font, FontClass, Instrument, InstrumentClass, ItemModelDefinition, ItemModelDefinitionClass, ItemModifier, ItemModifierClass, ItemPredicate, JukeboxSong, JukeboxSongClass, Label, LabelClass, Language, LanguageClass, LiteralUnion, LootTable, LootTableClass, MCFunction, MCFunctionClass, Macro, Model, ModelClass, NBT, NBTAllArrays, NBTAllNumberClasses, NBTAllNumbers, NBTAllPrimitives, NBTAllValues, NBTAnyValue, NBTByte, NBTByteArray, NBTClass, NBTDouble, NBTFloat, NBTInt, NBTIntArray, NBTList, NBTLong, NBTLongArray, NBTPrimitive, NBTRange, NBTShort, NBTSimpleClasses, NBTString, NBTTypedArray, NamespacedLiteralUnion, NotNBT, Objective, ObjectiveClass, ParticleClass, ParticleResource, PlainText, PostEffect, PostEffectClass, Predicate, PredicateClass, RawResource, Recipe, RecipeClass, ResolveNBT, ResolveNBTPart, ResolvedNBT, ResourcePackConfig, SandstoneConfig, SandstoneContext, SandstonePack, Score, Selector, SelectorClass, Set, SetType, Shader, SoundEvent, SoundEventClass, StructureClass, Tag, TagClass, TestEnvironment, TestEnvironmentClass, TestInstance, TestInstanceClass, Texture, TextureClass, Timeline, TimelineClass, TradeSet, TradeSetClass, TrialSpawner, TrialSpawnerClass, Trigger, TrimMaterial, TrimMaterialClass, TrimPattern, TrimPatternClass, UUID, UUIDClass, Variable, Variant, VariantClass, VillagerTrade, VillagerTradeClass, WaypointStyle, WaypointStyleClass, WorldClock, WorldClockClass, _, abs, absolute, advancement, attribute, bossbar, clear, clone, comment, createSandstonePack, damage, data, datapack, debug, defaultNamespace, defaultgamemode, depend, dialog, difficulty, effect, enchant, execute, experience, fill, fillbiome, flowVariable, forceload, functionCmd, gamemode, gamerule, getExistingResource, getSandstoneContext, getTempStorage, getVanillaResource, give, hasContext, help, item, jfr, kill, list, loadTags, loc, local, locate, loot, makeCustomResource, mcMetaCache, me, msg, nbtResolver, particle, perf, place, playsound, random, randomUUID, raw, recipe, rel, relative, reload, resetContext, resetSandstonePack, returnCmd, ride, rotate, sandstonePack, say, schedule, scoreboard, seed, setSandstoneContext, setblock, setidletimeout, setworldspawn, sleep, spawnpoint, spectate, spreadplayers, stopsound, stopwatch, summon, swing, tag, team, teammsg, teleport, tell, tellraw, test, time, title, tm, tp, transfer, trigger, version, w, waypoint, weather, worldborder, xp } from '../_internal/index.js'
|
package/dist/exports/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Advancement, AdvancementClass, Atlas, AtlasClass, BannerPattern, BannerPatternClass, BlockState, BlockStateClass, ChatType, ChatTypeClass, DamageType, DamageTypeClass, Data, DataArray, DataIndexMap, DataPointClass, DataVariable, Dialog, DialogClass, Enchantment, EnchantmentClass, EnchantmentProvider, EnchantmentProviderClass, Equipment, EquipmentClass, Font, FontClass, Instrument, InstrumentClass, ItemModelDefinition, ItemModelDefinitionClass, ItemModifier, ItemModifierClass, ItemPredicate, JukeboxSong, JukeboxSongClass, Label, LabelClass, Language, LanguageClass, LootTable, LootTableClass, MCFunction, MCFunctionClass, Macro, Model, ModelClass, NBT, NBTAnyValue, NBTByte, NBTByteArray, NBTClass, NBTDouble, NBTFloat, NBTInt, NBTIntArray, NBTLong, NBTLongArray, NBTPrimitive, NBTShort, NBTString, NBTTypedArray, NotNBT, Objective, ObjectiveClass, ParticleClass, ParticleResource, PlainText, PostEffect, PostEffectClass, Predicate, PredicateClass, RawResource, Recipe, RecipeClass, ResolveNBT, ResolveNBTPart, SandstonePack, Score, Selector, SelectorClass, Set, Shader, SoundEvent, SoundEventClass, StructureClass, Tag, TagClass, TestEnvironment, TestEnvironmentClass, TestInstance, TestInstanceClass, Texture, TextureClass, Timeline, TimelineClass, TradeSet, TradeSetClass, TrialSpawner, TrialSpawnerClass, Trigger, TrimMaterial, TrimMaterialClass, TrimPattern, TrimPatternClass, UUID, UUIDClass, Variable, Variant, VariantClass, VillagerTrade, VillagerTradeClass, WaypointStyle, WaypointStyleClass, WorldClock, WorldClockClass, _, abs, absolute, advancement, attribute, bossbar, clear, clone, comment, createSandstonePack, damage, data, datapack, debug, defaultNamespace, defaultgamemode, depend, dialog, difficulty, effect, enchant, execute, experience, fill, fillbiome, flowVariable, forceload, functionCmd, gamemode, gamerule, getExistingResource, getSandstoneContext, getTempStorage, getVanillaResource, give, hasContext, help, item, jfr, kill, list, loadTags, loc, local, locate, loot, makeCustomResource, mcMetaCache, me, msg,
|
|
1
|
+
export { Advancement, AdvancementClass, Atlas, AtlasClass, BannerPattern, BannerPatternClass, BlockState, BlockStateClass, ChatType, ChatTypeClass, DamageType, DamageTypeClass, Data, DataArray, DataIndexMap, DataPointClass, DataVariable, Dialog, DialogClass, Enchantment, EnchantmentClass, EnchantmentProvider, EnchantmentProviderClass, Equipment, EquipmentClass, Font, FontClass, Instrument, InstrumentClass, ItemModelDefinition, ItemModelDefinitionClass, ItemModifier, ItemModifierClass, ItemPredicate, JukeboxSong, JukeboxSongClass, Label, LabelClass, Language, LanguageClass, LootTable, LootTableClass, MCFunction, MCFunctionClass, Macro, Model, ModelClass, NBT, NBTAnyValue, NBTByte, NBTByteArray, NBTClass, NBTDouble, NBTFloat, NBTInt, NBTIntArray, NBTLong, NBTLongArray, NBTPrimitive, NBTShort, NBTString, NBTTypedArray, NotNBT, Objective, ObjectiveClass, ParticleClass, ParticleResource, PlainText, PostEffect, PostEffectClass, Predicate, PredicateClass, RawResource, Recipe, RecipeClass, ResolveNBT, ResolveNBTPart, ResolvedNBT, SandstonePack, Score, Selector, SelectorClass, Set, Shader, SoundEvent, SoundEventClass, StructureClass, Tag, TagClass, TestEnvironment, TestEnvironmentClass, TestInstance, TestInstanceClass, Texture, TextureClass, Timeline, TimelineClass, TradeSet, TradeSetClass, TrialSpawner, TrialSpawnerClass, Trigger, TrimMaterial, TrimMaterialClass, TrimPattern, TrimPatternClass, UUID, UUIDClass, Variable, Variant, VariantClass, VillagerTrade, VillagerTradeClass, WaypointStyle, WaypointStyleClass, WorldClock, WorldClockClass, _, abs, absolute, advancement, attribute, bossbar, clear, clone, comment, createSandstonePack, damage, data, datapack, debug, defaultNamespace, defaultgamemode, depend, dialog, difficulty, effect, enchant, execute, experience, fill, fillbiome, flowVariable, forceload, functionCmd, gamemode, gamerule, getExistingResource, getSandstoneContext, getTempStorage, getVanillaResource, give, hasContext, help, item, jfr, kill, list, loadTags, loc, local, locate, loot, makeCustomResource, mcMetaCache, me, msg, nbtResolver, particle, perf, place, playsound, random, randomUUID, raw, recipe, rel, relative, reload, resetContext, resetSandstonePack, returnCmd, ride, rotate, sandstonePack, say, schedule, scoreboard, seed, setSandstoneContext, setblock, setidletimeout, setworldspawn, sleep, spawnpoint, spectate, spreadplayers, stopsound, stopwatch, summon, swing, tag, team, teammsg, teleport, tell, tellraw, test, time, title, tm, tp, transfer, trigger, version, w, waypoint, weather, worldborder, xp } from '../_internal/index.js'
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sandstone",
|
|
3
3
|
"description": "Sandstone, a Typescript library for Minecraft datapacks & resource packs.",
|
|
4
|
-
"version": "1.0.0
|
|
4
|
+
"version": "1.0.0",
|
|
5
5
|
"contributors": [
|
|
6
6
|
{
|
|
7
7
|
"name": "TheMrZZ - Florian ERNST",
|
|
@@ -17,34 +17,33 @@
|
|
|
17
17
|
"url": "https://github.com/sandstone-mc/sandstone/issues"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@sinclair/typebox": "^0.31.
|
|
20
|
+
"@sinclair/typebox": "^0.31.28",
|
|
21
21
|
"@smithed-mc/data-types": "^0.1.2",
|
|
22
22
|
"@types/nearley": "^2.11.5",
|
|
23
|
-
"@types/node": "24",
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"lodash": "^4.17.21",
|
|
28
|
-
"nanoid": "^3.3.6",
|
|
23
|
+
"@types/node": "^24.13.2",
|
|
24
|
+
"adm-zip": "^0.5.17",
|
|
25
|
+
"fs-extra": "^11.3.5",
|
|
26
|
+
"lodash": "^4.18.1",
|
|
29
27
|
"nearley": "^2.20.1",
|
|
30
28
|
"node-fetch": "^3.3.2",
|
|
31
|
-
"prismarine-nbt": "^2.
|
|
32
|
-
"semver": "^7.5
|
|
29
|
+
"prismarine-nbt": "^2.8.0",
|
|
30
|
+
"semver": "^7.8.5"
|
|
33
31
|
},
|
|
34
32
|
"devDependencies": {
|
|
35
33
|
"@ampproject/remapping": "^2.3.0",
|
|
36
34
|
"@parcel/watcher": "^2.5.6",
|
|
37
35
|
"@sandstone-mc/mcdoc-ts-generator": "^0.2.0",
|
|
38
|
-
"@stylistic/eslint-plugin": "^5.
|
|
39
|
-
"@types/adm-zip": "^0.5.
|
|
40
|
-
"@types/fs-extra": "^11.0.
|
|
41
|
-
"@types/lodash": "^4.
|
|
42
|
-
"@types/semver": "^7.
|
|
43
|
-
"@typescript/
|
|
36
|
+
"@stylistic/eslint-plugin": "^5.10.0",
|
|
37
|
+
"@types/adm-zip": "^0.5.8",
|
|
38
|
+
"@types/fs-extra": "^11.0.4",
|
|
39
|
+
"@types/lodash": "^4.17.24",
|
|
40
|
+
"@types/semver": "^7.7.1",
|
|
41
|
+
"@typescript/analyze-trace": "^0.11.1",
|
|
42
|
+
"@typescript/native-preview": "^7.0.0-dev.20260628.1",
|
|
44
43
|
"magic-string": "^0.30.21",
|
|
45
|
-
"oxlint": "^1.
|
|
44
|
+
"oxlint": "^1.71.0",
|
|
46
45
|
"source-map-js": "^1.2.1",
|
|
47
|
-
"typescript": "^
|
|
46
|
+
"typescript": "^6.0.3"
|
|
48
47
|
},
|
|
49
48
|
"directories": {
|
|
50
49
|
"lib": "src"
|
|
@@ -90,6 +89,11 @@
|
|
|
90
89
|
"import": "./dist/exports/index.js",
|
|
91
90
|
"default": "./dist/exports/index.js"
|
|
92
91
|
},
|
|
92
|
+
"./browser": {
|
|
93
|
+
"types": "./dist/exports/index.d.ts",
|
|
94
|
+
"import": "./dist/browser/sandstone.esm.js",
|
|
95
|
+
"default": "./dist/browser/sandstone.esm.js"
|
|
96
|
+
},
|
|
93
97
|
"./arguments": {
|
|
94
98
|
"types": "./dist/exports/arguments/index.d.ts",
|
|
95
99
|
"import": "./dist/exports/arguments/index.js",
|
package/src/arguments/coords.ts
CHANGED
|
@@ -1,28 +1,25 @@
|
|
|
1
|
-
import type { Macroable
|
|
1
|
+
import type { Macroable } from 'sandstone/core'
|
|
2
2
|
import type { VectorClass } from 'sandstone/variables'
|
|
3
3
|
|
|
4
|
-
type AbsoluteFloat<MACRO extends boolean = false> =
|
|
5
|
-
type RelativeFloat<MACRO extends boolean = false> =
|
|
6
|
-
type LocalFloat<MACRO extends boolean = false> =
|
|
7
|
-
type AbsoluteOrRelativeFloat<MACRO extends boolean = false> = AbsoluteFloat<MACRO> | RelativeFloat
|
|
4
|
+
type AbsoluteFloat<MACRO extends boolean = false> = Macroable<`${number}` | number, MACRO>
|
|
5
|
+
type RelativeFloat<MACRO extends boolean = false> = Macroable<`~${number | ''}`, MACRO>
|
|
6
|
+
type LocalFloat<MACRO extends boolean = false> = Macroable<`^${number | ''}`, MACRO>
|
|
7
|
+
type AbsoluteOrRelativeFloat<MACRO extends boolean = false> = AbsoluteFloat<MACRO> | RelativeFloat
|
|
8
8
|
|
|
9
|
-
type AbsoluteVec3<MACRO extends boolean = false> =
|
|
10
|
-
`${AbsoluteFloat<MACRO>} ${AbsoluteFloat<MACRO>} ${AbsoluteFloat<MACRO>}`
|
|
9
|
+
type AbsoluteVec3<MACRO extends boolean = false> = Macroable<`${number} ${number} ${number}`, MACRO>
|
|
11
10
|
|
|
12
11
|
type AbsoluteOrRelativeVec3<MACRO extends boolean = false> =
|
|
13
|
-
|
|
14
|
-
type LocalVec3<MACRO extends boolean = false> =
|
|
12
|
+
Macroable<`${number | RelativeFloat} ${number | RelativeFloat} ${number | RelativeFloat}`, MACRO>
|
|
13
|
+
type LocalVec3<MACRO extends boolean = false> = Macroable<`${LocalFloat} ${LocalFloat} ${LocalFloat}`, MACRO>
|
|
15
14
|
|
|
16
15
|
type AbsoluteOrRelativeVec2<MACRO extends boolean = false> =
|
|
17
|
-
|
|
18
|
-
type LocalVec2<MACRO extends boolean = false> =
|
|
19
|
-
|
|
20
|
-
type AbsoluteVectorArrayComponent<MACRO extends boolean = false> = Macroable<AbsoluteFloat<MACRO> | number, MACRO>
|
|
16
|
+
Macroable<`${AbsoluteOrRelativeFloat} ${AbsoluteOrRelativeFloat}`, MACRO>
|
|
17
|
+
type LocalVec2<MACRO extends boolean = false> = Macroable<`${LocalFloat} ${LocalFloat}`, MACRO>
|
|
21
18
|
|
|
22
19
|
type VectorArrayComponent<MACRO extends boolean = false> = Macroable<AbsoluteOrRelativeFloat<MACRO> | LocalFloat<MACRO> | number, MACRO>
|
|
23
20
|
|
|
24
21
|
export type AbsoluteCoordinates<MACRO extends boolean = false> =
|
|
25
|
-
| [x:
|
|
22
|
+
| [x: AbsoluteFloat<MACRO>, y: AbsoluteFloat<MACRO>, z: AbsoluteFloat<MACRO>]
|
|
26
23
|
| VectorClass<[string, string, string]>
|
|
27
24
|
| AbsoluteVec3<MACRO>
|
|
28
25
|
|
|
@@ -21,7 +21,7 @@ export type OBJECTIVE_CRITERIA = (
|
|
|
21
21
|
'trigger' |
|
|
22
22
|
'xp' |
|
|
23
23
|
`killedByTeam.${DyeColor}` |
|
|
24
|
-
`
|
|
24
|
+
`teamkill.${DyeColor}` |
|
|
25
25
|
`minecraft.${'broken' | 'crafted' | 'dropped' | 'picked_up' | 'used'}:minecraft.${SetType<typeof ITEMS_SET>}` |
|
|
26
26
|
`minecraft.custom:minecraft.${SetType<typeof CUSTOM_STATS_SET>}` |
|
|
27
27
|
`minecraft.${'killed' | 'killed_by'}:minecraft.${SetType<typeof ENTITY_TYPES_SET>}` |
|
package/src/arguments/range.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Macroable } from 'sandstone/core'
|
|
2
2
|
|
|
3
3
|
export type Range<MACRO extends boolean = false> =
|
|
4
|
-
|
|
|
4
|
+
| Macroable<number, MACRO>
|
|
5
5
|
| `${number}`
|
|
6
|
-
| `${
|
|
7
|
-
| `${
|
|
8
|
-
| `..${
|
|
9
|
-
| [min:
|
|
10
|
-
| [min:
|
|
11
|
-
| [min: null | undefined, max:
|
|
12
|
-
| [min:
|
|
6
|
+
| `${number}..`
|
|
7
|
+
| `${number}..${number}`
|
|
8
|
+
| `..${number}`
|
|
9
|
+
| [min: Macroable<number, MACRO>, max: Macroable<number, MACRO>]
|
|
10
|
+
| [min: Macroable<number, MACRO>, max: null | undefined]
|
|
11
|
+
| [min: null | undefined, max: Macroable<number, MACRO>]
|
|
12
|
+
| [min: Macroable<number, MACRO>]
|
package/src/commands/commands.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import type { SandstonePack } from 'sandstone/pack'
|
|
2
|
-
import { PlaceCommand } from './implementations/block/place'
|
|
3
|
-
import { DamageCommand } from './implementations/entity/damage'
|
|
4
2
|
import {
|
|
5
3
|
AdvancementCommand,
|
|
6
4
|
AttributeCommand,
|
|
@@ -8,6 +6,7 @@ import {
|
|
|
8
6
|
ClearCommand,
|
|
9
7
|
CloneCommand,
|
|
10
8
|
CommentCommand,
|
|
9
|
+
DamageCommand,
|
|
11
10
|
DataCommand,
|
|
12
11
|
DataPackCommand,
|
|
13
12
|
DebugCommand,
|
|
@@ -35,7 +34,9 @@ import {
|
|
|
35
34
|
MeCommand,
|
|
36
35
|
ParticleCommand,
|
|
37
36
|
PerfCommand,
|
|
37
|
+
PlaceCommand,
|
|
38
38
|
PlaySoundCommand,
|
|
39
|
+
RandomCommand,
|
|
39
40
|
RawCommand,
|
|
40
41
|
RecipeCommand,
|
|
41
42
|
ReloadCommand,
|
|
@@ -72,7 +73,6 @@ import {
|
|
|
72
73
|
WeatherCommand,
|
|
73
74
|
WorldBorderCommand,
|
|
74
75
|
} from './implementations'
|
|
75
|
-
import { RandomCommand } from './implementations/server/random'
|
|
76
76
|
|
|
77
77
|
function bind<CLASS, METHOD extends string>(pack: SandstonePack, _class: CLASS, method: METHOD) {
|
|
78
78
|
/* @ts-ignore */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Coordinates, NBTObject, SymbolBlock, SymbolMcdocBlockStates } from 'sandstone/arguments'
|
|
2
2
|
import type { Macroable, TagClass } from 'sandstone/core'
|
|
3
3
|
import { CommandNode } from 'sandstone/core/nodes'
|
|
4
|
-
import { coordinatesParser,
|
|
4
|
+
import { coordinatesParser, nbtResolver } from 'sandstone/variables'
|
|
5
5
|
import { CommandArguments, type FinalCommandOutput } from '../../helpers'
|
|
6
6
|
import type { Registry } from 'sandstone/arguments/generated/registry'
|
|
7
7
|
import { blockStateStringifier, type BlockEntity, type BlockStatic, type ParseBlockState } from './setblock'
|
|
@@ -82,7 +82,7 @@ export class FillCommand<MACRO extends boolean> extends CommandArguments {
|
|
|
82
82
|
nbt?: NBTObject,
|
|
83
83
|
): FillArgumentsCommand<MACRO> {
|
|
84
84
|
const stateStr = state && Object.keys(state).length > 0 ? blockStateStringifier(state) : ''
|
|
85
|
-
const nbtStr = nbt ?
|
|
85
|
+
const nbtStr = nbt ? nbtResolver(nbt).toString() : ''
|
|
86
86
|
const blockArg = `${block}${stateStr}${nbtStr}`
|
|
87
87
|
|
|
88
88
|
return this.subCommand([coordinatesParser(from), coordinatesParser(to), blockArg], FillArgumentsCommand<MACRO>, true)
|
|
@@ -236,7 +236,7 @@ export class FillArgumentsCommand<MACRO extends boolean> extends CommandArgument
|
|
|
236
236
|
return this.finalCommand(['replace'])
|
|
237
237
|
}
|
|
238
238
|
const stateStr = filterState && Object.keys(filterState).length > 0 ? blockStateStringifier(filterState) : ''
|
|
239
|
-
const nbtStr = filterNbt ?
|
|
239
|
+
const nbtStr = filterNbt ? nbtResolver(filterNbt).toString() : ''
|
|
240
240
|
return this.subCommand(['replace', `${filter}${stateStr}${nbtStr}`], FillReplaceFilterCommand, true)
|
|
241
241
|
}
|
|
242
242
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Coordinates, NBTObject, SymbolBlock, SymbolMcdocBlockStates } from 'sandstone/arguments'
|
|
2
2
|
import type { Macroable } from 'sandstone/core'
|
|
3
3
|
import { CommandNode } from 'sandstone/core/nodes'
|
|
4
|
-
import { coordinatesParser,
|
|
4
|
+
import { coordinatesParser, nbtResolver } from 'sandstone/variables'
|
|
5
5
|
import type { FinalCommandOutput } from '../../helpers'
|
|
6
6
|
import { CommandArguments } from '../../helpers'
|
|
7
7
|
import type { Registry } from 'sandstone/arguments/generated/registry'
|
|
@@ -158,7 +158,7 @@ export class SetBlockCommand<MACRO extends boolean> extends CommandArguments {
|
|
|
158
158
|
: blockStateStringifier(arg3 as any as Record<string, string | number | boolean>)
|
|
159
159
|
const nbt = typeof arg4 === 'string' || arg4 === undefined ?
|
|
160
160
|
''
|
|
161
|
-
:
|
|
161
|
+
: nbtResolver(arg4 as any as NBTObject).toString()
|
|
162
162
|
const setblockType = typeof arg4 === 'string' ? arg4 : arg5
|
|
163
163
|
|
|
164
164
|
return this.finalCommand([coordinatesParser(pos), `${block}${state}${nbt}`, setblockType])
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { MultiplePlayersArgumentOf } from 'sandstone/arguments'
|
|
2
2
|
import type { Macroable, TagClass } from 'sandstone/core'
|
|
3
|
+
import { isMacroArgument } from 'sandstone/core/Macro'
|
|
3
4
|
import { CommandNode } from 'sandstone/core/nodes'
|
|
4
5
|
import type { ItemPredicateClass } from 'sandstone/variables/ItemPredicate'
|
|
5
6
|
import { targetParser } from 'sandstone/variables/parsers'
|
|
@@ -97,6 +98,9 @@ export class ClearCommand<MACRO extends boolean> extends CommandArguments {
|
|
|
97
98
|
itemOrPredicate?: Macroable<Registry['minecraft:item'] | TagClass<'item'>, MACRO> | ItemPredicateClass,
|
|
98
99
|
maxCount?: Macroable<number, MACRO>,
|
|
99
100
|
) {
|
|
100
|
-
|
|
101
|
+
const itemArg = isMacroArgument(this.sandstoneCore, itemOrPredicate)
|
|
102
|
+
? itemOrPredicate
|
|
103
|
+
: `${itemOrPredicate}`
|
|
104
|
+
return this.finalCommand([targetParser(targets), itemArg, maxCount])
|
|
101
105
|
}
|
|
102
106
|
}
|
|
@@ -33,7 +33,7 @@ import type { DataPointClass } from 'sandstone/variables/Data'
|
|
|
33
33
|
import type { ObjectiveClass } from 'sandstone/variables/Objective'
|
|
34
34
|
import type { ItemPredicateClass } from 'sandstone/variables/ItemPredicate'
|
|
35
35
|
import { coordinatesParser, rangeParser, rotationParser, targetParser } from 'sandstone/variables/parsers'
|
|
36
|
-
import {
|
|
36
|
+
import { nbtResolver } from 'sandstone/variables'
|
|
37
37
|
import type { Score } from 'sandstone/variables/Score'
|
|
38
38
|
import { CommandArguments, FinalCommandOutput } from '../../helpers'
|
|
39
39
|
import { FunctionCommandNode } from '../server/function'
|
|
@@ -208,6 +208,10 @@ export class ExecuteCommandNode extends ContainerCommandNode<SubCommand[]> {
|
|
|
208
208
|
}
|
|
209
209
|
|
|
210
210
|
createMCFunction = (currentMCFunction: MCFunctionNode | null) => {
|
|
211
|
+
if (this.createdMCFunction) {
|
|
212
|
+
// This is sus, but was needed. Ideally createMCFunction wouldn't be called multiple times at all.
|
|
213
|
+
return { node: this as ExecuteCommandNode, mcFunction: this.createdMCFunction.node }
|
|
214
|
+
}
|
|
211
215
|
if (this.isSingleExecute || !currentMCFunction) {
|
|
212
216
|
return { node: this as ExecuteCommandNode }
|
|
213
217
|
}
|
|
@@ -297,10 +301,27 @@ export class ExecuteStoreArgsCommand<MACRO extends boolean> extends ExecuteComma
|
|
|
297
301
|
*
|
|
298
302
|
* @param objective A scoreboard objective.
|
|
299
303
|
*/
|
|
300
|
-
score
|
|
301
|
-
targets: Macroable<MultipleEntitiesArgument<MACRO>, MACRO>,
|
|
302
|
-
objective: Macroable<ObjectiveArgument, MACRO
|
|
303
|
-
)
|
|
304
|
+
score(
|
|
305
|
+
targets: Macroable<MultipleEntitiesArgument<MACRO>, MACRO>,
|
|
306
|
+
objective: Macroable<ObjectiveArgument, MACRO>,
|
|
307
|
+
): ExecuteCommand<MACRO>
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Overrides the given score with the final command's return value.
|
|
311
|
+
*
|
|
312
|
+
* @param score The score to override.
|
|
313
|
+
*/
|
|
314
|
+
score(score: Score): ExecuteCommand<MACRO>
|
|
315
|
+
|
|
316
|
+
score(...args: any[]) {
|
|
317
|
+
const finalArgs: SubCommand = ['score']
|
|
318
|
+
if (isScore(args[0])) {
|
|
319
|
+
finalArgs.push(args[0].target, args[0].objective.name)
|
|
320
|
+
} else {
|
|
321
|
+
finalArgs.push(targetParser(args[0]), args[1])
|
|
322
|
+
}
|
|
323
|
+
return this.nestedExecute(finalArgs)
|
|
324
|
+
}
|
|
304
325
|
|
|
305
326
|
/**
|
|
306
327
|
* Uses the `path` within storage `target` to store the return value in.
|
|
@@ -551,7 +572,7 @@ export class ExecuteIfUnlessCommand<MACRO extends boolean> extends ExecuteComman
|
|
|
551
572
|
const stateStr = state && typeof state === 'object' && Object.keys(state).length > 0
|
|
552
573
|
? blockStateStringifier(state as Record<string, string | number | boolean>)
|
|
553
574
|
: ''
|
|
554
|
-
const nbtStr = nbt ?
|
|
575
|
+
const nbtStr = nbt ? nbtResolver(nbt as NBTObject).toString() : ''
|
|
555
576
|
return this.nestedExecute(['block', coordinatesParser(pos), `${block}${stateStr}${nbtStr}`], true)
|
|
556
577
|
}
|
|
557
578
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Coordinates, RootNBT, SymbolEntity } from 'sandstone/arguments'
|
|
2
2
|
import type { Macroable } from 'sandstone/core'
|
|
3
3
|
import { CommandNode } from 'sandstone/core/nodes'
|
|
4
|
-
import {
|
|
4
|
+
import { nbtResolver } from 'sandstone/variables/nbt/NBTs'
|
|
5
5
|
import { coordinatesParser } from 'sandstone/variables/parsers'
|
|
6
6
|
import { CommandArguments } from '../../helpers'
|
|
7
7
|
import type { Registry } from 'sandstone/arguments/generated/registry'
|
|
@@ -65,7 +65,7 @@ export class SummonCommand<MACRO extends boolean> extends CommandArguments {
|
|
|
65
65
|
args.push(coordinatesParser(pos))
|
|
66
66
|
}
|
|
67
67
|
if (nbt !== undefined) {
|
|
68
|
-
args.push(
|
|
68
|
+
args.push(nbtResolver(nbt as RootNBT))
|
|
69
69
|
}
|
|
70
70
|
return this.finalCommand(args)
|
|
71
71
|
}
|
|
@@ -4,7 +4,7 @@ import type { DIALOGS } from 'sandstone/arguments/generated/_registry/dialogs'
|
|
|
4
4
|
import type { DialogClass, Macroable } from 'sandstone/core'
|
|
5
5
|
import { CommandNode } from 'sandstone/core/nodes'
|
|
6
6
|
import { ResourceClass } from 'sandstone/core/resources/resource'
|
|
7
|
-
import {
|
|
7
|
+
import { nbtResolver } from 'sandstone/variables'
|
|
8
8
|
import { targetParser } from 'sandstone/variables/parsers'
|
|
9
9
|
import { CommandArguments, type FinalCommandOutput } from '../../helpers'
|
|
10
10
|
|
|
@@ -31,7 +31,7 @@ export class DialogCommand<MACRO extends boolean> extends CommandArguments {
|
|
|
31
31
|
): FinalCommandOutput {
|
|
32
32
|
const dialogArg = typeof dialog === 'string' || dialog instanceof ResourceClass
|
|
33
33
|
? dialog
|
|
34
|
-
:
|
|
34
|
+
: nbtResolver(dialog as Dialog)
|
|
35
35
|
return this.finalCommand(['show', targetParser(targets), dialogArg])
|
|
36
36
|
}
|
|
37
37
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { MultiplePlayersArgumentOf, RootNBT, SymbolDataComponent } from 'sandstone/arguments'
|
|
2
2
|
import type { Macroable } from 'sandstone/core'
|
|
3
3
|
import { CommandNode } from 'sandstone/core'
|
|
4
|
-
import {
|
|
4
|
+
import { nbtResolver, targetParser } from 'sandstone/variables'
|
|
5
5
|
import type { FinalCommandOutput } from '../../helpers'
|
|
6
6
|
import { CommandArguments } from '../../helpers'
|
|
7
7
|
import type { Registry } from 'sandstone/arguments/generated/registry'
|
|
@@ -131,7 +131,7 @@ export function componentPatchStringifier(components: Record<string, RootNBT | R
|
|
|
131
131
|
throw new Error(`Attempted to insert a negation component patch of ${key} with a value, use {} instead.`)
|
|
132
132
|
}
|
|
133
133
|
} else {
|
|
134
|
-
resultPairs.push(`${key}=${
|
|
134
|
+
resultPairs.push(`${key}=${nbtResolver(value).toString()}`)
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
137
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Coordinates, MultiplePlayersArgumentOf, RootNBT, SymbolParticle, Registry, AbsoluteCoordinates } from 'sandstone/arguments'
|
|
2
2
|
import type { Macroable } from 'sandstone/core'
|
|
3
3
|
import { CommandNode } from 'sandstone/core/nodes'
|
|
4
|
-
import { coordinatesParser,
|
|
4
|
+
import { coordinatesParser, nbtResolver, VectorClass } from 'sandstone/variables'
|
|
5
5
|
import type { FinalCommandOutput } from '../../helpers'
|
|
6
6
|
import { CommandArguments } from '../../helpers'
|
|
7
7
|
|
|
@@ -132,7 +132,7 @@ export class ParticleCommand<MACRO extends boolean> extends CommandArguments {
|
|
|
132
132
|
|
|
133
133
|
// Destructure args based on whether options are present
|
|
134
134
|
const [particleName, pos, delta, speed, count, mode, viewers] = hasOptions
|
|
135
|
-
? [`${name}${
|
|
135
|
+
? [`${name}${nbtResolver(arg2 as RootNBT)}`, arg3, arg4, arg5, arg6, arg7, arg8]
|
|
136
136
|
: [name, arg2, arg3, arg4, arg5, arg6, arg7]
|
|
137
137
|
|
|
138
138
|
return this.finalCommand([
|
|
@@ -3,6 +3,7 @@ import { ContainerCommandNode } from 'sandstone/core/nodes'
|
|
|
3
3
|
import { CommandArguments } from '../../helpers'
|
|
4
4
|
import type { TagClass } from 'sandstone/core/resources/datapack/tag'
|
|
5
5
|
import type { Macroable, MCFunctionClass, MCFunctionNode, Node } from 'sandstone/core'
|
|
6
|
+
import { isMacroArgument } from 'sandstone/core/Macro'
|
|
6
7
|
|
|
7
8
|
type DebugFunction = string | TagClass<'function'> | MCFunctionClass<any, any> | (() => any | Promise<any>)
|
|
8
9
|
|
|
@@ -90,6 +91,10 @@ export class DebugCommand<MACRO extends boolean> extends CommandArguments<typeof
|
|
|
90
91
|
return this.finalCommand(['function', undefined], node)
|
|
91
92
|
}
|
|
92
93
|
|
|
93
|
-
|
|
94
|
+
const funcArg = isMacroArgument(this.sandstoneCore, func)
|
|
95
|
+
? func
|
|
96
|
+
: `${func}`
|
|
97
|
+
|
|
98
|
+
return this.finalCommand(['function', funcArg], node)
|
|
94
99
|
}
|
|
95
100
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { RootNBT } from 'sandstone/arguments/nbt'
|
|
2
2
|
import type { DataPointPickClass, Macroable, MCFunctionClass } from 'sandstone/core'
|
|
3
|
+
import { isMacroArgument } from 'sandstone/core/Macro'
|
|
3
4
|
import { CommandNode } from 'sandstone/core/nodes'
|
|
4
5
|
import type { TagClass } from 'sandstone/core/resources/datapack/tag'
|
|
5
6
|
import type { DATA_TYPES, DataPointClass } from 'sandstone/variables'
|
|
6
|
-
import {
|
|
7
|
+
import { nbtResolver } from 'sandstone/variables/nbt/NBTs'
|
|
7
8
|
import type { FinalCommandOutput } from '../../helpers'
|
|
8
9
|
import { CommandArguments } from '../../helpers'
|
|
9
10
|
|
|
@@ -78,10 +79,14 @@ export class FunctionCommand<MACRO extends boolean> extends CommandArguments {
|
|
|
78
79
|
args.push(point.type, point.currentTarget, point.path)
|
|
79
80
|
}
|
|
80
81
|
} else {
|
|
81
|
-
args.push(typeof params === 'object' && params.toMacro ? params :
|
|
82
|
+
args.push(typeof params === 'object' && params.toMacro ? params : nbtResolver(params))
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
85
|
|
|
85
|
-
|
|
86
|
+
const mcFunctionArg = isMacroArgument(this.sandstoneCore, mcFunction)
|
|
87
|
+
? mcFunction
|
|
88
|
+
: `${mcFunction}`
|
|
89
|
+
|
|
90
|
+
return this.finalCommand([mcFunctionArg, ...args])
|
|
86
91
|
}
|
|
87
92
|
}
|
|
@@ -2,8 +2,63 @@
|
|
|
2
2
|
|
|
3
3
|
import type { SymbolGameRule } from 'sandstone/arguments'
|
|
4
4
|
import type { Macroable } from 'sandstone/core'
|
|
5
|
+
import type { NBTInt } from 'sandstone/variables/nbt/NBTs'
|
|
6
|
+
import type { PositiveWholeNumber, NegativeWholeNumber, SmartRange, IsNegative, ToNegative, PositiveRange, Abs, Enumerate, WholeNumber } from 'sandstone/utils'
|
|
5
7
|
import { CommandNode } from 'sandstone/core/nodes'
|
|
6
|
-
import { CommandArguments } from '../../helpers'
|
|
8
|
+
import { CommandArguments, FinalCommandOutput } from '../../helpers'
|
|
9
|
+
|
|
10
|
+
declare const RangeSymbol: unique symbol;
|
|
11
|
+
|
|
12
|
+
export type Inf = 1e999
|
|
13
|
+
export type NegativeInf = -1e999
|
|
14
|
+
|
|
15
|
+
export type RangedInt<Min, Max = Inf> = number & {
|
|
16
|
+
readonly [RangeSymbol]?: [Min, Max],
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export type RangeError<Message extends string> = Message & { readonly __brand: "RangeError" }
|
|
20
|
+
|
|
21
|
+
export type ExtractNBTIntRange<T, V extends number> = (
|
|
22
|
+
T extends NBTInt<infer Range>
|
|
23
|
+
? [number] extends [V]
|
|
24
|
+
? // --- Display Mode ---
|
|
25
|
+
Range extends { min: infer Min extends number; max: infer Max extends number } ? RangedInt<Min, Max>
|
|
26
|
+
: Range extends { max: infer Max extends number } ? RangedInt<NegativeInf, Max>
|
|
27
|
+
: Range extends { min: infer Min extends number } ? RangedInt<Min, Inf>
|
|
28
|
+
: RangedInt<NegativeInf, Inf>
|
|
29
|
+
|
|
30
|
+
: // --- Validation Mode ---
|
|
31
|
+
V extends WholeNumber<V>
|
|
32
|
+
? ( // Nested check for boundaries
|
|
33
|
+
Range extends { min: infer Min extends number; max: infer Max extends number }
|
|
34
|
+
? (V extends SmartRange<Min, Max> ? V : RangeError<`Error: ${V} is out of bounds (${Min}..${Max})`>)
|
|
35
|
+
: Range extends { max: infer Max extends number }
|
|
36
|
+
? (IsNegative<Max> extends true
|
|
37
|
+
? (V extends NegativeWholeNumber<V>
|
|
38
|
+
? (`${V}` extends `-${infer AbsV extends number}`
|
|
39
|
+
? (AbsV extends Enumerate<Abs<Max>> ? RangeError<`Error: Value must be <= ${Max}`> : V)
|
|
40
|
+
: V)
|
|
41
|
+
: RangeError<`Error: Value must be <= ${Max}`>)
|
|
42
|
+
: (V extends (NegativeWholeNumber<V> | 0 | PositiveRange<1, Max>)
|
|
43
|
+
? V
|
|
44
|
+
: RangeError<`Error: ${V} must be <= ${Max}`>))
|
|
45
|
+
: Range extends { min: infer Min extends number }
|
|
46
|
+
? (IsNegative<Min> extends true
|
|
47
|
+
? (V extends (ToNegative<PositiveRange<1, Abs<Min>>> | 0 | PositiveWholeNumber<V>)
|
|
48
|
+
? V
|
|
49
|
+
: RangeError<`Error: Value must be >= ${Min}`>)
|
|
50
|
+
: (V extends 0
|
|
51
|
+
? (Min extends 0 ? 0 : RangeError<`Error: Value must be >= ${Min}`>)
|
|
52
|
+
: V extends PositiveWholeNumber<V>
|
|
53
|
+
? (`${V}` extends `${infer VN extends number}`
|
|
54
|
+
? (VN extends Enumerate<Min> ? RangeError<`Error: Value must be >= ${Min}`> : V)
|
|
55
|
+
: V)
|
|
56
|
+
: RangeError<`Error: Value must be >= ${Min}`>))
|
|
57
|
+
: V // Fallback for NBTInt<{}> (V is already verified as WholeNumber)
|
|
58
|
+
)
|
|
59
|
+
: RangeError<`Error: ${V} must be a whole number (no decimals allowed)`>
|
|
60
|
+
: T
|
|
61
|
+
)
|
|
7
62
|
|
|
8
63
|
// Gamerule command
|
|
9
64
|
|
|
@@ -23,7 +78,7 @@ export class GameRuleCommand<MACRO extends boolean> extends CommandArguments {
|
|
|
23
78
|
*
|
|
24
79
|
* @param value Optional value to set. If not specified, queries current value.
|
|
25
80
|
* Boolean rules: true/false
|
|
26
|
-
* Numeric rules: integer
|
|
81
|
+
* Numeric rules: integer
|
|
27
82
|
*
|
|
28
83
|
* @example
|
|
29
84
|
* ```ts
|
|
@@ -35,7 +90,24 @@ export class GameRuleCommand<MACRO extends boolean> extends CommandArguments {
|
|
|
35
90
|
*/
|
|
36
91
|
gamerule<RULE extends Macroable<keyof SymbolGameRule | `${string}:${string}`, MACRO>>(
|
|
37
92
|
gamerule: RULE,
|
|
38
|
-
|
|
93
|
+
): FinalCommandOutput
|
|
94
|
+
|
|
95
|
+
gamerule<
|
|
96
|
+
RULE extends Macroable<keyof SymbolGameRule | (`${string}:${string}` & {}), MACRO>,
|
|
97
|
+
// 1. Keep V as a broad number to avoid early constraint errors
|
|
98
|
+
V extends (RULE extends keyof SymbolGameRule ? number | boolean : number | boolean)
|
|
99
|
+
>(
|
|
100
|
+
gamerule: RULE,
|
|
101
|
+
value: RULE extends keyof SymbolGameRule
|
|
102
|
+
? (SymbolGameRule[RULE] extends NBTInt<any>
|
|
103
|
+
? ExtractNBTIntRange<SymbolGameRule[RULE], V & number>
|
|
104
|
+
: Macroable<SymbolGameRule[RULE], MACRO>)
|
|
105
|
+
: V,
|
|
106
|
+
): FinalCommandOutput
|
|
107
|
+
|
|
108
|
+
gamerule(
|
|
109
|
+
gamerule: any,
|
|
110
|
+
value?: any,
|
|
39
111
|
) {
|
|
40
112
|
return this.finalCommand([gamerule, value])
|
|
41
113
|
}
|
|
@@ -16,14 +16,14 @@ export class RandomCommand<MACRO extends boolean> extends CommandArguments {
|
|
|
16
16
|
* Generate random number for command results.
|
|
17
17
|
*
|
|
18
18
|
* @param range Number range for random generation.
|
|
19
|
-
* Examples:
|
|
19
|
+
* Examples: [null, 10], [5, 15], 20
|
|
20
20
|
*
|
|
21
21
|
* @param sequence Random sequence identifier for reproducible results.
|
|
22
22
|
* Examples: 'my_sequence', 'mypack:dice', 'combat_rng'
|
|
23
23
|
*
|
|
24
24
|
* @example
|
|
25
25
|
* ```ts
|
|
26
|
-
* random.value(
|
|
26
|
+
* random.value([1, 6], 'dice') // D6 roll
|
|
27
27
|
* random.value([10, 20], 'damage_roll') // 10-20 damage
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
@@ -43,7 +43,7 @@ export class RandomCommand<MACRO extends boolean> extends CommandArguments {
|
|
|
43
43
|
*
|
|
44
44
|
* @example
|
|
45
45
|
* ```ts
|
|
46
|
-
* random.roll(
|
|
46
|
+
* random.roll([null, 100]) // roll for a number under 100
|
|
47
47
|
* random.roll([1, 20], 'public_dice') // D20 with sequence
|
|
48
48
|
* ```
|
|
49
49
|
*/
|