-
-
Notifications
You must be signed in to change notification settings - Fork 150
Description
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<String> 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:
-
Make a normal command without SubCommands (a @default method) and a permission set
-
Use this code on Paper:
Command command = plugin.getServer().getCommandMap().getCommand("nameofthecommand");
-
Call command.getPermission() you will see the permission
-
Now add a subcommand with @subcommand("test") and @CommandPermission("test.test");
-
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