diff --git a/commands/megis.js b/commands/megis.js index a17684b..c7351ae 100644 --- a/commands/megis.js +++ b/commands/megis.js @@ -17,11 +17,56 @@ const command = { Math.floor(Math.random() * Object.keys(megisTypes).length) ]; - const user = await prisma.user.upsert({ + const user = await prisma.user.findUnique({ where: { userId: msg.senderUserID, }, - update: { + include: { + megis: true, + }, + }); + + if (!user) { + const createUser = await prisma.user.create({ + data: { + userId: msg.senderUserID, + megis: { + create: { + megis: 0, + }, + }, + }, + }); + } + + if (user) { + if ( + new Date().getTime() < + new Date(user.megis.updatedAt).getTime() + 3600000 + ) { + await client.say( + msg.channelName, + `${ + msg.displayName + }, remember kids, only one megis per hour! (on timeout ${Math.floor( + Math.abs( + new Date(user.megis.updatedAt).getTime() + + 3600000 - + new Date().getTime() + ) / + 1000 / + 60 + )} minutes 🕒 ) ` + ); + return; + } + } + + const updateUser = await prisma.user.update({ + where: { + userId: msg.senderUserID, + }, + data: { megis: { update: { megis: { @@ -30,14 +75,6 @@ const command = { }, }, }, - create: { - userId: msg.senderUserID, - megis: { - create: { - megis: parseInt(megis), - }, - }, - }, include: { megis: true, }, @@ -45,7 +82,7 @@ const command = { await client.say( msg.channelName, - `${msg.displayName}, +${megis}! ${megisTypes[megis]} Total megis: ${user.megis.megis}` + `${msg.displayName}, +${megis}! ${megisTypes[megis]} Total megis: ${updateUser.megis.megis}` ); }, };