Browse Source

Add SourcedEvent interface

tags/v0.11.0
Chris Smith 5 years ago
parent
commit
6c10e031db
2 changed files with 27 additions and 15 deletions
  1. 2
    0
      CHANGELOG
  2. 25
    15
      src/main/kotlin/com/dmdirc/ktirc/events/Events.kt

+ 2
- 0
CHANGELOG View File

@@ -1,5 +1,7 @@
1 1
 vNEXT (in development)
2 2
 
3
+ * Added SourcedEvent interface for events that have a user source attached
4
+
3 5
 v0.10.3
4 6
 
5 7
  * Fix issue parsing CTCPs when the content contained multi-byte chars

+ 25
- 15
src/main/kotlin/com/dmdirc/ktirc/events/Events.kt View File

@@ -44,6 +44,16 @@ sealed class TargetedEvent(metadata: EventMetadata, val target: String) : IrcEve
44 44
 
45 45
 }
46 46
 
47
+/**
48
+ * Interface implemented by events that come from a particular user.
49
+ */
50
+interface SourcedEvent {
51
+
52
+    /** The user that caused the event. */
53
+    val user: User
54
+
55
+}
56
+
47 57
 /** Raised when a connection to the server is being established. */
48 58
 class ServerConnecting(metadata: EventMetadata) : IrcEvent(metadata)
49 59
 
