api events ready, now only the actions
This commit is contained in:
@@ -20,6 +20,7 @@ const ticketRemoveListeners = []
|
||||
const transcriptCreationListeners = []
|
||||
const commandListeners = []
|
||||
const reactionRoleListeners = []
|
||||
const errorListeners = []
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -173,7 +174,7 @@ exports.onTranscriptCreation = (messages,channel,guild,date) => {
|
||||
* @param {discord.Guild} guild
|
||||
* @param {Date} date
|
||||
*/
|
||||
exports.onCommand = (type,hasPerms,user,channel,guild,date) => {
|
||||
exports.onCommand = (type,hasPerms,user,channel,guild,date) => {
|
||||
//system
|
||||
bot.errorLog.log("api","someone used a command",[{key:"type",value:type},{key:"hasPerms",value:hasPerms},{key:"userid",value:user},{key:"channelid",value:channel.id},{key:"guildid",value:guild.id}])
|
||||
|
||||
@@ -185,8 +186,46 @@ exports.onTranscriptCreation = (messages,channel,guild,date) => {
|
||||
|
||||
}
|
||||
|
||||
//reactionrole
|
||||
//error
|
||||
/**@typedef {"add"|"remove"|"add&remove"} OTReactionRoleType */
|
||||
/**@typedef {"add"|"remove"} OTReactionRoleMode */
|
||||
|
||||
/**
|
||||
* @param {OTReactionRoleMode} mode
|
||||
* @param {OTReactionRoleType} type
|
||||
* @param {discord.Role} role
|
||||
* @param {discord.User} user
|
||||
* @param {discord.TextChannel} channel
|
||||
* @param {discord.Guild} guild
|
||||
* @param {Date} date
|
||||
*/
|
||||
exports.onReactionRole = (mode,type,role,user,channel,guild,date) => {
|
||||
//system
|
||||
bot.errorLog.log("api","someone used a reaction role",[{key:"mode",value:mode},{key:"type",value:type},{key:"roleid",value:role.id},{key:"userid",value:user},{key:"channelid",value:channel.id},{key:"guildid",value:guild.id}])
|
||||
|
||||
reactionRoleListeners.forEach((func) => {
|
||||
try {
|
||||
func(mode,type,role,user,channel,guild,date)
|
||||
}catch{}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {String} err
|
||||
* @param {Date} date
|
||||
*/
|
||||
exports.onError = (err,date) => {
|
||||
//system
|
||||
bot.errorLog.log("api","there is an error",[{key:"error",value:err}])
|
||||
|
||||
errorListeners.forEach((func) => {
|
||||
try {
|
||||
func(err,date)
|
||||
}catch{}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
//EVENT CALLBACKS:
|
||||
|
||||
@@ -227,6 +266,23 @@ exports.onTranscriptCreation = (messages,channel,guild,date) => {
|
||||
* @param {Date} date
|
||||
*/
|
||||
|
||||
/**
|
||||
* @callback ReactionRoleEvent
|
||||
* @param {OTReactionRoleMode} mode
|
||||
* @param {OTReactionRoleType} type
|
||||
* @param {discord.Role} role
|
||||
* @param {discord.User} user
|
||||
* @param {discord.TextChannel} channel
|
||||
* @param {discord.Guild} guild
|
||||
* @param {Date} date
|
||||
*/
|
||||
|
||||
/**
|
||||
* @callback ErrorEvent
|
||||
* @param {String} error
|
||||
* @param {Date} date
|
||||
*/
|
||||
|
||||
//EVENT EXPORT:
|
||||
|
||||
/**@param {TicketActionEvent} callback */
|
||||
@@ -269,6 +325,16 @@ const onCommand = (callback) => {
|
||||
commandListeners.push(callback)
|
||||
}
|
||||
|
||||
/**@param {ReactionRoleEvent} callback */
|
||||
const onReactionRole = (callback) => {
|
||||
commandListeners.push(callback)
|
||||
}
|
||||
|
||||
/**@param {ErrorEvent} callback */
|
||||
const onError = (callback) => {
|
||||
errorListeners.push(callback)
|
||||
}
|
||||
|
||||
exports.events = {
|
||||
onTicketOpen,
|
||||
onTicketClose,
|
||||
@@ -277,5 +343,7 @@ exports.events = {
|
||||
onTicketAdd,
|
||||
onTicketRemove,
|
||||
onTranscriptCreation,
|
||||
onCommand
|
||||
onCommand,
|
||||
onReactionRole,
|
||||
onError
|
||||
}
|
||||
@@ -6,6 +6,8 @@ const log = bot.errorLog.log
|
||||
const l = bot.language
|
||||
const storage = bot.storage
|
||||
|
||||
const APIEvents = require("./api/modules/events")
|
||||
|
||||
module.exports = async () => {
|
||||
const chalk = await (await import("chalk")).default
|
||||
|
||||
@@ -34,23 +36,33 @@ module.exports = async () => {
|
||||
interaction.guild.members.cache.find(u => u.id == user.id).roles.add(role)
|
||||
|
||||
log("system","added role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}])
|
||||
const apirole = interaction.guild.roles.cache.find(r => r.id == role)
|
||||
APIEvents.onReactionRole("add","add",apirole,interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
})
|
||||
|
||||
}else if (mode == "remove"){
|
||||
option.roles.forEach((role) => {
|
||||
interaction.guild.members.cache.find(u => u.id == user.id).roles.remove(role)
|
||||
|
||||
log("system","removed role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}])
|
||||
const apirole = interaction.guild.roles.cache.find(r => r.id == role)
|
||||
APIEvents.onReactionRole("remove","remove",apirole,interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
})
|
||||
|
||||
}else if (mode == "add&remove"){
|
||||
option.roles.forEach((role) => {
|
||||
if (interaction.guild.members.cache.find(u => u.id == user.id).roles.cache.has(role)){
|
||||
interaction.guild.members.cache.find(u => u.id == user.id).roles.remove(role)
|
||||
|
||||
log("system","added role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}])
|
||||
const apirole = interaction.guild.roles.cache.find(r => r.id == role)
|
||||
APIEvents.onReactionRole("add","add&remove",apirole,interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
}else {
|
||||
interaction.guild.members.cache.find(u => u.id == user.id).roles.add(role)
|
||||
|
||||
log("system","removed role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}])
|
||||
const apirole = interaction.guild.roles.cache.find(r => r.id == role)
|
||||
APIEvents.onReactionRole("remove","add&remove",apirole,interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
/**
|
||||
* @typedef {String|Boolean} OTErrorType
|
||||
*/
|
||||
@@ -151,6 +151,8 @@ if (process.argv[2] && process.argv[2].startsWith("slash")){
|
||||
|
||||
}
|
||||
|
||||
const APIEvents = require("./core/api/modules/events")
|
||||
|
||||
const debugLog = (debugString) => {
|
||||
const content = fs.existsSync("./openticketdebug.txt") ? fs.readFileSync("./openticketdebug.txt").toString() : "==========================\n<OPEN TICKET DEBUG FILE:>\n=========================="
|
||||
fs.writeFileSync("./openticketdebug.txt",content+"\nDEBUG: "+debugString)
|
||||
@@ -172,6 +174,8 @@ process.on("uncaughtException",async (error,origin) => {
|
||||
const chalk = await (await import("chalk")).default
|
||||
console.log(chalk.red("\nOPEN TICKET ERROR: ")+error+"\n"+chalk.green("\nCreate a ticket in our support server for more information!\nIf you do this, you might help us to avoid a future bug!\n"))
|
||||
errorLog(error.name+": "+error.message+" | origin: "+origin,error.stack)
|
||||
|
||||
APIEvents.onError(error.name+": "+error.message,new Date())
|
||||
})
|
||||
|
||||
client.login(config.auth_token)
|
||||
Reference in New Issue
Block a user