diff options
Diffstat (limited to 'src/features/fragBot')
-rw-r--r-- | src/features/fragBot/index.js | 84 | ||||
-rw-r--r-- | src/features/fragBot/metadata.json | 8 |
2 files changed, 92 insertions, 0 deletions
diff --git a/src/features/fragBot/index.js b/src/features/fragBot/index.js new file mode 100644 index 0000000..2b89203 --- /dev/null +++ b/src/features/fragBot/index.js @@ -0,0 +1,84 @@ +/// <reference types="../../../../CTAutocomplete" /> +/// <reference lib="es2015" /> +import Feature from "../../featureClass/class"; +import SettingBase from "../settings/settingThings/settingBase"; +import ToggleSetting from "../settings/settingThings/toggle"; + +class FragBot extends Feature { + constructor() { + super() + } + + onEnable() { + this.initVariables() + + this.hostingFragBot = false + this.fragBotQueue = [] + this.commandQueue = [] + + new SettingBase("To host a fragbot use /fragbot", "", undefined, "host_fragbot_info", this) + new SettingBase("NOTE: All this does atm is accept party invites", "More features for this coming soon", true, "stat_next_to_name_description", this) + + // this.uploadToWebsite = new ToggleSetting("Advertise fragbot status", "Will show up as a fragbot in other peoples fragbot lists", true, "advertise_fragbot", this) + + this.registerCommand("fragbot", this.fragbotCommand) + + this.registerStep(false, 5, this.step).registeredWhen(() => this.hostingFragBot) + this.registerStep(true, 2, this.step2).registeredWhen(() => this.hostingFragBot) + + this.registerChat("&9&m---------------------------${*}&r&9\n&r${player} &r&ehas invited you to join their party!\n&r&eYou have &r&c60 &r&eseconds to accept. &r&6Click here to join!&r&9\n&r&9&m----------------------------${*}&r", this.recievedPartyInvite) + } + + step() { + if (!this.hostingFragBot) return + + if (this.fragBotQueue.length > 0) { + let player = this.fragBotQueue.shift() + if (player) { + this.commandQueue.push("/party leave") + + this.commandQueue.push("/party accept " + player) + } + } + } + step2() { + if (!this.hostingFragBot) return + + if (this.commandQueue.length > 0) { + let command = this.commandQueue.shift() + if (command) { + ChatLib.say(command) + } + } + } + recievedPartyInvite(player) { + if (!this.hostingFragBot) return + player = ChatLib.removeFormatting(player).split(" ").pop() + + this.fragBotQueue.push(player) + } + + fragbotCommand(...args) { + if (this.hostingFragBot) { + this.hostingFragBot = false + ChatLib.chat(this.FeatureManager.messagePrefix + "Fragbot has been disabled") + } else { + this.hostingFragBot = true + ChatLib.chat(this.FeatureManager.messagePrefix + "Now acting as a fragbot, run /fragbot again to disable") + } + } + + initVariables() { + this.hostingFragBot = undefined + this.fragBotQueue = undefined + this.commandQueue = undefined + } + + onDisable() { + this.initVariables() + } +} + +module.exports = { + class: new FragBot() +}
\ No newline at end of file diff --git a/src/features/fragBot/metadata.json b/src/features/fragBot/metadata.json new file mode 100644 index 0000000..5aaa6a9 --- /dev/null +++ b/src/features/fragBot/metadata.json @@ -0,0 +1,8 @@ +{ + "name": "Frag Bot", + "description": "Features to assist using fragbots, or to host one", + "isHidden": false, + "isTogglable": true, + "defaultEnabled": true, + "sortA": 1 +}
\ No newline at end of file |