This project aims to implement Minecraft Java Edition commands in Rust. Below is a comprehensive list of commands with links to their wiki documentation.
/advancement
- Gives, removes, or checks player advancements./attribute
- Queries, adds, removes or sets an entity attribute.
/ban
- Adds player to banlist./ban-ip
- Adds IP address to banlist./banlist
- Displays banlist./bossbar
- Creates and modifies bossbars.
/damage
- Applies damage to the specified entities./data
- Gets, merges, modifies, and removes block entity, entity, and command storage NBT data./datapack
- Controls loaded data packs./debug
- Starts or stops a debugging session./defaultgamemode
- Sets the default game mode./deop
- Revokes operator status from a player./difficulty
- Sets the difficulty level.
/effect
- Adds or removes status effects./enchant
- Adds an enchantment to a player's selected item./execute
- Executes another command./experience
- Adds or removes player experience (alias for/xp
).
/fill
- Fills a region with a specific block./fillbiome
- Fills a region with a specific biome./forceload
- Forces chunks to constantly be loaded or not./function
- Runs a function.
/gamemode
- Sets a player's game mode./gamerule
- Sets or queries a game rule value./give
- Gives an item to a player.
/help
- Provides help for commands.
/item
- Manipulates items in inventories.
/jfr
- Starts or stops a JFR profiling.
/list
- Lists players on the server./locate
- Locates closest structure, biome, or point of interest./loot
- Drops items from an inventory slot onto the ground.
/me
- Displays a message about the sender./msg
- Displays a private message to other players (alias of/tell
and/w
).
/op
- Grants operator status to a player.
/pardon
- Removes entries from the banlist./pardon-ip
- Removes entries from the IP banlist./particle
- Creates particles./perf
- Captures info and metrics about the game for 10 seconds./place
- Used to place a configured feature, jigsaw, template, or structure at a given location./playsound
- Plays a sound./publish
- Opens single-player world to local network.
/random
- Draw a random value or control the random number sequence./recipe
- Gives or takes player recipes./reload
- Reloads loot tables, advancements, and functions from disk./return
- Control execution flow inside functions and change their return value./ride
- Used to make entities ride other entities, stop entities from riding, make rides evict their riders, or summon rides or riders./rotate
- Changes the rotation of an entity.
/save-all
- Saves the server to disk./save-off
- Disables automatic server saves./save-on
- Enables automatic server saves./say
- Displays a message to multiple players./schedule
- Delays the execution of a function./scoreboard
- Manages scoreboard objectives and players./seed
- Displays the world seed./setblock
- Changes a block to another block./setidletimeout
- Sets the time before idle players are kicked./setworldspawn
- Sets the world spawn./spawnpoint
- Sets the spawn point for a player./spectate
- Make one player in spectator mode spectate an entity./spreadplayers
- Teleports entities to random locations./stop
- Stops a server./stopsound
- Stops a sound./summon
- Summons an entity.
/tag
- Controls entity tags./team
- Controls teams./teammsg
- Specifies the message to send to team (alias of/tm
)./teleport
- Teleports entities (alias of/tp
)./tell
- Displays a private message to other players (alias of/msg
and/w
)./tellraw
- Displays a JSON message to players./test
- Manage and execute GameTests./tick
- Controls the tick rate of the game./time
- Changes or queries the world's game time./title
- Manages screen titles./tm
- Specifies the message to send to team (alias of/teammsg
)./tp
- Teleports entities (alias of/teleport
)./transfer
- Triggers a transfer of a player to another server./trigger
- Sets a trigger to be activated.
/w
- Displays a private message to other players (alias of/tell
and/msg
)./weather
- Sets the weather./whitelist
- Manages server whitelist./worldborder
- Manages the world border.
/xp
- Adds or removes player experience (alias of/experience
).
This project will implement these commands in Rust, focusing on creating a flexible and extensible command system. Each command will be modular and follow consistent patterns for argument parsing, validation, and execution.
- Minecraft Wiki: Commands - Main documentation page for Minecraft commands
- Command Syntax - Details on command syntax and parsing
- Argument Types - Information about different argument types
The project will organize command implementations in a modular fashion, allowing for easy extension and maintenance.
sand_commands/
├── src/
│ ├── commands/ # Command implementations
│ │ ├── advancement.rs
│ │ ├── attribute.rs
│ │ └── ...
│ ├── parser/ # Command parsing utilities
│ ├── executor/ # Command execution systems
│ └── main.rs
└── README.md