]> jfr.im git - irc/SurrealServices/srsv.git/blobdiff - branches/erry-devel/modules/serviceslibs/operserv.pm
My work on this so far....
[irc/SurrealServices/srsv.git] / branches / erry-devel / modules / serviceslibs / operserv.pm
index 74518491f74fc7c71921953da924d6466cf972c1..a127253430ad679db905fce6d7da324675958bb0 100644 (file)
@@ -45,7 +45,7 @@ use constant {
 
 our $osnick_default = 'OperServ';
 our $osnick = $osnick_default;
-
+our $osuser = { NICK => $osnick, ID => "123AAAAAD" };
 my %newstypes = (
        u => 'User',
        o => 'Oper'
@@ -127,19 +127,20 @@ sub init() {
 }
 
 sub dispatch($$$) {
-       my ($src, $dst, $msg) = @_;
+       my ($user, $dstUser, $msg) = @_;
        $msg =~ s/^\s+//;
        my @args = split(/\s+/, $msg);
        my $cmd = shift @args;
-
-       my $user = { NICK => $src, AGENT=> $dst };
-
+       $user -> {AGENT} = $dstUser;
+       my $src = $user -> {NICK};
+       return unless (lc $dstUser->{NICK} eq lc $osnick);
+       get_user_id ($user);
        services::ulog($osnick, LOG_INFO(), "cmd: [$msg]", $user);
 
        return if flood_check($user);
-       unless(adminserv::is_svsop($user) or adminserv::is_ircop($user)) {
+       unless(defined(adminserv::is_svsop($user)) or adminserv::is_ircop($user)) {
                notice($user, $err_deny);
-               ircd::globops($osnick, "\002$src\002 failed access to $osnick $msg");
+               ircd::globops($osuser, "\002$src\002 failed access to $osnick $msg");
                return;
        }
 
@@ -395,7 +396,7 @@ sub os_fjoin($$@) {
                notice($user, "You don't have the right access");
                return $event::SUCCESS;
        }
-       ircd::svsjoin($osnick, $target, @chans);
+       ircd::svsjoin($osuser, $target, @chans);
 }
 
 sub os_fpart($$@) {
@@ -419,7 +420,7 @@ sub os_fpart($$@) {
        }
        $reason = join(' ', @params) if @params;
        
-       ircd::svspart($osnick, $target, $reason, @chans);
+       ircd::svspart($osuser, $target, $reason, @chans);
 }
 
 sub os_qline_add($$$$) {
@@ -593,7 +594,7 @@ sub os_svsnick($$$) {
                return $event::SUCCESS;
        }
        nickserv::enforcer_quit($newnick);
-       ircd::svsnick($osnick, $curnick, $newnick);
+       ircd::svsnick($osuser, $curnick, $newnick);
        notice($user, $curnick.' changed to '.$newnick);
        return $event::SUCCESS;
 }
@@ -784,7 +785,7 @@ sub os_except_hostname_del($$) {
        my $hostmask = $hostname;
        $hostmask =~ s/\*/\%/g;
        my $ret = $del_clone_exceptname->execute($hostmask);
-       ircd::notice($osnick, main_conf_diag, "hostname: $hostname; hostmask: $hostmask");
+       ircd::notice($osuser, main_conf_diag, "hostname: $hostname; hostmask: $hostmask");
        
        if($ret == 1) {
                notice($user, "\002$hostname\002 successfully deleted from the hostname exception list");
@@ -922,7 +923,7 @@ sub os_loners($@) {
                        return;
                }
                foreach my $tuser (chanserv::get_users_nochans($noid)) {
-                       $tuser->{AGENT} = $osnick;
+                       $tuser->{AGENT} = $osuser;
                        nickserv::kill_user($tuser,
                                "Killed by \002".get_user_nick($user)."\002".
                                (@args ? ": ".join(' ', @args) : '')
@@ -935,7 +936,7 @@ sub os_loners($@) {
                        return;
                }
                foreach my $tuser (chanserv::get_users_nochans($noid)) {
-                       $tuser->{AGENT} = $osnick;
+                       $tuser->{AGENT} = $osuser;
                        nickserv::kline_user($tuser, services_conf_chankilltime,
                                "K:Lined by \002".get_user_nick($user)."\002".
                                (@args ? ": ".join(' ', @args) : '')
@@ -945,7 +946,7 @@ sub os_loners($@) {
        elsif($cmd =~ /^(msg|message|notice)$/i) {
                notice($user, "Must have message to send") unless(@args);
                foreach my $tuser (chanserv::get_users_nochans($noid)) {
-                       $tuser->{AGENT} = $osnick;
+                       $tuser->{AGENT} = $osuser;
                        notice($tuser, 
                                "Automated message from \002".get_user_nick($user),
                                join(' ', @args)
@@ -964,8 +965,8 @@ sub os_loners($@) {
                }
 
                foreach my $tuser (chanserv::get_users_nochans($noid)) {
-                       $tuser->{AGENT} = $osnick;
-                       ircd::svsjoin($osnick, get_user_nick($tuser), $args[0]);
+                       $tuser->{AGENT} = $osuser;
+                       ircd::svsjoin($osuser, get_user_nick($tuser), $args[0]);
                }
        }
        else {
@@ -990,7 +991,7 @@ sub os_svskill($$$) {
                        return $event::SUCCESS;
                }
 
-               ircd::svskill($osnick, $target, $reason);
+               ircd::svskill($osuser, $target, $reason);
        }
 
        return $event::SUCCESS;
@@ -1006,7 +1007,7 @@ sub os_kill($$$) {
        }
 
        foreach my $target (split(',', $targets)) {
-               my $tuser = { NICK => $target, AGENT => $osnick };
+               my $tuser = { NICK => $target, AGENT => $osuser };
                if (!get_user_id($tuser)) {
                        notice($user, $target.' is not online.');
                        return $event::SUCCESS;
@@ -1059,7 +1060,7 @@ sub os_gline($$$@) {
        }
        unless($zline) {
                if(!$remove) {
-                       ircd::kline($opernick, $ident, $host, $expiry, $reason);
+                       ircd::kline(ircd::getUuid($osnick), $ident, $host, $expiry, $reason);
                } else {
                        ircd::unkline($opernick, $ident, $host);
                }
@@ -1082,7 +1083,7 @@ sub os_gline($$$@) {
                        return;
                }
                if(!$remove) {
-                       ircd::zline($opernick, $host, $expiry, $reason);
+                       ircd::zline($osnick, $host, $expiry, $reason);
                } else {
                        ircd::unzline($opernick, $host);
                }
@@ -1114,7 +1115,7 @@ sub os_clones($@) {
                }
                foreach my $tuser (get_clones($target)) {
                        next unless is_online($tuser);
-                       $tuser->{AGENT} = $osnick;
+                       $tuser->{AGENT} = $osuser;
                        nickserv::kill_user($tuser,
                                "Killed by \002".get_user_nick($user)."\002".
                                (@args ? ": ".join(' ', @args) : '')
@@ -1128,7 +1129,7 @@ sub os_clones($@) {
                }
                foreach my $tuser (get_clones($target)) {
                        next unless is_online($tuser);
-                       $tuser->{AGENT} = $osnick;
+                       $tuser->{AGENT} = $osuser;
                        nickserv::kline_user($tuser, services_conf_chankilltime,
                                "K:Lined by \002".get_user_nick($user)."\002".
                                (@args ? ": ".join(' ', @args) : '')
@@ -1139,7 +1140,7 @@ sub os_clones($@) {
                notice($user, "Must have message to send") unless(@args);
                foreach my $tuser (get_clones($target)) {
                        next unless is_online($tuser);
-                       $tuser->{AGENT} = $osnick;
+                       $tuser->{AGENT} = $osuser;
                        notice($tuser,
                                "Automated message from \002".get_user_nick($user),
                                join(' ', @args)
@@ -1159,8 +1160,8 @@ sub os_clones($@) {
 
                foreach my $tuser (get_clones($target)) {
                        next unless is_online($tuser);
-                       $tuser->{AGENT} = $osnick;
-                       ircd::svsjoin($osnick, get_user_nick($tuser), $args[0]);
+                       $tuser->{AGENT} = $osuser;
+                       ircd::svsjoin($osuser, get_user_nick($tuser), $args[0]);
                }
        }
        else {