diff --git a/src/usersyncroniser.ts b/src/usersyncroniser.ts
index bd796ab5c4a7e8668f925ca58e5376c2e609ca5a..6400ecb7cb866a7a6e6a5c7af00385cba58472cf 100644
--- a/src/usersyncroniser.ts
+++ b/src/usersyncroniser.ts
@@ -400,9 +400,9 @@ export class UserSyncroniser {
         log.info(`Got update for ${id}.`);
 
         await Util.AsyncForEach(this.discord.GetGuilds(), async (guild) => {
-            if (guild.members.has(id)) {
+            if (guild.members.cache.has(id)) {
                 log.info(`Updating user ${id} in guild ${guild.id}.`);
-                const member = guild.members.get(id);
+                const member = guild.members.resolve(id);
                 try {
                     const state = await this.GetUserStateForGuildMember(member!);
                     const rooms = await this.discord.GetRoomIdsFromGuild(guild, member!);
diff --git a/src/util.ts b/src/util.ts
index 0ea0690f98bef61fd59c3ffddbc92ec287c923fc..f8f93f761a5316e7b97f6c22a3c9c935cab6460d 100644
--- a/src/util.ts
+++ b/src/util.ts
@@ -296,7 +296,7 @@ export class Util {
         return {command, args};
     }
 
-    public static async AsyncForEach(arr, callback) {
+    public static async AsyncForEach<T>(arr: T[], callback: (item: T, i: number, a: T[]) => void) {
         for (let i = 0; i < arr.length; i++) {
             await callback(arr[i], i, arr);
         }