Skip to content

Commit 3c7db6a

Browse files
0x3C50danthe1st
authored andcommitted
Strip "#0000" suffix from user tags using the new username system
1 parent 17fe73f commit 3c7db6a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+170
-96
lines changed

src/main/java/net/javadiscord/javabot/data/h2db/commands/MessageCacheInfoSubcommand.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package net.javadiscord.javabot.data.h2db.commands;
22

3+
import net.javadiscord.javabot.util.UserUtils;
34
import xyz.dynxsty.dih4jda.interactions.commands.application.SlashCommand;
45
import net.dv8tion.jda.api.EmbedBuilder;
56
import net.dv8tion.jda.api.Permission;
@@ -45,7 +46,7 @@ private MessageEmbed buildInfoEmbed(GuildConfig config, User author) {
4546
long messages = dbActions.count("SELECT count(*) FROM message_cache");
4647
int maxMessages = config.getMessageCacheConfig().getMaxCachedMessages();
4748
return new EmbedBuilder()
48-
.setAuthor(author.getAsTag(), null, author.getEffectiveAvatarUrl())
49+
.setAuthor(UserUtils.getUserTag(author), null, author.getEffectiveAvatarUrl())
4950
.setTitle("Message Cache Info")
5051
.setColor(Responses.Type.DEFAULT.getColor())
5152
.addField("Table Size", dbActions.getLogicalSize("message_cache") + " bytes", false)

src/main/java/net/javadiscord/javabot/data/h2db/message_cache/MessageCache.java

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.util.concurrent.ExecutorService;
2929
import java.util.stream.Collectors;
3030

31+
import net.javadiscord.javabot.util.UserUtils;
3132
import org.springframework.dao.DataAccessException;
3233
import org.springframework.stereotype.Service;
3334

@@ -142,7 +143,7 @@ public void sendDeletedMessageToLog(Guild guild, MessageChannel channel, CachedM
142143
private EmbedBuilder buildMessageCacheEmbed(MessageChannel channel, User author, CachedMessage before) {
143144
long epoch = IdCalculatorCommand.getTimestampFromId(before.getMessageId()) / 1000;
144145
return new EmbedBuilder()
145-
.setAuthor(author.getAsTag(), null, author.getEffectiveAvatarUrl())
146+
.setAuthor(UserUtils.getUserTag(author), null, author.getEffectiveAvatarUrl())
146147
.addField("Author", author.getAsMention(), true)
147148
.addField("Channel", channel.getAsMention(), true)
148149
.addField("Created at", String.format("<t:%s:F>", epoch), true)
@@ -200,33 +201,33 @@ private InputStream buildDeletedMessageFile(User author, CachedMessage message)
200201
DateTimeFormatter formatter = TimeUtils.STANDARD_FORMATTER.withZone(ZoneOffset.UTC);
201202
Instant instant = Instant.ofEpochMilli(IdCalculatorCommand.getTimestampFromId(message.getMessageId()));
202203
String in = String.format("""
203-
Author: %s
204-
ID: %s
205-
Created at: %s
204+
Author: %s
205+
ID: %s
206+
Created at: %s
206207
207-
--- Message Content ---
208+
--- Message Content ---
208209
209-
%s
210-
""", author.getAsTag(), message.getMessageId(), formatter.format(instant), message.getMessageContent());
210+
%s
211+
""", UserUtils.getUserTag(author), message.getMessageId(), formatter.format(instant), message.getMessageContent());
211212
return new ByteArrayInputStream(in.getBytes(StandardCharsets.UTF_8));
212213
}
213214

214215
private InputStream buildEditedMessageFile(User author, CachedMessage before, Message after) {
215216
DateTimeFormatter formatter = TimeUtils.STANDARD_FORMATTER.withZone(ZoneOffset.UTC);
216217
Instant instant = Instant.ofEpochMilli(IdCalculatorCommand.getTimestampFromId(before.getMessageId()));
217218
String in = String.format("""
218-
Author: %s
219-
ID: %s
220-
Created at: %s
219+
Author: %s
220+
ID: %s
221+
Created at: %s
221222
222-
--- Message Content (before) ---
223+
--- Message Content (before) ---
223224
224-
%s
225+
%s
225226
226-
--- Message Content (after) ---
227+
--- Message Content (after) ---
227228
228-
%s
229-
""", author.getAsTag(), before.getMessageId(), formatter.format(instant), before.getMessageContent(), after.getContentRaw());
229+
%s
230+
""", UserUtils.getUserTag(author), before.getMessageId(), formatter.format(instant), before.getMessageContent(), after.getContentRaw());
230231
return new ByteArrayInputStream(in.getBytes(StandardCharsets.UTF_8));
231232
}
232233
}

