Skip to content

Commit 52cfdb2

Browse files
committed
[BREAKING] Refactor events:
Events are now by default containing a single original message, since most events are really triggered by such. This allows for making message tags more accessible for most events. The handful of events that come from multiple messages are now treated separately for storing original messages. This will break any calls to getOriginalMessages on most events, since the method has been replaced. Since most usage of that was to call tag-getting methods, it can be directly replaced by event.getTag... methods.
1 parent 6cb3555 commit 52cfdb2

File tree

108 files changed

+539
-498
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+539
-498
lines changed

src/main/java/org/kitteh/irc/client/library/defaults/DefaultClient.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -950,7 +950,7 @@ private void handleLine(final @NonNull String line) {
950950
BatchReferenceTag tag = this.batchHold.get(batch);
951951
if (tag != null) {
952952
tag.addEvent(event);
953-
this.eventManager.callEvent(new ClientBatchMessageEvent(this, event.getOriginalMessages(), tag));
953+
this.eventManager.callEvent(new ClientBatchMessageEvent(this, event.getOriginalMessage(), tag));
954954
return;
955955
}
956956
// else improper batch
@@ -980,15 +980,15 @@ private void sendLineEvent(@NonNull ClientReceiveServerMessageEvent event) {
980980
String type = parameters.get(1);
981981
List<String> batchParameters = new ArrayList<>(parameters.subList(2, parameters.size()));
982982
BatchReferenceTag tag = new BatchReferenceTag(refTag, type, batchParameters);
983-
ClientBatchStartEvent batchEvent = new ClientBatchStartEvent(this, event.getOriginalMessages(), tag);
983+
ClientBatchStartEvent batchEvent = new ClientBatchStartEvent(this, event.getOriginalMessage(), tag);
984984
this.eventManager.callEvent(batchEvent);
985985
if (!batchEvent.isReferenceTagIgnored()) {
986986
this.batchHold.put(refTag, tag);
987987
}
988988
} else if (plusOrMinus == '-') {
989989
BatchReferenceTag tag = this.batchHold.remove(refTag);
990990
if (tag != null) {
991-
this.eventManager.callEvent(new ClientBatchEndEvent(this, event.getOriginalMessages(), tag));
991+
this.eventManager.callEvent(new ClientBatchEndEvent(this, event.getOriginalMessage(), tag));
992992
tag.getEvents().forEach(this::sendLineEvent);
993993
}
994994
} else {

src/main/java/org/kitteh/irc/client/library/defaults/listener/AbstractDefaultListenerBase.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ protected void ctcp(ClientReceiveCommandEvent event) {
9595
switch (event.getCommand()) {
9696
case "NOTICE":
9797
if (messageTargetInfo instanceof MessageTargetInfo.Private) {
98-
this.fire(new PrivateCtcpReplyEvent(this.getClient(), event.getOriginalMessages(), user, event.getParameters().get(0), ctcpMessage));
98+
this.fire(new PrivateCtcpReplyEvent(this.getClient(), event.getOriginalMessage(), user, event.getParameters().get(0), ctcpMessage));
9999
}
100100
break;
101101
case "PRIVMSG":
@@ -115,18 +115,18 @@ protected void ctcp(ClientReceiveCommandEvent event) {
115115
if (ctcpMessage.startsWith("PING ")) {
116116
reply = ctcpMessage;
117117
}
118-
PrivateCtcpQueryEvent ctcpEvent = new PrivateCtcpQueryEvent(this.getClient(), event.getOriginalMessages(), user, event.getParameters().get(0), ctcpMessage, reply);
118+
PrivateCtcpQueryEvent ctcpEvent = new PrivateCtcpQueryEvent(this.getClient(), event.getOriginalMessage(), user, event.getParameters().get(0), ctcpMessage, reply);
119119
this.fire(ctcpEvent);
120120
Optional<String> replyMessage = ctcpEvent.getReply();
121121
if (ctcpEvent.isToClient()) {
122122
replyMessage.ifPresent(message -> this.getClient().sendRawLine("NOTICE " + user.getNick() + " :" + CtcpUtil.toCtcp(message)));
123123
}
124124
} else if (messageTargetInfo instanceof MessageTargetInfo.ChannelInfo) {
125125
MessageTargetInfo.ChannelInfo channelInfo = (MessageTargetInfo.ChannelInfo) messageTargetInfo;
126-
this.fire(new ChannelCtcpEvent(this.getClient(), event.getOriginalMessages(), user, channelInfo.getChannel(), ctcpMessage));
126+
this.fire(new ChannelCtcpEvent(this.getClient(), event.getOriginalMessage(), user, channelInfo.getChannel(), ctcpMessage));
127127
} else if (messageTargetInfo instanceof MessageTargetInfo.TargetedChannel) {
128128
MessageTargetInfo.TargetedChannel channelInfo = (MessageTargetInfo.TargetedChannel) messageTargetInfo;
129-
this.fire(new ChannelTargetedCtcpEvent(this.getClient(), event.getOriginalMessages(), user, channelInfo.getChannel(), channelInfo.getPrefix(), ctcpMessage));
129+
this.fire(new ChannelTargetedCtcpEvent(this.getClient(), event.getOriginalMessage(), user, channelInfo.getChannel(), channelInfo.getPrefix(), ctcpMessage));
130130
}
131131
break;
132132
}

src/main/java/org/kitteh/irc/client/library/defaults/listener/DefaultAccountListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public void account(ClientReceiveCommandEvent event) {
5757
}
5858
String accountParameter = event.getParameters().get(0);
5959
String accountName = "*".equals(accountParameter) ? null : accountParameter;
60-
this.fire(new UserAccountStatusEvent(this.getClient(), event.getOriginalMessages(), (User) event.getActor(), accountName));
60+
this.fire(new UserAccountStatusEvent(this.getClient(), event.getOriginalMessage(), (User) event.getActor(), accountName));
6161
this.getTracker().setUserAccount(((User) event.getActor()).getNick(), accountName);
6262
}
6363
}

src/main/java/org/kitteh/irc/client/library/defaults/listener/DefaultAwayListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public DefaultAwayListener(Client.@NonNull WithManagement client) {
5252
@NumericFilter(306) // NOWAWAY
5353
@Handler(priority = Integer.MAX_VALUE - 1)
5454
public void away(ClientReceiveNumericEvent event) {
55-
this.fire(new ClientAwayStatusChangeEvent(this.getClient(), event.getOriginalMessages(), event.getNumeric() == 306));
55+
this.fire(new ClientAwayStatusChangeEvent(this.getClient(), event.getOriginalMessage(), event.getNumeric() == 306));
5656
}
5757

5858
@CommandFilter("AWAY")
@@ -63,7 +63,7 @@ public void away(ClientReceiveCommandEvent event) {
6363
return;
6464
}
6565
String awayMessage = event.getParameters().isEmpty() ? null : StringUtil.combineSplit(event.getParameters().toArray(new String[event.getParameters().size()]), 0);
66-
this.fire(new UserAwayMessageEvent(this.getClient(), event.getOriginalMessages(), (User) event.getActor(), awayMessage));
66+
this.fire(new UserAwayMessageEvent(this.getClient(), event.getOriginalMessage(), (User) event.getActor(), awayMessage));
6767
this.getTracker().setUserAway(((User) event.getActor()).getNick(), awayMessage);
6868
}
6969
}

