Remove commands from autocomplete/help list that cannot be run (#2602)

* only tabcomplete for commands the sender has permission for

* set permission defaults for spigot

* Make velocity autocomplete on arg length 0 and 1

* fix advancements perm in spigot plugin.yml and add settings perm

(whoops)

* don't show bedrock commands to java players

* modify spigot perm defaults

* censor help menu, abstract tab complete code

* Bedrock players don't get cmd argument suggestions

* update spigot plugin.yml
This commit is contained in:
Konicai 2021-10-30 21:57:54 -04:00 committed by GitHub
parent c115afba85
commit f883dfdf2c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 132 additions and 30 deletions

View file

@ -35,8 +35,8 @@ import org.geysermc.connector.command.GeyserCommand;
import org.geysermc.connector.network.session.GeyserSession;
import org.geysermc.connector.utils.LanguageUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class GeyserSpigotCommandExecutor extends CommandExecutor implements TabExecutor {
@ -78,8 +78,8 @@ public class GeyserSpigotCommandExecutor extends CommandExecutor implements TabE
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
if (args.length == 1) {
return connector.getCommandManager().getCommandNames();
return tabComplete(new SpigotCommandSender(sender));
}
return new ArrayList<>();
return Collections.emptyList();
}
}

View file

@ -73,6 +73,11 @@ public class SpigotCommandSender implements CommandSender {
return locale;
}
@Override
public boolean hasPermission(String permission) {
return handle.hasPermission(permission);
}
/**
* Set if we are on pre-1.12, and therefore {@code player.getLocale()} doesn't exist and we have to get
* {@code player.spigot().getLocale()}.

View file

@ -8,21 +8,32 @@ api-version: 1.13
commands:
geyser:
description: The main command for Geyser.
usage: /geyser help
usage: /geyser <subcommand>
permissions:
geyser.command.help:
description: Shows help for all registered commands.
geyser.command.advancement:
description: Shows the advancements of the player on the server.
geyser.command.dump:
description: Dumps Geyser debug information for bug reports.
geyser.command.list:
description: List all players connected through Geyser.
default: true
geyser.command.offhand:
description: Puts an items in your offhand.
geyser.command.reload:
description: Reloads the Geyser configurations. Kicks all players when used!
default: true
geyser.command.advancements:
description: Shows the advancements of the player on the server.
default: true
geyser.command.statistics:
description: Shows the statistics of the player on the server.
default: true
geyser.command.settings:
description: Modify user settings
default: true
geyser.command.list:
description: List all players connected through Geyser.
default: op
geyser.command.dump:
description: Dumps Geyser debug information for bug reports.
default: op
geyser.command.reload:
description: Reloads the Geyser configurations. Kicks all players when used!
default: false
geyser.command.version:
description: Shows the current Geyser version and checks for updates.
description: Shows the current Geyser version and checks for updates.
default: op