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