본문 바로가기
코딩, 개발 꾸준히 하면 볕날선생만큼 한다.

디스코드 DISCORDBOT 봇 만들기 디스코드 봇 제작법 how to make discord bot

by 볕날선생 2020. 12. 6.
728x90
반응형

2020년 12월 6일 일요일 오후 1시 44분 기준 How to make DISCORDBOT 


파이썬 discord(쩜=dot)py

 

패키지 설치:
# 리눅스 또는 macOS python3 -m pip install -U discord 또는 pip3 install discord # 윈도우 pip install discord 또는 python -m pip install discord

예시(ext 사용): 
from discord.ext.commands import Bot bot = Bot(command_prefix='!') @bot.event async def on_ready(): print(f'{bot.user} 에 로그인하였습니다!') @bot.command() async def ping(ctx): await ctx.send('pong!') bot.run('토큰')

예시(Client 사용): 
import discord client = discord.Client() @client.event async def on_ready(): print(f'{client.user} 에 로그인하였습니다!') @client.event async def on_message(message): if message.content.startswith('!ping'): await message.channel.send('pong!') client.run('토큰')

 


뽀나스 디스코드 봇 만들기 Node.js (discord.js)

 

const Discord = require('discord.js'); // 모듈을 가져온 뒤, const client = new Discord.Client(); // Discord.Client 객체 생성. client.on('ready', () => { // 이벤트 리스너 (ready 이벤트) console.log(`Logged in as ${client.user.tag}!`); }); client.on('message', (msg) => { // 이벤트 리스너 (message 이벤트) if (msg.content === 'ping') { // discord.Message.content 속성이 'ping'과 같을 떄 msg.reply('Pong!'); // discord.Message.reply 메서드로 'Pong!'을 전송 } }); client.login('token'); // token으로 discord API에 Identify 전송


주로 쓰이는 메세지 이벤트 리스너를 Array로 처리하는 방식도 
const Discord = require("discord.js"); // 모듈을 가져온 뒤, const client = new Discord.Client(); // Discord.Client 객체 생성. const prefix = '!'; // 접두사 client.on("message", async message => { // 이벤트 리스너 (message 이벤트) if (message.content.startsWith(prefix)) { const args = message.content.slice(prefix.length).split(" "); // 메세지에서 프리픽스의 글자 수만큼 잘라내고, String.split 메서드를 이용하여 Array로 바꾼다. const command = args.shift().toLowerCase(); // Array의 첫번 째 값을 없애고 반환하는 Array.shift 메서드에 String.toLowerCase 메서드로 소문자화한다. if (command === "ping") { // discord.Message.content 속성이 'ping'과 같을 떄 message.reply("pong"); // discord.Message.reply 메서드로 'pong'을 전송 // 정말 ping (지연시간) 을 전송하고 싶다면 client.ws 객체의 ping 속성을 이용하자. // message.reply(Math.round(client.ws.ping)); } } }); client.login("token");

 

 

728x90
반응형