aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Phillips <david@yeah.nah.nz>2018-10-24 19:33:18 +1300
committerDavid Phillips <david@yeah.nah.nz>2018-10-24 19:33:18 +1300
commitace8734c27d5c8331cc6cd29b4e10671612be693 (patch)
tree815a2e63f512d89b60fb486a8ef72317322c0108
parenta59f6c4d3d8664526c09d30b974a2ae9eca03b07 (diff)
downloadidalius-ace8734c27d5c8331cc6cd29b4e10671612be693.tar.xz
Admin: Add runtime prefix changing
-rw-r--r--Plugin/Admin.pm25
-rwxr-xr-xidalius.pl2
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) = @_;
diff --git a/idalius.pl b/idalius.pl
index 1565bdb..acd63d2 100755
--- a/idalius.pl
+++ b/idalius.pl
@@ -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;