@@ -69,19 +79,19 @@ class ServerFeaturesUpdated(metadata: EventMetadata, val serverFeatures: ServerF
69 79
 class PingReceived(metadata: EventMetadata, val nonce: ByteArray) : IrcEvent(metadata)
70 80
 
71 81
 /** Raised when a user joins a channel. */
72
-class ChannelJoined(metadata: EventMetadata, val user: User, channel: String) : TargetedEvent(metadata, channel)
82
+class ChannelJoined(metadata: EventMetadata, override val user: User, channel: String) : TargetedEvent(metadata, channel), SourcedEvent
73 83
 
74 84
 /** Raised when a user leaves a channel. */
75
-class ChannelParted(metadata: EventMetadata, val user: User, channel: String, val reason: String = "") : TargetedEvent(metadata, channel)
85
+class ChannelParted(metadata: EventMetadata, override val user: User, channel: String, val reason: String = "") : TargetedEvent(metadata, channel), SourcedEvent
76 86
 
77 87
 /** Raised when a [victim] is kicked from a channel. */
78
-class ChannelUserKicked(metadata: EventMetadata, val user: User, channel: String, val victim: String, val reason: String = "") : TargetedEvent(metadata, channel)
88
+class ChannelUserKicked(metadata: EventMetadata, override val user: User, channel: String, val victim: String, val reason: String = "") : TargetedEvent(metadata, channel), SourcedEvent
79 89
 
80 90
 /** Raised when a user quits, and is in a channel. */
81
-class ChannelQuit(metadata: EventMetadata, val user: User, channel: String, val reason: String = "") : TargetedEvent(metadata, channel)
91
+class ChannelQuit(metadata: EventMetadata, override val user: User, channel: String, val reason: String = "") : TargetedEvent(metadata, channel), SourcedEvent
82 92
 
83 93
 /** Raised when a user changes nickname, and is in a channel. */
84
-class ChannelNickChanged(metadata: EventMetadata, val user: User, channel: String, val newNick: String) : TargetedEvent(metadata, channel)
94
+class ChannelNickChanged(metadata: EventMetadata, override val user: User, channel: String, val newNick: String) : TargetedEvent(metadata, channel), SourcedEvent
85 95
 
86 96
 /** Raised when a batch of the channel's member list has been received. More batches may follow. */
87 97
 class ChannelNamesReceived(metadata: EventMetadata, channel: String, val names: List<String>) : TargetedEvent(metadata, channel)
@@ -100,10 +110,10 @@ class ChannelTopicMetadataDiscovered(metadata: EventMetadata, channel: String, v
100 110
  *
101 111
  * If the topic has been unset (cleared), [topic] will be `null`
102 112
  */
103
-class ChannelTopicChanged(metadata: EventMetadata, val user: User, channel: String, val topic: String?) : TargetedEvent(metadata, channel)
113
+class ChannelTopicChanged(metadata: EventMetadata, override val user: User, channel: String, val topic: String?) : TargetedEvent(metadata, channel), SourcedEvent
104 114
 
105 115
 /** Raised when a message is received. */
106
-class MessageReceived(metadata: EventMetadata, val user: User, target: String, val message: String) : TargetedEvent(metadata, target) {
116
+class MessageReceived(metadata: EventMetadata, override val user: User, target: String, val message: String) : TargetedEvent(metadata, target), SourcedEvent {
107 117
 
108 118
     /** The message ID of this message. */
109 119
     @Deprecated("Moved to metadata", replaceWith = ReplaceWith("metadata.messageId"))
@@ -118,10 +128,10 @@ class MessageReceived(metadata: EventMetadata, val user: User, target: String, v
118 128
  *
119 129
  * The [user] may in fact be a server, or have a nickname of `*` while connecting.
120 130
  */
121
-class NoticeReceived(metadata: EventMetadata, val user: User, target: String, val message: String) : TargetedEvent(metadata, target)
131
+class NoticeReceived(metadata: EventMetadata, override val user: User, target: String, val message: String) : TargetedEvent(metadata, target), SourcedEvent
122 132
 
123 133
 /** Raised when an action is received. */
124
-class ActionReceived(metadata: EventMetadata, val user: User, target: String, val action: String) : TargetedEvent(metadata, target) {
134
+class ActionReceived(metadata: EventMetadata, override val user: User, target: String, val action: String) : TargetedEvent(metadata, target), SourcedEvent {
125 135
 
126 136
     /** The message ID of this action. */
127 137
     @Deprecated("Moved to metadata", replaceWith = ReplaceWith("metadata.messageId"))
@@ -132,26 +142,26 @@ class ActionReceived(metadata: EventMetadata, val user: User, target: String, va
132 142
 }
133 143
 
134 144
 /** Raised when a CTCP is received. */
135
-class CtcpReceived(metadata: EventMetadata, val user: User, target: String, val type: String, val content: String) : TargetedEvent(metadata, target)
145
+class CtcpReceived(metadata: EventMetadata, override val user: User, target: String, val type: String, val content: String) : TargetedEvent(metadata, target), SourcedEvent
136 146
 
137 147
 /** Raised when a CTCP reply is received. */
138
-class CtcpReplyReceived(metadata: EventMetadata, val user: User, target: String, val type: String, val content: String) : TargetedEvent(metadata, target)
148
+class CtcpReplyReceived(metadata: EventMetadata, override val user: User, target: String, val type: String, val content: String) : TargetedEvent(metadata, target), SourcedEvent
139 149
 
140 150
 /** Raised when a user quits. */
141
-class UserQuit(metadata: EventMetadata, val user: User, val reason: String = "") : IrcEvent(metadata)
151
+class UserQuit(metadata: EventMetadata, override val user: User, val reason: String = "") : IrcEvent(metadata), SourcedEvent
142 152
 
143 153
 /** Raised when a user changes nickname. */
144
-class UserNickChanged(metadata: EventMetadata, val user: User, val newNick: String) : IrcEvent(metadata)
154
+class UserNickChanged(metadata: EventMetadata, override val user: User, val newNick: String) : IrcEvent(metadata), SourcedEvent
145 155
 
146 156
 /** Raised when a user changes hostname. */
147
-class UserHostChanged(metadata: EventMetadata, val user: User, val newIdent: String, val newHost: String) : IrcEvent(metadata)
157
+class UserHostChanged(metadata: EventMetadata, override val user: User, val newIdent: String, val newHost: String) : IrcEvent(metadata), SourcedEvent
148 158
 
149 159
 /**
150 160
  * Raised when a user's account changes (i.e., they auth'd or deauth'd with services).
151 161
  *
152 162
  * This event is only raised if the server supports the `account-notify` capability.
153 163
  */
154
-class UserAccountChanged(metadata: EventMetadata, val user: User, val newAccount: String?) : IrcEvent(metadata)
164
+class UserAccountChanged(metadata: EventMetadata, override val user: User, val newAccount: String?) : IrcEvent(metadata), SourcedEvent
155 165
 
156 166
 /** Raised when available server capabilities are received. More batches may follow. */
157 167
 class ServerCapabilitiesReceived(metadata: EventMetadata, val capabilities: Map<String, String>) : IrcEvent(metadata)

Loading…
Cancel
Save