///
///
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()
}