1
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?

More than 1 year has passed since last update.

discord.js v13 もくもくログbot作成

Last updated at Posted at 2022-07-08

discord.js 初挑戦。
もくもく会のサーバーで使うログ用のbotを作りました。

  • npm v8.11.0
  • Node.js v16.15.1
  • discord.js v13.8.1

導入

こちらの記事をガッツリ参考に、というかマルパクしました。
ありがとうございます。

が、clientインスタンスは下記に書き換えないと動かなかったので注意。

const client = new Client({intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES]}); 

.gitignoreを設定

.gitignoreに入れておく。

node_modules
config.json
.env

config.json は Github なんかでコード管理したいときにトークン置き場として使う。詳しくは Discord.js Japan User Group のページを参照。

jsonファイルを使用してトークンを管理する(安全に)

Discord API 公式Doc

APIの仕様はこちら参考↓

実装

まずはjsonファイルにIDもろもろを書いておく。

config.json
{
  "token": "トークン",
  "guildId": "サーバーID",
  "logsId": "ログ投稿用チャンネルのID"
}

index.jsにこれらを書く。

index.js
const { Client, Intents } = require("discord.js");
const config = require("./config.json"); //トークン格納用

const client = new Client({
  intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES],
});

const guildId = config.guildId;
const logsId = config.logsId;

client.once("ready", () => {
  console.log(`${client.user.tag} 起動完了`); 
});

client.on("messageCreate", (message) => {
  if (message.author.bot) {
    return;
  }
  if (
    message.content.startsWith("■今日やること") ||
    message.content.startsWith("■今日の成果") //もくもく会参加時のテンプレを拾う
  ) {
    client.channels.cache.get(logsId).send({ //指定したチャンネルIDに下記内容を転記
      content: `${message.author} \n ${message.content}`, //@投稿者<改行>投稿内容
    });
  }
});

client.on("messageCreate", async (message) => {
  if (message.content.startsWith("■今日の成果")) {
    message.react("🍵"); //お疲れ様の意
  }
});

client.login(config.token); //ログイン

起動

package.jsonに以下を追記しておく。

package.json
"start": "node ."

プロジェクトディレクトリ(index.jsのルート)で「node .」と打ち込めば起動する。
image.png

こんな感じで指定チャンネルに投稿してくれる。

image.png

1
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
1
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?