code: def create(self, name_or_class, mask, filepath=None, **kwargs):
          
          if isinstance(name_or_class, type):
              name = name_or_class.type
              protocol = name_or_class
          else:
              name = name_or_class
              protocol = self.protocols[name]
          assert name in DCC_TYPES
          if filepath:
              kwargs.setdefault('limit_rate',
                                self.config['send_limit_rate'])
              kwargs['filepath'] = filepath
              if protocol.type == DCCSend.type:
                  kwargs.setdefault('offset', 0)
                  kwargs.update(
                      filename_safe=slugify(os.path.basename(filepath)),
                      filesize=os.path.getsize(filepath),
                  )
              elif protocol.type == DCCGet.type:
                  try:
                      offset = os.path.getsize(filepath)
                  except OSError:
                      offset = 0
                  kwargs.setdefault('offset', offset)
                  kwargs.setdefault('resume', False)
          kwargs.setdefault('port', None)
          f = protocol(
              mask=mask, ip=int(self.bot.ip),
              bot=self.bot, loop=self.loop, **kwargs)
  
          if kwargs['port']:
              if self.bot.config.get('dcc_sock_factory'):
                  sock_factory = maybedotted(self.bot.config.dcc_sock_factory)
                  args = dict(sock=sock_factory(self.bot, f.host, f.port))
              else:
                  args = dict(host=f.host, port=f.port)
              task = self.bot.create_task(
                  self.loop.create_connection(f.factory, **args))
              task.add_done_callback(partial(self.created, f))
          else:
              task = self.bot.create_task(
                  self.loop.create_server(
                      f.factory, '0.0.0.0', 0, backlog=1))
              task.add_done_callback(partial(self.created, f))
          return f
docs: Create a new DCC connection. Return an ``asyncio.Protocol``