Advertisement
Guest User

Untitled

a guest
Dec 30th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.73 KB | None | 0 0
  1. # randomize nick
  2.  
  3. #use Irssi;
  4. #use Irssi::Irc;
  5. use strict;
  6. use vars qw($VERSION %IRSSI);
  7. #use utf8;
  8. $VERSION = "1.00";
  9. %IRSSI = (
  10.     authors     => 'Abraham Shapirus',
  11.     name        => 'shred',
  12.     description => 'slaps one with one\'s nick totally screwed',
  13.     license     => 'Public Domain'
  14. );
  15. sub shred
  16. {
  17.         my $orig = shift;
  18. #       utf8::upgrade $orig;
  19.         my @orig = split //, $orig;
  20.         my $ret = '';
  21.         while ($#orig >= 0) {
  22.                 my $rnd = int(rand($#orig + 1));
  23.                 $ret .= $orig[$rnd];
  24.                 splice @orig, $rnd, 1;
  25.         }
  26.         return $ret;
  27. }
  28.  
  29. sub cmd_shred
  30. {
  31.         my ($data, $server, $channel) = @_;
  32.  
  33.         $data =~ s/^\s+//;
  34.         $data =~ s/\s+$//;
  35.  
  36.         my $orig = $data;
  37.  
  38.         if (length($data) > 3) {
  39.                 my ($head, $body, $tail) = $data =~ m/^(.)(.+?)(.)$/;
  40.                 $data = $head . shred($body) . $tail;
  41.  
  42.                 $channel->command("/me shreds $orig into $data with a lightsaber") if $channel;
  43. #               Irssi::print("the channel is:".$channel->{name});
  44.  
  45.         }
  46. }
  47. sub cmd_throw
  48. {
  49.         my ($data, $server, $channel) = @_;
  50.  
  51.         $data =~ s/^\s+//;
  52.         $data =~ s/\s+$//;
  53.  
  54.         my $orig = $data;
  55.  
  56.         if (length($data) > 3) {
  57.                 my ($head, $body, $tail) = $data =~ m/^(.)(.+?)(.)$/;
  58.                 $data = $head . shred($body) . $tail;
  59.                 Irssi::print("@_");
  60.                 $channel->command("/me shreds $orig into $data with a lightsaber and throws remains into deep space") if $channel;
  61.         }
  62.  
  63. }
  64.  
  65. Irssi::command_bind('slap', 'cmd_shred');
  66. Irssi::command_bind('slap1', 'cmd_shred1');
  67. Irssi::command_bind('throw', 'cmd_throw');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement