Deno와 Coward에서 DiscordBot 만들기

공지



Coward는 아카이브되었습니다. 향후 업데이트될 가능성은 없습니다. 이 기사를보고 만들려는 분은 다른 프레임 워크를 사용하십시오.
또한 이미 사용중인 경우에도 신속하게 마이그레이션하는 것이 좋습니다.
htps : // 기주 b. 코 m / tjk / 코와 rd

소개



최근, 「Deno」가 되는 것을 알았으므로 「만약 Discord API의 래퍼 있는 것이지」라고 생각하면 역시 벌써 여러가지 것이 있었습니다.
이번에는 Deno와 Discord API의 래퍼 "Coward"로 DiscordBot을 만들어 보겠습니다.

전제 조건


  • 사전에 Deno를 설치하십시오. Mac에서는 brew install deno로 설치할 수 있습니다.
  • Deno는 v1.0.2를 사용합니다.
  • Coward는 v0.2.0을 사용합니다.
  • 나 자신 Deno나 TypeScript등의 지식이 남지 않습니다. 양해 바랍니다.

  • 만들어 보자



    참고 : Bot 작성을 건너 뛰고 있지만 이미 다양한 기사에서 해설되어 있으므로 검색해보십시오.
    그럼 조속하지만 만들어 보자. 우선 Coward 희귀 D 째. MD의 "Ping-Pong Example"을 복사하여 사용해 보겠습니다.

    main.ts
    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();
    

    결과:


    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.ts
    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도

    참고


  • htps : // 코 m / cryp와 코인 _ 하루 마키 / ms / 5d8c503 02093
  • htps : // 기주 b. 코 m/후 x-t t/코와 rd/bぉ b/마s r/에ぁ mpぇs/핀 g-폰 g/보 t. ts
  • htps // c c. 에서.ぁd / h tps /에서.ぁd/x/코와 rd/도 d. ts
  • 좋은 웹페이지 즐겨찾기