【问题标题】:How do you pass a string as an option in Discord.js如何在 Discord.js 中将字符串作为选项传递
【发布时间】:2022-01-24 20:12:05
【问题描述】:

我正在使用 Discord.js V13 (Node JS v16.8.0) 并希望将字符串作为选项传递

module.exports = {
    data: new SlashCommandBuilder()
        .setName('punish')
        .setDescription('Punish a Guild Member')
          .addUserOption(option =>
            option.setName('target')
              .setDescription('Select a user')
              .setRequired(true))

          .addStringOption(option =>
            option.setName('category')
              .setDescription('Choose punishment')
              .setRequired(true)
              .addChoice('Kick', 'kick')
              .addChoice('Ban', 'ban')),

async execute(interaction) {
  const member = interaction.options.getMember('target');
  const type = interaction.options.getString('type')
  
  await member.type(`Reason: Spam`) //member.ban() / member.kick()
  await interaction.reply("Kicked member successfully.")

  },
};

我得到了用户的选择(类别),想按照它执行惩罚。

当我执行member.type() 时,我当然会得到一个错误,因为我无法将字符串作为选项传递,有什么办法可以做到这一点吗?

我知道你可以做if (type == 'kick') { //... } if (type == 'ban') { //... },但我认为我的解决方案更方便和有用

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    您可以通过名称访问member 的属性(并调用其方法),如下所示:

    member["propertyName"]();
    

    所以在你的用例中:

    member[type]('Reason: Spam');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-06
      • 2013-04-13
      相关资源
      最近更新 更多