예제 #1
0
class Core(object):
    
    def __init__(self, server):
        self.__server = server
        self.__db = Database()
        self.__c = {}
        self.__a = {}
        self.__an = 0
        
        # menu principale fisso unico
        self.__mmenu = "Attack;Defende;Magics;Invocations;Items"
    
    def getSockets(self):
        return [c.socket for c in self.__c.values()]
    
    def setClientMap(self, u, c):
        self.__c[u] = c
    
    def getClient(self, u):
        if self.__c.has_key(u):
            return self.__c[u]
        return None
    
    def getClientBySocket(self, s):
        for c in self.__c.values():
            if c.socket == s:
                return c
        return None
    
    def delClientMap(self, u):
        if self.__c.has_key(u):
            del self.__c[u]
        
    # Main Function Server
    
    def addClient(self, uid, s):
        c = None
        try:
            name = self.__db.getNameByUid(uid)
            if name:
                c = Client(s, uid, name)
        except Exception, e:
            print e
        
        if self.getClient(uid): # lo sleep potrebbe aspettare a ripulire il vecchio socket in caso di rilogin
            self.__server.sendLine(s, "E|Wait 2 seconds for re-login")
        elif c:
            self.setClientMap(uid, c)
            print "Add client uid %s" % uid
        else:
            self.__server.sendLine(s, "E|You don't have registration")
예제 #2
0
class Core(object):
    
    def __init__(self, server):
        self.__server = server
        self.__db = Database()
        self.__c = {}
        self.__a = {}
        self.__an = 0
    
    def getSockets(self):
        return [c.socket for c in self.__c.values()]
    
    def setClientMap(self, u, c):
        self.__c[u] = c
    
    def getClient(self, u):
        if self.__c.has_key(u):
            return self.__c[u]
        return None
    
    def getClientBySocket(self, s):
        for c in self.__c.values():
            if c.socket == s:
                return c
        return None
    
    def delClientMap(self, u):
        if self.__c.has_key(u):
            del self.__c[u]
        
    # Main Function Server
    
    def addClient(self, uid, s):
        c = None
        try:
            name = self.__db.getNameByUid(uid)
            if name:
                c = Client(s, uid, name)
        except Exception, e:
            print e
        
        if self.getClient(uid): # nel caso nn sia staro ripulito il vecchio socket x quella uid (login/out veloci)
            self.__server.sendLine(s, "E|You are already logged")
        elif c:
            self.setClientMap(uid, c)
            print "Add client uid %s" % uid
        else:
            self.__server.sendLine(s, "E|You don't have registration")