0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

雀魂 Discord用 募集Bot

Posted at

今月は仕事が忙しかったのでラズパイは触っていません。。。。
雀魂の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')

動作

動かすとこんな感じ
image.png

期間限定モードとか選んだ場合は長考時間の設定しかない場合があったので、
局数とか詳細は任意
image.png

雀魂したことないので、
詳細を指定する場合があるかわからないが一応詳細を入力できる
詳細を入力した場合の処理は特に作ってないので
そこはbotにリプしてもらうなど運用に任せたいと思う。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?