今月は仕事が忙しかったのでラズパイは触っていません。。。。
雀魂のDiscord 募集Botをコピペして作ったのでメモ書き
参考URL(というかスプレッドシートの所以外コピペさせて貰いました
変更箇所
Discord.js v14のテンプレートコードを使用して、
スプレッドシートは使用しないのでそれ以外をコピペ。
コマンド登録の所を雀魂用に変更
commands/file.js コマンド登録
const { SlashCommandBuilder } = require('discord.js');
module.exports = {
data: new SlashCommandBuilder()
.setName('募集')
.setDescription('募集を掛けます')
.addStringOption(option =>
option.setName('モード')
.setDescription('選択してください')
.setRequired(true)
.addChoices(
{name:'四人麻雀', value:'四人麻雀'},
{name:'三人麻雀', value:'三人麻雀'},
{name:'期間限定', value:'期間限定'}
))
.addStringOption(option =>
option.setName('長考時間')
.setDescription('選択してください')
.setRequired(true)
.addChoices(
{name:'5+20秒', value:'5+20秒'},
{name:'3+5秒', value:'3+5秒'},
{name:'5+10秒', value:'5+10秒'},
{name:'60+0秒', value:'60+0秒'},
{name:'300+0秒', value:'300+0秒'}
))
.addStringOption(option =>
option.setName('時間')
.setDescription('21時~、今から、など入力ください')
.setRequired(true))
.addStringOption(option =>
option.setName('人数')
.setDescription('@1~3、など入力ください')
.setRequired(true))
.addStringOption(option =>
option.setName('局数')
.setDescription('選択してください')
.addChoices(
{name:'一局戦', value:'一局戦'},
{name:'東風戦', value:'東風戦'},
{name:'半荘戦', value:'半荘戦'},
{name:'CPU戦', value:'CPU戦'}
))
.addStringOption(option =>
option.setName('詳細')
.setDescription('有効で変更がある場合、入力ください'))
.addUserOption(option =>
option.setName('参加者①')
.setDescription('事前に決まっている参加者①'))
.addUserOption(option =>
option.setName('参加者②')
.setDescription('事前に決まっている参加者②')),
async execute(interaction) {
}
}
募集のコメントも少し変更
code.js 募集部分
if (interaction.commandName === "募集"){
const detail = interaction.options.getString('モード');
const Timethink = interaction.options.getString('長考時間');
const count = interaction.options.getString('人数');
const time = interaction.options.getString('時間');
const conditions = interaction.options.getString('局数') ?? null;
const Advanced = interaction.options.getString('詳細') ?? null;
const member1 = interaction.options.getUser('参加者①') ?? null;
const member2 = interaction.options.getUser('参加者②') ?? null;
let message = `### ${user.toString()}` + 'さんの' + detail + '募集!';
const embed = new EmbedBuilder()
.setTitle(detail + '募集!')
.addFields(
{ name:'募集人数', value: count},
{ name:'長考時間', value: Timethink},
{ name:'開始時間', value: time},
{ name:'局数', value: conditions ?? 'なし'},
{ name:'詳細', value: Advanced ?? 'なし'},
)
.setColor('Random')
動作
期間限定モードとか選んだ場合は長考時間の設定しかない場合があったので、
局数とか詳細は任意
雀魂したことないので、
詳細を指定する場合があるかわからないが一応詳細を入力できる
詳細を入力した場合の処理は特に作ってないので
そこはbotにリプしてもらうなど運用に任せたいと思う。