วิธีสร้าง Discord Bot ของคุณเอง

Discord มี API ที่ยอดเยี่ยมสำหรับการเขียนบอทแบบกำหนดเองและชุมชนบอทที่มีการใช้งานมาก วันนี้เราจะมาดูวิธีเริ่มต้นสร้างของคุณเอง

คุณจะต้องมีความรู้ด้านการเขียนโปรแกรมเล็กน้อยเพื่อเขียนโค้ดบอทดังนั้นจึงไม่ใช่สำหรับทุกคน แต่โชคดีที่มีโมดูลสำหรับภาษายอดนิยมที่ทำให้ง่ายมาก เราจะใช้สิ่งที่ได้รับความนิยมสูงสุด discord.js

ที่เกี่ยวข้อง: วิธีสร้างตั้งค่าและจัดการเซิร์ฟเวอร์ Discord ของคุณ

เริ่มต้นใช้งาน

ตรงไปที่พอร์ทัลบอทของ Discord และสร้างแอปพลิเคชันใหม่

คุณจะต้องจดบันทึกรหัสลูกค้าและข้อมูลลับ (ซึ่งแน่นอนว่าคุณควรเก็บเป็นความลับ) อย่างไรก็ตามนี่ไม่ใช่บอท แต่เป็นเพียง“ แอปพลิเคชัน” คุณจะต้องเพิ่มบอทภายใต้แท็บ“ บ็อต”

จดบันทึกโทเค็นนี้ด้วยและเก็บไว้เป็นความลับ ห้ามส่งคีย์นี้ไปที่ Github ไม่ว่าในกรณีใด ๆ บอทของคุณจะถูกแฮ็กแทบจะในทันที

ติดตั้ง Node.js และรับ Coding

ในการเรียกใช้โค้ด Javascript นอกเว็บเพจคุณต้องมี Node ดาวน์โหลดติดตั้งและตรวจสอบให้แน่ใจว่าใช้งานได้ในเทอร์มินัล (หรือพรอมต์คำสั่งเนื่องจากทั้งหมดนี้ควรทำงานบนระบบ Windows) คำสั่งเริ่มต้นคือ“ node”

เราขอแนะนำให้ติดตั้งเครื่องมือ nodemon เป็นแอปบรรทัดคำสั่งที่ตรวจสอบโค้ดของบอทของคุณและรีสตาร์ทโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลง คุณสามารถติดตั้งได้โดยรันคำสั่งต่อไปนี้:

npm i -g nodemon

คุณจะต้องมีโปรแกรมแก้ไขข้อความ คุณสามารถใช้ notepad ได้ แต่เราขอแนะนำ Atom หรือ VSC

นี่คือ "สวัสดีชาวโลก" ของเรา:

const Discord = ต้องการ ('discord.js'); ลูกค้า const = Discord.Client ใหม่ (); client.on ('ready', () => {console.log (`เข้าสู่ระบบด้วย $ {client.user.tag}!`);}); client.on ('ข้อความ', msg => {if (msg.content === 'ping') {msg.reply ('pong');}}); client.login ('โทเค็น');

รหัสนี้นำมาจากตัวอย่าง discord.js มาทำลายมันลง

  • สองบรรทัดแรกคือการกำหนดค่าไคลเอนต์ บรรทัดที่หนึ่งนำเข้าโมดูลไปยังอ็อบเจ็กต์ที่เรียกว่า“ Discord” และบรรทัดที่สองจะเริ่มต้นอ็อบเจ็กต์ไคลเอ็นต์
  • client.on('ready')บล็อกจะยิงเมื่อบอทจะเริ่มต้นขึ้น ที่นี่มีการกำหนดค่าให้บันทึกชื่อไปยังเทอร์มินัล
  • client.on('message')บล็อกจะยิงทุกข้อความใหม่ถูกโพสต์ไปยังช่องใด ๆ แน่นอนคุณจะต้องตรวจสอบเนื้อหาของข้อความและนั่นคือสิ่งที่ifบล็อกนี้ทำ หากข้อความเพียงว่า“ ping” ระบบจะตอบกลับด้วยคำว่า“ Pong!”
  • บรรทัดสุดท้ายล็อกอินด้วยโทเค็นจากบ็อตพอร์ทัล เห็นได้ชัดว่าโทเค็นในภาพหน้าจอเป็นของปลอม อย่าโพสต์โทเค็นของคุณบนอินเทอร์เน็ต

