Deno와 Coward에서 DiscordBot 만들기
13191 단어 TypeScript디스코드에서
공지
Coward는 아카이브되었습니다. 향후 업데이트될 가능성은 없습니다. 이 기사를보고 만들려는 분은 다른 프레임 워크를 사용하십시오.
또한 이미 사용중인 경우에도 신속하게 마이그레이션하는 것이 좋습니다.
htps : // 기주 b. 코 m / tjk / 코와 rd
소개
최근, 「Deno」가 되는 것을 알았으므로 「만약 Discord API의 래퍼 있는 것이지」라고 생각하면 역시 벌써 여러가지 것이 있었습니다.
이번에는 Deno와 Discord API의 래퍼 "Coward"로 DiscordBot을 만들어 보겠습니다.
전제 조건
최근, 「Deno」가 되는 것을 알았으므로 「만약 Discord API의 래퍼 있는 것이지」라고 생각하면 역시 벌써 여러가지 것이 있었습니다.
이번에는 Deno와 Discord API의 래퍼 "Coward"로 DiscordBot을 만들어 보겠습니다.
전제 조건
brew install deno
로 설치할 수 있습니다. 만들어 보자
참고 : Bot 작성을 건너 뛰고 있지만 이미 다양한 기사에서 해설되어 있으므로 검색해보십시오.
그럼 조속하지만 만들어 보자. 우선 Coward 희귀 D 째. MD의 "Ping-Pong Example"을 복사하여 사용해 보겠습니다.
main.tsimport { Client } from "https://deno.land/x/coward/mod.ts";
let client = new Coward("TOKEN");
client.evt.ready.attach(() => {console.log("Bot is ready!")});
client.evt.messageCreate.attach(async ({message}) => {
if(message.content == "!ping") {
await client.postMessage(message.channel.id, "Pong!");
}
});
client.connect();
결과:
could not connect to websocket이 발생하는 경우
그대로deno run main.ts
실행하면 오류가 발생할 수 있습니다.
이 경우 실행할 명령에 --allow-net
를 추가해보십시오.
Deno에서는 보안 주위가 조금 엄격하기 때문에 제대로 허가하지 않으면 움직여 주지 않습니다.
더 많이 해보자
예 1: 지정된 단어의 경우 응답
예) 「안녕하세요」에 대해 「안녕하세요!」라고 대답한다.
main.ts if(message.content == "こんにちは") {
client.postMessage(message.channel.id, "こんにちは!");
return;
}
예 2: 지정된 단어가 포함된 경우 응답
예) 「야바」가 포함된 메시지에 대해 「역시 놀랐습니다...」라고 대답
main.ts if(message.content.match(/やば/)) {
client.postMessage(message.channel.id, "さすがに驚きました...");
return;
}
예 3: 지정된 단어가 포함된 경우 반응
예) '슬픈'이 포함된 경우 😭과 반응message.id
에서 메시지 ID를, message.channel.id
에서 채널 ID를 가져올 수 있습니다.
main.ts if(message.content.match(/悲しい/)) {
client.putReaction(message.channel.id, message.id, "😭");
return;
}
실행해보기
지금까지의 코드를 함께 실행해 보겠습니다.
main.tsimport { Client } from "https://deno.land/x/[email protected]/mod.ts";
let client = new Client("TOKEN");
client.evt.ready.attach(() => {console.log("Bot is ready!")});
client.evt.messageCreate.attach(async({message}) => {
if(message.content == "!ping") {
client.postMessage(message.channel.id, "Pong!");
return;
}
if(message.content == "こんにちは") {
client.postMessage(message.channel.id, "こんにちは!");
return;
}
if(message.content.match(/やば/)) {
client.postMessage(message.channel.id, "さすがに驚きました...");
return;
}
if(message.content.match(/悲しい/)) {
client.putReaction(message.channel.id, message.id, "😭");
return;
}
});
client.connect();
안전하게 움직였습니다
요약
그래서 이번에는 Deno와 Coward에서 DiscordBot을 만들어 보았습니다.
그렇다고는 해도, 아직 Coward도 시작되었고, 그 밖에도 다양한 래퍼가 있습니다. 앞으로도 주의 깊게 지켜보고 싶습니다.
여기까지 읽어 주셔서 감사합니다. 이상입니다.
추기: 이번 기사에서 쓴 코드를 GitHub에 업로드했습니다. 꼭 이용하십시오. (수요가 있는지 모르겠지만)
htps : // 기주 b. 코 m / 세라 이무 /에서 - 코와 rd도
참고
import { Client } from "https://deno.land/x/coward/mod.ts";
let client = new Coward("TOKEN");
client.evt.ready.attach(() => {console.log("Bot is ready!")});
client.evt.messageCreate.attach(async ({message}) => {
if(message.content == "!ping") {
await client.postMessage(message.channel.id, "Pong!");
}
});
client.connect();
예 1: 지정된 단어의 경우 응답
예) 「안녕하세요」에 대해 「안녕하세요!」라고 대답한다.
main.ts
if(message.content == "こんにちは") {
client.postMessage(message.channel.id, "こんにちは!");
return;
}
예 2: 지정된 단어가 포함된 경우 응답
예) 「야바」가 포함된 메시지에 대해 「역시 놀랐습니다...」라고 대답
main.ts
if(message.content.match(/やば/)) {
client.postMessage(message.channel.id, "さすがに驚きました...");
return;
}
예 3: 지정된 단어가 포함된 경우 반응
예) '슬픈'이 포함된 경우 😭과 반응
message.id
에서 메시지 ID를, message.channel.id
에서 채널 ID를 가져올 수 있습니다.main.ts
if(message.content.match(/悲しい/)) {
client.putReaction(message.channel.id, message.id, "😭");
return;
}
실행해보기
지금까지의 코드를 함께 실행해 보겠습니다.
main.tsimport { Client } from "https://deno.land/x/[email protected]/mod.ts";
let client = new Client("TOKEN");
client.evt.ready.attach(() => {console.log("Bot is ready!")});
client.evt.messageCreate.attach(async({message}) => {
if(message.content == "!ping") {
client.postMessage(message.channel.id, "Pong!");
return;
}
if(message.content == "こんにちは") {
client.postMessage(message.channel.id, "こんにちは!");
return;
}
if(message.content.match(/やば/)) {
client.postMessage(message.channel.id, "さすがに驚きました...");
return;
}
if(message.content.match(/悲しい/)) {
client.putReaction(message.channel.id, message.id, "😭");
return;
}
});
client.connect();
안전하게 움직였습니다
요약
그래서 이번에는 Deno와 Coward에서 DiscordBot을 만들어 보았습니다.
그렇다고는 해도, 아직 Coward도 시작되었고, 그 밖에도 다양한 래퍼가 있습니다. 앞으로도 주의 깊게 지켜보고 싶습니다.
여기까지 읽어 주셔서 감사합니다. 이상입니다.
추기: 이번 기사에서 쓴 코드를 GitHub에 업로드했습니다. 꼭 이용하십시오. (수요가 있는지 모르겠지만)
htps : // 기주 b. 코 m / 세라 이무 /에서 - 코와 rd도
참고
import { Client } from "https://deno.land/x/[email protected]/mod.ts";
let client = new Client("TOKEN");
client.evt.ready.attach(() => {console.log("Bot is ready!")});
client.evt.messageCreate.attach(async({message}) => {
if(message.content == "!ping") {
client.postMessage(message.channel.id, "Pong!");
return;
}
if(message.content == "こんにちは") {
client.postMessage(message.channel.id, "こんにちは!");
return;
}
if(message.content.match(/やば/)) {
client.postMessage(message.channel.id, "さすがに驚きました...");
return;
}
if(message.content.match(/悲しい/)) {
client.putReaction(message.channel.id, message.id, "😭");
return;
}
});
client.connect();
그래서 이번에는 Deno와 Coward에서 DiscordBot을 만들어 보았습니다.
그렇다고는 해도, 아직 Coward도 시작되었고, 그 밖에도 다양한 래퍼가 있습니다. 앞으로도 주의 깊게 지켜보고 싶습니다.
여기까지 읽어 주셔서 감사합니다. 이상입니다.
추기: 이번 기사에서 쓴 코드를 GitHub에 업로드했습니다. 꼭 이용하십시오. (수요가 있는지 모르겠지만)
htps : // 기주 b. 코 m / 세라 이무 /에서 - 코와 rd도
참고
Reference
이 문제에 관하여(Deno와 Coward에서 DiscordBot 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Seraimu/items/414b78c5bf1a40698f41텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)