diff --git a/extra/admin-api/Spacebar.UApi/Controllers/Auth/GuildMembersController.cs b/extra/admin-api/Spacebar.UApi/Controllers/Auth/GuildMembersController.cs
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/extra/admin-api/Spacebar.UApi/Controllers/Auth/GuildMembersController.cs
diff --git a/extra/admin-api/Tests/Spacebar.Tests/Tests/MessageTests.cs b/extra/admin-api/Tests/Spacebar.Tests/Tests/MessageTests.cs
index 334572f0..d563b244 100644
--- a/extra/admin-api/Tests/Spacebar.Tests/Tests/MessageTests.cs
+++ b/extra/admin-api/Tests/Spacebar.Tests/Tests/MessageTests.cs
@@ -53,6 +53,45 @@ public class MessageTests(ITestOutputHelper testOutputHelper, TestFixture fixtur
}
[Fact]
+ public async Task SendMessageReply() {
+ var r = await Assert.HttpSuccess(await Client.ApiHttpClient.PostAsJsonAsync($"channels/{Channel.Id}/messages", new JsonObject() {
+ { "content", "meow" }
+ }, cancellationToken: TestContext.Current.CancellationToken));
+ var msg = await r.Content.ReadFromJsonAsync<Message>();
+ await Assert.HttpSuccess(await Client.ApiHttpClient.PostAsJsonAsync($"channels/{Channel.Id}/messages", new JsonObject() {
+ { "content", "meow" }, {
+ "message_reference", new JsonObject() {
+ { "guild_id", msg.GuildId.Value.ToString() },
+ { "channel_id", msg.ChannelId.Value.ToString() },
+ { "message_id", msg.Id.ToString() },
+ }
+ }
+ }, cancellationToken: TestContext.Current.CancellationToken));
+ }
+
+ [Fact]
+ public async Task SendMessageReplyAllowedMentions() {
+ var r = await Assert.HttpSuccess(await Client.ApiHttpClient.PostAsJsonAsync($"channels/{Channel.Id}/messages", new JsonObject() {
+ { "content", "meow" }
+ }, cancellationToken: TestContext.Current.CancellationToken));
+ var msg = await r.Content.ReadFromJsonAsync<Message>();
+ await Assert.HttpSuccess(await Client.ApiHttpClient.PostAsJsonAsync($"channels/{Channel.Id}/messages", new JsonObject() {
+ { "content", "meow" }, {
+ "message_reference", new JsonObject() {
+ { "guild_id", msg.GuildId.Value.ToString() },
+ { "channel_id", msg.ChannelId.Value.ToString() },
+ { "message_id", msg.Id.ToString() },
+ }
+ }, {
+ "allowed_mentions", new JsonObject() {
+ { "parse", new JsonArray("users", "roles", "everyone") },
+ { "replied_user", false }
+ }
+ }
+ }, cancellationToken: TestContext.Current.CancellationToken));
+ }
+
+ [Fact]
public async Task SendMessageMultipart() {
var content = new MultipartFormDataContent();
content.Add(JsonContent.Create(new JsonObject() {
diff --git a/extra/admin-api/Tests/Spacebar.Tests/Tests/PollTests.cs b/extra/admin-api/Tests/Spacebar.Tests/Tests/PollTests.cs
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/extra/admin-api/Tests/Spacebar.Tests/Tests/PollTests.cs
diff --git a/src/api/util/handlers/Message.ts b/src/api/util/handlers/Message.ts
index d3ce0da7..78bab924 100644
--- a/src/api/util/handlers/Message.ts
+++ b/src/api/util/handlers/Message.ts
@@ -768,7 +768,7 @@ async function handleMessageMentionsAsync(message: Message) {
);
}
- if (message.embeds[0].type === EmbedType.poll_result) {
+ if (message.embeds[0]?.type === EmbedType.poll_result) {
message.mentions.push(
// @ts-expect-error it does not like the .toPublicUser() lol
(await User.findOne({ where: { id: message.author_id } }))!.toPublicUser(),
|