Open
Description
Shell Rewrite
Shell Features
- If
debug_mode
is enabled in the server.yml, not recognized commands should be evaluated as python. - Maybe an option for custom shell prompts to get rid of the boring
>
. you can also use colors! - The shell should also handle the up arrow correctly like any sane shell.
- Fix all arrow-key handling.
- vi_mode.
- save history to file.
Command / Command Parsing Features
Note: For more information on commands, see here: https://wiki.vg/Command_Data
- Aliases for commands.
- A
help
command which can grab the docstring of commands added by plugins.- It should also display the args for the command(and type if the command has typehinting)
- A
send()
coroutine passed to the command which handles responding to the respective player and/or the console. - A proper object model instead of a uuid passed to the command.
- Parser which parses different types for commands, based on the typehints/annotations from
func.__annotations__
- Add ability to add custom parsers.
- Support most parsers in the below checklist.
- Parsers should be structured into classes for ease of use.
- Optional: syntax highlighting.
Vanilla Parsers
Note: Not all of these need to be implemented
-
brigadier:bool
-
brigadier:double
-
brigadier:float
-
brigadier:integer
-
brigadier:string
-
minecraft:entity
-
minecraft:game_profile
-
minecraft:block_pos
-
minecraft:column_pos
-
minecraft:vec3
-
minecraft:vec2
-
minecraft:block_state
-
minecraft:block_predicate
-
minecraft:item_stack
-
minecraft:item_predicate
-
minecraft:color
-
minecraft:component
-
minecraft:message
-
minecraft:nbt
-
minecraft:nbt_path
-
minecraft:objective
-
minecraft:objective_criteria
-
minecraft:operation
-
minecraft:particle
-
minecraft:rotation
-
minecraft:angle
-
minecraft:scoreboard_slot
-
minecraft:score_holder
-
minecraft:swizzle
-
minecraft:team
-
minecraft:item_slot
-
minecraft:resource_location
-
minecraft:mob_effect
-
minecraft:function
-
minecraft:entity_anchor
-
minecraft:range
-
minecraft:int_range
-
minecraft:float_range
-
minecraft:item_enchantment
-
minecraft:entity_summon
-
minecraft:dimension
-
minecraft:uuid
-
minecraft:nbt_tag
-
minecraft:nbt_compound_tag
-
minecraft:time
Activity