+ if (ref($cmd) eq 'HASH') {
+ # do nothing
+ }
+ elsif (ref($cmd) eq 'ARRAY') {
+ $cmd = {map {$_,1} @$cmd};
+ }
+ elsif (not ref($cmd)) {
+ $cmd = {map {$_,1} split /\s*,\s*/, $cmd};
+ }
+ else {
+ die "Cmd: $cmd option to do_auto_bleh is not a supported type";
+ }
+
+ # Fix up options for opn which doesn't do quiet or remove;
+ # turn them into ban and kick, respectively.
+ if ($server->{address} !~ $defaults{SMELLSLIKEFN}) {
+ my %fn_mapping = (remove => 'kick',
+ quiet => 'ban',
+ unquiet => 'unban',
+ timeout => 'btimeout',
+ );
+ for my $key (keys %fn_mapping) {
+ if ($$cmd{$key}) {
+ delete $$cmd{$key};
+ $$cmd{$fn_mapping{$key}} = 1;
+ }
+ }
+ }
+