77import net .dv8tion .jda .api .entities .channel .concrete .Category ;
88import net .dv8tion .jda .api .entities .channel .concrete .TextChannel ;
99import net .dv8tion .jda .api .entities .emoji .Emoji ;
10+ import net .dv8tion .jda .api .interactions .components .ActionRow ;
1011import net .dv8tion .jda .api .interactions .components .buttons .Button ;
1112import net .dv8tion .jda .api .interactions .components .buttons .ButtonStyle ;
1213import net .dv8tion .jda .api .requests .RestAction ;
1516import net .dv8tion .jda .internal .requests .CompletedRestAction ;
1617import net .javadiscord .javabot .Bot ;
1718import net .javadiscord .javabot .data .config .guild .HelpConfig ;
19+ import net .javadiscord .javabot .data .config .guild .HelpForumConfig ;
1820import net .javadiscord .javabot .systems .help .model .ChannelReservation ;
1921import net .javadiscord .javabot .util .ExceptionLogger ;
2022import net .javadiscord .javabot .util .Responses ;
@@ -372,6 +374,7 @@ private RestAction<?> semanticMessageCheck(TextChannel channel, User owner, List
372374 }
373375
374376 private void updateHelpOverview () {
377+ HelpForumConfig forumConfig = Bot .getConfig ().get (config .getGuild ()).getHelpForumConfig ();
375378 config .getHelpOverviewMessageIds ().forEach ((channelId , messageId ) -> {
376379 TextChannel channel = config .getGuild ().getTextChannelById (channelId );
377380 if (channel == null ) {
@@ -385,7 +388,13 @@ private void updateHelpOverview() {
385388 }
386389 buttons .add (Button .link (StringResourceCache .load ("/help_overview/overview_image_url.txt" ), "How does this work?" ));
387390 channel .retrieveMessageById (messageId ).queue (
388- m -> m .editMessageEmbeds (buildHelpOverviewEmbed ()).setActionRow (buttons ).queue (),
391+ m -> m .editMessageEmbeds (buildHelpOverviewEmbed ()).setComponents (
392+ ActionRow .of (
393+ // Temporary Forum Channel Upsell
394+ Button .link (forumConfig .getHelpForumChannel ().getJumpUrl (), "Try our new Help Forum!" ),
395+ Button .link ("https://discord.com/blog/forum-channels-space-for-organized-conversation" , "What are Forums?" )
396+ ),
397+ ActionRow .of (buttons )).queue (),
389398 err -> channel .sendMessageEmbeds (buildHelpOverviewEmbed ()).queue (m -> {
390399 config .getHelpOverviewMessageIds ().put (channelId , m .getIdLong ());
391400 Bot .getConfig ().flush ();
@@ -422,7 +431,10 @@ private void updateHelpOverview() {
422431 EmbedBuilder builder = new EmbedBuilder ()
423432 .setTitle ("Help Overview" )
424433 .setColor (Responses .Type .DEFAULT .getColor ())
425- .setDescription (availableHelpChannels + " are __**available**__ to claim!" )
434+ .setDescription (availableHelpChannels .isEmpty () ?
435+ String .format ("There are no help channels available to claim. How about using our new **[Help Forum](%s)** then?" ,
436+ Bot .getConfig ().get (config .getGuild ()).getHelpForumConfig ().getHelpForumChannel ().getJumpUrl ()) :
437+ availableHelpChannels + " are __**available**__ to claim!" )
426438 .setFooter ("Last refreshed: " )
427439 .setTimestamp (Instant .now ());
428440 if (!reservedHelpChannels .isEmpty ()) {
0 commit comments