src/main/java/org/kitteh/irc/client/library/defaults/listener/DefaultCapListener.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@
3030
import org.kitteh.irc.client.library.defaults.element.DefaultCapabilityState;
3131
import org.kitteh.irc.client.library.element.CapabilityState;
3232
import org.kitteh.irc.client.library.element.ServerMessage;
33-
import org.kitteh.irc.client.library.event.abstractbase.CapabilityNegotiationResponseEventBase;
34-
import org.kitteh.irc.client.library.event.abstractbase.CapabilityNegotiationResponseEventWithRequestBase;
3533
import org.kitteh.irc.client.library.event.capabilities.CapabilitiesAcknowledgedEvent;
3634
import org.kitteh.irc.client.library.event.capabilities.CapabilitiesDeletedSupportedEvent;
3735
import org.kitteh.irc.client.library.event.capabilities.CapabilitiesListEvent;
3836
import org.kitteh.irc.client.library.event.capabilities.CapabilitiesNewSupportedEvent;
3937
import org.kitteh.irc.client.library.event.capabilities.CapabilitiesRejectedEvent;
4038
import org.kitteh.irc.client.library.event.capabilities.CapabilitiesSupportedListEvent;
4139
import org.kitteh.irc.client.library.event.client.ClientReceiveCommandEvent;
40+
import org.kitteh.irc.client.library.event.helper.CapabilityNegotiationRequestEvent;
41+
import org.kitteh.irc.client.library.event.helper.CapabilityNegotiationResponseEvent;
4242
import org.kitteh.irc.client.library.feature.CapabilityManager;
4343
import org.kitteh.irc.client.library.feature.filter.CommandFilter;
4444

