MrAugu / discord-xp

A lightweight and easy to use economy framework for discord bots, uses MongoDB.
MIT License
118 stars 31 forks source link

Accepting Suggestions #31

Open MrAugu opened 3 years ago

MrAugu commented 3 years ago

Is there anything you would like to see added to discord-xp module? If yes, then state any suggestions in this issue.

AdamTmHun commented 3 years ago

Types for typescript

MrAugu commented 3 years ago

Types for typescript

That was implemented today, several minutes ago with the new version v1.1.11. Check the instructions in the README.md on how to update (https://npmjs.org/discord-xp).

AdamTmHun commented 3 years ago

Types for typescript

That was implemented today, several minutes ago with the new version v1.1.11. Check the instructions in the README.md on how to update (https://npmjs.org/discord-xp).

O minutes ago, okay thanks.

felixsu7 commented 3 years ago

I think it would be nice if there's event emitters, for example the library would emit an event when someone leveled up or down

Dragonizedpizza commented 3 years ago

Can I help rewrite a new version of discord-xp, wherein you could do:

(require('discord-xp')).setDB('quick.db', quickdb)
// quickdb is the quick.db database.
// basically what I mean is support multiple databases

Instead of the static async setURL function, you could use this:

  static async setDB(dbname, db) {
  const databases = ['quick.db', 'mongoose']
  if (!databases.includes(dbname)) throw new TypeError(`Provided database (${dbname}) is not valid.`)
  if (database.includes('mongoose')) {
      mongoUrl = dbUrl;
    return mongoose.connect(dbUrl, {
      useNewUrlParser: true,
      useUnifiedTopology: true,
      useFindAndModify: false
    });
    }
  }
naruko-hstk commented 3 years ago

Maybe can let it using mysql or mariadb Not everyone use mongo

AdamTmHun commented 3 years ago

Can I help rewrite a new version of discord-xp, wherein you could do:

(require('discord-xp')).setDB('quick.db', quickdb)
// quickdb is the quick.db database.
// basically what I mean is support multiple databases

Instead of the static async setURL function, you could use this:

  static async setDB(dbname, db) {
  const databases = ['quick.db', 'mongoose']
  if (!databases.includes(dbname)) throw new TypeError(`Provided database (${dbname}) is not valid.`)
  if (database.includes('mongoose')) {
      mongoUrl = dbUrl;
    return mongoose.connect(dbUrl, {
      useNewUrlParser: true,
      useUnifiedTopology: true,
      useFindAndModify: false
    });
    }
  }

I was going to suggest the same. Add quick-db / simple json or sqlite support, via other databases

Myst82015 commented 3 years ago

Can I help rewrite a new version of discord-xp, wherein you could do:

(require('discord-xp')).setDB('quick.db', quickdb)
// quickdb is the quick.db database.
// basically what I mean is support multiple databases

Instead of the static async setURL function, you could use this:

  static async setDB(dbname, db) {
  const databases = ['quick.db', 'mongoose']
  if (!databases.includes(dbname)) throw new TypeError(`Provided database (${dbname}) is not valid.`)
  if (database.includes('mongoose')) {
      mongoUrl = dbUrl;
    return mongoose.connect(dbUrl, {
      useNewUrlParser: true,
      useUnifiedTopology: true,
      useFindAndModify: false
    });
    }
  }

I was going to suggest the same. Add quick-db / simple json or sqlite support, via other databases

MrAugu will add support for different storage providers including json if I recall that correctly.

Myst82015 commented 3 years ago

@Dragonizedpizza Go ahead and create a pull request.

AdamTmHun commented 3 years ago

Can I help rewrite a new version of discord-xp, wherein you could do:

(require('discord-xp')).setDB('quick.db', quickdb)
// quickdb is the quick.db database.
// basically what I mean is support multiple databases

Instead of the static async setURL function, you could use this:

  static async setDB(dbname, db) {
  const databases = ['quick.db', 'mongoose']
  if (!databases.includes(dbname)) throw new TypeError(`Provided database (${dbname}) is not valid.`)
  if (database.includes('mongoose')) {
      mongoUrl = dbUrl;
    return mongoose.connect(dbUrl, {
      useNewUrlParser: true,
      useUnifiedTopology: true,
      useFindAndModify: false
    });
    }
  }

I was going to suggest the same. Add quick-db / simple json or sqlite support, via other databases

MrAugu will add support for different storage providers including json if I recall that correctly.

Alright cool

NamanPrakash commented 3 years ago

I think you should make an function like giving the rank of the user instead of fetching all the leaderboard you could simply do this

user.rank()
// gives the rank of the user
Myst82015 commented 3 years ago

I think you should make an function like giving the rank of the user instead of fetching all the leaderboard you could simply do this

user.rank()
// gives the rank of the user

First of all you'll always need to sort through the entries to get the rank/ position. Second the fetch() has been updated and now takes a third boolean parameter called fetchPosition. If you enable that then

console.log(<user>.position);   // Position of the user
Dragonizedpizza commented 3 years ago

@Dragonizedpizza Go ahead and create a pull request.

Gonna work on it rn

Dragonizedpizza commented 3 years ago

@Myst82015 @AdamTmHun https://github.com/MrAugu/discord-xp/pull/35

NamanPrakash commented 3 years ago

I think you should make an function like giving the rank of the user instead of fetching all the leaderboard you could simply do this

user.rank()
// gives the rank of the user

First of all you'll always need to sort through the entries to get the rank/ position. Second the fetch() has been updated and now takes a third boolean parameter called fetchPosition. If you enable that then

console.log(<user>.position);   // Position of the user

The fetchPosition is the same as

user.rank()

so my wish has been granted

PrabhasDaily commented 3 years ago

allow us to add roles (eg. user reaches level 5 and gets the role "level 5") and make it so that users can change the background of their rank card :)

Dragonizedpizza commented 3 years ago

both of those can be done yourself though

PrabhasDaily commented 3 years ago

how?

Dragonizedpizza commented 3 years ago

how?

just check if the level the user got to is level 5, and discord-xp doesn't provide the rank card itself

Only-Moon commented 3 years ago

Maybe update the examples so the code can run in discord.js v13 as well

Myst82015 commented 3 years ago

Maybe update the examples so the code can run in discord.js v13 as well

I'll take a look as soon as I have some free time.

Only-Moon commented 3 years ago

Maybe update the examples so the code can run in discord.js v13 as well

I'll take a look as soon as I have some free time.

Alr tysm, take a look at that .setStatus(..) part for canvas as well, if member is offline, then canvas says .setStatus cannot be null

PrabhasDaily commented 3 years ago

how can i check if a user is level 5 or 6 and give them a role from the bot?

Dragonizedpizza commented 3 years ago

how can i check if a user is level 5 or 6 and give them a role from the bot?

this is meant for suggestions, not support