当错误的 link 或 url 粘贴到图像中时,机器人会一直崩溃。我能做什么?
Bot keeps crashing when wrong link is paste in the image, or url. what can i do?
我正在创建一个动态嵌入生成器,当错误的 link 或 url.
粘贴到图像中时,我的 Discord Bot 一直崩溃
我的代码:
const { CommandInteraction, MessageEmbed, WebhookClient, GuildMember, ApplicationCommandManager, HTTPError } = require("discord.js");
module.exports = {
name: "bejelentés_készítés",
description: "⟬ADMIN⟭ Rövid beágyazott üzenet",
options: [
{name: "csatorna",description: "válaszd ki a csatornát ahova küldeni szeretnéd",required: true,type: 7,},
{name: "rang",description: "Add meg a ping rang-ot!",required: true,type: 8,},
{name: "szín",description: "Válassz egy színt",required: true,type: 3,
choices: [{name: "Random",value: "RANDOM"},{name: "Red",value: "RED"},{name: "Aqua",value: "AQUA"},{name: "Dark Aqua",value: "DARK_AQUA"},{name: "Green",value: "GREEN"},{name: "Dark Green",value: "DARK_GREEN"},
{name: "Blue",value: "BLUE"},{name: "Dark Blue",value: "DARK_BLUE"},{name: "Purple",value: "PURPLE"},{name: "Dark Purple",value: "DARK_PURPLE"},{name: "Luminous Vivid Pink",value: "LUMINOUS_VIVID_PINK"},
{name: "Dark Vivid Pink",value: "DARK_VIVID_PINK"},{name: "Gold",value: "GOLD"},{name: "Dark Gold",value: "DARK_GOLD"},{name: "Orange",value: "ORANGE"},{name: "Dark Orange",value: "DARK_ORANGE"},
{name: "Dark Red",value: "DARK_RED"},{name: "Grey",value: "GREY"},{name: "Dark Grey",value: "DARK_GREY"},{name: "Darker Grey",value: "DARKER_GREY"},{name: "Light Grey",value: "LIGHT_GREY"},
{name: "Navy",value: "NAVY"},{name: "Dark Navy",value: "DARK_NAVY"},{name: "Yellow",value: "YELLOW"},{name: "White",value: "WHITE"}]
},
{name: "cím",description: "Add meg a címet",required: true,type: 3,},
{name: "leírás",description: "Add meg a leírást",required: true,type: 3,},
{name: "link",description: "Csatolj egy link-et",required: false,type: 3,},
{name: "kép",description: "Illesz be egy kép linket",required: false,type: 3,},
{name: "további_cím_1",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_1",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_2",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_2",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_3",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_3",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_4",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_4",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_5",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_5",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_6",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_6",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_7",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_7",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_8",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_8",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_9",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_9",description: "Írd le amit közölnél",type: 3,required: false},
],
/**
*
* @param {CommandInteraction} interaction
* @param {GuildMember} member
*/
async execute(interaction, member) {
const { options } = interaction;
const { user, guild } = member;
const WebhookRes = new WebhookClient({
id: "",
token: ""
});
const cím = options.getString("cím");
const szín = options.getString("szín");
const leírás = options.getString("leírás");
const kép = options.getString("kép");
const hc1 = options.getString("további_cím_1");
const hl1 = options.getString("további_leírás_1");
const hc2 = options.getString("további_cím_2");
const hl2 = options.getString("további_leírás_2");
const hc3 = options.getString("további_cím_3");
const hl3 = options.getString("további_leírás_3");
const hc4 = options.getString("további_cím_4");
const hl4 = options.getString("további_leírás_4");
const hc5 = options.getString("további_cím_5");
const hl5 = options.getString("további_leírás_5");
const hc6 = options.getString("további_cím_6");
const hl6 = options.getString("további_leírás_6");
const hc7 = options.getString("további_cím_7");
const hl7 = options.getString("további_leírás_7");
const hc8 = options.getString("további_cím_8");
const hl8 = options.getString("további_leírás_8");
const hc9 = options.getString("további_cím_9");
const hl9 = options.getString("további_leírás_9");
const link = options.getString("link");
const rang = options.getRole("rang");
const csatorna = options.getChannel("csatorna");
let Response = new MessageEmbed()
.setColor(`${ szín }`)
.setTitle(`${ cím }`)
.setAuthor({ name: interaction.member.user.tag, iconURL: interaction.member.user.avatarURL({dynamic: true, size: 512}) })
.setDescription(`${rang} ${ leírás }`)
.setThumbnail('https://media.discordapp.net/attachments/967828295121006592/969690574674354337/958794200999145513.png')
.setFooter({text: `Telihold, tele mosoly `})
.setTimestamp()
if ( hc1 ) {Response.addField(`${ hc1 }`, `${ hl1 }`)}
if ( hc2 ) {Response.addField(`${ hc2 }`, `${ hl2 }`)}
if ( hc3 ) {Response.addField(`${ hc3 }`, `${ hl3 }`)}
if ( hc4 ) {Response.addField(`${ hc4 }`, `${ hl4 }`)}
if ( hc5 ) {Response.addField(`${ hc5 }`, `${ hl5 }`)}
if ( hc6 ) {Response.addField(`${ hc6 }`, `${ hl6 }`)}
if ( hc7 ) {Response.addField(`${ hc7 }`, `${ hl7 }`)}
if ( hc8 ) {Response.addField(`${ hc8 }`, `${ hl8 }`)}
if ( hc9 ) {Response.addField(`${ hc9 }`, `${ hl9 }`)}
if ( kép ) {Response.setImage(`${kép}`)}
if (link ) {Response.setURL (`${link}`)}
interaction.guild.channels.cache.get(csatorna.id).send({embeds: [Response], fetchReply: true})
interaction.reply({content: `A beágyazást elküldtem **${cím}**-Címmel | ${rang} pingeléssel | a ${csatorna} csatornára`, ephemeral: true})
//if (!`${link}` === 'http', 'https') return interaction.reply({ content: 'Hibás adatot adtál meg, kérlek próbáld újra!', ephemeral: true })
//if (!link || link === 'http', 'https') return interaction.reply({content: `Nem sikerült elküldenem a **${cím}**-Címmű beágyazást, rossz **link** formátum miatt! `, ephemeral: true});
//if (!kép || kép === 'http', 'https') return interaction.reply({content: `Nem sikerült elküldenem a **${cím}**-Címmű beágyazást, rossz **kép** formátum miatt! `, ephemeral: true});
}
}
如果 url 错误,我该如何发送错误消息?
我想要,如果 url 图像或 link 格式不正确,则不创建嵌入,并发送消息:“url 格式无效,请重试!” .我应该使用正则表达式吗?以及如何?
您可以使用正则表达式检查来确保 url 有效
if (link) {
if (/(https?:\/\/)/gi.test(link)) {
// will check if url includes http:// or https://
Response.setURL (`${link}`);
} else {
return interaction.reply({ content: 'Invalid url', ephemeral: true })}
}
}
我正在创建一个动态嵌入生成器,当错误的 link 或 url.
粘贴到图像中时,我的 Discord Bot 一直崩溃我的代码:
const { CommandInteraction, MessageEmbed, WebhookClient, GuildMember, ApplicationCommandManager, HTTPError } = require("discord.js");
module.exports = {
name: "bejelentés_készítés",
description: "⟬ADMIN⟭ Rövid beágyazott üzenet",
options: [
{name: "csatorna",description: "válaszd ki a csatornát ahova küldeni szeretnéd",required: true,type: 7,},
{name: "rang",description: "Add meg a ping rang-ot!",required: true,type: 8,},
{name: "szín",description: "Válassz egy színt",required: true,type: 3,
choices: [{name: "Random",value: "RANDOM"},{name: "Red",value: "RED"},{name: "Aqua",value: "AQUA"},{name: "Dark Aqua",value: "DARK_AQUA"},{name: "Green",value: "GREEN"},{name: "Dark Green",value: "DARK_GREEN"},
{name: "Blue",value: "BLUE"},{name: "Dark Blue",value: "DARK_BLUE"},{name: "Purple",value: "PURPLE"},{name: "Dark Purple",value: "DARK_PURPLE"},{name: "Luminous Vivid Pink",value: "LUMINOUS_VIVID_PINK"},
{name: "Dark Vivid Pink",value: "DARK_VIVID_PINK"},{name: "Gold",value: "GOLD"},{name: "Dark Gold",value: "DARK_GOLD"},{name: "Orange",value: "ORANGE"},{name: "Dark Orange",value: "DARK_ORANGE"},
{name: "Dark Red",value: "DARK_RED"},{name: "Grey",value: "GREY"},{name: "Dark Grey",value: "DARK_GREY"},{name: "Darker Grey",value: "DARKER_GREY"},{name: "Light Grey",value: "LIGHT_GREY"},
{name: "Navy",value: "NAVY"},{name: "Dark Navy",value: "DARK_NAVY"},{name: "Yellow",value: "YELLOW"},{name: "White",value: "WHITE"}]
},
{name: "cím",description: "Add meg a címet",required: true,type: 3,},
{name: "leírás",description: "Add meg a leírást",required: true,type: 3,},
{name: "link",description: "Csatolj egy link-et",required: false,type: 3,},
{name: "kép",description: "Illesz be egy kép linket",required: false,type: 3,},
{name: "további_cím_1",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_1",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_2",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_2",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_3",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_3",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_4",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_4",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_5",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_5",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_6",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_6",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_7",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_7",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_8",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_8",description: "Írd le amit közölnél",type: 3,required: false},
{name: "további_cím_9",description: "Adj egy címet",type: 3,required: false},{name: "további_leírás_9",description: "Írd le amit közölnél",type: 3,required: false},
],
/**
*
* @param {CommandInteraction} interaction
* @param {GuildMember} member
*/
async execute(interaction, member) {
const { options } = interaction;
const { user, guild } = member;
const WebhookRes = new WebhookClient({
id: "",
token: ""
});
const cím = options.getString("cím");
const szín = options.getString("szín");
const leírás = options.getString("leírás");
const kép = options.getString("kép");
const hc1 = options.getString("további_cím_1");
const hl1 = options.getString("további_leírás_1");
const hc2 = options.getString("további_cím_2");
const hl2 = options.getString("további_leírás_2");
const hc3 = options.getString("további_cím_3");
const hl3 = options.getString("további_leírás_3");
const hc4 = options.getString("további_cím_4");
const hl4 = options.getString("további_leírás_4");
const hc5 = options.getString("további_cím_5");
const hl5 = options.getString("további_leírás_5");
const hc6 = options.getString("további_cím_6");
const hl6 = options.getString("további_leírás_6");
const hc7 = options.getString("további_cím_7");
const hl7 = options.getString("további_leírás_7");
const hc8 = options.getString("további_cím_8");
const hl8 = options.getString("további_leírás_8");
const hc9 = options.getString("további_cím_9");
const hl9 = options.getString("további_leírás_9");
const link = options.getString("link");
const rang = options.getRole("rang");
const csatorna = options.getChannel("csatorna");
let Response = new MessageEmbed()
.setColor(`${ szín }`)
.setTitle(`${ cím }`)
.setAuthor({ name: interaction.member.user.tag, iconURL: interaction.member.user.avatarURL({dynamic: true, size: 512}) })
.setDescription(`${rang} ${ leírás }`)
.setThumbnail('https://media.discordapp.net/attachments/967828295121006592/969690574674354337/958794200999145513.png')
.setFooter({text: `Telihold, tele mosoly `})
.setTimestamp()
if ( hc1 ) {Response.addField(`${ hc1 }`, `${ hl1 }`)}
if ( hc2 ) {Response.addField(`${ hc2 }`, `${ hl2 }`)}
if ( hc3 ) {Response.addField(`${ hc3 }`, `${ hl3 }`)}
if ( hc4 ) {Response.addField(`${ hc4 }`, `${ hl4 }`)}
if ( hc5 ) {Response.addField(`${ hc5 }`, `${ hl5 }`)}
if ( hc6 ) {Response.addField(`${ hc6 }`, `${ hl6 }`)}
if ( hc7 ) {Response.addField(`${ hc7 }`, `${ hl7 }`)}
if ( hc8 ) {Response.addField(`${ hc8 }`, `${ hl8 }`)}
if ( hc9 ) {Response.addField(`${ hc9 }`, `${ hl9 }`)}
if ( kép ) {Response.setImage(`${kép}`)}
if (link ) {Response.setURL (`${link}`)}
interaction.guild.channels.cache.get(csatorna.id).send({embeds: [Response], fetchReply: true})
interaction.reply({content: `A beágyazást elküldtem **${cím}**-Címmel | ${rang} pingeléssel | a ${csatorna} csatornára`, ephemeral: true})
//if (!`${link}` === 'http', 'https') return interaction.reply({ content: 'Hibás adatot adtál meg, kérlek próbáld újra!', ephemeral: true })
//if (!link || link === 'http', 'https') return interaction.reply({content: `Nem sikerült elküldenem a **${cím}**-Címmű beágyazást, rossz **link** formátum miatt! `, ephemeral: true});
//if (!kép || kép === 'http', 'https') return interaction.reply({content: `Nem sikerült elküldenem a **${cím}**-Címmű beágyazást, rossz **kép** formátum miatt! `, ephemeral: true});
}
}
如果 url 错误,我该如何发送错误消息? 我想要,如果 url 图像或 link 格式不正确,则不创建嵌入,并发送消息:“url 格式无效,请重试!” .我应该使用正则表达式吗?以及如何?
您可以使用正则表达式检查来确保 url 有效
if (link) {
if (/(https?:\/\/)/gi.test(link)) {
// will check if url includes http:// or https://
Response.setURL (`${link}`);
} else {
return interaction.reply({ content: 'Invalid url', ephemeral: true })}
}
}