Skip to content

Commit 443a1fa

Browse files
committed
Reroute Ergo/Solanum mass-message targets to the server buffer.
1 parent d70a63e commit 443a1fa

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

data/src/command.rs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,15 @@ impl Irc {
107107
casemapping: isupport::CaseMap,
108108
supports_echoes: bool,
109109
) -> Option<Vec<Message>> {
110-
let to_targets = |target: &str, source| {
110+
let to_message_target = |target: &str, source| {
111+
if target == "*" || target.starts_with('$') {
112+
return message::Target::Server { source };
113+
}
114+
111115
let target =
112116
Target::parse(target, chantypes, statusmsg, casemapping);
113117

114-
let message_target = match &target {
118+
match &target {
115119
Target::Channel(channel) => message::Target::Channel {
116120
channel: channel.clone(),
117121
source,
@@ -121,17 +125,15 @@ impl Irc {
121125
query: query.clone(),
122126
source,
123127
},
124-
};
125-
126-
(target, message_target)
128+
}
127129
};
128130

129131
match self {
130132
Irc::Msg(targets, text) => Some(
131133
targets
132134
.split(',')
133135
.map(|target| {
134-
let (target, message_target) = to_targets(
136+
let message_target = to_message_target(
135137
target,
136138
message::Source::User(user.clone()),
137139
);
@@ -155,7 +157,7 @@ impl Irc {
155157
targets
156158
.split(',')
157159
.map(|target| {
158-
let (target, message_target) = to_targets(
160+
let message_target = to_message_target(
159161
target,
160162
message::Source::User(user.clone()),
161163
);
@@ -176,7 +178,7 @@ impl Irc {
176178
.collect(),
177179
),
178180
Irc::Me(target, action) => {
179-
let (_, message_target) = to_targets(
181+
let message_target = to_message_target(
180182
target,
181183
message::Source::Action(Some(user.clone())),
182184
);

data/src/message.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2260,7 +2260,7 @@ fn target(
22602260
}
22612261
};
22622262

2263-
if target == "*" {
2263+
if target == "*" || target.starts_with('$') {
22642264
let source = user.map_or(Source::Server(None), source);
22652265

22662266
return Some((Target::Server { source }, None));

0 commit comments

Comments
 (0)