Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Discord Botで湯婆婆を実装してみる

N高生ってこのネタ好きだよなぁ...人のこと言えないが。

はじめに

@Nemesisさんの「Javaで湯婆婆を実装してみる」が話題なので、実際にDiscord上で「名前を奪ってみようと」思います。

要件整理

Discordの場合、契約書も何も、全部名乗ってから喋ってるので契約書は交わす必要はない。
image.png

ということで以下の動作をするBOTを作る。

  1. 湯婆婆宛にメンション
  2. 例の文章を言われ 名前を奪われる ニックネームを変更される

あとついでに、ステータスも表示させてみる。
image.png
お仕事をプレイ中…なんかヤバそう

① 下準備

この記事通りにセットアップしてみた。
誰でも作れる!Discord Bot(基礎編) - EOiさん

② server.jsをいじる

とりあえずこんな感じに実装してみた。

server.js
//略

client.on('ready', message =>{
 console.log('フン。ようやく準備ができたのかい。');
 client.user.setActivity('お仕事');
});

client.on('message', message =>{
 if (message.author.id == client.user.id){
   return;
 }
 if(message.isMemberMentioned(client.user)){
   console.log(message.author.id);
   var text = "フン。<@" + message.author.id + ">というのかい。贅沢な名だねぇ。";
   message.channel.send(text);

   const random = Math.round(Math.random() * (message.member.displayName).length);
   let newName = (message.member.displayName).substr(random, 1);
   message.guild.member(message.author.id).setNickname(newName);
   console.log(newName);

   text = "今からお前の名前は<@!" + message.author.id + ">だ。いいかい、<@!" + message.author.id + ">だよ。分かったら返事をするんだ、<@!" + message.author.id + ">!!";
   message.channel.send(text);
   return;
 }
});

//略

③ 実行してみる

image.png

うまく行った

困りごと

湯婆婆よりも上位権限のロールがついている人相手には、名前が奪えない。
湯婆婆が上司から名前を奪ったらそれはそれで社会問題になるので、この問題はスルーするとしよう。

終わりに

ネタでした。
湯婆婆BOTはここからサーバーインポートできます。
湯婆婆BOT

参考記事

nekozuki_dev
猫月遥歩(ねこづきあゆむ)です。ニコ厨です。
https://nekozuki.me/
nnn-school
IT×グローバル社会を生き抜く“創造力”を身につけ、世界で活躍する人材を育成する。
https://nnn.ed.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away