Skip to content
This repository was archived by the owner on Jun 9, 2024. It is now read-only.

Commit 58c13bd

Browse files
committed
feature: Report invalid discrims in G_M_U
1 parent 63a1889 commit 58c13bd

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/main/java/com/mewna/catnip/shard/DispatchEmitter.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,16 @@ private void emit0(@Nonnull final JsonObject payload) {
222222
if(data.has("user")) {
223223
final var user = catnip.entityBuilder().createUser(data.getObject("user"));
224224
catnip.cacheWorker().bulkCacheUsers(payload.getObject("shard").getInt("id"), List.of(user));
225+
final var discrim = Integer.parseInt(user.discriminator());
226+
if(discrim < 1 || discrim > 9999) {
227+
final JsonObject clone = new JsonObject(payload);
228+
// catnip-internal key
229+
clone.remove("shard");
230+
catnip.logAdapter().warn("Received a presence update for a user with a discriminator of '{}', " +
231+
"but we should never get this. Discriminators should be clamped to [0001, 9999]." +
232+
"If you report this to Discord, include the following JSON in your report:\n{}",
233+
discrim, JsonUtil.encodePrettily(clone));
234+
}
225235
}
226236
if(catnip.cacheWorker().canProvidePreviousState(MEMBER)) {
227237
catnip.cache().member(partialMember.guildIdAsLong(), partialMember.idAsLong())

0 commit comments

Comments
 (0)