Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys, socket, threading, urllib, os, random, time, random, md5, json
- readbuffer = ''
- step = 0
- channel = '#adventure'
- username = 'AdventureGame'
- colours = ['red','orange','yellow','green','blue','indigo','violet']
- materials = ['wooden','steel','stone']
- motions = ['walks','runs','skips','dances','rolls']
- heights = ['tall','average','short']
- builds = ['stocky','fat','medium']
- skins = ['dark','fair','light']
- sexs = ['male','female','guy','man','shiela','bloke','dude','girl','woman']
- eyes = ['hazel','blue','green','red','black']
- hairs = ['blond','black','brunet','ginga']
- entrances = ['door','tunnle','hole']
- locations = ['cave','hall','room','forest','store']
- adjectives = ['small','huge','massive','cold','dark','scary','empty','empty','stone']
- weapons = ['hammer','rusty knife','blunt sword','axe']
- objects = ['spoon','key','map','compas','torch','pick']
- def encrypt(string):
- return md5.new(string).digest()
- def IRCUser(line):
- '''splits a list to give just a user'''
- return line[0].split(':')[1].split('!')[0]
- s = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
- def randArray(array):
- length = (len(array))-1
- randInt = random.randint(0, length)
- return array[randInt]
- def generateScenario():
- location = randArray(locations)
- adjective = randArray(adjectives)
- weapon = randArray(weapons)
- object_ = randArray(objects)
- character = generateCharacter()
- exit = randArray(entrances)
- motion = randArray(motions)
- return 'You are in a '+adjective+' ' +location+'. You have a '+weapon+' and a '+object_ +'. A '+character+' '+motion+' towards you... You see a '+exit +' to your left.'
- def generateCharacter():
- height = randArray(heights)
- skin = randArray(skins)
- hair = randArray(hairs)
- eye = randArray(eyes)
- build = randArray(builds)
- return '{"hair":"'+hair+'","eyes":"'+eye+'","skin":"'+skin+'","height":"'+height+'","build":"'+build+'"}'
- def sendToChannel(message):
- s.send('PRIVMSG '+channel+' '+message+'\r\n')
- def checkExistingUser(username):
- return False
- print('Attempting to connect...')
- try:
- s.connect( ('irc.minecraft.co.nz',6667) )
- s.send('NICK '+username+'\r\n')
- s.send('USER '+username+' '+username+' '+username+' :TTOBOT\r\n' )
- except:
- print('Failed to connect.', sys.exc_info() )
- class user():
- def create(blank):
- username = IRCUser(line)
- password = encrypt(line[4])
- filename = "users/"+IRCUser(line)+".dat"
- character = generateCharacter()
- FILE = open(filename,"w")
- FILE.write("username="+username+'\r\n')
- FILE.write('password='+password+'\r\n')
- FILE.write('character='+character+'\r\n')
- FILE.close()
- def getCharacter(blank):
- username = IRCUser(line)
- filename = "users/"+username+".dat"
- FILE = open(filename,"r")
- while FILE:
- fline = FILE.readline()
- key = fline.split("=")[0]
- value = fline.split("=")[1]
- if(key == "character"):return value
- user = user()
- while 1:
- readbuffer = readbuffer + s.recv(1024)
- tmp = readbuffer.split('\n')
- readbuffer = tmp.pop()
- for line in tmp:
- line = line.rstrip().split()
- if 'PING' in line : s.send('PONG\r\n')
- if '/MOTD' in line:
- s.send('JOIN '+channel+'\r\n')
- s.send('PRIVMSG isabelle Hello isabelle!\r\n')
- s.send('PRIVMSG '+channel+'belle1: Hello isabelle!\r\n')
- print("Connected!")
- if ':!kill' in line:
- if(IRCUser(line) == "ttocskcaj"):
- print('Exiting.')
- s.send('PRIVMSG '+channel+' Goodbye :(\r\n')
- sys.exit()
- else:
- s.send('PRIVMSG '+channel+' I\'ll bite your face cunt!\r\n')
- if ':!scenario' in line:
- scenario = generateScenario()
- s.send('PRIVMSG '+channel +' '+scenario+'\r\n')
- if ':!register' in line:
- if (len(line) <5 ):
- sendToChannel("Useage: !register <password>")
- else:
- if(checkExistingUser(IRCUser(line))):
- sendToChannel("You are already registered!")
- else:
- user.create()
- print(IRCUser(line) + " just registered")
- sendToChannel("Thankyou for registering, "+IRCUser(line))
- sendToChannel("Here's a little bit about your character: ")
- char = json.loads(user.getCharacter())
- sendToChannel('You have '+char['hair'] +' hair, '+char['eyes'] +' eyes, '+char['height'] +' and '+char['build'] +'.')
- print(char)
- f.close()
- s.close()
Add Comment
Please, Sign In to add comment