DevJong12

[Issue] MessageReceivedEvent의 Message가 없다..? 본문

프로젝트/GayRoSu Bot

[Issue] MessageReceivedEvent의 Message가 없다..?

Jong12 2022. 9. 19. 17:57
728x90

오류사항

현재 제작중인 명령어중에 !핏시 라는 명령어가 있다.

해당 명령어를 활용하고 Override를 받은 onMessageReceived라는 메소드에서 사용을 하도록 진행하려 했다

하지만 메세지를 인식을 못하는 오류가 있었고 Debug로 봐도 메세지내용이 없고 MessageId로 보이는 Text밖에 없었다.

 

아래 코드의 getContentRaw()메소드가 Message Object의 Content를 String으로 가져오는 부분인데 계속 Null로만 들어오고 있었다.

public class GayRosuMain extends ListenerAdapter {

  public static final String MESSAGE_RECEIVED_PREFIX = "!";
  public static final String DISCORD_TOKEN = "토큰값";
  public static JDA jda;

  public static void main(String[] args) throws LoginException {
    jda = JDABuilder.createDefault(DISCORD_TOKEN)
        .build();

    // 봇의 상태값 온 오프라인 등의 판단
    jda.getPresence().setStatus(OnlineStatus.ONLINE);

    // Bot의 상태메세지
    jda.getPresence().setActivity(Activity.playing(" "));

    jda.addEventListener(new GayRosuMain());
  }

  @Override
  public void onMessageReceived(@NotNull MessageReceivedEvent event) {
    // 공백으로 나눠서 메세지 관리
    Message discordMessageObj = event.getMessage();
    String[] args = discordMessageObj.getContentRaw().split(" ");
    System.out.println(discordMessageObj.getContentRaw());
    if (args == null || event.getAuthor().isBot()) {
      return;
    }
   

    if (args[0].equals(MESSAGE_RECEIVED_PREFIX + "핏시")) {
      event.getChannel().sendMessage("출력할 메세지").queue();
      return;
    }
  }
}


실패했던 수정사항

생각했던 내용중에서 채널의 History를 가져와서 MessageId를 제공하면 받아볼 수 도 있지 않을까? 해서 아래의 소스코드를 제작해봤다.

    String message = event.getChannel().getHistory().getMessageById(event.getMessageId()).getContentRaw();

결과는 역시나 가져오지를 못하는 문제가 지속적으로 발생했다.


해결방안

다른사람도 누구나 같은 해결방안일꺼라고는 생각은 안하지만 본인의 해결방법은 다음과 같았다.

 

먼저 필자의 경우 권한은 관리자로 요청을 해놨다. 이건 처음부터 셋팅했던 값이다.

 

 

 

하지만 관리자 설정이 아닌 아래의 Bot항목의 Message Content Intent라는 항목이 있다.

 

해당 항목에 대해서 활성화를 해고 다시 테스트 해본 결과 Message가 정상적으로 들어오고 있었다.

 

 

유튜브나 JDA에서는 해당 항목이 따로 보이지 않아서 신경을 쓰지 않고 먼저 코드를 작성해봤다가, 꽤 혼이 났다...

이래서..읽는 중요성이란..

728x90

'프로젝트 > GayRoSu Bot' 카테고리의 다른 글

[GayRoSu Bot] 해당 프로젝트는?  (0) 2022.09.19
Comments