כיצד ליצור את הבוטה שלך

ל- Discord ממשק API מצוין לכתיבת בוטים מותאמים אישית, וקהילת בוטים פעילה מאוד. היום נבחן כיצד להתחיל להכין בעצמך.

תזדקק למעט ידע בתכנות כדי לקודד בוט, כך שזה לא מתאים לכולם, אך למרבה המזל ישנם כמה מודולים לשפות פופולריות שמאוד קלים לעשות זאת. נשתמש בזה הפופולרי ביותר, discord.js.

קשורים: כיצד ליצור, להגדיר ולנהל את שרת הדיסקורד שלך

מתחילים

עבור אל פורטל הבוטים של Discord וצור יישום חדש.

אתה רוצה לרשום את מזהה הלקוח ואת הסוד (שכדאי לשמור בסוד, כמובן). עם זאת, זה לא הבוט, אלא רק "היישום". יהיה עליך להוסיף את הבוט בכרטיסייה "בוט".

רשמו גם את האסימון הזה ושמרו אותו בסוד. אל תעביר בשום פנים ואופן את מפתח זה לגיתוב. הבוט שלך ייפרץ כמעט מיד.

התקן את Node.js וקבל קידוד

כדי להריץ קוד Javascript מחוץ לדף אינטרנט, אתה זקוק לצומת. הורד אותו, התקן אותו וודא שהוא פועל במסוף (או בשורת הפקודה, מכיוון שכל זה אמור לעבוד במערכות Windows). פקודת ברירת המחדל היא "צומת".

אנו ממליצים גם להתקין את כלי הנודמון. זו אפליקציית שורת פקודה שעוקבת אחר קוד הבוט שלך ומופעלת מחדש אוטומטית בשינויים. אתה יכול להתקין אותו על ידי הפעלת הפקודה הבאה:

npm i -g nodemon

תזדקק לעורך טקסט. אתה יכול פשוט להשתמש בפנקס הרשימות, אך אנו ממליצים על Atom או VSC.

הנה "שלום עולם" שלנו:

const Discord = דורש ('discord.js'); לקוח const = Discord.Client חדש (); client.on ('מוכן', () => {console.log (`מחובר כ- $ {client.user.tag}!`);}); client.on ('message', msg => {if (msg.content === 'ping') {msg.reply ('pong');}}); client.login ('אסימון');

קוד זה נלקח מהדוגמה של discord.js. בואו נשבר את זה.

  • שתי השורות הראשונות הן תצורת הלקוח. שורה אחת מייבאת את המודול לאובייקט שנקרא "Discord", ושורה שנייה מאותתת את אובייקט הלקוח.
  • client.on('ready')בלוק יפטר כשהרובוט מתחיל לעלות. הנה, זה פשוט מוגדר לתעד את שמו למסוף.
  • client.on('message')הבלוק ייפטר בכל פעם הודעה חדשה פורסמה בשום ערוץ. כמובן שתצטרך לבדוק את תוכן ההודעה וזה מה ifשהחסמה עושה. אם ההודעה רק אומרת "פינג", היא תשיב עם "פונג!"
  • השורה האחרונה נכנסת עם האסימון מפורטל הבוט. ברור שהאסימון בצילום המסך כאן מזויף. לעולם אל תפרסם את האסימון שלך באינטרנט.

העתק קוד זה, הדבק באסימון בתחתית ושמור אותו כמו index.js בתיקיה ייעודית.

כיצד להפעיל את הבוט

עבור אל המסוף שלך והפעל את הפקודה הבאה:

nodemon --inspect index.js

זה מפעיל את הסקריפט, וגם מפעיל את ניפוי הבאגים של Chrome, אליו אתה יכול לגשת על ידי הקלדה chrome://inspect/  ב- Omnibar של Chrome ואז פתיחת "devtools ייעודיות לצומת."

עכשיו זה צריך רק לומר "מחובר כ-", אבל הנה הוספתי שורה שתתעד את כל אובייקטי ההודעה שהתקבלו למסוף:

אז מה מרכיב את אובייקט המסר הזה? הרבה דברים, למעשה:

בעיקר, יש לך את פרטי המחבר ואת פרטי הערוץ, אליהם אתה יכול לגשת באמצעות msg.author ו- msg.channel. אני ממליץ על שיטה זו של רישום עצמים למכשירי ה- Chrome Node, ופשוט להסתכל מסביב כדי לראות מה גורם לו לעבוד. יתכן שתמצא משהו מעניין. הנה, למשל, הבוט יומן את תשובותיו למסוף, כך שתשובות הבוט מפעילות client.on('message'). אז הכנתי ספמבוט:

הערה : היזהר עם זה, מכיוון שאתה לא באמת רוצה להתמודד עם רקורסיה.

כיצד להוסיף את הבוט לשרת שלך

החלק הזה קשה ממה שהוא צריך להיות. עליך לקחת את כתובת האתר הזו:

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

והחלף את CLIENTID עם מזהה הלקוח של הבוט שלך, שנמצא בכרטיסיית המידע הכללי של דף היישום. ברגע שהדבר נעשה, אתה יכול לתת את הקישור לחברים שלך כדי שיוסיפו את הבוט גם לשרתים שלהם.

בסדר, אז מה עוד אוכל לעשות?

מעבר להתקנה בסיסית, כל דבר אחר תלוי בך לחלוטין. אבל, זה לא יהיה הרבה הדרכה אם נעצור ב- Hello world, אז בואו נעבור על חלק מהתיעוד, כדי שתוכלו להבין טוב יותר מה אפשרי. אני מציע שתקרא כמה שאתה יכול, מכיוון שהוא מתועד היטב.

אני ממליץ להוסיף console.log(client)לתחילת הקוד שלך, ולהסתכל על אובייקט הלקוח במסוף:

מכאן תוכלו ללמוד הרבה. מכיוון שניתן להוסיף בוט למספר שרתים בו זמנית, השרתים הם חלק Guilds מאובייקט המפה. באובייקט זה נמצאות הגילדות האינדיבידואליות (שזה שמו של ה- API ל"שרת ") ובאותם אובייקטים של הגילדה יש ​​רשימות ערוצים המכילות את כל המידע ורשימות ההודעות. ה- API הוא עמוק מאוד, ועשוי לקחת זמן ללמוד, אבל לפחות קל להגדיר ולהתחיל ללמוד.