diff options
author | Rory& <root@rory.gay> | 2024-09-16 08:43:42 +0200 |
---|---|---|
committer | Rory& <root@rory.gay> | 2024-09-16 08:43:42 +0200 |
commit | b93c5e7e284c73c97192bf4ff7002c4b396ed2e9 (patch) | |
tree | 254ea85c256b7f8c582a6755e7918ba48585ae87 /LibMatrix/RoomTypes | |
parent | meow (diff) | |
download | LibMatrix-b93c5e7e284c73c97192bf4ff7002c4b396ed2e9.tar.xz |
Sync optimisation changes github/dev/moderationclient-changes dev/moderationclient-changes
Diffstat (limited to 'LibMatrix/RoomTypes')
-rw-r--r-- | LibMatrix/RoomTypes/GenericRoom.cs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/LibMatrix/RoomTypes/GenericRoom.cs b/LibMatrix/RoomTypes/GenericRoom.cs index 4f6a4e9..4324dc3 100644 --- a/LibMatrix/RoomTypes/GenericRoom.cs +++ b/LibMatrix/RoomTypes/GenericRoom.cs @@ -1,6 +1,7 @@ using System.Collections.Frozen; using System.Diagnostics; using System.Net.Http.Json; +using System.Security.Cryptography; using System.Text.Json; using System.Text.Json.Nodes; using System.Text.Json.Serialization; @@ -211,10 +212,11 @@ public class GenericRoom { public async Task<RoomIdResponse> JoinAsync(string[]? homeservers = null, string? reason = null, bool checkIfAlreadyMember = true) { if (checkIfAlreadyMember) try { - _ = await GetCreateEventAsync(); - return new RoomIdResponse { - RoomId = RoomId - }; + var ser = await GetStateEventOrNullAsync(RoomMemberEventContent.EventId, Homeserver.UserId); + if (ser?.TypedContent is RoomMemberEventContent { Membership: "join" }) + return new RoomIdResponse { + RoomId = RoomId + }; } catch { } //ignore |