economía: tiendas e inventarios

Creando tiendas:

Usamos la función crearTienda() para crea una tienda para un bot.

if(command === 'ctienda'){
//validamos el comando para que solo sea usado por los usuarios con la
//jerarquia mas alta dentro de un servidor 'ADMINISTRATOR', y el creador del servidor.
let permiso = message.member.hasPermission("ADMINISTRATOR");
if(!permiso) return message.channel.send('No tienes permisos suficientes.');
let nombre = args.join(' ');
if (!nombre) return message.channel.send('Escriba un nombre para la creacion de la tienda.')
dg.economia.crearTienda(nombre , (tienda) => {
message.channel.send('Nueva tienda creada: '+ tienda.nombre);
})
}

Creando inventarios:

Usamos la función crearInventario() y creamos un inventario para los usuario donde se guardaran los items que compren de la tienda creada.

if(command === 'cinventario'){
//validamos el comando para que solo sea usado por los usuarios con la
//jerarquia mas alta dentro de un servidor 'ADMINISTRATOR', y el creador del servidor.
let permiso = message.member.hasPermission("ADMINISTRATOR");
if (!permiso) return message.channel.send('No tienes permisos suficientes.');
let nombre = args.join(' ')
if (!nombre) return message.channel.send('Escriba un nombre para la creacion de la tienda.')
dg.economia.crearInventario(nombre , (inv) => {
message.channel.send('Nuevo inventario creado: ' + inv.nombre)
})
}

Se recomienda crear una tienda e inventario con el mismo nombre, para mejor comprensión y manejo de datos. ejemplo: nombre de tienda colores, inventario: colores .

Agregando items a una tienda creada:

Usamos la función agregarItems() para agregar items mediante objetos: nombre y precio.

if (command === 'agregaritems') {
let permiso = message.member.hasPermission("ADMINISTRATOR");
if (!permiso) return message.channel.send('No tienes permisos suficientes.');
let texto = args.join(' ');
// usamos el metodo split() para dividir o separar los argumentos en sub-argumentos
// a partir del simbolo indicado ' | ' .
let opt = texto.split(' | ');
// ahora que dividimos los argumentos podemos utilizarlo mediante un indice
// que comienza a contar desde 0:
// [0] seria el primer argumento | [1] seria el segundo | [2] seria el tercero | etc..
if (!opt[0]) return message.channel.send('Escriba el nombre de la tienda.');
if (!opt[1]) return message.channel.send('Escriba el nombre del item a agregar.');
if (!opt[2]) return message.channel.send('Escriba el precio del item a agregar.');
dg.economia.agregarItems(opt[0], [
{ nombre: opt[1], precio: opt[2] }
]);
message.channel.send('Item '+ opt[1] +' agregado correctamente a la tienda: ' + opt[0]);
}
// ejemplos de uso:
-agregaritems colores | rojo | 100
// colores es el primer argumento [0], 'nombre de tienda'
// rojo seria el segundo argumento [1], 'nombre de item'
// 100 seria el tercer argumento [2] 'precio de item'

Listando las tiendas creadas:

Usamos la función listarTiendas() para obtener una lista de las tiendas creadas.

if (command === 'tiendas') {
let embed = new Discord.RichEmbed()
embed.setTitle('Tiendas creadas:')
dg.economia.listarTiendas((lista) => {
embed.addField('Nombre: ', lista.nombre)
});
setTimeout(() => {
message.channel.send(embed)
}, 1000)
}

Listado de inventarios creados:

Usamos la función listarInventarios() para obtener una lista de los inventarios creados.

if (command === 'inventarios') {
let embed = new Discord.RichEmbed()
embed.setTitle('Inventarios creados:')
dg.economia.listarInventarios((lista) => {
embed.addField('Nombre: ', lista.nombre)
});
setTimeout(() => {
message.channel.send(embed)
}, 1000)
}