Quantcast
Viewing all articles
Browse latest Browse all 8691

DiscordでMinecraftのゲーマータグを公開したい。

まえがき

Discordでのマインクラフトのサーバーがあるのですが、そのサーバーで活動するうちにゲーマータグの共有ができたらいいなと思いました。
そのために、ゲーマータグを共有するソースを書こうと思い書かせていただきました。

マインクラフトサポートbotの招待

動作環境

node.js v12
discord.js v12.5.1
repl.it

必要なもの

気合
マイクラ愛

ソースコード

先にソースコードを提示しておきます。

main.js
if(message.content.startsWith(prefix+"gamertag")){letakb=message.content.split("").slice(1).join("")if(!akb)returnmessage.channel.send('一言が設定されていません。')letAKB=message.content.split("").slice(2).join("")if(!AKB)returnmessage.channel.send('ゲーマータグが設定されてません。')letakb2=akb.replace(AKB,"")try{message.channel.send({embed:{timestamp:newDate(),color:"RANDOM",description:`**成功**\nゲーマータグ一覧にあなたのゲーマータグが正常に送られました。\n\n内容`+"```diff\n+ 一言:"+akb2+"\n- タグ:"+AKB+"```"}});client.channels.cache.filter(ch=>ch.name==='ゲーマータグ一覧').forEach(ch=>ch.send({embed:{author:{name:message.author.username,url:message.author.avatarURL(),icon_url:message.author.avatarURL()},thumbnail:{url:message.author.avatarURL()},timestamp:newDate(),color:"RANDOM",description:`一言:${akb2}\nタグ:${AKB}`,footer:{icon_url:client.user.avatarURL(),text:client.user.username},}} ))}catch(err){message.channel.send({embed:{timestamp:newDate(),color:"RANDOM",description:"**エラー : 実行中にエラーが発生しました。**\n```js\n"+err+"```"}});}}

このようなソースになってます。

ソースの解説

main.js
if(message.content.startsWith(prefix+"gamertag")){//反応させるメッセージtry{//errの確認用letakb=message.content.split("").slice(1).join("")//一言+タグの文を取得if(!akb)returnmessage.channel.send('一言が設定されていません。')//一言の文がなかったら送るletAKB=message.content.split("").slice(2).join("")//タグの文を取得if(!AKB)returnmessage.channel.send('ゲーマータグが設定されてません。')//タグの文がなかったら送るletakb2=akb.replace(AKB,"")//akbの文を一言のみの部分にする

let akb = message.content.split(" ").slice(1).join(" ")だけだとタグと一言を両方取得してしまうのでlet akb2 = akb.replace(AKB, "")で加工して一言の文のみになるように変更します。
let AKB = message.content.split(" ").slice(2).join(" ")はタグを取得します。


main.js
message.channel.send({embed:{timestamp:newDate(),//メッセージを送った時間を設定color:"RANDOM",//色を取得description:`**成功**\nゲーマータグ一覧にあなたのゲーマータグが正常に送られました。\n\n内容`+"```diff\n+ 一言:"+akb2+"\n- タグ:"+AKB+"```"//送るメッセージ}});//送信

これは設定した文を確認のために出しています。


main.js
client.channels.cache.filter(ch=>ch.name==='ゲーマータグ一覧').forEach(ch=>ch.send(//botが入っているサーバーの"ゲーマータグ一覧"というチャンネルの名のチャンネルを取得してすべてのチャンネルに送る。{embed:{author:{name:message.author.username,url:message.author.avatarURL(),icon_url:message.author.avatarURL()},thumbnail:{url:message.author.avatarURL()},timestamp:newDate(),color:"RANDOM",description:`一言:${akb2}\nタグ:${AKB}`,footer:{icon_url:client.user.avatarURL(),text:client.user.username},}} ))

解説するところはない


main.js
}catch(err){//errを取得message.channel.send({embed:{timestamp:newDate(),color:"RANDOM",description:"**エラー : 実行中にエラーが発生しました。**\n```js\n"+err+"```"}});//送信}}//ifからの処理終了

おなじみのerr取得文

コマンドの実行方法

prefixが"m."の場合
m.gamertag 一言 ゲーマータグ
です。

記事を読んでいただきありがとうございました。


Viewing all articles
Browse latest Browse all 8691

Trending Articles