วิธีการสร้าง Bot Discord ของคุณเอง
Discord มี API ที่ยอดเยี่ยมสำหรับการเขียนบอทแบบกำหนดเองและชุมชนบอทที่ใช้งานมาก วันนี้เราจะมาดูวิธีการเริ่มต้นสร้างของคุณเอง.
คุณจะต้องมีความรู้เกี่ยวกับการเขียนโปรแกรมเล็กน้อยเพื่อเขียนรหัสบอทดังนั้นจึงไม่ใช่สำหรับทุกคน แต่โชคดีที่มีโมดูลสำหรับภาษายอดนิยมที่ทำให้ง่ายต่อการทำ เราจะใช้ที่นิยมมากที่สุด discord.js.
เริ่มต้นใช้งาน
ตรงไปที่บอทพอร์ทัลของ Discord และสร้างแอปพลิเคชันใหม่.
คุณจะต้องจดบันทึกรหัสลูกค้าและความลับ (ซึ่งคุณควรเก็บเป็นความลับ) อย่างไรก็ตามนี่ไม่ใช่บอทเพียงแค่ "แอปพลิเคชัน" คุณจะต้องเพิ่มบอทภายใต้แท็บ "บอท".
ทำเครื่องหมายของโทเค็นนี้ด้วยและเก็บเป็นความลับ ไม่ว่าในกรณีใด ๆ ให้มอบคีย์นี้ให้กับ Github บอทของคุณจะถูกแฮ็กเกือบจะในทันที.
ติดตั้ง Node.js และรับการเข้ารหัส
ในการเรียกใช้โค้ด Javascript นอกเว็บเพจคุณจำเป็นต้องมีโหนด ดาวน์โหลดติดตั้งและตรวจสอบให้แน่ใจว่าใช้งานได้ในเทอร์มินัล (หรือพรอมต์คำสั่งเนื่องจากทั้งหมดนี้จะทำงานบนระบบ Windows) คำสั่งเริ่มต้นคือ "โหนด"
เรายังแนะนำให้ติดตั้งเครื่องมือ nodemon มันเป็นแอพบรรทัดคำสั่งที่ตรวจสอบรหัสของบอทและรีสตาร์ทโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลง คุณสามารถติดตั้งโดยใช้คำสั่งต่อไปนี้:
npm i -g nodemon
คุณจะต้องมีโปรแกรมแก้ไขข้อความ คุณสามารถใช้ notepad ได้ แต่เราขอแนะนำ Atom หรือ VSC.
นี่คือ“ Hello World” ของเรา:
const Discord = ต้องการ ('discord.js'); const client = new Discord.Client (); client.on ('พร้อม', () => console.log ('ลงชื่อเข้าใช้ด้วยชื่อ $ client.user.tag!');); client.on ('ข้อความ', msg => ถ้า (msg.content === 'ping') msg.reply ('pong');); client.login ( 'โทเค็น');
รหัสนี้นำมาจากตัวอย่าง discord.js มาทำลายมันกันเถอะ.
- สองบรรทัดแรกคือการกำหนดค่าไคลเอนต์ บรรทัดที่หนึ่งนำเข้าโมดูลไปยังวัตถุที่เรียกว่า "Discord" และบรรทัดที่สองจะเริ่มต้นวัตถุไคลเอ็นต์.
-
client.on ( 'พร้อม')
บล็อกจะเริ่มทำงานเมื่อบอทเริ่มทำงาน ที่นี่มีการกำหนดค่าให้บันทึกชื่อของเทอร์มินัล. -
client.on ( 'ข้อความ')
บล็อกจะเริ่มทำงานทุกครั้งที่มีข้อความใหม่ถูกโพสต์ไปยังช่องใด ๆ แน่นอนคุณจะต้องตรวจสอบเนื้อหาข้อความและนั่นคือสิ่งที่ถ้า
บล็อกทำ หากข้อความแจ้งว่า“ ping” ข้อความนั้นจะตอบกลับด้วย“ Pong!” - บรรทัดสุดท้ายล็อกอินด้วยโทเค็นจากพอร์ทัลบ็อต เห็นได้ชัดว่าโทเค็นในภาพหน้าจอที่นี่เป็นของปลอม อย่าโพสต์โทเค็นของคุณบนอินเทอร์เน็ต.
คัดลอกรหัสนี้วางโทเค็นของคุณที่ด้านล่างและบันทึกเป็น index.js
ในโฟลเดอร์เฉพาะ.
วิธีการเรียกใช้ Bot
ตรงไปที่เทอร์มินัลของคุณและเรียกใช้คำสั่งต่อไปนี้:
nodemon --inspect index.js
สิ่งนี้จะเริ่มต้นสคริปต์และเปิดใช้งานดีบักเกอร์ Chrome ซึ่งคุณสามารถเข้าถึงได้ด้วยการพิมพ์ chrome: // ตรวจสอบ /
ลงใน Omnibar ของ Chrome แล้วเปิด“ อุทิศ devtools for Node”
ตอนนี้ก็ควรจะพูดว่า“ เข้าสู่ระบบในฐานะ” แต่ที่นี่ฉันได้เพิ่มบรรทัดที่จะบันทึกวัตถุข้อความทั้งหมดที่ได้รับไปยังคอนโซล:
ดังนั้นสิ่งที่ทำให้วัตถุข้อความนี้ หลายสิ่งหลายอย่างจริงๆแล้ว:
ที่สะดุดตาที่สุดคือคุณมีข้อมูลผู้แต่งและข้อมูลช่องซึ่งคุณสามารถเข้าถึงด้วย msg.author และ msg.channel ฉันแนะนำวิธีการนี้ในการบันทึกวัตถุไปยัง Chrome Node devtools และเพียงแค่มองไปรอบ ๆ เพื่อดูว่ามันทำงานอย่างไร คุณอาจพบสิ่งที่น่าสนใจ ตัวอย่างเช่นที่นี่บอทบันทึกการตอบกลับไปยังคอนโซลดังนั้นทริกเกอร์ตอบกลับของบอท client.on ( 'ข้อความ')
. ดังนั้นฉันทำสแปมบอท:
บันทึก: ระวังให้ดีเพราะคุณไม่ต้องการรับมือกับการเรียกซ้ำ.
วิธีเพิ่ม Bot ไปยังเซิร์ฟเวอร์ของคุณ
ส่วนนี้ยากกว่าที่ควรจะเป็น คุณต้องใช้ URL นี้:
https://discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot
และแทนที่ CLIENTID ด้วยรหัสลูกค้าของ bot ของคุณพบได้ในแท็บข้อมูลทั่วไปของหน้าแอปพลิเคชัน เมื่อทำสิ่งนี้เสร็จแล้วคุณสามารถให้ลิงก์แก่เพื่อนของคุณเพื่อให้พวกเขาเพิ่มบอทไปยังเซิร์ฟเวอร์ของพวกเขาเช่นกัน.
เอาล่ะฉันจะทำอะไรได้อีก?
นอกเหนือจากการตั้งค่าพื้นฐานสิ่งอื่น ๆ ขึ้นอยู่กับคุณ แต่นี่คงไม่ใช่บทช่วยสอนถ้าเราหยุดที่สวัสดีโลกดังนั้นเรามาดูเอกสารบางอย่างเพื่อให้คุณมีความคิดที่ดีขึ้นว่าอะไรเป็นไปได้ ฉันขอแนะนำให้คุณอ่านให้มากที่สุดเท่าที่จะทำได้.
ฉันอยากจะแนะนำให้เพิ่ม console.log (ลูกค้า)
ไปที่จุดเริ่มต้นของรหัสของคุณและดูที่วัตถุลูกค้าในคอนโซล:
จากที่นี่คุณสามารถเรียนรู้ได้มากมาย เนื่องจากคุณสามารถเพิ่ม bot ไปยังเซิร์ฟเวอร์หลายเครื่องพร้อมกันเซิร์ฟเวอร์จึงเป็นส่วนหนึ่งของ กิลด์
วัตถุแผนที่ ในวัตถุนั้นเป็นกิลด์แต่ละอัน (ซึ่งเป็นชื่อ API สำหรับ "เซิร์ฟเวอร์") และวัตถุกิลด์เหล่านั้นมีรายการช่องที่มีข้อมูลและรายการข้อความทั้งหมด API นั้นลึกมากและอาจใช้เวลาในการเรียนรู้ แต่อย่างน้อยก็ง่ายที่จะติดตั้งและเริ่มต้นเรียนรู้.