src/main/java/net/javadiscord/javabot/systems/help/HelpManager.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import net.javadiscord.javabot.util.ExceptionLogger;
2727
import net.javadiscord.javabot.util.MessageActionUtils;
2828
import net.javadiscord.javabot.util.Responses;
29+
import net.javadiscord.javabot.util.UserUtils;
2930
import org.jetbrains.annotations.NotNull;
3031
import org.jetbrains.annotations.Nullable;
3132
import xyz.dynxsty.dih4jda.util.ComponentIdBuilder;
@@ -146,11 +147,11 @@ public void thankHelper(@NotNull ButtonInteractionEvent event, ThreadChannel pos
146147
} catch (SQLException e) {
147148
ExceptionLogger.capture(e, getClass().getSimpleName());
148149
botConfig.get(event.getGuild()).getModerationConfig().getLogChannel().sendMessageFormat(
149-
"Could not record user %s thanking %s for help in post %s: %s",
150-
postThread.getOwner().getUser().getAsTag(),
151-
helper.getAsTag(),
152-
postThread.getAsMention(),
153-
e.getMessage()
150+
"Could not record user %s thanking %s for help in post %s: %s",
151+
UserUtils.getUserTag(postThread.getOwner().getUser()),
152+
UserUtils.getUserTag(helper),
153+
postThread.getAsMention(),
154+
e.getMessage()
154155
).queue();
155156
}
156157
});

