code: def _new_controller(self, addr, port):
          
          for uid, controller in self.controllers.items():
              if controller[0] == addr:
                  # duplicate address. sending the uid again
                  #print('/uid/{} => {}:{}'.format(uid, addr, port))
                  self.sock.sendto('/uid/{}'.format(uid).encode('utf-8'), (addr, port))
                  return False
  
          # get an uid and add the controller to the game
          uid = str(uuid4())
          self.controllers[uid] = [addr, port, '00000000000000', time.time()]
  
          # tell the controller about it
          #print('/uid/{} => {}:{}'.format(uid, addr, port))
          self.sock.sendto('/uid/{}'.format(uid).encode('utf-8'), (addr, port))
  
          # create event for pymlgame
          e = Event(uid, E_NEWCTLR)
          self.queue.put_nowait(e)
  
          return uid
docs: Get an uid for your controller.
  
          :param addr: Address of the controller
          :param port: Port of the controller
          :type addr: str
          :type port: int
          :return: Unique id of the controller
          :rtype: str