| 
					
				 | 
			
			
				@@ -73,7 +73,7 @@ function createForm($, header, dashboardLang, settings, guildRoles, guildChannel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						if ( guildChannel.isCategory ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							curCat = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							optionChannel.addClass('wb-settings-optgroup'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							if ( !guildChannel.allowedCat ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							if ( !( hasPerm(guildChannel.userPermissions, 'VIEW_CHANNEL', 'SEND_MESSAGES') && guildChannel.allowedCat ) ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								optionChannel.attr('disabled', '').val(''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -92,12 +92,7 @@ function createForm($, header, dashboardLang, settings, guildRoles, guildChannel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} ).filter( (catChannel, i, guildChannelList) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					if ( !catChannel ) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					if ( catChannel.is('optgroup') && !catChannel.children('option').length ) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if ( catChannel.hasClass('wb-settings-optgroup') && guildChannelList[i + 1].hasClass('wb-settings-optgroup') ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						if ( catChannel.attr('disabled') ) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						return guildChannels.some( guildChannel => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							return ( guildChannel.id === catChannel.val() && hasPerm(guildChannel.userPermissions, 'VIEW_CHANNEL', 'SEND_MESSAGES') ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						} ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if ( catChannel.hasClass('wb-settings-optgroup') && guildChannelList[i + 1]?.hasClass?.('wb-settings-optgroup') ) return !catChannel.attr('disabled'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -327,7 +322,7 @@ function update_settings(res, userSettings, guild, type, settings) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if ( type !== 'default' && !hasPerm(response.userPermissions, 'VIEW_CHANNEL', 'SEND_MESSAGES') ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			return res(`/guild/${guild}/settings/${type}`, 'savefail'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if ( settings.delete_settings ) return db.get( 'SELECT main.lang mainlang, main.patreon, main.wiki mainwiki, main.role mainrole, main.inline maininline, old.wiki, old.lang, old.role, old.inline FROM discord main LEFT JOIN discord old ON main.guild = old.guild AND old.channel = ? WHERE main.guild = ? AND main.channel IS NULL', [( response.isCategory ? '#' : '' ) + type, guild], function(dberror, row) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if ( settings.delete_settings ) return db.get( 'SELECT main.lang mainlang, main.wiki mainwiki, main.role mainrole, main.inline maininline, old.wiki, old.lang, old.role, old.inline FROM discord main LEFT JOIN discord old ON main.guild = old.guild AND old.channel = ? WHERE main.guild = ? AND ( main.channel = ? OR main.channel IS NULL ) ORDER BY main.channel DESC', [( response.isCategory ? '#' : '' ) + type, guild, '#' + response.parentID], function(dberror, row) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			db.run( 'DELETE FROM discord WHERE guild = ? AND channel = ?', [guild, ( response.isCategory ? '#' : '' ) + type], function (delerror) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if ( delerror ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					console.log( '- Dashboard: Error while removing the settings: ' + delerror ); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -343,7 +338,7 @@ function update_settings(res, userSettings, guild, type, settings) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				var lang = new Lang(row.mainlang); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				var text = lang.get('settings.dashboard.removed', `<@${userSettings.user.id}>`, `<#${type}>`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if ( row.wiki !== row.mainwiki ) text += `\n${lang.get('settings.currentwiki')} <${row.wiki}>`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if ( row.patreon ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if ( response.patreon ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					if ( row.lang !== row.mainlang ) text += `\n${lang.get('settings.currentlang')} \`${allLangs.names[row.lang]}\``; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					if ( row.role !== row.mainrole ) text += `\n${lang.get('settings.currentrole')} ` + ( row.role ? `<@&${row.role}>` : '@everyone' ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					if ( row.inline !== row.maininline ) text += `\n${lang.get('settings.currentinline')} ${( row.inline ? '~~' : '' )}\`[[${inlinepage}]]\`${( row.inline ? '~~' : '' )}`; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -368,7 +363,7 @@ function update_settings(res, userSettings, guild, type, settings) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			return fresponse; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} ).then( fresponse => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			return new Promise( function (resolve, reject) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				db.get( 'SELECT lang, wiki, role, inline, prefix FROM discord WHERE guild = ? AND channel IS NULL', [guild], function(error, row) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				db.get( 'SELECT lang, wiki, role, inline, prefix FROM discord WHERE guild = ? AND ( channel = ? OR channel IS NULL ) ORDER BY channel DESC', [guild, '#' + response.parentID], function(error, row) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					if ( error ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						console.log( '- Dashboard: Error while getting the settings: ' + error ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						return reject(); 
			 |