Skip to content

Commit 67fdab1

Browse files
committed
✨ Add shortcut directly from the /activity add command
1 parent d821dd2 commit 67fdab1

File tree

2 files changed

+41
-30
lines changed

2 files changed

+41
-30
lines changed

bot/src/commands/activities_command.rs

Lines changed: 37 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -134,44 +134,51 @@ impl ActivitiesCommand {
134134
..Default::default()
135135
};
136136

137-
for (key, val) in argmap {
138-
match key {
139-
"min_light" => {
140-
let val = val.parse::<i32>();
141-
if val.is_err() {
142-
return self
143-
.send_reply(message, "❌ min_light must be a number")
144-
.await;
145-
}
146-
act.min_light = Set(Some(val.unwrap()));
147-
}
148-
"min_level" => {
149-
let val = val.parse::<i32>();
150-
if val.is_err() {
151-
return self
152-
.send_reply(message, "❌ min_level must be a number")
153-
.await;
154-
}
155-
act.min_level = Set(Some(val.unwrap()));
156-
}
157-
"mode" => act.mode = Set(Some(val.to_string())),
158-
_ => {
159-
return self
160-
.send_reply(message, format!("❌ Unknown field name {}", key))
161-
.await;
162-
}
137+
let min_light = argmap.remove("min_light");
138+
if let Some(min_light) = min_light {
139+
let val = min_light.parse::<i32>();
140+
if val.is_err() {
141+
return self
142+
.send_reply(message, "❌ min_light must be a number")
143+
.await;
163144
}
145+
act.min_light = Set(Some(val.unwrap()));
164146
}
165147

166-
match act.insert(connection).await {
148+
let min_level = argmap.remove("min_level");
149+
if let Some(min_level) = min_level {
150+
let val = min_level.parse::<i32>();
151+
if val.is_err() {
152+
return self
153+
.send_reply(message, "❌ min_level must be a number")
154+
.await;
155+
}
156+
act.min_level = Set(Some(val.unwrap()));
157+
}
158+
159+
let mode = argmap.remove("mode");
160+
if let Some(mode) = mode {
161+
act.mode = Set(Some(mode.to_string()));
162+
}
163+
164+
let link = match act.insert(connection).await {
167165
Ok(act) => {
168166
self.send_reply(message, format!("✅ Activity {} added.", act.format_name()))
169-
.await
167+
.await;
168+
act.id
170169
}
171170
Err(e) => {
172-
self.send_reply(message, format!("❌ Error creating activity. {:?}", e))
173-
.await
171+
return self
172+
.send_reply(message, format!("❌ Error creating activity. {:?}", e))
173+
.await;
174174
}
175+
};
176+
177+
if argmap.contains_key("shortcut") && argmap.contains_key("game") {
178+
let game = argmap.remove("game").unwrap().to_string();
179+
let shortcut = argmap.remove("shortcut").unwrap().to_string();
180+
self.activity_add_shortcut(connection, message, link, shortcut, game)
181+
.await;
175182
}
176183
}
177184

bot/templates/activities/usage.tera

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,7 @@ min_fireteam_size=n <mandatory>
2727
max_fireteam_size=n <mandatory>
2828
min_light=n <optional>
2929
min_level=n <optional>
30+
31+
For add only (adds a shortcut):
32+
shortcut=s <optional>
33+
game=s <optional>

0 commit comments

Comments
 (0)