@@ -76,7 +76,7 @@ public void cap(ClientReceiveCommandEvent event) {
7676
this.trackException(event, "CAP message too short");
7777
return;
7878
}
79-
CapabilityNegotiationResponseEventBase responseEvent = null;
79+
CapabilityNegotiationResponseEvent responseEvent = null;
8080
int capabilityListIndex;
8181
if ("*".equals(event.getParameters().get(CAPABILITY_LIST_INDEX_DEFAULT))) {
8282
if (event.getParameters().size() < 4) {
@@ -91,7 +91,7 @@ public void cap(ClientReceiveCommandEvent event) {
9191
switch (event.getParameters().get(1).toLowerCase()) {
9292
case "ack":
9393
this.getClient().getCapabilityManager().updateCapabilities(capabilityStateList);
94-
responseEvent = new CapabilitiesAcknowledgedEvent(this.getClient(), event.getOriginalMessages(), this.getClient().getCapabilityManager().isNegotiating(), capabilityStateList);
94+
responseEvent = new CapabilitiesAcknowledgedEvent(this.getClient(), event.getOriginalMessage(), this.getClient().getCapabilityManager().isNegotiating(), capabilityStateList);
9595
this.fire(responseEvent);
9696
break;
9797
case "list":
@@ -131,21 +131,21 @@ public void cap(ClientReceiveCommandEvent event) {
131131
break;
132132
case "nak":
133133
this.getClient().getCapabilityManager().updateCapabilities(capabilityStateList);
134-
responseEvent = new CapabilitiesRejectedEvent(this.getClient(), event.getOriginalMessages(), this.getClient().getCapabilityManager().isNegotiating(), capabilityStateList);
134+
responseEvent = new CapabilitiesRejectedEvent(this.getClient(), event.getOriginalMessage(), this.getClient().getCapabilityManager().isNegotiating(), capabilityStateList);
135135
this.fire(responseEvent);
136136
break;
137137
case "new":
138138
List<CapabilityState> statesAdded = new ArrayList<>(this.getClient().getCapabilityManager().getSupportedCapabilities());
139139
statesAdded.addAll(capabilityStateList);
140140
this.getClient().getCapabilityManager().setSupportedCapabilities(statesAdded);
141-
responseEvent = new CapabilitiesNewSupportedEvent(this.getClient(), event.getOriginalMessages(), this.getClient().getCapabilityManager().isNegotiating(), capabilityStateList);
141+
responseEvent = new CapabilitiesNewSupportedEvent(this.getClient(), event.getOriginalMessage(), this.getClient().getCapabilityManager().isNegotiating(), capabilityStateList);
142142
this.fireAndCapReq((CapabilitiesNewSupportedEvent) responseEvent);
143143
break;
144144
case "del":
145145
List<CapabilityState> statesRemaining = new ArrayList<>(this.getClient().getCapabilityManager().getSupportedCapabilities());
146146
statesRemaining.removeAll(capabilityStateList);
147147
this.getClient().getCapabilityManager().setSupportedCapabilities(statesRemaining);
148-
responseEvent = new CapabilitiesDeletedSupportedEvent(this.getClient(), event.getOriginalMessages(), this.getClient().getCapabilityManager().isNegotiating(), capabilityStateList);
148+
responseEvent = new CapabilitiesDeletedSupportedEvent(this.getClient(), event.getOriginalMessage(), this.getClient().getCapabilityManager().isNegotiating(), capabilityStateList);
149149
this.fire(responseEvent);
150150
break;
151151
}
@@ -157,7 +157,7 @@ public void cap(ClientReceiveCommandEvent event) {
157157
}
158158
}
159159

160-
private void fireAndCapReq(@NonNull CapabilityNegotiationResponseEventWithRequestBase responseEvent) {
160+
private void fireAndCapReq(@NonNull CapabilityNegotiationRequestEvent responseEvent) {
161161
Set<String> capabilities = this.getClient().getCapabilityManager().getSupportedCapabilities().stream().map(CapabilityState::getName).collect(Collectors.toCollection(HashSet::new));
162162
capabilities.retainAll(CapabilityManager.Defaults.getDefaults());
163163
List<String> currentCapabilities = this.getClient().getCapabilityManager().getCapabilities().stream().map(CapabilityState::getName).collect(Collectors.toList());

src/main/java/org/kitteh/irc/client/library/defaults/listener/DefaultChgHostListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,12 @@ public void chghost(ClientReceiveCommandEvent event) {
7575

7676
if (!user.getHost().equals(newHostString)) {
7777
this.getTracker().trackUserHostnameChange(user.getNick(), newHostString);
78-
this.fire(new UserHostnameChangeEvent(this.getClient(), event.getOriginalMessages(), oldUser, this.getTracker().getTrackedUser(user.getNick()).get()));
78+
this.fire(new UserHostnameChangeEvent(this.getClient(), event.getOriginalMessage(), oldUser, this.getTracker().getTrackedUser(user.getNick()).get()));
7979
}
8080

8181
if (!user.getUserString().equals(newUserString)) {
8282
this.getTracker().trackUserUserStringChange(user.getNick(), newUserString);
83-
this.fire(new UserUserStringChangeEvent(this.getClient(), event.getOriginalMessages(), oldUser, this.getTracker().getTrackedUser(user.getNick()).get()));
83+
this.fire(new UserUserStringChangeEvent(this.getClient(), event.getOriginalMessage(), oldUser, this.getTracker().getTrackedUser(user.getNick()).get()));
8484
}
8585
}
8686
}

src/main/java/org/kitteh/irc/client/library/defaults/listener/DefaultInviteListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public void invite(ClientReceiveCommandEvent event) {
5858
if (this.getClient().getNick().equalsIgnoreCase(event.getParameters().get(0)) && this.getClient().getIntendedChannels().contains(channel.get().getName())) {
5959
this.getClient().sendRawLine("JOIN " + channel.get().getName());
6060
}
61-
this.fire(new ChannelInviteEvent(this.getClient(), event.getOriginalMessages(), channel.get(), event.getActor(), event.getParameters().get(0)));
61+
this.fire(new ChannelInviteEvent(this.getClient(), event.getOriginalMessage(), channel.get(), event.getActor(), event.getParameters().get(0)));
6262
} else {
6363
this.trackException(event, "INVITE message sent for invalid channel name");
6464
}

src/main/java/org/kitteh/irc/client/library/defaults/listener/DefaultJoinListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public void join(ClientReceiveCommandEvent event) {
6969
this.getClient().sendRawLine("WHO " + channelName + (this.getClient().getServerInfo().hasWhoXSupport() ? " %cuhsnfar" : ""));
7070
}
7171
if (this.getClient().getIntendedChannels().contains(channelName)) {
72-
joinEvent = new RequestedChannelJoinCompleteEvent(this.getClient(), event.getOriginalMessages(), channel, user);
72+
joinEvent = new RequestedChannelJoinCompleteEvent(this.getClient(), event.getOriginalMessage(), channel, user);
7373
}
7474
}
7575
if (event.getParameters().size() > 2) {
@@ -79,7 +79,7 @@ public void join(ClientReceiveCommandEvent event) {
7979
this.getTracker().setUserRealName(user.getNick(), event.getParameters().get(2));
8080
}
8181
if (joinEvent == null) {
82-
joinEvent = new ChannelJoinEvent(this.getClient(), event.getOriginalMessages(), channel, user);
82+
joinEvent = new ChannelJoinEvent(this.getClient(), event.getOriginalMessage(), channel, user);
8383
}
8484
this.fire(joinEvent);
8585
} else {

src/main/java/org/kitteh/irc/client/library/defaults/listener/DefaultKickListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,9 @@ public void kick(ClientReceiveCommandEvent event) {
6464
ClientEvent kickEvent;
6565
String kickReason = (event.getParameters().size() > 2) ? event.getParameters().get(2) : "";
6666
if (isSelf && this.getClient().getIntendedChannels().contains(channel.get().getName())) {
67-
kickEvent = new UnexpectedChannelLeaveViaKickEvent(this.getClient(), event.getOriginalMessages(), channel.get(), event.getActor(), kickedUser.get(), kickReason);
67+
kickEvent = new UnexpectedChannelLeaveViaKickEvent(this.getClient(), event.getOriginalMessage(), channel.get(), event.getActor(), kickedUser.get(), kickReason);
6868
} else {
69-
kickEvent = new ChannelKickEvent(this.getClient(), event.getOriginalMessages(), channel.get(), event.getActor(), kickedUser.get(), kickReason);
69+
kickEvent = new ChannelKickEvent(this.getClient(), event.getOriginalMessage(), channel.get(), event.getActor(), kickedUser.get(), kickReason);
7070
}
7171
this.fire(kickEvent);
7272
this.getTracker().trackUserPart(channel.get().getName(), event.getParameters().get(1));

src/main/java/org/kitteh/irc/client/library/defaults/listener/DefaultKnockListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public void knock(ClientReceiveNumericEvent event) {
5757
Optional<Channel> channel = this.getTracker().getChannel(event.getParameters().get(1));
5858
if (channel.isPresent()) {
5959
User user = (User) this.getTracker().getActor(event.getParameters().get(2));
60-
this.fire(new ChannelKnockEvent(this.getClient(), event.getOriginalMessages(), channel.get(), user));
60+
this.fire(new ChannelKnockEvent(this.getClient(), event.getOriginalMessage(), channel.get(), user));
6161
} else {
6262
this.trackException(event, "KNOCK message sent for invalid channel name");
6363
}

0 commit comments

Comments
 (0)