annotate teh-lol.pl @ 23:77444d749997

Use more meaningful variables names because jlf complained
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Thu, 08 Sep 2011 14:29:31 -0500
parents 8ebcdfa03782
children 15b72cc602b4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
1 #Copyright © 2009 - 2011 Jordi Gutiérrez Hermoso <jordigh@gmail.com>
0
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
2 #
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
3 #teh-lol.pl is free software: you can redistribute it and/or modify
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
4 #it under the terms of the GNU General Public License as published by
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
5 #the Free Software Foundation, either version 3 of the License, or
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
6 #(at your option) any later version.
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
7 #
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
8 #This program is distributed in the hope that it will be useful,
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
9 #but WITHOUT ANY WARRANTY; without even the implied warranty of
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
10 #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
11 #GNU General Public License for more details.
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
12 #
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
13 #You should have received a copy of the GNU General Public License
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
14 #along with this program. If not, see <http://www.gnu.org/licenses/>.
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
15
6
6999ba7bf22b Don't relol while idling (2 minutes of not participating in discussion)
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 5
diff changeset
16 use strict;
6999ba7bf22b Don't relol while idling (2 minutes of not participating in discussion)
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 5
diff changeset
17
3
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
18 Xchat::register('teh lol', '0.1.3', 'lols back');
0
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
19
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
20 #Check if it's time to relol
0
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
21 Xchat::hook_print('Channel Message', \&check_lol);
9
037012a17457 An attempt to reset timestamps when manually lolling and change sleep with Xchat::hook_timer
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 8
diff changeset
22 Xchat::hook_print('Your Message', \&update_tstamp);
0
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
23
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
24 #Report lol combos
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
25 Xchat::hook_print('Channel Message', \&check_combo);
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
26 Xchat::hook_print('Your Message', \&check_combo);
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
27
0
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
28 my %timestamp;
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
29
9
037012a17457 An attempt to reset timestamps when manually lolling and change sleep with Xchat::hook_timer
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 8
diff changeset
30 sub update_tstamp{
23
77444d749997 Use more meaningful variables names because jlf complained
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22
diff changeset
31 my @xchat_args = $_[0];
77444d749997 Use more meaningful variables names because jlf complained
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22
diff changeset
32 my $msg = $xchat_args[1];
10
c1bbeff37875 Bugfixes to last commit
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 9
diff changeset
33 if( $_[0][1] eq "lol" ){
9
037012a17457 An attempt to reset timestamps when manually lolling and change sleep with Xchat::hook_timer
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 8
diff changeset
34 my $chan = Xchat::get_info("channel");
037012a17457 An attempt to reset timestamps when manually lolling and change sleep with Xchat::hook_timer
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 8
diff changeset
35 $timestamp{$chan} = time;
037012a17457 An attempt to reset timestamps when manually lolling and change sleep with Xchat::hook_timer
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 8
diff changeset
36 }
037012a17457 An attempt to reset timestamps when manually lolling and change sleep with Xchat::hook_timer
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 8
diff changeset
37 return Xchat::EAT_NONE;
037012a17457 An attempt to reset timestamps when manually lolling and change sleep with Xchat::hook_timer
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 8
diff changeset
38 }
037012a17457 An attempt to reset timestamps when manually lolling and change sleep with Xchat::hook_timer
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 8
diff changeset
39
20
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
40 my @no_lol_list;
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
41
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
42 if (open FILE, $ENV{"HOME"}."/.xchat2/no-lol") {
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
43 while (<FILE>) {
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
44 chomp;
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
45 push @no_lol_list, $_;
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
46 }
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
47 close(FILE);
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
48 }
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
49
0
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
50 sub check_lol {
23
77444d749997 Use more meaningful variables names because jlf complained
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22
diff changeset
51 my @xchat_args = $_[0];
77444d749997 Use more meaningful variables names because jlf complained
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22
diff changeset
52 my $chatter = $xchat_args[0];
77444d749997 Use more meaningful variables names because jlf complained
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22
diff changeset
53 my $msg = $xchat_args[1];
77444d749997 Use more meaningful variables names because jlf complained
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22
diff changeset
54
0
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
55 my $chan = Xchat::get_info("channel");
6
6999ba7bf22b Don't relol while idling (2 minutes of not participating in discussion)
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 5
diff changeset
56 my $timesince_lasttalk = time - Xchat::user_info -> {'lasttalk'};
0
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
57
21
a54f26f2f7fd Fix no-lol list bug: strip colours from chatter's name
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 20
diff changeset
58 ## Chatter name without possible colour codes
23
77444d749997 Use more meaningful variables names because jlf complained
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22
diff changeset
59 $chatter = Xchat::strip_code($chatter);
21
a54f26f2f7fd Fix no-lol list bug: strip colours from chatter's name
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 20
diff changeset
60
20
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
61 #Match stuff like "lol", "loool" and "lololol"
23
77444d749997 Use more meaningful variables names because jlf complained
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22
diff changeset
62 if ($msg =~ /\b(l((o|(?<!l)lo)+)l)\b/i
20
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
63
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
64 #Two minutes of not saying anything in the channel counts as
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
65 #idling, so don't pester when idling.
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
66 and $timesince_lasttalk < 120
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
67
21d4f54b2b25 Implement no-lol list
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 19
diff changeset
68 #Enemies of the lols are abusing the lol, no lols for them.
21
a54f26f2f7fd Fix no-lol list bug: strip colours from chatter's name
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 20
diff changeset
69 and not grep(/$chatter/, @no_lol_list) ) {
0
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
70
3
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
71 my $lol = $1;
11
2f298f94a096 Improve long lols, now "lolol" is supported.
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 10
diff changeset
72 my $midlol = $2;
3
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
73 my $relol;
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
74
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
75 #Mimic long lols
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
76 if (length $lol > 3 ) {
11
2f298f94a096 Improve long lols, now "lolol" is supported.
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 10
diff changeset
77 my $repeat_mid = int rand(3)+1;
2f298f94a096 Improve long lols, now "lolol" is supported.
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 10
diff changeset
78 $relol = "l".($midlol x $repeat_mid)."l";
3
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
79 }
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
80 else {
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
81 $relol = "lol";
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
82 }
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
83
6
6999ba7bf22b Don't relol while idling (2 minutes of not participating in discussion)
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 5
diff changeset
84
8
2b8b0412096a Never lol more than once every 30 minutes.
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 7
diff changeset
85 #Don't lol more than once in 30 minutes.
2b8b0412096a Never lol more than once every 30 minutes.
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 7
diff changeset
86 if ( time - $timestamp{$chan} > 1800 or
13
a03d337b1457 Fix bug regarding checking for first lol
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 12
diff changeset
87 not defined $timestamp{$chan}
3
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
88 ) {
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
89
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
90 #Delay the response a little, for maximum annoyance.
5
8f209cd0a7b6 Delay according to theoros's algorithm
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 4
diff changeset
91 #( theoros's algorithm from #not-math )
10
c1bbeff37875 Bugfixes to last commit
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 9
diff changeset
92 my $delay = 1.8;
5
8f209cd0a7b6 Delay according to theoros's algorithm
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 4
diff changeset
93 if (length($relol) > 3){
8f209cd0a7b6 Delay according to theoros's algorithm
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 4
diff changeset
94 $delay += ((length $relol) - 3 + rand(5)) * 0.069;
8f209cd0a7b6 Delay according to theoros's algorithm
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 4
diff changeset
95 }
8f209cd0a7b6 Delay according to theoros's algorithm
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 4
diff changeset
96
10
c1bbeff37875 Bugfixes to last commit
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 9
diff changeset
97 #Convert to milliseconds.
c1bbeff37875 Bugfixes to last commit
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 9
diff changeset
98 $delay *= 1e3;
7
65035a108782 Fix the call to usleep
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 6
diff changeset
99
10
c1bbeff37875 Bugfixes to last commit
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 9
diff changeset
100 Xchat::hook_timer($delay,
c1bbeff37875 Bugfixes to last commit
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 9
diff changeset
101 sub {
22
8ebcdfa03782 Uncomment accidental neutering of the lolness
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 21
diff changeset
102 Xchat::command("say $relol");
10
c1bbeff37875 Bugfixes to last commit
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 9
diff changeset
103 return Xchat::REMOVE;
c1bbeff37875 Bugfixes to last commit
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 9
diff changeset
104 }
c1bbeff37875 Bugfixes to last commit
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 9
diff changeset
105 );
3
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
106 }
0
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
107 $timestamp{$chan} = time;
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
108 }
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
109 return Xchat::EAT_NONE;
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
110 }
14
e9348ac85d5c Add more lols. (Closes #1)
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 13
diff changeset
111
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
112 my $prev_msg = "";
16
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
113 my %combo_count;
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
114 my %prev_loller;
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
115
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
116 sub check_combo {
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
117 my $chan = Xchat::get_info("channel");
23
77444d749997 Use more meaningful variables names because jlf complained
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22
diff changeset
118 my $loller = $_[0][0];
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
119 my $msg = $_[0][1];
18
acd4783e6bd1 Lols have to be at the beginning, one more qualifier, a cheating loller ruinds the combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 17
diff changeset
120 my $islol = $msg =~ /^\s*l((o|(?<!l)lo)+)l\b/i;
23
77444d749997 Use more meaningful variables names because jlf complained
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22
diff changeset
121
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
122 if(not $islol) {
16
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
123 my $combo = $combo_count{$chan};
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
124
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
125 # We have a combo to report!
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
126 if($combo > 2) {
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
127 my $qualifier;
16
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
128 if($combo == 3) {
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
129 $qualifier = "Good";
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
130 }
18
acd4783e6bd1 Lols have to be at the beginning, one more qualifier, a cheating loller ruinds the combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 17
diff changeset
131 elsif ($combo > 3 and $combo <= 5) {
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
132 $qualifier = "Great";
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
133 }
18
acd4783e6bd1 Lols have to be at the beginning, one more qualifier, a cheating loller ruinds the combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 17
diff changeset
134 elsif ($combo > 5 and $combo <= 10) {
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
135 $qualifier = "Marvelous";
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
136 }
18
acd4783e6bd1 Lols have to be at the beginning, one more qualifier, a cheating loller ruinds the combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 17
diff changeset
137 else {
19
a7406b7600ab Fix typo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 18
diff changeset
138 $qualifier = "M-M-M-MONSTER COMBO!";
18
acd4783e6bd1 Lols have to be at the beginning, one more qualifier, a cheating loller ruinds the combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 17
diff changeset
139 }
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
140 my $report = "$combo-lol combo! $qualifier!";
16
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
141
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
142 my $delay = (rand(3) + 1)*1e3;
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
143 Xchat::hook_timer($delay,
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
144 sub {
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
145 Xchat::command("say $report");
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
146 return Xchat::REMOVE;
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
147 }
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
148 );
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
149 }
16
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
150
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
151 $combo_count{$chan} = 0;
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
152 $prev_loller{$chan} = "";
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
153 }
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
154 else {
18
acd4783e6bd1 Lols have to be at the beginning, one more qualifier, a cheating loller ruinds the combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 17
diff changeset
155 #A loller trying to cheat ruins the combo for everyone
acd4783e6bd1 Lols have to be at the beginning, one more qualifier, a cheating loller ruinds the combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 17
diff changeset
156 if( $loller eq $prev_loller{$chan}) {
acd4783e6bd1 Lols have to be at the beginning, one more qualifier, a cheating loller ruinds the combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 17
diff changeset
157 $combo_count{$chan} = 0;
acd4783e6bd1 Lols have to be at the beginning, one more qualifier, a cheating loller ruinds the combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 17
diff changeset
158 }
acd4783e6bd1 Lols have to be at the beginning, one more qualifier, a cheating loller ruinds the combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 17
diff changeset
159 else {
16
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
160 $combo_count{$chan}++;
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
161 }
18
acd4783e6bd1 Lols have to be at the beginning, one more qualifier, a cheating loller ruinds the combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 17
diff changeset
162
acd4783e6bd1 Lols have to be at the beginning, one more qualifier, a cheating loller ruinds the combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 17
diff changeset
163 $prev_loller{$chan} = $loller;
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
164 }
16
895bcfde1df4 Fix bugs, ensure a single person can't combo
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 15
diff changeset
165
15
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
166 return Xchat::EAT_NONE;
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
167 }
0d8587643fc6 Initial lolcombo implementation
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 14
diff changeset
168
14
e9348ac85d5c Add more lols. (Closes #1)
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 13
diff changeset
169 # lolololol
e9348ac85d5c Add more lols. (Closes #1)
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 13
diff changeset
170 # lol
e9348ac85d5c Add more lols. (Closes #1)
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 13
diff changeset
171 # loooooooool