def do_addlink(self, session, line): if not line: session.push(tpl.ADDLINK_ERR) self.argu = line.lower() if not self.argu.strip(): session.push("> ") self.parts = self.argu.split(' ', 3) try: self.roomnum = int(self.parts[0]) self.exitnum = int(self.parts[1]) self.direction = str(self.parts[2]) Insert.addLink(self.roomnum, self.exitnum, self.direction) session.push(tpl.ADDLINK) except: session.push(tpl.ADDLINK_ERR)
def do_edig(self, session, line): c = C(session) if not line: session.push(tpl.EDIG_ERR1) else: self.splitarg = line.split(' ', 1) self.exists = Select.getExitsInRoom(session.is_in) try: self.flat = c.flatten(self.exists) if self.splitarg[1] in self.flat: session.push(tpl.EDIG_ERR2) else: self.count = Insert.addRoom(self.splitarg[0]) Insert.addLink(session.is_in, self.count, self.splitarg[1]) Insert.addLink(self.count, session.is_in, self.twoway[self.splitarg[1]]) session.push(tpl.EDIG % self.splitarg[1]) except: session.push(tpl.EDIG_ERR1)
def do_import(self, session, line): self.splitarg = line.split(' ', 2) if len(self.splitarg) < 3: session.push(tpl.IMPORT_ERR1) else: self.map = self.splitarg[0] self.start = self.splitarg[1] self.dir = self.splitarg[2] # Need to check if this exit already exists in this room # Not really secure.. remove all from inside the string instead self.file = open(self.map.strip('./'), "r") from mapper import Mapper get_this = Mapper(self.file) got_this = get_this.MapThis() self.lab = got_this[self.start] if self.start in got_this: for i in got_this: Insert.addRoom(int(i)) Insert.addLink(session.is_in, self.start, self.dir) Insert.addLink(self.start, session.is_in, self.twoway[self.dir]) for i in got_this.items(): for j in i[1]: Insert.addLink(str(i[0]), str(j[1]), str(j[0])) session.push(tpl.IMPORT) else: session.push(tpl.IMPORT_ERR2)