我想通过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);
}
答案 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);
}
}
我试过了,它工作正常。...