Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

235
Views
InteractionCollector is is not being set properly in Quick.DB .sqlite file discord.js

I'm trying to use quick.db for an InteractionCollector manager in discord.js with typescript, and since there can't be more than 1 collector active, whenever a user uses a command that has a collector, it gets set into a map with the user id, and whenever the user uses another command with a collector, the old one gets destroyed.
The problem is, if I use a normal JavaScript map, it works, but since it is heavier I want to use a .sqlite file with quick.db, and when I set the collector, it does not get set entirely, only a sub-object, and since that sub-object does not have the stop function, it gives an error

oldCollector.stop is not a function

Is there a way to fix this, and why does this happen?

Example: This is a collector:

InteractionCollector {
    _events: [Object: null prototype] { end: [Array], collect: [Array] },
    _eventsCount: 2,
    _maxListeners: undefined,
    filter: [AsyncFunction: filter],
    options: {
      filter: [AsyncFunction: filter],
      time: 67709,
      interactionType: 3,
      channel: [TextChannel]
    },
    collected: Collection(0) [Map] {},
    ended: false,
    _timeout: Timeout {
      _idleTimeout: 67709,
      _idlePrev: [TimersList],
      _idleNext: [TimersList],
      _idleStart: 21969,
      _onTimeout: [Function (anonymous)],
      _timerArgs: undefined,
      _repeat: null,
      _destroyed: false,
      [Symbol(refed)]: false,
      [Symbol(kHasPrimitive)]: false,
      [Symbol(asyncId)]: 741,
      [Symbol(triggerId)]: 0
    },
    _idletimeout: null,
    handleCollect: [Function: bound handleCollect] AsyncFunction,
    handleDispose: [Function: bound handleDispose] AsyncFunction,
    messageId: null,
    channelId: '988393091528523816',
    guildId: '988393091067174973',
    interactionType: 'MESSAGE_COMPONENT',
    componentType: null,
    users: Collection(0) [Map] {},
    total: 0,
    empty: [Function: bound empty],
    _handleChannelDeletion: [Function: bound _handleChannelDeletion],
    _handleThreadDeletion: [Function: bound _handleThreadDeletion],
    _handleGuildDeletion: [Function: bound _handleGuildDeletion],
    [Symbol(kCapture)]: false
  }
}

and if I set it with quick.db via db.set(interaction.user.id, collector), it returns this and crashes:

{
      collected: [],
      messageId: null,
      channelId: '988393091528523816',
      guildId: '988393091067174973',
      interactionType: 'MESSAGE_COMPONENT',
      componentType: null,
      users: [],
      total: 0
}

How I set it in the db:

 const collector = interaction.channel.createMessageComponentCollector({
    filter,
    time: utils.rng(50000, 100000),
  });
  collectorMap.set(interaction.user.id, collector);
about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!