Discord JS - вызовет ли использование свойства .cache client.guilds ошибку в дальнейшем, когда я буду в других гильдиях? - PullRequest
1 голос
/ 27 мая 2020

Я пытаюсь найти ID владельца гильдии для всех моих гильдий, чтобы отправить им прямое сообщение в определенный момент. Моя текущая реализация, в которой я уже знаю все идентификаторы гильдий и просто перебираю их: message.client.guilds.cache.get(guildID).ownerID В настоящее время это работает и в порядке, но я удивляюсь его надежности, когда я увеличиваю количество гильдий. В настоящее время я тестирую только 2 гильдии, но может достигнуть более 1000.

Многие старые учебники и вопросы на этом сайте предполагают, что не нужно использовать свойство .cache для message.client.guilds и просто получить желаемое свойство вроде этого message.client.guilds.get(desired_property) Однако, когда я пытаюсь использовать go по их совету, я получаю сообщение об ошибке. В этом вопросе была проблема, аналогичная той, что была у меня, но затем она была исправлена, когда я использовал свойство .cache для message.client, которое решило мою предыдущую проблему. Затем я думаю, что обнаружил, почему, поскольку этот ответ на аналогичные вопросы говорит мне, что все пользовательские объекты были кэшированы

Что это будет означать, когда у меня будет более 1000 гильдии? Не беспокойтесь о шардинге, это то, о чем я могу подумать позже.

Я плохо понимаю, как работает кеш, но сломается ли он, когда я попаду в другие гильдии, а не все гильдий будут кэшироваться, и поэтому, когда я использую message.client.guilds.cache.get(guildID).ownerID, я получу только идентификаторы владельцев тех гильдий, которые были кэшированы, или все гильдии, в которых бот находится в кеше все время? Если это не всегда возвращает все идентификаторы ownerID, когда у бота появляются тысячи гильдий, и, следовательно, потенциально не все гильдии кэшируются, есть ли способ, которым я могу это исправить, чтобы он всегда возвращал их все?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...