Main command permission is null if i set a permission on a subcommand
- 主要言語
- Java
- スター
- 628
- フォーク
- 150
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
Hello, i have this command here!
`@CommandAlias("hide")
@CommandPermission("core.command.hide")
public class HideCommand extends BaseCommand {
private final ProxySockeCore plugin;
public HideCommand(ProxySockeCore plugin) {
this.plugin = plugin;
}
@Default
public void onDefault(Player player){
if(plugin.getPlayerDataManager().isNotLoaded(player)){
player.sendMessage("§cDeine Daten wurden noch nicht geladen!");
return;
}
PlayerDataHolder holder = plugin.getPlayerDataManager().get(player);
if(holder.isHidden()){
//Vanish deaktivieren
holder.setHidden(false);
player.removeMetadata("vanished", plugin);
for(Player online : plugin.getServer().getOnlinePlayers()){
if(online == player) continue;
online.showPlayer(plugin, player);
}
player.sendMessage("§aDu bist nun wieder für alle Spieler sichtbar!");
}else{
//Vanish aktivieren
holder.setHidden(true);
player.setMetadata("vanished", new FixedMetadataValue(plugin, true));
for(Player online : plugin.getServer().getOnlinePlayers()){
if(online == player) continue;
if(!online.hasPermission("core.command.hide.see")) online.hidePlayer(plugin, player);
}
HideUtils.removeTarget(player);
player.sendMessage("§aDu bist nun für alle Spieler unsichtbar!");
}
}
@Subcommand("info")
public void onInfo(Player player){
if(plugin.getPlayerDataManager().isNotLoaded(player)){
player.sendMessage("§cDeine Daten wurden noch nicht geladen!");
return;
}
if(plugin.getPlayerDataManager().get(player).isHidden()){
player.sendMessage("§aDu bist nicht für Spieler sichtbar!");
return;
}
player.sendMessage("§cDu bist für alle Spieler sichtbar!");
}
@Subcommand("list")
@CommandPermission("core.command.hide.list")
public void onList(Player player){
List vanished = new ArrayList<>();
for(Player p : plugin.getServer().getOnlinePlayers()){
if(p.hasMetadata("vanished")) vanished.add(p.getName());
}
player.sendMessage(String.format("§fVersteckt (%d): §e%s", vanished.size(), String.join(", ", vanished)));
}
@CatchUnknown
public void onUnknown(Player player){
player.sendMessage("§c» §7Unterbefehle für: §e§o'/hide'\n"
+ " §8▪ §f/hide info\n"
+ " §8▪ §f/hide list");
}
}`
I use this code to get the permission of a command
`Command command = plugin.getServer().getCommandMap().getCommand("ignore");`
Now if i call command.getPermission() it return null, but it must return "core.command.hide"
On all other commands i have made it works well
The error occurs, if i add a subcommand with a permission!
To Test:
1. Make a normal command without SubCommands (a @Default method) and a permission set
2. Use this code on Paper: `Command command = plugin.getServer().getCommandMap().getCommand("nameofthecommand");`
3. Call command.getPermission() you will see the permission
4. Now add a subcommand with @SubCommand("test") and @CommandPermission("test.test");
5. Call command.getPermission() another time, and you will see that it returns null
It would be nice if this gets fixed because it destroys my system!
Thanks
コントリビューションガイド
評価
この issue はまだ評価されていません。