作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这会按照我的意愿创建 channel ,但它不会在新 channel 中发布消息“感谢您联系支持人员”。
message.channel.send 将其发送到放置 !ticket 的 channel (不是我不想要的新 channel )
channel.send 和 channel.updateOverwrite 作为非函数返回。我似乎找不到错误!
这是一个基本的票务机器人。
module.exports.run = async (client, message, args) => {
let channel = message.guild.channels.create(`ticket: ${message.author.tag}`,{type: 'text'}).then(channel =>{
channel.setParent('868513748711800853')
});
channel.updateOverwrite(message.guild.id, {
SEND_MESSAGE: false,
VIEW_CHANNEL: false,
});
channel.updateOverwrite(message.author, {
SEND_MESSAGE: true,
VIEW_CHANNEL: true,
});
const reactionMessage = channel.send("Thank you for contacting support!");
try {
reactionMessage.react("🔒");
reactionMessage.react("⛔");
} catch (err) {
channel.reply("Error sending emojis!");
throw err;
}
const collector = reactionMessage.createReactionCollector(
(reaction, user) => message.guild.members.cache.find((member) => member.id === user.id).hasPermission("ADMINISTRATOR"),
{ dispose: true }
);
collector.on("collect", (reaction, user) => {
switch (reaction.emoji.name) {
case "🔒":
channel.updateOverwrite(message.author, { SEND_MESSAGES: false });
break;
case "⛔":
channel.send("Deleting this channel in 5 seconds!");
setTimeout(() => message.channel.delete(), 5000);
break;
}
});
message.channel
.send(`We will be right with you! ${channel}`)
.then((msg) => {
setTimeout(() => msg.delete(), 7000);
setTimeout(() => message.delete(), 3000);
}).catch((err) => {
throw err;
});
};
module.exports.help = {
name: "ticket",
aliases: [""]
}
最佳答案
channels.create()
返回一个挂起的 promise ,所以你需要解决它。如 channel
是一个 promise ,当你打电话时channel.updateOverwrite()
和 channel.send()
,它没有这些方法,它们是未定义的,所以它会抛出一个错误。
let channel = await message.guild.channels.create(
`ticket: ${message.author.tag}`,
{ type: 'text' },
);
await channel.setParent('868513748711800853');
channel.updateOverwrite(message.guild.id, {
SEND_MESSAGE: false,
VIEW_CHANNEL: false,
});
channel.updateOverwrite(message.author, {
SEND_MESSAGE: true,
VIEW_CHANNEL: true,
});
关于javascript - Channel.updateOverwrite 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68512936/
这会按照我的意愿创建 channel ,但它不会在新 channel 中发布消息“感谢您联系支持人员”。 message.channel.send 将其发送到放置 !ticket 的 channel
我是一名优秀的程序员,十分优秀!