@@ -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
0 commit comments