คัดลอกรหัสนี้วางในโทเค็นของคุณที่ด้านล่างและบันทึกไว้ index.js ในโฟลเดอร์เฉพาะ

วิธีเรียกใช้ Bot

ตรงไปที่เทอร์มินัลของคุณและเรียกใช้คำสั่งต่อไปนี้:

nodemon --inspect index.js

การดำเนินการนี้จะเริ่มต้นสคริปต์และเริ่มการทำงานของโปรแกรมแก้ไขข้อบกพร่อง Chrome ซึ่งคุณสามารถเข้าถึงได้โดยพิมพ์chrome://inspect/  ลงในแถบอเนกประสงค์ของ Chrome จากนั้นเปิด“ เครื่องมือพัฒนาเฉพาะสำหรับโหนด”

ตอนนี้ควรจะพูดว่า "เข้าสู่ระบบในฐานะ" แต่ที่นี่ฉันได้เพิ่มบรรทัดที่จะบันทึกวัตถุข้อความทั้งหมดที่ได้รับไปยังคอนโซล:

แล้ววัตถุข้อความนี้คืออะไร? มีหลายอย่างจริงๆ:

ที่โดดเด่นที่สุดคือคุณมีข้อมูลผู้แต่งและข้อมูลช่องซึ่งคุณสามารถเข้าถึงได้ด้วย msg.author และ msg.channel ฉันขอแนะนำวิธีการบันทึกวัตถุลงในเครื่องมือ Chrome Node devtools นี้และเพียงแค่มองไปรอบ ๆ เพื่อดูว่าอะไรทำให้มันใช้งานได้ คุณอาจพบสิ่งที่น่าสนใจ นี่ยกตัวอย่างเช่นบอล็อกตอบกลับไปยังคอนโซลดังนั้นการตอบกลับของ ธ client.on('message')ปทริกเกอร์ ดังนั้นฉันจึงสร้างสแปมบอท:

หมายเหตุ : โปรดระวังเรื่องนี้เนื่องจากคุณไม่ต้องการจัดการกับการเรียกซ้ำ

วิธีเพิ่มบ็อตไปยังเซิร์ฟเวอร์ของคุณ

ส่วนนี้จะยากกว่าที่ควรจะเป็น คุณต้องใช้ URL นี้:

//discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot

และแทนที่ CLIENTID ด้วยรหัสไคลเอ็นต์ของบอทของคุณซึ่งอยู่ในแท็บข้อมูลทั่วไปของหน้าแอปพลิเคชัน เมื่อเสร็จแล้วคุณสามารถให้ลิงค์กับเพื่อนของคุณเพื่อให้พวกเขาเพิ่มบอทไปยังเซิร์ฟเวอร์ของพวกเขาได้เช่นกัน

เอาล่ะฉันจะทำอะไรได้อีก?

นอกเหนือจากการตั้งค่าพื้นฐานแล้วสิ่งอื่น ๆ นั้นขึ้นอยู่กับคุณทั้งหมด แต่นี่จะไม่ใช่บทช่วยสอนมากนักถ้าเราหยุดอยู่ที่ hello world ดังนั้นเรามาดูเอกสารกันดีกว่าเพื่อให้คุณมีความคิดที่ดีขึ้นว่าอะไรเป็นไปได้ ฉันขอแนะนำให้คุณอ่านให้มากที่สุดเท่าที่จะทำได้เนื่องจากมีการบันทึกไว้เป็นอย่างดี

ฉันขอแนะนำให้เพิ่มconsole.log(client)ที่จุดเริ่มต้นของรหัสของคุณและดูที่วัตถุไคลเอนต์ในคอนโซล:

From here, you can learn a lot. Since you can add a bot to multiple servers at once, servers are part of the Guilds map object. In that object are the individual Guilds (which is the API’s name for “server”) and those guild objects have channel lists that contain all the info and lists of messages. The API is very deep, and may take a while to learn, but at least it’s easy to set up and get started learning.