获取通过discord.js选项传递的值

2024-04-30

const data = new SlashCommandBuilder() // </> command
  .setName('info')
  .setDescription('информация об админе')
  .addStringOption(option =>
    option.setName('steam64')
      .setDescription('numbers')
      .setRequired(true));
//code 
client.on('interactionCreate', async interaction => {
  if (interaction.commandName === 'убитьбота') {
    interaction.reply("Успешно!");
    client.destroy();
  }
  else if (interaction.commandName === 'info'){ // Problem
    console.log("here");
    id = interaction.options.string; // over here //
    console.log(id) // undefined
    console.log(admins[id]) // undefined
    const embed = new MessageEmbed()
      .setColor('#77dd77')
      .setTitle('Информация')
      .setDescription(`Имя: ${admins[id].NAME} \n **Описание:** ${admins[id].DIS} \n **Звание:** ${admins[id].ADMINLVL} \n **Наказание** - ***Выговоров:*** ${admins[id].PUNS.VARN} | ***Предов:*** ${admins[id].PUNS.PRED}`); // error
    await interaction.reply({ content: 'Вот!', ephemeral: true, embeds: [embed]});
    console.log(interaction.option);
    interaction.reply(`debug - {admins} в conlose)`);
  }    
});

如何获取传递过来的变量option?
我已经浏览了大部分方法,但还没有找到获取变量的方法。

我使用 Discord.js v13.12.0。

JSON:

{
    "76561198887558606": {
        "NAME": "Пельмень",
        "DIS": "Вы хотите знать что-то обо мне? Хи-Хи [NO DATA] ooops!",
        "ADMINLVL": "GOD XD",
        "PUNS":
        {
            "VARN": 0,
            "PRED": 0
        }
    },
    "76561199037779891":{
        "NAME": "Senko Number ₲ne",
        "DIS": "[NO DATA] ooops!",
        "ADMINLVL": "Технарь",
        "PUNS":
        {
            "VARN": 0,
            "PRED": 0
        }
    }
}

获取用户输入的命令选项设置.addStringOption(option => option.setName('steam64')), 您可以使用interaction.options.getString('steam64').

