74
41

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 3 years have passed since last update.

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

Posted at

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

参考記事

74
41
3

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
74
41

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?