///
///
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)
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)
this.registerStep(true, 2, this.step2)
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()
}