-
-
Notifications
You must be signed in to change notification settings - Fork 89
/
Copy pathMessageReceiverAdapter.java
67 lines (56 loc) · 2.32 KB
/
MessageReceiverAdapter.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package org.togetherjava.tjbot.features;
import net.dv8tion.jda.api.events.message.MessageDeleteEvent;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.events.message.MessageUpdateEvent;
import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent;
import java.util.regex.Pattern;
/**
* Adapter implementation of a {@link MessageReceiver}. A new receiver can then be registered by
* adding it to {@link Features}.
* <p>
* {@link #onMessageReceived(MessageReceivedEvent)} and
* {@link #onMessageUpdated(MessageUpdateEvent)} can be overridden if desired. The default
* implementation is empty, the adapter will not react to such events.
*/
public abstract class MessageReceiverAdapter implements MessageReceiver {
private final Pattern channelNamePattern;
/**
* Creates an instance of a message receiver, listening to messages of all channels.
*/
protected MessageReceiverAdapter() {
this(Pattern.compile(".*"));
}
/**
* Creates an instance of a message receiver with the given pattern.
*
* @param channelNamePattern the pattern matching names of channels interested in, only messages
* from matching channels will be received
*/
protected MessageReceiverAdapter(Pattern channelNamePattern) {
this.channelNamePattern = channelNamePattern;
}
@Override
public final Pattern getChannelNamePattern() {
return channelNamePattern;
}
@SuppressWarnings("NoopMethodInAbstractClass")
@Override
public void onMessageReceived(MessageReceivedEvent event) {
// Adapter does not react by default, subclasses may change this behavior
}
@SuppressWarnings("NoopMethodInAbstractClass")
@Override
public void onMessageUpdated(MessageUpdateEvent event) {
// Adapter does not react by default, subclasses may change this behavior
}
@SuppressWarnings("NoopMethodInAbstractClass")
@Override
public void onMessageDeleted(MessageDeleteEvent event) {
// Adapter does not react by default, subclasses may change this behavior
}
@SuppressWarnings("NoopMethodInAbstractClass")
@Override
public void onMessageReactionAdd(MessageReactionAddEvent event) {
// Adapter does not react by default, subclasses may change this behavior
}
}