• 레퍼런스
  • 자습서
  • Discord 플러그인

    Discord는 StarLight용 플러그인으로, 디스코드 챗봇 API의 이벤트를 수신 및 사용할 수 있게 합니다.

    사용방법

    1. discord.slpawt.slp 파일을 sdcard/reference/starlight/plugins/ 폴더 내에 추가합니다.
    2. StarLight를 재시작합니다.
    3. 하단의 플러그인 탭 > Discord 플러그인 > 설정 > 봇 토큰 에 본인의 봇 토큰을 입력합니다.
    4. StarLight 앱을 재시작하여 서버를 시작합니다.
    5. 이벤트를 수신할 프로젝트의 설정에 들어가 호출이 허용된 이벤트 항목에 discord.message.* 를 추가합니다.

    위 과정을 실행하면 해당 프로젝트의 onMessageCreate 함수가 디스코드 메세지 수신시 호출됩니다.

    Event 수신

    본 플러그인은 내부적으로 JavaCord 라이브러리를 사용합니다. 따라서 onMessageCreate의 매개변수인 event는 JavaCord의 MessageCreateEvent 객체입니다. 자세한 사항은 JavaCord의 Javadoc을 참고하세요.

    예제

    단순 수신&답장

    function onMessageCreate(event) {
      if (!event.messageAuthor.isUser()) return;
      if (event.message.content !== "!ping") return;
    
      event.channel.sendMessage("Pong!");
    }

    수신&답장 심화

    const ms = java.lang.System.currentTimeMillis;
    
    function onMessageCreate(event) {
      if (!event.messageAuthor.isUser()) return;
      if (event.message.content !== "!ping") return;
    
      let start = ms();
    
      event.channel.sendMessage("안녕하세요, " + event.messageAuthor.name + "님!");
      event.channel.sendMessage("Pong!")
      .thenAccept(msg => {
        let now = ms();
        msg.edit("핑은 " + (now - start) + "ms 에요!");
      });
    }