src/main/java/net/javadiscord/javabot/systems/help/commands/HelpAccountSubcommand.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import net.javadiscord.javabot.util.Pair;
1717
import net.javadiscord.javabot.util.Responses;
1818
import net.javadiscord.javabot.util.StringUtils;
19+
import net.javadiscord.javabot.util.UserUtils;
1920
import org.jetbrains.annotations.NotNull;
2021
import org.springframework.dao.DataAccessException;
2122
import xyz.dynxsty.dih4jda.interactions.commands.application.SlashCommand;
@@ -66,7 +67,7 @@ public void execute(@NotNull SlashCommandInteractionEvent event) {
6667

6768
private @NotNull MessageEmbed buildHelpAccountEmbed(HelpAccount account, @NotNull User user, Guild guild, long totalThanks, long weekThanks) {
6869
return new EmbedBuilder()
69-
.setAuthor(user.getAsTag(), null, user.getEffectiveAvatarUrl())
70+
.setAuthor(UserUtils.getUserTag(user), null, user.getEffectiveAvatarUrl())
7071
.setTitle("Help Account")
7172
.setThumbnail(user.getEffectiveAvatarUrl())
7273
.setDescription("Here are some statistics about how you've helped others here.")

src/main/java/net/javadiscord/javabot/systems/help/commands/HelpPingSubcommand.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import net.javadiscord.javabot.data.config.guild.HelpConfig;
1717
import net.javadiscord.javabot.util.Pair;
1818
import net.javadiscord.javabot.util.Responses;
19+
import net.javadiscord.javabot.util.UserUtils;
1920
import org.jetbrains.annotations.NotNull;
2021
import xyz.dynxsty.dih4jda.interactions.commands.application.SlashCommand;
2122

@@ -89,7 +90,7 @@ public void execute(@NotNull SlashCommandInteractionEvent event) {
8990

9091
private @NotNull MessageEmbed buildAuthorEmbed(@NotNull User author) {
9192
return new EmbedBuilder()
92-
.setTitle("Requested by " + author.getAsTag())
93+
.setTitle("Requested by " + UserUtils.getUserTag(author))
9394
.build();
9495
}
9596

src/main/java/net/javadiscord/javabot/systems/moderation/ModerationService.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import net.javadiscord.javabot.systems.notification.NotificationService;
1515
import net.javadiscord.javabot.util.ExceptionLogger;
1616
import net.javadiscord.javabot.util.Responses;
17+
import net.javadiscord.javabot.util.UserUtils;
1718
import org.jetbrains.annotations.NotNull;
1819
import org.springframework.dao.DataAccessException;
1920

@@ -291,12 +292,12 @@ public void kick(User user, String reason, Member kickedBy, MessageChannel chann
291292

292293
private @NotNull EmbedBuilder buildModerationEmbed(@NotNull User user, @NotNull Member moderator, String reason) {
293294
return new EmbedBuilder()
294-
.setAuthor(moderator.getUser().getAsTag(), null, moderator.getEffectiveAvatarUrl())
295+
.setAuthor(UserUtils.getUserTag(moderator.getUser()), null, moderator.getEffectiveAvatarUrl())
295296
.addField("Member", user.getAsMention(), true)
296297
.addField("Moderator", moderator.getAsMention(), true)
297298
.addField("Reason", reason, true)
298299
.setTimestamp(Instant.now())
299-
.setFooter(user.getAsTag(), user.getEffectiveAvatarUrl());
300+
.setFooter(UserUtils.getUserTag(user), user.getEffectiveAvatarUrl());
300301
}
301302

302303
private @NotNull MessageEmbed buildBanEmbed(User user, Member bannedBy, String reason) {
@@ -315,7 +316,7 @@ public void kick(User user, String reason, Member kickedBy, MessageChannel chann
315316

316317
private @NotNull MessageEmbed buildUnbanEmbed(long userId, String reason, @NotNull Member unbannedBy) {
317318
return new EmbedBuilder()
318-
.setAuthor(unbannedBy.getUser().getAsTag(), null, unbannedBy.getEffectiveAvatarUrl())
319+
.setAuthor(UserUtils.getUserTag(unbannedBy.getUser()), null, unbannedBy.getEffectiveAvatarUrl())
319320
.setTitle("Ban Revoked")
320321
.setColor(Responses.Type.ERROR.getColor())
321322
.addField("Moderator", unbannedBy.getAsMention(), true)
@@ -335,18 +336,18 @@ public void kick(User user, String reason, Member kickedBy, MessageChannel chann
335336

336337
private @NotNull MessageEmbed buildClearWarnsEmbed(@NotNull User user, @NotNull User clearedBy) {
337338
return new EmbedBuilder()
338-
.setAuthor(clearedBy.getAsTag(), null, clearedBy.getEffectiveAvatarUrl())
339+
.setAuthor(UserUtils.getUserTag(clearedBy), null, clearedBy.getEffectiveAvatarUrl())
339340
.setTitle("Warns Cleared")
340341
.setColor(Responses.Type.WARN.getColor())
341342
.setDescription("All warns have been cleared from " + user.getAsMention() + "'s record.")
342343
.setTimestamp(Instant.now())
343-
.setFooter(user.getAsTag(), user.getEffectiveAvatarUrl())
344+
.setFooter(UserUtils.getUserTag(user), user.getEffectiveAvatarUrl())
344345
.build();
345346
}
346347

347348
private @NotNull MessageEmbed buildClearWarnsByIdEmbed(@NotNull Warn w, @NotNull User clearedBy) {
348349
return new EmbedBuilder()
349-
.setAuthor(clearedBy.getAsTag(), null, clearedBy.getEffectiveAvatarUrl())
350+
.setAuthor(UserUtils.getUserTag(clearedBy), null, clearedBy.getEffectiveAvatarUrl())
350351
.setTitle("Warn Cleared")
351352
.setColor(Responses.Type.WARN.getColor())
352353
.setDescription(String.format("""

src/main/java/net/javadiscord/javabot/systems/moderation/PruneCommand.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import net.javadiscord.javabot.data.config.guild.ModerationConfig;
1111
import net.javadiscord.javabot.util.Checks;
1212
import net.javadiscord.javabot.util.Responses;
13+
import net.javadiscord.javabot.util.UserUtils;
1314
import org.jetbrains.annotations.NotNull;
1415

1516
import java.time.LocalDateTime;
@@ -77,7 +78,7 @@ protected ReplyCallbackAction handleModerationCommand(@NotNull SlashCommandInter
7778
(before == null || member.getTimeJoined().isBefore(before)) &&
7879
(after == null || member.getTimeJoined().isAfter(after));
7980
if (shouldRemove) {
80-
config.getLogChannel().sendMessage("Removing " + member.getUser().getAsTag() + " as part of prune.").queue();
81+
config.getLogChannel().sendMessage("Removing " + UserUtils.getUserTag(member.getUser()) + " as part of prune.").queue();
8182
member.ban(delDays, TimeUnit.DAYS).reason(reason).queue();
8283
}
8384
});

src/main/java/net/javadiscord/javabot/systems/moderation/PurgeCommand.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import net.javadiscord.javabot.util.ExceptionLogger;
1717
import net.javadiscord.javabot.util.Responses;
1818
import net.javadiscord.javabot.util.TimeUtils;
19+
import net.javadiscord.javabot.util.UserUtils;
1920
import org.jetbrains.annotations.NotNull;
2021

2122
import javax.annotation.CheckReturnValue;
@@ -74,7 +75,7 @@ protected ReplyCallbackAction handleModerationCommand(@NotNull SlashCommandInter
7475
StringBuilder sb = new StringBuilder();
7576
sb.append(amount > 1 ? "Up to " + amount + " messages " : "1 message ");
7677
if (user != null) {
77-
sb.append("by the user ").append(user.getAsTag()).append(' ');
78+
sb.append("by the user ").append(UserUtils.getUserTag(user)).append(' ');
7879
}
7980
sb.append("will be removed").append(archive ? " and placed in an archive." : '.');
8081
return Responses.info(event, "Purge Started", sb.toString());
@@ -198,12 +199,12 @@ private int removeMessages(List<Message> messages, @Nullable User user, @Nullabl
198199
*/
199200
private void archiveMessage(PrintWriter writer, Message message) {
200201
writer.printf(
201-
"%s : Removing message %s by %s which was sent at %s\n--- Text ---\n%s\n--- End Text ---\n\n",
202-
OffsetDateTime.now().format(DateTimeFormatter.ISO_OFFSET_DATE_TIME),
203-
message.getId(),
204-
message.getAuthor().getAsTag(),
205-
message.getTimeCreated().format(DateTimeFormatter.ISO_OFFSET_DATE_TIME),
206-
message.getContentRaw()
202+
"%s : Removing message %s by %s which was sent at %s\n--- Text ---\n%s\n--- End Text ---\n\n",
203+
OffsetDateTime.now().format(DateTimeFormatter.ISO_OFFSET_DATE_TIME),
204+
message.getId(),
205+
UserUtils.getUserTag(message.getAuthor()),
206+
message.getTimeCreated().format(DateTimeFormatter.ISO_OFFSET_DATE_TIME),
207+
message.getContentRaw()
207208
);
208209
}
209210
}

src/main/java/net/javadiscord/javabot/systems/moderation/report/ReportManager.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package net.javadiscord.javabot.systems.moderation.report;
22

3+
import net.javadiscord.javabot.util.UserUtils;
34
import xyz.dynxsty.dih4jda.util.ComponentIdBuilder;
45
import xyz.dynxsty.dih4jda.interactions.components.ButtonHandler;
56
import xyz.dynxsty.dih4jda.interactions.components.ModalHandler;
@@ -56,7 +57,7 @@ public void handleButton(@NotNull ButtonInteractionEvent event, Button button) {
5657
return;
5758
}
5859
Responses.info(event.getHook(), "Report resolved", "Successfully resolved this report!").queue();
59-
event.getMessage().editMessageComponents(ActionRow.of(Button.secondary("report-resolved", "Resolved by " + event.getUser().getAsTag()).asDisabled())).queue();
60+
event.getMessage().editMessageComponents(ActionRow.of(Button.secondary("report-resolved", "Resolved by " + UserUtils.getUserTag(event.getUser())).asDisabled())).queue();
6061
thread.sendMessage("This thread was resolved by " + event.getUser().getAsMention()).queue(
6162
success -> thread.getManager()
6263
.setName(String.format("[Resolved] %s", thread.getName()))
@@ -86,7 +87,7 @@ protected Modal buildUserReportModal(@NotNull UserContextInteractionEvent event)
8687
TextInput messageInput = TextInput.create("reason", "Report Description", TextInputStyle.PARAGRAPH)
8788
.setMaxLength(MessageEmbed.VALUE_MAX_LENGTH)
8889
.build();
89-
String title = "Report " + event.getTarget().getAsTag();
90+
String title = "Report " + UserUtils.getUserTag(event.getTarget());
9091
return Modal.create(ComponentIdBuilder.build("report", "user", event.getTarget().getId()), title.substring(0, Math.min(title.length(), Modal.MAX_TITLE_LENGTH)))
9192
.addActionRows(ActionRow.of(messageInput))
9293
.build();
@@ -103,7 +104,7 @@ protected Modal buildMessageReportModal(@NotNull MessageContextInteractionEvent
103104
String title = "Report message";
104105
Member targetMember = event.getTarget().getMember();
105106
if (targetMember != null) {
106-
title += " from " + targetMember.getUser().getAsTag();
107+
title += " from " + UserUtils.getUserTag(targetMember.getUser());
107108
}
108109
TextInput messageInput = TextInput.create("reason", "Report Description", TextInputStyle.PARAGRAPH)
109110
.setMaxLength(MessageEmbed.VALUE_MAX_LENGTH)
@@ -136,7 +137,7 @@ protected WebhookMessageCreateAction<Message> handleUserReport(InteractionHook h
136137
}
137138
reportChannel.sendMessageEmbeds(embed.build())
138139
.queue(m -> this.createReportThread(m, target.getIdLong(), config.getModerationConfig()));
139-
embed.setDescription("Successfully reported " + "`" + target.getAsTag() + "`!\nYour report has been send to our Moderators");
140+
embed.setDescription("Successfully reported " + "`" + UserUtils.getUserTag(target) + "`!\nYour report has been send to our Moderators");
140141
hook.sendMessageEmbeds(embed.build()).queue();
141142
}, failure -> {
142143
Responses.error(hook, "The user to report seems not to exist any more.").queue();
@@ -162,7 +163,7 @@ private void handleMessageReport(ModalInteractionEvent event, String messageId)
162163
WebhookUtil.mirrorMessageToWebhook(wh, target, target.getContentRaw(), thread.getIdLong(), null, null);
163164
});
164165
}));
165-
embed.setDescription("Successfully reported " + "`" + target.getAuthor().getAsTag() + "`!\nYour report has been send to our Moderators");
166+
embed.setDescription("Successfully reported " + "`" + UserUtils.getUserTag(target.getAuthor()) + "`!\nYour report has been send to our Moderators");
166167
event.getHook().sendMessageEmbeds(embed.build()).queue();
167168
}, failure -> {
168169
Responses.error(event.getHook(), "The author of the message to report seems not to exist any more.").queue();
@@ -201,15 +202,15 @@ private void createReportThread(Message message, long targetId, ModerationConfig
201202

202203
private EmbedBuilder buildReportEmbed(User reported, User reportedBy, String reason, Channel channel) {
203204
return new EmbedBuilder()
204-
.setAuthor(reported.getAsTag(), null, reported.getEffectiveAvatarUrl())
205+
.setAuthor(UserUtils.getUserTag(reported), null, reported.getEffectiveAvatarUrl())
205206
.setColor(Responses.Type.DEFAULT.getColor())
206207
.addField("Member", reported.getAsMention(), true)
207208
.addField("Reported by", reportedBy.getAsMention(), true)
208209
.addField("Channel", channel.getAsMention(), true)
209210
.addField("Reported on", String.format("<t:%s:F>", Instant.now().getEpochSecond()), false)
210211
.addField("ID", String.format("``` %s ```", reported.getId()), true)
211212
.addField("Reason", String.format("``` %s ```", reason), false)
212-
.setFooter(reportedBy.getAsTag(), reportedBy.getEffectiveAvatarUrl())
213+
.setFooter(UserUtils.getUserTag(reportedBy), reportedBy.getEffectiveAvatarUrl())
213214
.setTimestamp(Instant.now());
214215
}
215216
}

src/main/java/net/javadiscord/javabot/systems/moderation/server_lock/ServerLockManager.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import net.javadiscord.javabot.data.config.guild.ServerLockConfig;
1818
import net.javadiscord.javabot.util.Responses;
1919
import net.javadiscord.javabot.util.TimeUtils;
20+
import net.javadiscord.javabot.util.UserUtils;
2021
import org.jetbrains.annotations.NotNull;
2122
import org.jetbrains.annotations.Nullable;
2223

@@ -202,7 +203,11 @@ private void rejectUserDuringRaid(@NotNull GuildMemberJoinEvent event) {
202203
c.sendMessage(Constants.INVITE_URL).setEmbeds(buildServerLockEmbed(event.getGuild())).queue(msg ->
203204
event.getMember().kick().queue()));
204205
String diff = new TimeUtils().formatDurationToNow(event.getMember().getTimeCreated());
205-
notificationService.withGuild(event.getGuild()).sendToModerationLog(c -> c.sendMessageFormat("**%s** (%s old) tried to join this server.", event.getMember().getUser().getAsTag(), diff));
206+
notificationService.withGuild(event.getGuild()).sendToModerationLog(c -> c.sendMessageFormat(
207+
"**%s** (%s old) tried to join this server.",
208+
UserUtils.getUserTag(event.getMember().getUser()),
209+
diff
210+
));
206211
}
207212

208213
/**
@@ -219,18 +224,22 @@ public void lockServer(Guild guild, @NotNull Collection<Member> potentialRaiders
219224
c.sendMessage(Constants.INVITE_URL).setEmbeds(buildServerLockEmbed(guild)).queue(msg -> {
220225
member.kick().queue(
221226
success -> {},
222-
error -> notificationService.withGuild(guild).sendToModerationLog(m -> m.sendMessageFormat("Could not kick member %s%n> `%s`", member.getUser().getAsTag(), error.getMessage())));
227+
error -> notificationService.withGuild(guild).sendToModerationLog(m -> m.sendMessageFormat(
228+
"Could not kick member %s%n> `%s`",
229+
UserUtils.getUserTag(member.getUser()),
230+
error.getMessage()
231+
)));
223232
});
224233
});
225234
}
226235

227236
String membersString = potentialRaiders.stream()
228237
.sorted(Comparator.comparing(Member::getTimeJoined).reversed())
229238
.map(m -> String.format(
230-
"- **%s** joined at `%s`, account is `%s` old.",
231-
m.getUser().getAsTag(),
232-
m.getTimeJoined().format(DateTimeFormatter.ofPattern("HH:mm:ss.SSSS")),
233-
TimeUtils.formatDuration(Duration.between(m.getTimeCreated(), OffsetDateTime.now()))
239+
"- **%s** joined at `%s`, account is `%s` old.",
240+
UserUtils.getUserTag(m.getUser()),
241+
m.getTimeJoined().format(DateTimeFormatter.ofPattern("HH:mm:ss.SSSS")),
242+
TimeUtils.formatDuration(Duration.between(m.getTimeCreated(), OffsetDateTime.now()))
234243
))
235244
.collect(Collectors.joining("\n"));
236245

0 commit comments

Comments
 (0)