diff options
| author | David Phillips <david@yeah.nah.nz> | 2018-10-24 19:33:18 +1300 | 
|---|---|---|
| committer | David Phillips <david@yeah.nah.nz> | 2018-10-24 19:33:18 +1300 | 
| commit | ace8734c27d5c8331cc6cd29b4e10671612be693 (patch) | |
| tree | 815a2e63f512d89b60fb486a8ef72317322c0108 | |
| parent | a59f6c4d3d8664526c09d30b974a2ae9eca03b07 (diff) | |
| download | idalius-ace8734c27d5c8331cc6cd29b4e10671612be693.tar.xz | |
Admin: Add runtime prefix changing
| -rw-r--r-- | Plugin/Admin.pm | 25 | ||||
| -rwxr-xr-x | idalius.pl | 2 | 
2 files changed, 26 insertions, 1 deletions
| diff --git a/Plugin/Admin.pm b/Plugin/Admin.pm index ff8b646..404dbf4 100644 --- a/Plugin/Admin.pm +++ b/Plugin/Admin.pm @@ -34,6 +34,9 @@ sub configure {  	$cmdref->($self, "ignore", sub { $self->ignore(@_); } );  	$cmdref->($self, "don't ignore", sub { $self->do_not_ignore(@_); } );  	$cmdref->($self, "who are you ignoring?", sub { $self->dump_ignore(@_); } ); +	$cmdref->($self, "prefix rm", sub { $self->prefix_rm(@_); } ); +	$cmdref->($self, "prefix del", sub { $self->prefix_rm(@_); } ); +	$cmdref->($self, "prefix set", sub { $self->prefix_set(@_); } );  	$cmdref->($self, "exit", sub { $self->exit(@_); } ); @@ -41,6 +44,7 @@ sub configure {  	$cmdref->($self, "load", sub { $self->load_plugin(@_); } );  	$cmdref->($self, "unload", sub { $self->unload_plugin(@_); } ); +  	return $self;  } @@ -221,6 +225,27 @@ sub dump_ignore {  	return "I am ignoring: " . join ", ", @{$root_config->{ignore}};  } +sub prefix_rm { +	my ($self, $irc, $logger, $who, $where, $ided, $rest, @arguments) = @_; + +	return "Syntax: prefix rm" unless @arguments == 0; + +	my $old = $root_config->{prefix}; +	$root_config->{prefix} = undef; + +	return "Prefix removed (used to be $old)" if $old; +	return "Prefix was already removed"; +} + +sub prefix_set { +	my ($self, $irc, $logger, $who, $where, $ided, $rest, @arguments) = @_; + +	return "Syntax: prefix set <new prefix>" unless @arguments > 0; + +	$root_config->{prefix} = $rest; +	return "Prefix set to $root_config->{prefix}"; +} +  sub exit {  	my ($self, $irc, $logger, $who, $where, $ided, $rest, @arguments) = @_; @@ -222,7 +222,7 @@ sub handle_common {  	my $stripped_what = strip_color(strip_formatting($what));  	my $no_prefix_what = $stripped_what;  	if (!should_ignore($nick) && ($config->{_}->{prefix_nick} && $no_prefix_what =~ s/^\Q$config->{_}->{current_nick}\E[:,]\s+//g || -	    $no_prefix_what =~ s/^$config->{_}->{prefix}//)) { +	    ($config->{_}->{prefix} && $no_prefix_what =~ s/^\Q$config->{_}->{prefix}//))) {  		$output = run_command($no_prefix_what, $who, $where, $ided);  		$irc->yield(privmsg => $where => $output) if $output;  		strike_add($nick, $channel) if $output; | 
