From Putrid Parrot, 6 Months ago, written in Java.
  1.    public static void main(String[] args) {
  2.         gateway.on(MessageCreateEvent.class).flatMap(event -> {
  3.             Message message = event.getMessage();
  4.             String messageContent = message.getContent();
  5.             MessageChannel channel = message.getChannel().block();
  6.             String userId = message.getAuthor().get().getId().toString();
  7.  
  8.             // Keep this around for debugging
  9.             if ("!ping".equals(messageContent)) {
  10.                 Objects.requireNonNull(channel).createMessage("Pong!").block();
  11.             }
  12.  
  13.             // Prevent looping and self-response vulnerabilities
  14.             if (!userId.equals(ownUserId)) {
  15.                 String response = dispatcher.respond(messageContent);
  16.                 // Avoid a 400: Bad Request error caused by sending an empty message
  17.                 if ((response != null) && (!response.equals(""))) {
  18.                     Objects.requireNonNull(channel).createMessage(response).block();
  19.                 }
  20.             }
  21.             return Mono.empty();
  22.         }).onErrorResume(error -> {
  23.             log.error("Failed to handle event: ", error);
  24.             return Mono.empty();
  25.         }).subscribe();
  26.  
  27.         gateway.onDisconnect().block();
  28.     }
captcha