Как сделать так, чтобы мой бот Discord автоматически менял статус - PullRequest
0 голосов
/ 16 апреля 2020

Как сделать так, чтобы мой бот Discord менял статус каждую секунду

Этот код не работает

Ошибка типа: client.user.setActivity не является функцией

const activities_list = [
"with the &help command.", 
"with the developers console",
"with some code", 
"with JavaScript"
]; // creates an arraylist containing phrases you want your bot to switch through.

client.on('ready', () => {
    setInterval(() => {
        const index = Math.floor(Math.random() * (activities_list.length - 1) + 1); // generates a random number between 1 and the length of the activities array list (in this case 5).
        client.user.setActivity(activities_list[index]); // sets bot's activities to one of the phrases in the arraylist.
    }, 10000); // Runs this every 10 seconds.
});

Ответы [ 2 ]

1 голос
/ 17 апреля 2020

Я вставил ваш код, и он полностью заработал, как и ожидалось, небольшая вещь: функция setInterval ждет перед выполнением, значит в вашем случае: она ждет 10 секунд и только после этого она устанавливает статус в первый раз, так что вы может потребоваться немного изменить ваш код, чтобы он уже устанавливал состояние при запуске, а не после окончания первого интервала:

const actvs = [
    "with the &help command.",
    "with the developers console",
    "with some code",
    "with JavaScript"
];

client.on('ready', () => {
    client.user.setActivity(actvs[Math.floor(Math.random() * (actvs.length - 1) + 1)]);
    setInterval(() => {
        client.user.setActivity(actvs[Math.floor(Math.random() * (actvs.length - 1) + 1)]);
    }, 10000);
});

Редактировать: My Discord. js версия v11.5.1, это отличается в v12. Вот ссылка на документацию для v12

0 голосов
/ 16 апреля 2020

Попробуйте использовать только индекс, у вас есть объект, а не массив, поэтому он должен работать! Надеюсь, это работает! Хорошего дня!

...