else if (interaction.commandName === 'info') {
  const id = interaction.options.string('steam64');
  console.log(id) // the value provided by user

您可以查看的文档CommandInteractionOptionResolver https://discord.js.org/#/docs/main/stable/class/CommandInteractionOptionResolver您可以在其中找到您可能需要的所有方法:

// .addStringOption((option) =>
//   option.setName('string').setDescription('Enter a string'),
// )
const string = interaction.options.getString('string');

// .addIntegerOption((option) =>
//   option.setName('integer').setDescription('Enter an integer'),
// )
const integer = interaction.options.getInteger('integer');

// .addNumberOption((option) =>
//   option.setName('number').setDescription('Enter a number'),
// )
const number = interaction.options.getNumber('number');

// .addBooleanOption((option) =>
//   option.setName('boolean').setDescription('Select a boolean'),
// )
const boolean = interaction.options.getBoolean('boolean');

// .addUserOption((option) =>
//   option.setName('target').setDescription('Select a user'),
// )
const user = interaction.options.getUser('target');
const member = interaction.options.getMember('target');

// .addChannelOption((option) =>
//   option.setName('channel').setDescription('Select a channel'),
// )
const channel = interaction.options.getChannel('channel');

// .addRoleOption((option) =>
//   option.setName('role').setDescription('Select a role'),
// )
const role = interaction.options.getRole('role');

// .addAttachmentOption((option) =>
//   option.setName('attachment').setDescription('Attach something'),
// );
const attachment = interaction.options.getAttachment('attachment');

// .addMentionableOption((option) =>
//   option.setName('mentionable').setDescription('Mention something'),
// )
const mentionable = interaction.options.getMentionable('mentionable');

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取通过discord.js选项传递的值 的相关文章

  • 为什么 jQuery 点击事件会多次触发

    我这里有这个示例代码http jsfiddle net DBBUL 10 http jsfiddle net DBBUL 10 document ready function creategene click function confir
  • 如何通过 HTML 按钮播放声音

    我目前通过网站播放音乐的方法是通过 HTML 音频标签 不过我希望能够通过 HTML 按钮来播放它 该按钮应该能够在播放和停止之间切换音乐 我在 JSFiddle 创建了一个示例 但不知道如何实现它 有人可以告诉我如何使用我的 JSFidd
  • 计算Javascript中两次点击之间的时间

    我想用 javascript 计算属性的两次点击之间的时间 但我不知道如何 例如 a href click here a 如果用户单击多次 假设 5 秒内 我想显示警报 如果有帮助的话我正在使用 jQuery 我对 javascript 不
  • Flask wtf.quick_form 运行一些 javascript 并设置表单变量

    我正在创建博客文章 到目前为止已经使用普通的 html 表单完成了 我所做的一个有趣的想法是运行 javascript onclick 并使用页面中的额外数据在表单中设置一个隐藏变量 这很好地传递到服务器并通过 request form 获
  • 未捕获的引用错误:myFunction 未定义[重复]

    这个问题在这里已经有答案了 这到底是怎么回事 http jsfiddle net sVT54 http jsfiddle net sVT54
  • 如何使用 jQuery 向表中添加新行,并为其分配递增的 id

    我有一个现有的 HTML 表格 它是用户输入 GPS 点的表单的一部分 用户还可以选择上传 GPS 数据点 我想要一个用户可以按下的按钮 其中一些 Javascript 会向表中添加一个或多个新行 但新行必须继续增加表中使用的名称和 id
  • HTML colorpicker 发生变化时如何获取新值?

    我正在开发一个需要更改 HTML 颜色的网络应用程序canvas基于的价值观colorpicker 我有一个colorpicker在我需要获取的 HTML 中value从每次更新开始
  • v-file-input .click() 不是函数

    我试图以编程方式触发 v file input 的 click 事件 因为它在 Vuetify 的文档中 但它显示一个错误this refs imagePicker click is not a function我在这里错过了什么吗 代码重
  • Aptana Studio 3 上的预览选项卡在哪里?

    我在 Windows PC 上使用 Aptana Studio 2 并有一个选项卡用于在 IE 上预览页面 另一个选项卡用于在 Firefox 上预览 但我切换到了 Aptana 3 我不知道是没有预览还是我没有找到它 是的 我在 stac
  • 用数组反向查找对象

    假设我有一个这样的对象 resourceMap a 0 1 2 3 4 5 6 7 8 9 10 b 11 12 c 21 23 d 54 55 56 57 510 确定是否的最佳方法是什么resourceId 21将会 c 我们不知道钥匙
  • Express URIError:无法解码参数

    当请求的参数包含时 我将 next js 与自定义 Express 服务器一起使用 它会导致此错误 URIError Failed to decode param faker at decodeURIComponent
  • 选中复选框时提交表单

    有没有办法在选中复选框时提交表单
  • React无限滚动scrollableTarget动态获取id?

    我在我的项目中使用react infinite scroll component 如何让scrollableTarget动态获取item id 我试过这样scrollableTarget item id 但它不起作用 必须与该 div 具有
  • PHP 中的简单 JSON 请求

    我有以下 json country code latitude 45 9390 longitude 24 9811 zoom 6 address city country Romania country code RO region 我只想
  • 如何在 e2e AngularJS 测试中进行文件上传?

    在我的一种观点中 我有一个文件上传控件 它支持通过拖放或单击按钮后打开的标准文件对话框上传文件 How to do this in my e2e tests1 1 Just one of the two options will be en
  • 从多维无穷大数组中删除数组元素

    我想删除一个特定元素 例如 我想删除元素id 76在下面的数组中 而且 数组可以无限地组合在一起 这里的问题是我无法刷新页面 因为我使用 Vue js 进行即时操作 如果我能做到这一点 我的下一个问题可能是如何在我现在想要的地方添加一个元素
  • 在java中创建一个XML树并将其转换为json对象

    我尝试创建也能够转换为 json 的树 但对于只有一个xpath 当我尝试实现多个 xpath 时 我无法获得所需的输出 这里我分享一下我的实现 private static Document addElemtbypath List
  • 尝试将 Firebase 版本回滚到 2.X

    我最近更新到了新的 Firebase 3 但不幸的是 据我所知 它目前不支持 Geofire 查询 这对我的应用程序很重要 我已经将应用程序中的其他所有内容都转为使用 Firebase 2 但是当我尝试时要将我的应用程序部署到 fireba
  • 当选择下拉列表中的某些值时,取消选中复选框

    当我从下拉列表中选择某个值或用户未从下拉列表中选择任何值时 我需要取消选中复选框 我现在正在使用 Jquery 这是我现在使用的代码 但它不起作用 Script
  • Express.js Passport认证自动失败跳过策略

    UPDATE 我已将代码从护照本地注册内部移至单独的处理程序 并且运行良好 问题在于 Passport 和本地注册的使用 但我不知道为什么 我使用 Node js Express Passport 进行身份验证和注册设置 这是以前使用过的标

随机推荐