Skip to content

disabled commands fails to unregister commands, blocking vanilla rich tab-completion (selectors/UUIDs) #6528

@DereC4

Description

@DereC4

Type of bug

Other unexpected behaviour

/ess dump all output

https://essentialsx.net/dump?bytebin=LgjdZNdcYn

Error log (if applicable)

No response

Bug description

Image

In the provided image, tab complete does not show the entity's UUID without typing a minecraft: prefix in front

When adding vanilla redundant commands (like tp, kill, enchant) to the disabled-commands list in config.yml, EssentialsX fails to fully unregister the command from the server's command map.

While the Essentials functionality is disabled, the plugin remains the "owner" of the command label. This prevents the Minecraft server from sending "rich" completion packets to the client. Consequently, players cannot see entity selectors (@A, @e), coordinate hints, or entity UUIDs in the tab-complete overlay unless they explicitly use the minecraft: prefix.

If the commands are disabled, the vanilla functionality should return

Steps to reproduce

Steps to reproduce
Add tp to disabled-commands in EssentialsX config.yml.

Restart the server or reload the config.

Attempt to type /tp @ or look at a mob and type /tp to see its UUID.

Observe that only player names appear in the tab-complete list

Expected behaviour

Disabling a command in the config should ideally unregister it from the command map entirely. This would allow the vanilla Minecraft provider to take over the command, and have it function like vanilla Minecraft.

Actual behaviour

EssentialsX retains the command registration. Even if commands.yml is used to alias /tp to /minecraft:tp, the client-side UI only shows basic string/player completions, it's like the Essentials plugin is still trying to handle commands that are disabled or smth

Image

In this image, I'm using minecraft:tp. As you can see, the entity selector pops up, and even the mob's UUID is visible in the tab-complete list. This is the desired vanilla behavior.

Image

Using /tp itself results in this.

Additional Information

Even with all the suggested solutions, using commands.yml and disabling the command in the Essentials config the "rich" completion is missing. The client only sees a basic list of player names. (This happens to a lot of other commands, I'm just using /tp as an example)

Other relevant issues related (this goes beyond /tp, any vanilla command disabled still lacks full tab complete):
#6242
#2686
#2297

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug: unconfirmedPotential bugs that need replicating to verify.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions