Discord.js DND 掷骰子输入更改号码
Discord.js DND Dice Roll Input Change Number
我在我的机器人上制作了一个“有效”的掷骰子功能。可以很好地满足我的需要,但我想知道如何做到这一点,所以取决于 discord 中所说的内容。
所以说 !rolld6 会在 var 响应中使用 6 而不是 20。
if (message.content.toLowerCase().includes("!rolld20")) {
const ayy = client.emojis.cache.find(emoji => emoji.name === "diceroll");
var response = [Math.floor(Math.random() * ((20 - 1) + 1) + 1)];
message.channel.send(`${ayy}` + `Rolling.`)
.then(msg => {
setTimeout(function() {
msg.edit(`${ayy}` + `Rolling..`)
}, 1000);
setTimeout(function() {
msg.edit(`${ayy}` + `Rolling...`)
}, 2000)
setTimeout(function() {
msg.edit(`${ayy}` + `Rolling....`)
}, 3000)
setTimeout(function() {
msg.edit(`${ayy}` + " Rolled... " + response + " " + `${ayy}`).then().catch(console.error)
}, 4000)
})
return;
}
甚至不确定我会搜索什么来解决这个问题,所以非常感谢您的帮助!
使用正则表达式代替.includes
,然后提取d
之后的数字进行随机化。
您不需要减去 1,然后在之后立即加 1 - 这些会抵消,您也不需要将结果放入数组 - 只需将生成的随机数插入到消息中就可以了。
const match = message.content.match(/!rolld(\d+)/i);
if (match) {
const die = match[1];
const response = 1 + Math.floor(Math.random() * die);
const ayy = client.emojis.cache.find(emoji => emoji.name === "diceroll");
我在我的机器人上制作了一个“有效”的掷骰子功能。可以很好地满足我的需要,但我想知道如何做到这一点,所以取决于 discord 中所说的内容。
所以说 !rolld6 会在 var 响应中使用 6 而不是 20。
if (message.content.toLowerCase().includes("!rolld20")) {
const ayy = client.emojis.cache.find(emoji => emoji.name === "diceroll");
var response = [Math.floor(Math.random() * ((20 - 1) + 1) + 1)];
message.channel.send(`${ayy}` + `Rolling.`)
.then(msg => {
setTimeout(function() {
msg.edit(`${ayy}` + `Rolling..`)
}, 1000);
setTimeout(function() {
msg.edit(`${ayy}` + `Rolling...`)
}, 2000)
setTimeout(function() {
msg.edit(`${ayy}` + `Rolling....`)
}, 3000)
setTimeout(function() {
msg.edit(`${ayy}` + " Rolled... " + response + " " + `${ayy}`).then().catch(console.error)
}, 4000)
})
return;
}
甚至不确定我会搜索什么来解决这个问题,所以非常感谢您的帮助!
使用正则表达式代替.includes
,然后提取d
之后的数字进行随机化。
您不需要减去 1,然后在之后立即加 1 - 这些会抵消,您也不需要将结果放入数组 - 只需将生成的随机数插入到消息中就可以了。
const match = message.content.match(/!rolld(\d+)/i);
if (match) {
const die = match[1];
const response = 1 + Math.floor(Math.random() * die);
const ayy = client.emojis.cache.find(emoji => emoji.name === "diceroll");