part 2 謎にDiscord.jsでBotを作ってみた
※使えるようにするまでは今回は省略させてもらいます(近い内にちゃんとやります)
今回はDiscord.jsで遊んでいきたいと思います。
js≠女子し(ry
jsはもちろんJavaScriptの略です
ほしたら、早速ソースコード行くで
const Discord = require('discord.js');
const {prefix,token}=require('./config.json');
const client = new Discord.Client();
client.once('ready',()=>{
console.log(`${client.user.username}でログインしました`);
client.user.setPresence({ activity: { name: 'Node.jsでBotを製作中byさばみりん#8518' } });
client.user.setActivity('Ryzen 9 5900XとGeForce RTX 3070搭載のゲーミングPCで原神',{type:'PLAYING'});
});
client.on('message', async message =>{
if (!message.content.startsWith(prefix)) return
const [command, ...args] = message.content.slice(prefix.length).split(' ')
if (command === 'poll') {
const [title, ...choices] = args
if (!title) return message.channel.send('タイトルを指定してください')
const emojis = ['🇦', '🇧', '🇨', '🇩']
if (choices.length < 2 || choices.length > emojis.length)
return message.channel.send(`選択肢は2から${emojis.length}つを指定してください`)
const poll = await message.channel.send({
embed: {
title: title,
description: choices.map*1
}
});
/*client.on('guildMemberAdd',member=>{
message.channels.cache.get('791272665171099649').send(`---${member.guild.name}に${member.displayName}が入場しました---`)
message.member.roles.add('791270546397855746')
});
client.on('guildMemberRemove',member=>{
message.channels.cache.get('791272665171099649').send(`---${member.guild.name}から${member.displayName}が退出しました---`)
});*/
client.on('message', message => {
if (!message.content.startsWith(prefix)) return
const [command, ...args] = message.content.slice(prefix.length).split(' ')
if (command === 'timer') {
// 引数から待ち時間を取り出す
const seconds = Number(args[0])
message.channel.send(`---タイマーを${seconds}秒に設定しました。---`)
setTimeout*2 return
// intel Core i9
//Cascade Lake-X
if(message.content.startsWith*3||message.content.startsWith*4||message.content.startsWith*5||message.content.startsWith*6||message.content.startsWith*7||message.content.startsWith*8||message.content.startsWith*9||message.content.startsWith*10||message.content.startsWith*11||message.content.startsWith*12||message.content.startsWith*13||message.content.startsWith*14||message.content.startsWith*15||message.content.startsWith*16||message.content.startsWith*17||message.content.startsWith*18||message.content.startsWith*19||message.content.startsWith*20||message.content.startsWith*21||message.content.startsWith*22||message.content.startsWith*23||message.content.startsWith*24||message.content.startsWith*25||message.content.startsWith*26||message.content.startsWith*27||message.content.startsWith*28||message.content.startsWith*29||message.content.startsWith*30||message.content.startsWith*31||message.content.startsWith*32||message.content.startsWith*33||message.content.startsWith*34||message.content.startsWith*35||message.content.startsWith*36||message.content.startsWith*37||message.content.startsWith*38||message.content.startsWith*39||message.content.startsWith*40||message.content.startsWith*41{
message.channel.send('てめえ、ログアウトしやがれ!!!')
}
if(message.content.startsWith(`${prefix}リクエスト`)){
message.channel.send("リクエストはさばみりん#8518へ")
}
});
client.login(token)
という感じなくっそ長いソースコードですね(主の能力ではどうにもならないので)
(今回はConfig.jsonの説明はすっ飛ばします)
ということで各コマンドについて解説していきます
このコマンドは一度だけ実行されます(そりゃあ、once付いてるからなぁ)
動作させるとまずターミナルにこういうふうに${client.user.username}でログインしましたと出ます(${client.user.username}はBot名に依存します)
その下2行は同時に書くと下側が優先されます。下側のプログラムが動くとこうなる。
次は投票機能です
動作は以下のとおりです
*1:c, i) => `${emojis[i]} ${c}`).join('\n')
}
});
emojis.slice(0, choices.length).forEach(emoji => poll.react(emoji
*2:) => {
message.reply(`---${seconds}秒経ちました---`)
}, seconds * 1000)
}
});
client.on('message',async message=>{
//SSPECなどによる出力
if(!message.content.startsWith(prefix
*3:`${prefix}i9-10980XE.`
*4:`${prefix}SRGSG.`))){
message.channel.send('名称:Core i9-10980XE\nマイクロアーキテクチャ:Cascade Lake\nソケット名:LGA2066\nコア数/スレッド数:18/36\nベース:3.0GHz\nTB時:4.8GHz\nCBR15nT:3744cb')
}
if(message.content.startsWith((`${prefix}i9-10940X.`
*5:`${prefix}SRGSH.`))){
message.channel.send('名称:Core i9-10940X\nマイクロアーキテクチャ:Cascade Lake\nソケット名:LGA2066\nコア数/スレッド数:14/28\nベース:3.3GHz\nTB時:4.8GHz\nCBR15nT:3117cb')
}
if(message.content.startsWith((`${prefix}i9-10920X.`
*6:`${prefix}SRGSJ.`))){
message.channel.send('名称:Core i9-10920X\nマイクロアーキテクチャ:Cascade Lake\nソケット名:LGA2066\nコア数/スレッド数:12/24\nベース:3.5GHz\nTB時:4.8GHz\nCBR15nT:2789cb')
}
if(message.content.startsWith((`${prefix}i9-10900X.`
*7:`${prefix}SRGV7.`))){
message.channel.send('名称:Core i9-10900X\nマイクロアーキテクチャ:Cascade Lake\nソケット名:LGA2066\nコア数/スレッド数:10/20\nベース:3.7GHz\nTB時:4.7GHz\nCBR15nT:2358cb')
}
//Comet Lake-S
if(message.content.startsWith((`${prefix}i9-10900K.`
*8:`${prefix}SRH91.`))){
message.channel.send('名称:Core i9-10900K\nマイクロアーキテクチャ:Comet Lake\nソケット名:LGA1200\nコア数/スレッド数:10/20\nベース:3.7GHz\nTB時:5.3GHz\nCBR15nT:2662cb')
}
if(message.content.startsWith((`${prefix}i9-10900KF.`
*9:`${prefix}SRH92.`))){
message.channel.send('名称:Core i9-10900KF\nマイクロアーキテクチャ:Comet Lake\nソケット名:LGA1200\nコア数/スレッド数:10/20\nベース:3.7GHz\nTB時:5.3GHz\nCBR15nT:2657cb')
}
if(message.content.startsWith((`${prefix}i9-10850K.`
*10:`${prefix}SRK51.`))){
message.channel.send('名称:Core i9-10850K\nマイクロアーキテクチャ:Comet Lake\nソケット名:LGA1200\nコア数/スレッド数:10/20\nベース:3.6GHz\nTB時:5.2GHz\nCBR15nT:2591cb')
}
if(message.content.startsWith((`${prefix}i9-10900.`
*11:`${prefix}SRH8Z.`))){
message.channel.send('名称:Core i9-10900\nマイクロアーキテクチャ:Comet Lake\nソケット名:LGA1200\nコア数/スレッド数:10/20\nベース:2.8GHz\nTB時:5.2GHz\nCBR15nT:2541cb')
}
if(message.content.startsWith((`${prefix}i9-10900F.`
*12:`${prefix}SRH90.`))){
message.channel.send('名称:Core i9-10900F\nマイクロアーキテクチャ:Comet Lake\nソケット名:LGA1200\nコア数/スレッド数:10/20\nベース:2.8GHz\nTB時:5.2GHz\nCBR15nT:?cb')
}
if(message.content.startsWith((`${prefix}i9-10900T.`
*13:`${prefix}SRH8Y.`))){
message.channel.send('名称:Core i9-10900T\nマイクロアーキテクチャ:Comet Lake\nソケット名:LGA1200\nコア数/スレッド数:10/20\nベース:1.9GHz\nTB時:4.6GHz\nCBR15nT:2136cb')
}
if(message.content.startsWith((`${prefix}i9-10900TE.`
*14:`${prefix}SRJFC.`))){
message.channel.send('名称:Core i9-10900TE\nマイクロアーキテクチャ:Comet Lake\nソケット名:LGA1200\nコア数/スレッド数:10/20\nベース:1.8GHz\nTB時:4.5GHz\nCBR15nT:?cb')
}
//Comet Lake -H -HK
if(message.content.startsWith((`${prefix}i9-10980HK.`
*15:`${prefix}SRH8T.`))){
message.channel.send('名称:Core i9-10980HK\nマイクロアーキテクチャ:Comet Lake\nソケット名:BGA1440\nコア数/スレッド数:8/16\nベース:2.4GHz\nTB時:5.3GHz\nCBR15nT:1735cb')
}
if(message.content.startsWith((`${prefix}i9-10885H.`
*16:`${prefix}SRJ8J.`))){
message.channel.send('名称:Core i9-10885H\nマイクロアーキテクチャ:Comet Lake\nソケット名:BGA1440\nコア数/スレッド数:8/16\nベース:2.4GHz\nTB時:5.3GHz\nCBR15nT:?cb')
}
//Sky Lake -X Reflesh
//9990XE The Extreme Core i9 on Sky Lake -X Reflesh
if(message.content.startsWith((`${prefix}i9-9990XE.`
*17:`${prefix}SREZA.`))){
message.channel.send('名称:Core i9-9990XE\nマイクロアーキテクチャ:Sky Lake\nソケット名:LGA2066\nコア数/スレッド数:14/28\nベース:4.0GHz\nTB時:5.1GHz')
}
if(message.content.startsWith((`${prefix}i9-9980XE.`
*18:`${prefix}SREZ3.`))){
message.channel.send('名称:Core i9-9980XE\nマイクロアーキテクチャ:Sky Lake\nソケット名:LGA2066\nコア数/スレッド数:18/36\nベース:3.0GHz\nTB時:4.5GHz')
}
if(message.content.startsWith((`${prefix}i9-9960X.`
*19:`${prefix}SREZ4.`))){
message.channel.send('名称:Core i9-9960X\nマイクロアーキテクチャ:Sky Lake\nソケット名:LGA2066\nコア数/スレッド数:16/32\nベース:3.1GHz\nTB時:4.5GHz')
}
if(message.content.startsWith((`${prefix}i9-9940X.`
*20:`${prefix}SREZ5.`))){
message.channel.send('名称:Core i9-9940X\nマイクロアーキテクチャ:Sky Lake\nソケット名:LGA2066\nコア数/スレッド数:14/28\nベース:3.3GHz\nTB時:4.5GHz')
}
if(message.content.startsWith((`${prefix}i9-9920X.`
*21:`${prefix}SREZ6.`))){
message.channel.send('名称:Core i9-9920X\nマイクロアーキテクチャ:Sky Lake\nソケット名:LGA2066\nコア数/スレッド数:12/24\nベース:3.5GHz\nTB時:4.5GHz')
}
if(message.content.startsWith((`${prefix}i9-9900X.`
*22:`${prefix}SREZ7.`))){
message.channel.send('名称:Core i9-9900X\nマイクロアーキテクチャ:Sky Lake\nソケット名:LGA2066\nコア数/スレッド数:10/20\nベース:3.5GHz\nTB時:4.5GHz')
}
if(message.content.startsWith((`${prefix}i9-9820X.`
*23:`${prefix}SREZ8.`))){
message.channel.send('名称:Core i9-9820X\nマイクロアーキテクチャ:Sky Lake\nソケット名:LGA2066\nコア数/スレッド数:10/20\nベース:3.3GHz\nTB時:4.2GHz')
}
//Coffee Lake -S Reflesh (9th Gen Core i9)
if(message.content.startsWith((`${prefix}i9-9900KS.`
*24:`${prefix}SRG1Q.`
*25:`${prefix}カス.`))){
message.channel.send('名称:Core i9-9900KS\nマイクロアーキテクチャ:Coffee Lake\nソケット名:LGA1151-2\nコア数/スレッド数:8/16\nベース:4.0GHz\nTB時:5.0GHz')
}
if(message.content.startsWith((`${prefix}i9-9900KF.`
*26:`${prefix}SRFAA.`
*27:`${prefix}SRG1A.`))){
message.channel.send('名称:Core i9-9900KF\nマイクロアーキテクチャ:Coffee Lake\nソケット名:LGA1151-2\nコア数/スレッド数:8/16\nベース:3.6GHz\nTB時:5.0GHz')
}
if(message.content.startsWith((`${prefix}i9-9900K.`
*28:`${prefix}SRELS.`
*29:`${prefix}SRG19.`
*30:`${prefix}サッカーボール.`))){
message.channel.send('名称:Core i9-9900K\nマイクロアーキテクチャ:Coffee Lake\nソケット名:LGA1151-2\nコア数/スレッド数:8/16\nベース:3.6GHz\nTB時:5.0GHz')
}
if(message.content.startsWith((`${prefix}i9-9900.`
*31:`${prefix}SRG18.`
message.channel.send('名称:Core i9-9900\nマイクロアーキテクチャ:Coffee Lake\nソケット名:LGA1151-2\nコア数/スレッド数:8/16\nベース:3.1GHz\nTB時:5.0GHz')
}
if(message.content.startsWith((`${prefix}i9-9900T.`
*33:`${prefix}SRG1B.`))){
message.channel.send('名称:Core i9-9900T\nマイクロアーキテクチャ:Coffee Lake\nソケット名:LGA1151-2\nコア数/スレッド数:8/16\nベース:2.1GHz\nTB時:4.4GHz')
}
//CoffeeLake-H
if(message.content.startsWith((`${prefix}i9-9980HK.`
*34:`${prefix}SRFD0.`))){
message.channel.send('名称:Core i9-9980HK\nマイクロアーキテクチャ:Coffee Lake\nソケット名:BGA1440\nコア数/スレッド数:8/16\nベース:2.4GHz\nTB時:5.0GHz')
}
if(message.content.startsWith((`${prefix}i9-9880H.`
*35:`${prefix}SRFD1.`))){
message.channel.send('名称:Core i9-9880H\nマイクロアーキテクチャ:Coffee Lake\nソケット名:BGA1440\nコア数/スレッド数:8/16\nベース:2.3GHz\nTB時:4.8GHz')
}
if(message.content.startsWith((`${prefix}i9-8950HK.`
*36:`${prefix}SRCKN.`))){
message.channel.send('名称:Core i9-8950HK\nマイクロアーキテクチャ:Coffee Lake\nソケット名:BGA1440\nコア数/スレッド数:6/12\nベース:2.9GHz\nTB時:4.8GHz')
}
// Sky Lake-X
if(message.content.startsWith((`${prefix}i9-7980XE.`
*37:`${prefix}SR3RS.`))){
message.channel.send('名称:Core i9-7980XE\nマイクロアーキテクチャ:Sky Lake\nソケット名:LGA2066\nコア数/スレッド数:18/36\nベース:2.6GHz\nTB時:4.4GHz')
}
if(message.content.startsWith((`${prefix}i9-7960X.`
*38:`${prefix}SR3RR.`))){
message.channel.send('名称:Core i9-7960X\nマイクロアーキテクチャ:Sky Lake\nソケット名:LGA2066\nコア数/スレッド数:16/32\nベース:2.8GHz\nTB時:4.4GHz')
}
if(message.content.startsWith((`${prefix}i9-7940X.`
*39:`${prefix}SR3RQ.`))){
message.channel.send('名称:Core i9-7940X\nマイクロアーキテクチャ:Sky Lake\nソケット名:LGA2066\nコア数/スレッド数:14/28\nベース:3.1GHz\nTB時:4.4GHz')
}
if(message.content.startsWith((`${prefix}i9-7920X.`
*40:`${prefix}SR3NG.`))){
message.channel.send('名称:Core i9-7920X\nマイクロアーキテクチャ:Sky Lake\nソケット名:LGA2066\nコア数/スレッド数:12/24\nベース:2.9GHz\nTB時:4.4GHz')
}
if(message.content.startsWith((`${prefix}i9-7900X.`
*41:`${prefix}SR3L2.`))){
message.channel.send('名称:Core i9-7900X\nマイクロアーキテクチャ:Sky Lake\nソケット名:LGA2066\nコア数/スレッド数:10/20\nベース:3.3GHz\nTB時:4.5GHz')
}
if(message.content.startsWith(`${prefix}FUCKOFFSABAAAAN`
*42:c, i) => `${emojis[i]} ${c}`).join('\n')
次はタイマー機能です
任意の時間を秒指定で投げると、その時間が過ぎるとBotからメンションリプライが飛んできます
*67:`${prefix}SRFAA.`
*68:`${prefix}SRG1A.`))){
*69:`${prefix}SRELS.`
*70:`${prefix}SRG19.`
*71:`${prefix}サッカーボール.`))){
最後に実装するのがめんどくさかった目玉機能に...
CPUの型番かSSPECを投げると簡単な説明が飛んできます
た だ し 現在は intel Core i9のみの実装です
動作編
Core i9-10850KのSSPECは[SRK51]なのでそう投げると...
ちゃんと出てきました。
次に型番もやっていきます
またしてもCore i9-10850Kなのは気にしないでください。
ということで全て終わったでここで終わりにします
読みづらくてすみません(無能な主ですみませんでした(´・ω・`