当前位置: 首页 > 知识库问答 >
问题:

使用Quick.db设置描述

孟沛
2023-03-14

在我的不和谐机器人,我希望所有的用户有一个可定制的配置文件。每当运行命令!profile或!p时,机器人就会显示一个包含bio(类似于“Hello World”之类的介绍)、自定义嵌入颜色和其他数据库信息(如硬币、能源等)的嵌入。我想确保当他们运行类似!desc Hello World的东西时,他们的profile embed将有消息Hello World,如果他们运行!desc Lorem,他们的自定义embed的bio将被编辑为Lorem等等。我使用Quick.db用简单的db.get和db.set函数实现了它们,但问题是,每当用户设置一个包含多个参数的描述(如Hello World),它在嵌入式中只显示为HelloWorld,而不是包含空格的真正正确的描述。我真的希望嵌入显示用户设置的描述(包含空格和填充),但目前我的代码无法做到这一点。请看一下,指出我该改在哪里!

const db = require("quick.db");
const Discord = require("discord.js");

module.exports = {
  commands: ["description", "desc"],
  minArgs: 1,
  maxArgs: null,
  expectedArgs: ["description to add"],

  callback: (message, arguments, text) => {
    var desc;
    desc = arguments.join("");
    let tester = db.get(`_desc${message.author.id}`);

    if (!tester) {
      db.set(`_desc${message.author.id}`, desc);
    } else {
      db.delete(`_desc${message.author.id}`), db.set(`_desc${message.author.id}`, desc);
    }
    console.log(desc);
  },
};

上面是!desc的代码,下面是!profile的代码。

const db = require("quick.db");
const Discord = require("discord.js");

module.exports = {
  commands: ["profile", "p"],
  alias: ["p"],
  minArgs: 0,
  maxArgs: null,

  callback: async (message, arguments, text) => {
    let target = message.mentions.members.first() || message.author;

    const balance = db.get(`honey_${target.id}`);
    const energy = db.get(`energy_${target.id}`);
    var desc = db.get(`_desc${target.id}`);
    if (desc === null) {
      let desc = "this user have yet to set a description!";
    }

    const embed = new Discord.MessageEmbed()
      .setTitle(`${target.tag}'s profile`)
      .setColor("#ECB802")
      .addFields(
        { name: "Description", value: `${desc}`, inline: false },
        {
          name: "cards",
          value: "1",
          inline: true,
          //to do
        },
        { name: "Gym battle record", value: "1/0", inline: true }, //to do
        {
          name: "Honey",
          value: `${balance} :honey_pot:`,
          inline: true,
        },
        {
          name: "energy",
          value: `${energy} :dizzy:`,
          inline: true,
        },
      );

    message.channel.send(embed);
  },
};

共有1个答案

单于旭东
2023-03-14

您正在使用arguments.join('')获取描述,该描述将用一个空字符串连接两个字符串:

null

const message = ['Hello', 'World'];

console.log(message.join('')); // no spaces
console.log(message.join(' ')); // instead, join by a space!
 类似资料:
  • 我正在开发一个Eclipse插件,它可以为java项目生成一些模板。 当我调用向导时,我可以选择项目向导,但如果我能在“新建向导页面”中显示我的向导的描述,当它被选中/聚焦时,那就太好了.... 参考图片: 所以在这堂课上 我做了: GetStartingPage().SetDescription(“测试描述”);(没有幸运的结果。) GetStartingPage().SetTitle(“测试描

  • Atom支持语言特定的设置。你可以在Markdown文件中软换行,或者在Python中把tab的宽度设置为4。 语言特定的设置只是一些东西的子集,我们把它叫做“作用域设置”。作用域设置可以只作用于一类特定的语法符号。比如你可以仅仅对Ruby的注释,Markdown中的代码段,或者JavaScript函数名称进行设置。 语法符号中的作用域名称 编辑器的每个符号都有一系列的作用域名称。例如,前面提到的

  • 问题内容: 我可以写一个描述符,返回一个可以等待的未来。 现在,我可以用来获取协程中的值。 如何设置此属性? -> SyntaxError:无法分配给等待表达式 -> TypeError:对象NoneType不能在’await’表达式中使用 -> RuntimeWarning:从未等待协程’set‘ 问题答案: 您尝试执行的操作是不可能的(使用Python 3.5)。 虽然返回Future是明智的

  • 问题内容: 我正在尝试将jenkins管道作为代码来做。我正在使用Github组织文件夹插件来扫描Github组织并为每个分支创建作业。有没有一种方法可以明确定义从Jenkinsfile获取的管道作业的名称?我还想为作业添加一些说明。 问题答案: 您需要使用如下所示。该部分很重要 编辑:上面一个重命名生成,其中原始问题是关于重命名作业。在管道中执行以下脚本可以做到这一点(这需要 适当的权限 )

  • 问题内容: 当您想使用Javascript更改HTML时,如何知道何时使用以下任一方法? 问题答案: 设置通常用于输入/表单元素。通常用于div,span,td和类似元素。

  • 这是继续这个问题。 我添加了一个模型来获取查询参数到pydantic模型 它按预期工作,但描述(在模型中添加)没有反映在 Swagger UI 中 但是,如果请求正文使用相同的模型,则描述将以大摇大摆的方式显示 为了在swagger ui中获得对QueryParams(model)的描述,我是否遗漏了什么?