Skip to content
New issue

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

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

Already on GitHub? # 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
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Enhancement New feature, request, or thing
Projects
None yet
Development

No branches or pull requests

2 participants