Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shell Rewrite + Better Commands + Command Argument Parsing #266

Open
16 of 61 tasks
Sh-wayz opened this issue Feb 13, 2021 · 0 comments
Open
16 of 61 tasks

Shell Rewrite + Better Commands + Command Argument Parsing #266

Sh-wayz opened this issue Feb 13, 2021 · 0 comments
Assignees
Labels
Enhancement New feature, request, or thing

Comments

@Sh-wayz
Copy link
Member

Sh-wayz commented Feb 13, 2021

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
@Sh-wayz Sh-wayz added the Enhancement New feature, request, or thing label Feb 13, 2021
@Sh-wayz Sh-wayz self-assigned this Feb 13, 2021
@Iapetus-11 Iapetus-11 self-assigned this Feb 13, 2021
@Iapetus-11 Iapetus-11 changed the title Shell rewrite Shell Rewrite + Better Commands + Command Argument Parsing Feb 13, 2021
@Iapetus-11 Iapetus-11 added the Good First Issue Good for newcomers label Feb 13, 2021
@Sh-wayz Sh-wayz assigned Sh-wayz and Iapetus-11 and unassigned Iapetus-11 and Sh-wayz Feb 13, 2021
@Sh-wayz Sh-wayz removed the Good First Issue Good for newcomers label Feb 13, 2021
This was referenced Feb 25, 2021
@456dev 456dev mentioned this issue Mar 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature, request, or thing
Projects
None yet
Development

No branches or pull requests

2 participants