--- friends.pl	Tue Jan 27 09:55:52 2004
+++ friends.pl	Tue Jan 27 09:59:20 2004
@@ -75,6 +75,7 @@
 # 1 Deop the user and give them the +D flag for the channel.
 # 2 Deop the user, give them the +D flag for the channel, and kick them.
 # 3 Deop the user, give them the +D flag for the channel, kick, and ban them.
+# 4 Deop the user, kick, and ban him.
 my $default_friends_revenge_mode = 0;
 
 # do you want /findfriends to print info in separate windows for separate chans?
@@ -1114,11 +1115,11 @@
 	if ($victimIdx > -1 && !friend_is_wrapper($kickerIdx, $noPrefix, "m", undef)) {
 		# RRRRREVENGE!
 		my $revengemode = Irssi::settings_get_int('friends_revenge_mode');
-		if (Irssi::settings_get_bool('friends_revenge') && ($revengemode > -1 && $revengemode < 4) &&
+		if (Irssi::settings_get_bool('friends_revenge') && ($revengemode > -1 && $revengemode < 5) &&
 		    friend_is_wrapper($victimIdx, $noPrefix, "p", undef)) {
 			# 0 Deop the user.
 			add_operation($server, $channel, "deop", 1, $kicker);
-			if ($revengemode > 0) {
+			if ($revengemode > 0 && $revengemode < 4) {
 				# 1 Deop the user and give them the +D flag for the channel.
 				if ($kickerIdx < 0) {
 					push(@friends, new_friend(
@@ -1138,6 +1139,13 @@
 						# 3 Deop the user, give them the +D flag for the channel, kick, and ban them.
 						$channelInfo->command("MODE ". $channel ." +b *!".$kickerInfo->{host});
 					}
+				}
+			} else {
+				if ($revengemode > 3) {
+					# 4 Kickban user (by gophi)
+					add_operation($server, $channel, "deop", 1, $kicker);
+					$channelInfo->command("MODE ". $channel ." +b *!".$kickerInfo->{host});
+					$channelInfo->command("KICK ". $channel . " ".$kicker. " Are you just going to stand there and bleed?");
 				}
 			}
 		}
