Mercurial > hg > scripts
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 |
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 | 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 |