Skip to content

Commit 73453e9

Browse files
committed
Added documentation to the private methods + spotless
1 parent 9ff27c9 commit 73453e9

File tree

1 file changed

+107
-48
lines changed
  • application/src/main/java/org/togetherjava/tjbot/commands/moderation

1 file changed

+107
-48
lines changed

application/src/main/java/org/togetherjava/tjbot/commands/moderation/WhoIsCommand.java

Lines changed: 107 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.togetherjava.tjbot.commands.SlashCommandAdapter;
1717
import org.togetherjava.tjbot.commands.SlashCommandVisibility;
1818

19+
import javax.annotation.CheckReturnValue;
1920
import java.awt.*;
2021
import java.time.Instant;
2122
import java.time.OffsetDateTime;
@@ -36,8 +37,8 @@ public WhoIsCommand() {
3637
super("whois", "Provides info about the given user", SlashCommandVisibility.GUILD);
3738

3839
getData().addOption(OptionType.USER, USER_OPTION, "the user to look up", true)
39-
.addOption(OptionType.BOOLEAN, SHOW_SERVER_SPECIFIC_INFO,
40-
"whenever to show info that is specific to this server, such as ", false);
40+
.addOption(OptionType.BOOLEAN, SHOW_SERVER_SPECIFIC_INFO,
41+
"whenever to show info that is specific to this server, such as ", false);
4142
}
4243

4344
@Override
@@ -62,63 +63,88 @@ public void onSlashCommand(@NotNull final SlashCommandEvent event) {
6263
}).queue();
6364
}
6465

