Skip to content

Shell Rewrite + Better Commands + Command Argument Parsing #266

Open
@Sh-wayz

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Labels

EnhancementNew feature, request, or thing

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions