From 5a1312566e5357a08fb23f2ce0dedb00c7678dc8 Mon Sep 17 00:00:00 2001 From: Tanner Goins Date: Fri, 27 Jul 2018 18:42:16 -0500 Subject: [PATCH] add level bonus --- dist/index.d.ts | 2 +- dist/index.js.map | 2 +- dist/lib/Events.js | 25 +++++++++---------------- dist/lib/Events.js.map | 2 +- dist/lib/index.js | 18 +++++++++++++----- dist/lib/index.js.map | 2 +- src/lib/index.ts | 15 ++++++++++++--- 7 files changed, 38 insertions(+), 28 deletions(-) diff --git a/dist/index.d.ts b/dist/index.d.ts index 7f8e3ce..440f6e7 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -15,5 +15,5 @@ export declare class Plugin { * Register events * @param client */ - private registerListeners(client, config); + private registerListeners; } diff --git a/dist/index.js.map b/dist/index.js.map index 92d0662..025893b 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAGA,yCAAwC;AAExC;IAME;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAE,MAAsB,EAAE,MAAc;QACvD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,iBAAiB,CAAE,MAAsB,EAAE,MAAc;QACrE,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,kBAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IAC7D,CAAC;;AApBM,SAAE,GAAG,QAAQ,CAAA;AACb,kBAAW,GAAG,wGAAwG,CAAA;AAJ/H,wBAwBC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA,yCAAwC;AAExC;IAME;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAE,MAAsB,EAAE,MAAc;QACvD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,iBAAiB,CAAE,MAAsB,EAAE,MAAc;QACrE,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,kBAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IAC7D,CAAC;;AApBa,SAAE,GAAG,QAAQ,CAAA;AACb,kBAAW,GAAG,wGAAwG,CAAA;AAJtI,wBAwBC"} \ No newline at end of file diff --git a/dist/lib/Events.js b/dist/lib/Events.js index c8cae94..4dc57c2 100644 --- a/dist/lib/Events.js +++ b/dist/lib/Events.js @@ -1,14 +1,14 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const axios_1 = require("axios"); -const _1 = require("../"); +const __1 = require("../"); const util_1 = require("@nightwatch/util"); -const _2 = require("./"); +const _1 = require("./"); exports.onMessage = async (message, config) => { if (message.author.bot || !message.content || !message.content.trim() || message.channel.type !== 'text') { return; } - const { api } = _1.Plugin.config; + const { api } = __1.Plugin.config; const baseRoute = `${api.address}/users`; // prevent the user from earning xp for bot commands. // handles *most* bots. @@ -17,18 +17,11 @@ exports.onMessage = async (message, config) => { return; } const route = `${baseRoute}/${message.author.id}?token=${api.token}`; - axios_1.default - .get(route) - .then(res => { - if (!res.data) { - util_1.MessageUtility.createUser(message.author, _1.Plugin.config).catch(util_1.Logger.error); - return; - } - const user = res.data; - _2.giveXp(user, message).catch(util_1.Logger.error); - }) - .catch((err) => { - util_1.Logger.error(err); - }); + const { data: user } = await axios_1.default.get(route); + if (!user) { + util_1.MessageUtility.createUser(message.author, __1.Plugin.config).catch(util_1.Logger.error); + return; + } + _1.giveXp(user, message).catch(util_1.Logger.error); }; //# sourceMappingURL=Events.js.map \ No newline at end of file diff --git a/dist/lib/Events.js.map b/dist/lib/Events.js.map index 26d67bb..ca310ba 100644 --- a/dist/lib/Events.js.map +++ b/dist/lib/Events.js.map @@ -1 +1 @@ -{"version":3,"file":"Events.js","sourceRoot":"","sources":["../../src/lib/Events.ts"],"names":[],"mappings":";;AACA,iCAAyB;AACzB,0BAA4B;AAC5B,2CAAiE;AAEjE,yBAA2B;AAEd,QAAA,SAAS,GAAG,KAAK,EAAE,OAAgB,EAAE,MAAc,EAAE,EAAE;IAClE,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;QACxG,OAAM;KACP;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,SAAM,CAAC,MAAM,CAAA;IAC7B,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,OAAO,QAAQ,CAAA;IAExC,qDAAqD;IACrD,uBAAuB;IACvB,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC7E,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;QAChD,OAAM;KACP;IAED,MAAM,KAAK,GAAG,GAAG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,CAAC,KAAK,EAAE,CAAA;IAEpE,eAAK;SACF,GAAG,CAAC,KAAK,CAAC;SACV,IAAI,CAAC,GAAG,CAAC,EAAE;QACV,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YACb,qBAAc,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,SAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,aAAM,CAAC,KAAK,CAAC,CAAA;YAC5E,OAAM;SACP;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAsB,CAAA;QAEvC,SAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,aAAM,CAAC,KAAK,CAAC,CAAA;IAC3C,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;QAClB,aAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;AACN,CAAC,CAAA"} \ No newline at end of file +{"version":3,"file":"Events.js","sourceRoot":"","sources":["../../src/lib/Events.ts"],"names":[],"mappings":";;AACA,iCAAyB;AACzB,2BAA4B;AAC5B,2CAAiE;AAEjE,yBAA2B;AAEd,QAAA,SAAS,GAAG,KAAK,EAAE,OAAgB,EAAE,MAAc,EAAE,EAAE;IAClE,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;QACxG,OAAM;KACP;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,UAAM,CAAC,MAAM,CAAA;IAC7B,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,OAAO,QAAQ,CAAA;IAExC,qDAAqD;IACrD,uBAAuB;IACvB,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC7E,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;QAChD,OAAM;KACP;IAED,MAAM,KAAK,GAAG,GAAG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,CAAC,KAAK,EAAE,CAAA;IACpE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAA6B,MAAM,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAEvE,IAAI,CAAC,IAAI,EAAE;QACT,qBAAc,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,UAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,aAAM,CAAC,KAAK,CAAC,CAAA;QAC5E,OAAM;KACP;IAED,SAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,aAAM,CAAC,KAAK,CAAC,CAAA;AAC3C,CAAC,CAAA"} \ No newline at end of file diff --git a/dist/lib/index.js b/dist/lib/index.js index 82a7637..f70a5e4 100644 --- a/dist/lib/index.js +++ b/dist/lib/index.js @@ -1,7 +1,7 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const axios_1 = require("axios"); -const _1 = require("../"); +const __1 = require("../"); const util_1 = require("@nightwatch/util"); const timeForExp = 60 * 1000; const minExpPerMessage = 15; @@ -16,7 +16,7 @@ exports.giveXp = async (user, message) => { if (!user.settings.levelsEnabled) { return; } - const { api } = _1.Plugin.config; + const { api } = __1.Plugin.config; const baseRoute = `${api.address}/users`; const timeDiff = Date.now() - new Date(user.level.timestamp).getTime(); if (timeDiff < timeForExp) { @@ -40,10 +40,18 @@ exports.giveXp = async (user, message) => { const popcornEmoji = '🍿'; const dollarEmoji = '💵'; const rewardAmount = getRandomNumber(45, 50) + Math.floor(level * 0.5); + let levelBonus = 0; + if (level % 100 === 0) { + levelBonus = 1000; + } + else if (level % 10 === 0) { + levelBonus = 100; + } + const levelBonusString = levelBonus > 0 ? `\n\n**Level Bonus! +${levelBonus} credits**` : ''; message.channel.send(`**${popcornEmoji} | ${message.member - .displayName} just advanced to level ${level} and earned ${dollarEmoji} ${rewardAmount} credits!**`); - user.balance.balance += rewardAmount; - user.balance.netWorth += rewardAmount; + .displayName} just advanced to level ${level} and earned ${dollarEmoji} ${rewardAmount} credits!**${levelBonusString}`); + user.balance.balance += rewardAmount + levelBonus; + user.balance.netWorth += rewardAmount + levelBonus; const postData = { level: { xp: experience, diff --git a/dist/lib/index.js.map b/dist/lib/index.js.map index 8f16eee..ccb9fa8 100644 --- a/dist/lib/index.js.map +++ b/dist/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/lib/index.ts b/src/lib/index.ts index 165470e..2989900 100644 --- a/src/lib/index.ts +++ b/src/lib/index.ts @@ -54,13 +54,22 @@ export const giveXp = async (user: NightwatchUser, message: Message) => { const dollarEmoji = '💵' const rewardAmount = getRandomNumber(45, 50) + Math.floor(level * 0.5) + let levelBonus = 0 + if (level % 100 === 0) { + levelBonus = 1000 + } else if (level % 10 === 0) { + levelBonus = 100 + } + + const levelBonusString = levelBonus > 0 ? `\n\n**Level Bonus! +${levelBonus} credits**` : '' + message.channel.send( `**${popcornEmoji} | ${message.member - .displayName} just advanced to level ${level} and earned ${dollarEmoji} ${rewardAmount} credits!**` + .displayName} just advanced to level ${level} and earned ${dollarEmoji} ${rewardAmount} credits!**${levelBonusString}` ) - user.balance.balance += rewardAmount - user.balance.netWorth += rewardAmount + user.balance.balance += rewardAmount + levelBonus + user.balance.netWorth += rewardAmount + levelBonus const postData = { level: {