Skip to content

Commit

Permalink
fix: handle message delete success / error events
Browse files Browse the repository at this point in the history
  • Loading branch information
PhilippHeuer committed Aug 31, 2020
1 parent c32c1cd commit 98a06d7
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 1 deletion.
Expand Up @@ -10,6 +10,7 @@
import com.github.twitch4j.common.events.domain.EventUser;
import com.github.twitch4j.common.events.user.PrivateMessageEvent;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;

import java.time.Month;
import java.util.HashMap;
Expand All @@ -25,6 +26,7 @@
* Listens for any irc triggered events and created the corresponding events for the EventDispatcher.
*/
@Getter
@Slf4j
public class IRCEventHandler {

/**
Expand Down Expand Up @@ -66,6 +68,7 @@ public IRCEventHandler(TwitchChat twitchChat) {
eventManager.getEventHandler(SimpleEventHandler.class).onEvent(IRCMessageEvent.class, this::onUnraid);
eventManager.getEventHandler(SimpleEventHandler.class).onEvent(IRCMessageEvent.class, this::onRewardGift);
eventManager.getEventHandler(SimpleEventHandler.class).onEvent(IRCMessageEvent.class, this::onRitual);
eventManager.getEventHandler(SimpleEventHandler.class).onEvent(IRCMessageEvent.class, this::onMessageDeleteResponse);
}

/**
Expand Down Expand Up @@ -460,7 +463,7 @@ public void onNoticeEvent(IRCMessageEvent event) {
if (event.getCommandType().equals("NOTICE")) {
EventChannel channel = event.getChannel();
String messageId = event.getTagValue("msg-id").get();
String message = event.getMessage().get();
String message = event.getMessage().orElse(null); // can be null, ie. bad_delete_message_error

eventManager.publish(new ChannelNoticeEvent(channel, messageId, message));
}
Expand Down Expand Up @@ -537,4 +540,18 @@ public void onChannelState(IRCMessageEvent event) {
eventManager.publish(new ChannelStateEvent(channel, states));
}
}

public void onMessageDeleteResponse(IRCMessageEvent event) {
if (event.getCommandType().equals("NOTICE")) {
EventChannel channel = event.getChannel();
String messageId = event.getTagValue("msg-id").get();

if (messageId.equals("delete_message_success")) {
eventManager.publish(new MessageDeleteSuccess(channel));
} else if (messageId.equals("bad_delete_message_error")) {
eventManager.publish(new MessageDeleteError(channel));
log.warn("Failed to delete a message in {}!", channel.getName());
}
}
}
}
@@ -0,0 +1,28 @@
package com.github.twitch4j.chat.events.channel;

import com.github.twitch4j.chat.events.AbstractChannelEvent;
import com.github.twitch4j.common.events.domain.EventChannel;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
import lombok.Value;

/**
* Failed to delete a message
*/
@Value
@Getter
@EqualsAndHashCode(callSuper = false)
@ToString
public class MessageDeleteError extends AbstractChannelEvent {

/**
* Event Constructor
*
* @param channel The channel that this event originates from.
*/
public MessageDeleteError(EventChannel channel) {
super(channel);
}

}
@@ -0,0 +1,28 @@
package com.github.twitch4j.chat.events.channel;

import com.github.twitch4j.chat.events.AbstractChannelEvent;
import com.github.twitch4j.common.events.domain.EventChannel;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
import lombok.Value;

/**
* Successfully deleted a message
*/
@Value
@Getter
@EqualsAndHashCode(callSuper = false)
@ToString
public class MessageDeleteSuccess extends AbstractChannelEvent {

/**
* Event Constructor
*
* @param channel The channel that this event originates from.
*/
public MessageDeleteSuccess(EventChannel channel) {
super(channel);
}

}

0 comments on commit 98a06d7

Please sign in to comment.