@Override
    public ItemStack getIcon(Player viewer) {
        String finalName = this.getName();
        if (willChangeNameColours()) {
            finalName = ((this.permission == null ? true : viewer.hasPermission(this.permission)) ? ChatColor.GREEN : ChatColor.RED) + ChatColor.stripColor(this.getName());
        }
        return buildItemStack(this.getMaterial(), this.getAmount(), this.getMaterialData(), finalName, this.getLore());
    }