用途・目的
サークルのDiscordのメンバー管理を自動化したい。人間がいちいち対応していると、初見さんにとって参加の敷居が高いかなと思ったから、学籍番号や電話番号の入力フォームを作る。
完成系
コード
const modal = new ModalBuilder()
.setCustomId(interaction.customId)
.setTitle("参加申請書");
const studentIDInput = new TextInputBuilder()
.setCustomId("student-id")
.setLabel("学籍番号(半角)")
.setPlaceholder("J01122334")
.setRequired(true)
.setStyle(TextInputStyle.Short);
const studentNameInput = new TextInputBuilder()
.setCustomId("student-name")
.setLabel("氏名")
.setPlaceholder("田中 太郎")
.setRequired(true)
.setStyle(TextInputStyle.Short);
const studentPhoneNumber = new TextInputBuilder()
.setCustomId("student-phone")
.setLabel("電話番号")
.setPlaceholder("080-XXXX-XXXX")
.setRequired(true)
.setStyle(TextInputStyle.Short);
const firstActionRow = new ActionRowBuilder<TextInputBuilder>().addComponents(studentIDInput);
const secondActionRow = new ActionRowBuilder<TextInputBuilder>().addComponents(studentNameInput);
const thirdActionRow = new ActionRowBuilder<TextInputBuilder>().addComponents(studentPhoneNumber);
modal.addComponents(firstActionRow, secondActionRow, thirdActionRow);
await interaction.showModal(modal);
これを適当なintractionにひっかけておく。