65-
private static ReplyAction handleWhoIsUser(final @NotNull SlashCommandEvent event,
66-
final @NotNull User user, final @NotNull User.Profile profile) {
66+
@CheckReturnValue
67+
private static @NotNull ReplyAction handleWhoIsUser(final @NotNull SlashCommandEvent event,
68+
final @NotNull User user, final @NotNull User.Profile profile) {
6769

68-
StringBuilder descriptionBuilder = new StringBuilder()
69-
.append(handleUserIdentification(user))
70-
.append("\n**Is bot:** ").append(user.isBot())
71-
.append(handleUserFlags(user.getFlags()))
72-
.append("\n**Registration date:** ").append(DATE_TIME_FORMAT.format(user.getTimeCreated()));
70+
StringBuilder descriptionBuilder =
71+
new StringBuilder().append(handleUserIdentification(user))
72+
.append("\n**Is bot:** ")
73+
.append(user.isBot())
74+
.append(handleUserFlags(user.getFlags()))
75+
.append("\n**Registration date:** ")
76+
.append(DATE_TIME_FORMAT.format(user.getTimeCreated()));
7377

74-
EmbedBuilder embedBuilder = generateEmbedBuilder(event, user, profile,profile.getAccentColor())
75-
.setAuthor(user.getName(), user.getEffectiveAvatarUrl(), user.getEffectiveAvatarUrl())
76-
.setDescription(descriptionBuilder);
78+
EmbedBuilder embedBuilder =
79+
generateEmbedBuilder(event, user, profile, profile.getAccentColor()).setAuthor(
80+
user.getName(), user.getEffectiveAvatarUrl(), user.getEffectiveAvatarUrl())
81+
.setDescription(descriptionBuilder);
7782

7883
return event.replyEmbeds(embedBuilder.build())
79-
.addActionRow(Button.of(ButtonStyle.LINK, "discord://-/users/" + user.getId(),
80-
"Click to see profile"));
84+
.addActionRow(Button.of(ButtonStyle.LINK, "discord://-/users/" + user.getId(),
85+
"Click to see profile"));
8186
}
8287

88+
@CheckReturnValue
8389
private static @NotNull ReplyAction handleWhoIsMember(final @NotNull SlashCommandEvent event,
84-
final @NotNull Member member, final @NotNull User.Profile profile) {
90+
final @NotNull Member member, final @NotNull User.Profile profile) {
8591
User user = member.getUser();
8692

8793
Color memberColor = member.getColor();
8894
Color effectiveColor = (null == memberColor) ? profile.getAccentColor() : memberColor;
8995

90-
StringBuilder descriptionBuilder = new StringBuilder()
91-
.append(handleUserIdentification(user))
92-
.append("\n**Is bot:** ").append(user.isBot())
93-
.append(handlePossibleBooster(member))
94-
.append(handleUserFlags(user.getFlags()))
95-
.append("\n**Join date:** ").append(DATE_TIME_FORMAT.format(member.getTimeJoined()))
96-
.append("\n**Registration date:** ").append(DATE_TIME_FORMAT.format(user.getTimeCreated()))
97-
.append("\n**Roles:** ").append(formatRoles(member));
96+
StringBuilder descriptionBuilder =
97+
new StringBuilder().append(handleUserIdentification(user))
98+
.append("\n**Is bot:** ")
99+
.append(user.isBot())
100+
.append(handlePossibleBooster(member))
101+
.append(handleUserFlags(user.getFlags()))
102+
.append("\n**Join date:** ")
103+
.append(DATE_TIME_FORMAT.format(member.getTimeJoined()))
104+
.append("\n**Registration date:** ")
105+
.append(DATE_TIME_FORMAT.format(user.getTimeCreated()))
106+
.append("\n**Roles:** ")
107+
.append(formatRoles(member));
98108

99109

100110
EmbedBuilder embedBuilder = generateEmbedBuilder(event, user, profile, effectiveColor)
101-
.setAuthor(member.getEffectiveName(), member.getEffectiveAvatarUrl(),
102-
member.getEffectiveAvatarUrl())
103-
.setDescription(descriptionBuilder);
111+
.setAuthor(member.getEffectiveName(), member.getEffectiveAvatarUrl(),
112+
member.getEffectiveAvatarUrl())
113+
.setDescription(descriptionBuilder);
104114

105115

106116
return event.replyEmbeds(embedBuilder.build())
107-
.addActionRow(Button.of(ButtonStyle.LINK, "discord://-/users/" + user.getId(),
108-
"Click to see profile"));
117+
.addActionRow(Button.of(ButtonStyle.LINK, "discord://-/users/" + user.getId(),
118+
"Click to see profile"));
109119
}
110120

111121

112-
private static @NotNull EmbedBuilder generateEmbedBuilder(@NotNull final SlashCommandEvent event, @NotNull final User user, final @NotNull User.Profile profile, final Color effectiveColor) {
122+
/**
123+
* Generates whois embed based on the given parameters.
124+
*
125+
* @param event the {@link SlashCommandEvent}
126+
* @param user the {@link User} getting whois'd
127+
* @param profile the {@link net.dv8tion.jda.api.entities.User.Profile} of the whois'd user
128+
* @param effectiveColor the {@link Color} that the embed will become
129+
* @return
130+
*/
131+
private static @NotNull EmbedBuilder generateEmbedBuilder(
132+
@NotNull final SlashCommandEvent event, @NotNull final User user,
133+
final @NotNull User.Profile profile, final Color effectiveColor) {
113134
return new EmbedBuilder().setThumbnail(user.getEffectiveAvatarUrl())
114-
.setColor(effectiveColor)
115-
.setImage(profile.getBannerUrl() + "?size=4096")
116-
.setFooter("Requested by " + event.getUser().getAsTag(),
117-
event.getMember().getEffectiveAvatarUrl())
118-
.setTimestamp(Instant.now());
135+
.setColor(effectiveColor)
136+
.setImage(profile.getBannerUrl() + "?size=4096")
137+
.setFooter("Requested by " + event.getUser().getAsTag(),
138+
event.getMember().getEffectiveAvatarUrl())
139+
.setTimestamp(Instant.now());
119140
}
120141

121-
// TODO add doc
142+
/**
143+
* Handles boosting properties of a {@link Member}
144+
*
145+
* @param member the {@link Member} to take the booster properties from
146+
* @return user readable {@link String}
147+
*/
122148
private static @NotNull String handlePossibleBooster(final @NotNull Member member) {
123149
OffsetDateTime timeBoosted = member.getTimeBoosted();
124150
if (null != timeBoosted) {
@@ -129,25 +155,51 @@ private static ReplyAction handleWhoIsUser(final @NotNull SlashCommandEvent even
129155
}
130156
}
131157

158+
/**
159+
* Handles the user's identifying properties (such as ID, tag)
160+
*
161+
* @param user the {@link User} to take the identifiers from
162+
* @return user readable {@link StringBuilder}
163+
*/
132164
private static @NotNull StringBuilder handleUserIdentification(final @NotNull User user) {
133165
return new StringBuilder("**Mention:** ").append(user.getAsMention())
134-
.append("\n**Tag:** ").append(user.getAsTag())
135-
.append("\n**ID:** ").append(user.getId());
166+
.append("\n**Tag:** ")
167+
.append(user.getAsTag())
168+
.append("\n**ID:** ")
169+
.append(user.getId());
136170
}
137171

138-
// TODO add doc
172+
/**
173+
* Formats the roles into a user readable {@link String}
174+
*
175+
* @param member member to take the Roles from
176+
* @return user readable {@link String} of the roles
177+
*/
139178
private static String formatRoles(final @NotNull Member member) {
140179
return member.getRoles().stream().map(Role::getAsMention).collect(Collectors.joining(", "));
141180
}
142181

143-
// TODO add doc and improve naming?
144-
private static @NotNull StringBuilder handleUserFlags(final @NotNull Collection<User.UserFlag> flags) {
145-
return formatHypesquad(flags)
146-
.append("\n**Flags:** ")
147-
.append(formatUserFlags(flags));
182+
/**
183+
* Formats Hypesquad and the flags
184+
*
185+
* @param flags the {@link Collection} of {@link net.dv8tion.jda.api.entities.User.UserFlag}
186+
* (recommend {@link java.util.EnumSet}
187+
* @return user readable {@link StringBuilder}
188+
*/
189+
private static @NotNull StringBuilder handleUserFlags(
190+
final @NotNull Collection<User.UserFlag> flags) {
191+
return formatHypesquad(flags).append("\n**Flags:** ").append(formatUserFlags(flags));
148192
}
149193

150-
private static @NotNull StringBuilder formatHypesquad(final @NotNull Collection<User.UserFlag> flags) {
194+
/**
195+
* Formats user readable Hypesquad item
196+
*
197+
* @param flags the {@link Collection} of {@link net.dv8tion.jda.api.entities.User.UserFlag}
198+
* (recommend {@link java.util.EnumSet}
199+
* @return user readable {@link StringBuilder}
200+
*/
201+
private static @NotNull StringBuilder formatHypesquad(
202+
final @NotNull Collection<User.UserFlag> flags) {
151203
StringBuilder stringBuilder = new StringBuilder("**Hypesquad:** ");
152204

153205
if (flags.contains(User.UserFlag.HYPESQUAD_BALANCE)) {
@@ -163,11 +215,18 @@ private static String formatRoles(final @NotNull Member member) {
163215
return stringBuilder;
164216
}
165217

218+
/**
219+
* Formats the flags into a user readable {@link String}, filters Hypesquad relating flags
220+
*
221+
* @param flags the {@link Collection} of {@link net.dv8tion.jda.api.entities.User.UserFlag}
222+
* (recommend {@link java.util.EnumSet}
223+
* @return the user readable string
224+
*/
166225
@NotNull
167226
private static String formatUserFlags(final @NotNull Collection<User.UserFlag> flags) {
168227
return flags.stream()
169-
.map(User.UserFlag::getName)
170-
.filter(name -> (name.contains("Hypesquad")))
171-
.collect(Collectors.joining(", "));
228+
.map(User.UserFlag::getName)
229+
.filter(name -> (name.contains("Hypesquad")))
230+
.collect(Collectors.joining(", "));
172231
}
173-
}
232+
}

0 commit comments

Comments
 (0)