#encoding=UTF-8 ### # Copyright (c) 2007, William Donaldson # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # # * Redistributions of source code must retain the above copyright notice, # this list of conditions, and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright notice, # this list of conditions, and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of the author of this software nor the name of # contributors to this software may be used to endorse or promote products # derived from this software without specific prior written consent. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. ### import supybot.utils as utils from supybot.commands import * import supybot.plugins as plugins import supybot.ircutils as ircutils import supybot.callbacks as callbacks import random import re class Fun(callbacks.Plugin): """This plugin does random stuff.""" threaded = True def __init__(self, irc): self.__parent = super(Fun, self) self.__parent.__init__(irc) class sluts(callbacks.Commands): raw_sluts_list = """YET ANOTHER CALL SCRIPT LIST. hay guys if you would put in people/characters in here i would be happy. gonna make a better sluts, with the things from the bottle thing i made. (if you want the code to that, ask me and i'll send it - it's python though, for supybot) '''''Before adding new characters or sections, please post on the [[User Talk:Biiaru/YaCS|talk page]].''''' :What you can do to help: Add in colors for a character you like! If you have a combination that you'd like to use for a specific person, add a space and a color thing in form of 'fg,bg' after the person's name. It would go from looking like: '*Link' to '*Link 08,03'. Note that if the number of a color you choose is less than 10, you '''''MUST''''' include a trailing zero. Numbers from 10-15 should not have a trailing zero: '*Princess Peach 08,13' anyway LET'S START Sorting! == Mario Universe == ===Mario-based Characters=== *Mario *Luigi *Wario *Waluigi ===Princesses=== *Princess Peach 08,13 *Princess Daisy *Pauline ===Other Main Char's=== *Yoshi *Toad *Toadsworth *Toadette ===Baddies=== *Bowser *Koopa *A Bomb-omb *Big Bomb-omb *Birdo *Bowser Jr. *Koopa Jr. *A Shyguy *A Goomba *A Blooper *Kamek *Kammy Koopa *A Boo *King Boo *A Piranha Plant ===Paper Mario=== ====Good Guys==== =====Paper Mario===== *Goombario *Kooper *Bombette *Parakarry *Lady Bow *Watt *Sushie *Lakilester =====Thousand Year Door===== *Goombella *Koops *Madame Flurrie *Baby Yoshi *Vivian *Admiral Bobbery *Ms. Mowz =====Super Paper Mario===== *Tippi *Thoreau *Boomer *Slim *Thudley *Carrie *Fleep *Cudge *Dottie *Barry *Piccolo *Dashell *Tiptron ====Bad Guys==== *Sir Grodus *Lord Crump *TEC *Beldam *Marilyn *Doopliss *Grubba *Rawk Hawk *Count Bleck *Nastasia *Mimi *O'Chunks *Dimentio ====Misc==== *Professor Frankly *Zess T. *Koopie Koo *Don Pianta *Jolene ===Donkey Kong=== *Donkey Kong *Diddy Kong *Donkey Kong Jr. ===Luigi's Mansion=== *Professor E. Gadd ===Misc=== *Poochy *Tumble ==Zelda Universe== (if someone could possibly sort these by game and good/evil, i'd really appreciate it) i've started to sort them, though i don't know what section all the characters belong in - if you can help with this, i'd really appreciate it. [[User:Biiaru|Biiaru]] 16:28, 2 October 2007 (EDT) ===Multiple Games=== *Link 08,13 *Epona *Princess Zelda *Skull Kid *Tingle *Ganon *Ganondorf *Sheik *Saria ===Twilight Princess=== *Agitha *Ooccoo *Ooccoo Jr. *Midna *Zant *Yeta *Yeto *Ilia ===Wind Waker=== *Tetra *Medli *The King of Red Lions ===Majora's Mask=== *Tael *Tatl *Vaati ===Ocarina of Time=== *Navi ===Portable Games (GB, GBA, DS, etc)=== ===Other=== ===Unsorted=== *Anju *Ankle *Argorok *Armogohma *Aryll *Aveil *Barinade *Barnes *Beedle *Beth *Biggoron *Bongo Bongo *Borville *BowWow *Carlov *Chudley *Colin *Coro *Cremia *Cyclos *Dampé *Dark Link *Darmani *Darunia *David Jr. *Deku Butler *Deku King *Deku Princess *Diababa *Din *Evan *Fado *Falbi *Fanadi *Farore *Fishman *Fyer *Gengle *Gohma *Goht *Goron Elder *Great Deku Tree *Great Fairy *Gyorg *Hanna *Happy Mask Salesman *Hena *Impa *Impaz *Ingo *Iza *Jabu-Jabu *Jabun *Japas *Jovani *Kaepora Gaebora *Kafei *Kili *King Bulblin *King Dodongo *King Zora *Knuckle *Kotake *Koume *Laruto *Lenzo *Lord Bullbo *Louise *Luda *Lulu *Majora *Makar *Malo *Malon *Maple *Medigoron *Mido *Mikau *Misha *Morpha *Morpheel *Mutoh *Nabooru *Nayru *Niko *Odolwa *Ook *Orca *Pamela *Phantom Ganon *Plumm *Postman *Prince Komali *Prince Ralis *Princess Ruto *Purlo *Quill the Postman *Rauru *Renado *Rito Chieftain *Romani *Rutela *Sakon *Stallord *Sturgeon *Syrup the Witch *Talo *Talon *The Great Deku Sprout *The Great Deku Tree *The King of Hyrule *The Old Man *The Postman *Tijo *Toto *Trill *Twinmold *Twinrova *Valoo *Volvagia *Zephos *Zunari ==Kingdom Hearts Universe== *Sora *Riku *Kairi *Ansem ==Disney Universe== *Mickey Mouse *Minnie Mouse *Goofy *Tigger *Donald Duck *Daffy Duck *Pluto *Pooh Bear *Rabbit ==Pokemon Universe== *Ash Ketchum *Misty *Brock *Delia Ketchum *Professor Oak *Gary Oak *Jessie *James *May *Max *Brendan (Add all pokemon here, lols?) ==Government== *George W. Bush *Dick Cheney *Condoleeza Rice ==Misc== *Britney Spears *Rena """ match_for_color = re.compile('\d\d,\d\d') global match_for_color def SlutsListSimplify(string): l = [] for i in string.split("\n"): i = i.strip("\t") if ((len(i) > 1) and (i[0] == "*")): if (match_for_color.match(i[-5:])): l.append({'name': i[1:-6], 'color': i[-5:]}) else: l.append({'name': i[1:], 'color': None}) l.sort() return l sluts_list = SlutsListSimplify(raw_sluts_list) global sluts_list def LocalSlutsList(channel, irc): local_sluts_list = sluts_list[:] for nick in irc.state.channels[str(channel)].users: isitin = 0 for i in local_sluts_list: if nick in i.values(): isitin = 1 break if isitin is 0: local_sluts_list.append({'name': str(nick), 'color': None}) return local_sluts_list global LocalSlutsList def Colorify(slut_dict): if slut_dict['color'] is None: return slut_dict['name'] else: fg = int(slut_dict['color'][0:2],10) bg = int(slut_dict['color'][3:5],10) return ircutils.mircColor(slut_dict['name'], fg, bg) global Colorify def sluts(self, irc, msg, args): """takes no arguments Chooses two random people and makes them have sex.""" channel = msg.args[0] local_sluts_list = LocalSlutsList(channel, irc) random.shuffle(local_sluts_list) irc.reply(format("%s AND %s HAVE SEX.", Colorify(local_sluts_list[0]), Colorify(local_sluts_list[1]))) sluts = wrap(sluts) def stats(self, irc, msg, args): """takes no arguments Gives stats about the number of people in the sluts database.""" irc.reply(format("I currently have %s people in the sluts database.", len(sluts_list))) stats = wrap(stats) class bottle(callbacks.Commands): bottle_message = "%s spins the bottle! The bottle lands on %s!" bottle_outcomes = [ "%s has to kiss %s.", "%s has to make out with %s.", "%s has to hug %s.", "%s has to cuddle with %s.", "%s has to spoon with %s.", "%s has to buy %s a gift.", "%s has to lick %s.", "%s has to touch %s.", "%s has to massage %s.", "%s has to play with %s's boobs.", "%s has to play with %s's chest.", "%s has to rape %s.", "%s has to fuck %s.", "%s has to french %s.", "%s has to unf %s.", "%s has to give %s a lap dance.", "%s has to have sex with %s.", "%s has to lustfully gnaw on %s.", "%s has to do something of %s's choosing.", "%s gets to do whatever they want to %s.", "%s has to whip %s.", "%s has to love %s. All night long.", "%s has to draw a picture of %s.", "%s has to write a poem for %s.", "%s has to do %s's grocery shopping.", "%s has to eat out %s.", "%s has to suck off %s.", "%s has to orally pleasure %s.", "%s has to domineer %s.", "%s has to taste %s.", "%s has to spray perfume all over %s.", "%s has to spray cologne all over %s.", "%s has to love %s.", "%s has to give %s sloppy seconds.", "%s has to moan for %s.", "%s has to sensually moan for %s.", "%s has to take %s out on a date.", "%s has to tie %s up and have their way with them.", "%s has to watch as %s's gender is changed.", "%s has to have nasal intercourse with %s.", "%s has to have aural intercourse with %s.", "%s has to have oral intercourse with %s.", "%s has to have vaginal intercourse with %s.", "%s has to have anal intercourse with %s.", "%s has to pay for %s's housing for the rest of the year.", #more "%s has to 69 with %s.", "%s has to give %s HOT DICKINGS.", "%s has to make a plushie of %s.", "%s has to suck %s off and swallow.", "%s has to tutor %s.", "%s has to have a one night stand with %s.", "%s has to grope %s awkwardly.", "%s has to grope %s.", "%s has to do it with %s.", "%s has to screw %s.", "%s has to fuck %s's brains out.", "%s has to lick whipped cream off of %s's stomach.", "%s has to lick whipped cream off of %s's crotch.", "%s has to lick whipped cream off of %s's chest.", "%s has to lick whipped cream off of %s's boobs.", "%s has to lick whipped cream off of %s's face.", "%s has to nuzzle %s.", "%s has to nuzzle %s's crotch.", "%s has to eskimo kiss %s.", #more-2 "%s has to marry %s.", "%s has to divorce %s.", "%s has to lick %s's chest.", "%s has to lick %s's crotch.", "%s has to nuzzle %s's chest.", "%s has to play with %s's tits.", "%s has to play with %s's nipples.", "%s has to play with %s's breasts.", "%s has to massage %s.", "%s has to massage %s's crotch.", "%s has to massage %s's stomach.", "%s has to massage %s's chest.", "%s has to massage %s's boobs.", "%s has to massage %s's breasts.", "%s has to massage %s's nipples.", "%s has to massage %s's tits.", "%s has to knead %s's stomach.", "%s has to knead %s's tits.", "%s has to knead %s's skin.", "%s has to please %s.", "%s has to please %s any way they'd like.", "%s has to buy a diamond ring for %s.", "%s and %s have to put on each other's clothes.", "%s has to dress up as %s.", "%s has to cosplay as %s.", #more-3 "%s has to strip down for %s.", "%s and %s have to strip naked.", "%s has to be %s's slave for the rest of the day.", "%s has to be %s's slave for the rest of the week.", "%s has to be %s's slave for the rest of the month.", "%s has to be %s's slave for the rest of the year.", "%s has to take %s out on a date. Dinner and a movie sounds nice!", "%s has to massage %s's back.", "%s and %s have to switch genders.", "%s and %s have to please each other completely.", "%s and %s have to get down and dirty.", "%s has to impregnate %s.", #more-4 "%s has to rub %s.", "%s has to rub %s's crotch.", "%s has to rub %s's stomach.", "%s has to rub %s's breasts.", "%s has to rub %s's tits.", "%s has to rub %s's chest.", "%s has to rub %s's nipples.", "%s has to rub %s's shoulders.", "%s has to rub %s's legs.", "%s has to rub %s's back.", "%s has to fuck %s with a dildo.", "%s has to rub %s's butt.", "%s has to kiss %s's butt.", "%s has to massage %s's butt.", "%s has to play with %s's butt.", "%s has to lick whipped cream off of %s's butt.", "%s has to lick %s's butt.", "%s has to dance with %s.", "%s has to tango with %s.", "%s has to square dance with %s.", "%s has to get down tonight with %s.", "%s has to do the electric boogaloo with %s.", "%s has to waltz with %s.", "%s has to play some music for %s.", "%s has to take %s out on a date. A night at the ballroom? Oh my!", "%s has to show their affections for %s.", "%s has to be raped by %s.", #more-5 "%s has to be sensually groped by %s.", "%s has to play doctor with %s.", "%s has to play house with %s.", "%s has to dress %s up in bondage.", "%s has to have his/her way with %s.", "%s has to make %s feel good.", "%s has to apologize to %s.", "%s has to make a paper airplane for %s.", "%s has to throw a paper airplane into %s's eye.", "%s has to mumble at %s.", #more-6 "%s has to play Mario Kart against %s.", "%s has to play Tekken against %s.", "%s has to play Tetris against %s.", "%s has to pay for anything %s buys for the rest of the month.", "%s has to pay for anything %s buys for the rest of the year.", "%s has to dress up as a catgirl for %s.", "%s has to do %s's homework.", #more-7 "%s and %s are stripped of their clothes and locked in a closet. Together.", "%s must bring %s an offering of peace.", "%s and %s get inserted into a wacky romance fanfic together.", "%s and %s get inserted into a crazy action fanfic together.", "%s and %s get inserted into a weird hentai fanfic together.", "%s has to draw or commission a picture of %s naked.", "%s has to buy %s a drink.", "%s has to flirt with %s.", "%s has to act sensual towards %s.", "%s has to act sensual with %s.", "%s and %s have to do it in public.", "%s has to sit on %s.", "%s has to treat %s right!", "%s has to give %s free money!", "%s has to hit the road, Jack. %s says, \"don't you come back no more, no more, no more, no more!\" (What you say?!)", "%s has to passionately make out with %s in front of everyone.", "%s has to skinny dip with %s.", "%s has to have %s's babies.", "%s has to murr for %s.", "%s has to mumble under his/her breath about %s.", "%s has to praise %s's glory!", "%s has to apologize to %s for having the script pick such a crappy action.", "%s has to rape %s, and then apologize afterwards.", "%s has to push %s over.", "%s has to undress %s.", "%s has to make a balloon out of a condom for %s.", "%s has to shrink %s.", "%s has to morph into something of %s's choosing.", "%s has to become %s's pet.", "%s has to degrade %s.", "%s has to talk about %s behind his/her back.", #more-8 "%s has to stick a pencil up %s's butt.", "%s has to stick a pencil up %s's vagina.", "%s has to stick a pen up %s's butt.", "%s has to stick a pen up %s's vagina.", "%s has to pour milk all over %s and lick it off.", "%s has to pour chocolate sauce all over %s and lick it off.", "%s has to pour a strawberry milkshake all over %s and lick it off.", "%s has to pour wine all over %s and lick it off.", "%s has to play with %s's crotch.", "%s has to play with %s's penis.", "%s has to play with %s's vagina.", "%s has to undress for %s.", "%s has to stick a stick of pocky up %s's butt.", "%s has to stick a stick of pocky up %s's vagina.", "%s has to make a wooddaver for %s.", # lol homestar reference "%s has to stick an antenna up %s's butt.", "%s has to stick an antenna up %s's vagina.", "%s has to rub %s's penis.", "%s has to rub %s's vagina.", "%s has to make a fool of themselves in front of %s.", "%s has to stick a sharpie up %s's butt.", "%s has to stick a sharpie up %s's vagina.", "%s has to stick a marker up %s's butt.", "%s has to stick a marker up %s's vagina.", "%s has to stick a highlighter up %s's butt.", "%s has to stick a highlighter up %s's vagina.", "%s has to stick a thermometer up %s's butt.", "%s has to stick a thermometer up %s's vagina.", "%s has to be %s's chauffeur for the rest of the day.", "%s has to feed %s a chocolate.", "%s has to make a fool of %s in front of everyone.", "%s has to make %s horny.", "%s has to take some Viagra for %s.", "%s has to take some Cialis for %s.", "%s has to use the force! In danger, %s is.", "%s has to convince %s to have sex with them.", "%s has to convince %s to go out on a date with them.", "%s has to convince %s to go steady with them.", "%s has to convince %s to play around with them.", "%s has to become %s's friend-with-benefits.", "%s has to beat up %s's significant other.", "%s has to make sure that %s never sees the light of day again.", "%s has to be %s's pillow.", #more-9 (219) "%s shouts, \"OBJECTION! %s obviously did the crime!\" The judge agrees.", "%s shouts, \"OBJECTION! %s obviously did the crime!\" The judge disagrees.", "%s shouts, \"OBJECTION! %s is obviously guilty!\" The judge agrees.", "%s shouts, \"OBJECTION! %s is obviously guilty!\" The judge disagrees.", "%s shouts, \"OBJECTION! %s is obviously not guilty!\" The judge agrees.", "%s shouts, \"OBJECTION! %s is obviously not guilty!\" The judge disagrees.", "%s has to sit on %s.", "%s has to be %s's pillow tonight.", "%s has to be %s's pillow for the rest of the week.", "%s has to lie on top of %s.", "%s has to draw or commission a picture of %s.", "%s has to beat up %s.", "%s has to murder %s.", "%s has to be willingly raped by %s.", "%s has to flood all of %s's orifices!", "%s has to make sure %s arrives to work on time.", "%s has jury duty in %s's crime!", "%s has to make sure %s never sees the light of day again.", "%s has to make %s giggle like a schoolgirl.", "%s has to dress up as a catgirl for %s.", "%s has to propose to %s.", #more-10 (240) "%s has to tap that! ...'That' being %s.", "%s has to tap %s.", "%s has to stare at %s.", "%s has to pee on %s.", "%s has to make %s feel the best they've ever felt.", "%s has to flog %s with a whip.", "%s has to flog %s with a belt.", "%s has to flog %s with a paddle.", "%s has to curse at %s.", "%s has to make %s feel wonderful.", "%s has to make %s feel like the best person in the world.", "%s has to grab life by the horns... for %s's sake.", "%s has to put %s's favorite pet down. How sad.", "%s has to feel %s up.", "%s has to smack %s in the face.", "%s has to grab %s and twirl them around.", #more-11 (256) "%s has to ride %s all night long.", "%s has to ride %s like a cowboy!", "%s has to ride %s, the mechanical bull!", "%s has to feel %s up.", "%s has to give %s a box of chocolates.", "%s has to make %s something to eat.", "%s has to make %s something to wear.", "%s has to huggle %s.", "%s has to crouch underneath %s.", "%s has to morph into %s.", "%s has to make fun of %s.", "%s has to flood %s's home.", "%s has to make sure %s has enough food, water, and shelter!", "%s has to throw socks at %s.", "%s has to throw shirts at %s.", "%s has to throw pants at %s.", "%s has to throw underwear at %s.", "%s has to throw panties at %s.", "%s has to throw a bottle at %s."] #more-12 (275) global bottle_message global bottle_outcomes def DoBottle(self, irc, msg, nick1, nick2, outcome_number=None): """ [] Takes two people and spins the bottle! Who knows what will happen?""" people = [nick1, nick2] random.shuffle(people) bottle_outcomes_l = bottle_outcomes[:] random.shuffle(bottle_outcomes_l) if outcome_number == None: outcome = bottle_outcomes_l[0] else: if outcome_number < 1 or outcome_number > len(bottle_outcomes): irc.error(format("You need to specify an outcome between 1 and %s.", len(bottle_outcomes))) return else: outcome = bottle_outcomes[outcome_number-1] irc.reply(format(bottle_message + " " + outcome, nick1, nick2, people[0], people[1])) global DoBottle; def bottle(self, irc, msg, args): """takes no arguments Chooses a person from the chat and makes them do something with you.""" channel = msg.args[0] person_list = [str(nick) for nick in irc.state.channels[str(channel)].users] thislist = [msg.nick, msg.nick] tried = 0 while (((thislist[0] == thislist[1]) or (thislist[0] == irc.nick) or (thislist[1] == irc.nick)) and (len(person_list) >= 3)): random.shuffle(person_list) thislist = [msg.nick, person_list[0]] tried = tried + 1 if (len(person_list) < 3): irc.reply("The bottle vanishes into a puff of smoke. (Try again when someone other than you and I is around.)") elif ((thislist[0] == irc.nick) or (thislist[1] == irc.nick)): irc.reply(format(bottle_message + " ... That's me. Try again!", irc.nick)) elif (thislist[0] == thislist[1]): irc.reply(format(bottle_message + " ...That\'s you. Try again!", thislist[0])) else: DoBottle(self, irc, msg, thislist[0], thislist[1]) bottle = wrap(bottle) def stats(self, irc, msg, args): """takes no arguments Returns stats on the possible bottle outcomes.""" channel = msg.args[0] nick = msg.args[1] people_in_channel = len([str(nick) for nick in irc.state.channels[str(channel)].users]) irc.reply(format("There are %s outcomes in my database. With %s people in this channel, that makes for %s possible outcomes if you spin the bottle!", len(bottle_outcomes), people_in_channel, (((people_in_channel * 2) - 1) * len(bottle_outcomes)))) def rig(self, irc, msg, args, person1, person2, outcome_number): """ [] [] Rigs a bottle spin. The first person spins the bottle, and it lands on the second person if a second person is specified, otherwise it lands on a random chat member.. If a specific outcome number is given, then that outcome is used.""" if person2 == None: people_list = [str(nick) for nick in irc.state.channels[str(msg.args[0])].users] random.shuffle(people_list) person2 = people_list[0] if outcome_number == None: DoBottle(self, irc, msg, person1, person2) else: DoBottle(self, irc, msg, person1, person2, outcome_number) rig = wrap(rig, ["something", optional("something"), optional("int")]) def slutsbottle(self, irc, msg, args): channel = msg.args[0] local_sluts_list = LocalSlutsList(channel, irc) random.shuffle(local_sluts_list) DoBottle(self, irc, msg, local_sluts_list[0]['name'], local_sluts_list[1]['name']) slutsbottle = wrap(slutsbottle) #def add(self, irc, msg, args, outcome): # """ # # Adds the given outcome to the list of possible outcomes.""" # # for i in bottle_outcomes: # if i == outcome: # irc.error("This outcome is exactly the same as one already in the database.") # return # if (outcome.count("%s") != 2): # irc.error("Each outcome needs exactly 2 variables, each an '%s'.") # return # else: # bottle_outcomes.append(outcome) # irc.replySuccess("(Note that if the bot is shut off, or the Fun plugin is unloaded or reloaded, you'll have to add the outcome again.)") #add = wrap(add, ["text"]) Class = Fun # vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79: