Discord.js如何每5秒编辑一次角色?

时间:2019-08-06 06:44:21

标签: javascript discord discord.js

我想通过setInterval每5或10秒编辑一次角色颜色,问题是我必须重复命令以更改颜色。我不想只重复一个命令,它每5秒编辑一次角色颜色。

示例:

!test =选择1种颜色

我必须重复命令以在颜色之间进行选择

!test = 2种颜色之间的选择

!test = 3种颜色之间的选择...

if(message.content === prefix+'test'){
    if(!message.guild) return;
    if(!message.guild.member(bot.user).hasPermission('MANAGE_ROLES')) return;
    var colors = ['#8585ff','#fff681','#a073fd','#fd73b9'];
    var random = Math.floor(Math.random() * colors.length);
    var role = message.guild.roles.find("name", "role name");
    setInterval(() => {
        role.edit({
            color: colors[random]
        })
    }, 5000);
}

3 个答案:

答案 0 :(得分:1)

您想要搜索的属性名称错误,应该是

message.guild.roles.find("The name of the role to find", "name");

或者,您可以

message.guild.roles.find(roleVal => roleVal.name === "The name of the role to find");

答案 1 :(得分:0)

client.on('ready', () => {
var colors = ['#8585ff','#fff681','#a073fd','#fd73b9'];
    var random = Math.floor(Math.random() * colors.length);
    var role = message.guild.roles.find("name", "role name");
    setInterval(() => {
        role.edit({
            color: colors[random]
        })
    }, 5000);

});

只需将其置于就绪事件中,如果您要的是它会自动更改它。

答案 2 :(得分:0)

if(message.content === prefix+'test'){
    if(!message.guild) return;
    if(!message.guild.member(bot.user).hasPermission('MANAGE_ROLES')) return;
    var colors = ['#8585ff','#fff681','#a073fd','#fd73b9'];
    for(let i = 0; i<= colors.length;i++){
    var role = message.guild.roles.find(role => role.name === "rolename");
    setInterval(() => {
        role.edit({
            color: colors[i]
        })
    }, 5000);
  }
}

我试过了,它工作正常。...