Repositioned + Tested Reaction Role Logs
This commit is contained in:
@@ -81,13 +81,21 @@ export const registerActions = async () => {
|
|||||||
|
|
||||||
//update instance & finish event
|
//update instance & finish event
|
||||||
instance.result = result
|
instance.result = result
|
||||||
|
|
||||||
if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.roleAdding.logs){
|
|
||||||
const logChannel = opendiscord.posts.get("opendiscord:logs")
|
|
||||||
if (logChannel) { logChannel.send( await opendiscord.builders.messages.getSafe("opendiscord:reaction-role-logs").build(source,{guild,user,role,result}))}}
|
|
||||||
|
|
||||||
await opendiscord.events.get("afterRolesUpdated").emit([user,role])
|
await opendiscord.events.get("afterRolesUpdated").emit([user,role])
|
||||||
}),
|
}),
|
||||||
|
new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,source,cancel) => {
|
||||||
|
const {guild,user,option,overwriteMode} = params
|
||||||
|
if (!instance.role || !instance.result) return
|
||||||
|
|
||||||
|
//to logs
|
||||||
|
if (generalConfig.data.system.logs.enabled && (generalConfig.data.system.messages.roleAdding.logs || generalConfig.data.system.messages.roleRemoving.logs)){
|
||||||
|
const logChannel = opendiscord.posts.get("opendiscord:logs")
|
||||||
|
if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:reaction-role-logs").build(source,{guild,user,role:instance.role,result:instance.result}))
|
||||||
|
}
|
||||||
|
|
||||||
|
//to dm
|
||||||
|
if (generalConfig.data.system.messages.roleAdding.dm || generalConfig.data.system.messages.roleRemoving.dm) await opendiscord.client.sendUserDm(user,await opendiscord.builders.messages.getSafe("opendiscord:reaction-role-dm").build(source,{guild,user,role:instance.role,result:instance.result}))
|
||||||
|
}),
|
||||||
new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => {
|
new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => {
|
||||||
const {guild,user,option} = params
|
const {guild,user,option} = params
|
||||||
opendiscord.log(user.displayName+" updated his roles!","info",[
|
opendiscord.log(user.displayName+" updated his roles!","info",[
|
||||||
|
|||||||
+48
-29
@@ -1108,38 +1108,57 @@ const roleEmbeds = () => {
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
|
||||||
//REACTION ROLE LOGS
|
//REACTION ROLE DM
|
||||||
embeds.add(new api.ODEmbed("opendiscord:reaction-role-logs"))
|
embeds.add(new api.ODEmbed("opendiscord:reaction-role-dm"))
|
||||||
embeds.get("opendiscord:reaction-role-logs")!.workers.add(
|
embeds.get("opendiscord:reaction-role-dm").workers.add(
|
||||||
new api.ODWorker("opendiscord:reaction-role-logs",0,async (instance,params,source) => {
|
new api.ODWorker("opendiscord:reaction-role-dm",0,async (instance,params,source) => {
|
||||||
const {user,result} = params
|
const {guild,user,role,result} = params
|
||||||
|
|
||||||
const newResult = result
|
|
||||||
.filter(r => r.action != null && r.role?.id)
|
|
||||||
.sort((a, b) => {
|
|
||||||
if (a.action === "added" && b.action === "removed") return -1;
|
|
||||||
if (a.action === "removed" && b.action === "added") return 1;
|
|
||||||
return 0;
|
|
||||||
})
|
|
||||||
.map(r => {
|
|
||||||
return (r.action === "added")
|
|
||||||
? `🟢${lang.getTranslation("params.uppercase.added")} ${discord.roleMention(r.role.id)}`
|
|
||||||
: `🔴 ${lang.getTranslation("params.uppercase.removed")} ${discord.roleMention(r.role.id)}`
|
|
||||||
})
|
|
||||||
|
|
||||||
let baseDescription = lang.getTranslationWithParams("actions.logs.roleLog", [discord.userMention(user.id)])
|
|
||||||
if (!baseDescription || baseDescription === "null") {
|
|
||||||
baseDescription = `Roles updated for ${discord.userMention(user.id)}`
|
|
||||||
}
|
|
||||||
|
|
||||||
const fullDescription = (newResult.length > 0) ? `${baseDescription}\n\n${newResult.join("\n")}` : `${baseDescription}\n\n${lang.getTranslation("actions.descriptions.rolesEmpty")}`
|
|
||||||
|
|
||||||
instance.setColor(generalConfig.data.mainColor)
|
instance.setColor(generalConfig.data.mainColor)
|
||||||
instance.setTitle(utilities.emojiTitle("📋", lang.getTranslation("actions.titles.roles")))
|
instance.setTitle(utilities.emojiTitle("🎨",lang.getTranslation("actions.titles.roles")))
|
||||||
instance.setThumbnail(user.displayAvatarURL())
|
instance.setAuthor(user.displayName,user.displayAvatarURL())
|
||||||
instance.setAuthor(user.displayName, user.displayAvatarURL())
|
|
||||||
instance.setTimestamp(new Date())
|
instance.setTimestamp(new Date())
|
||||||
instance.setDescription(fullDescription)
|
|
||||||
|
const newResult = result.filter((r) => r.action != null).sort((a,b) => {
|
||||||
|
if (a.action == "added" && b.action == "removed") return -1
|
||||||
|
else if (a.action == "removed" && b.action == "added") return 1
|
||||||
|
else return 0
|
||||||
|
}).map((r) => {
|
||||||
|
return (r.action == "added") ? "🟢 "+lang.getTranslation("params.uppercase.added")+" @"+r.role.name : "🔴 "+lang.getTranslation("params.uppercase.removed")+" @"+r.role.name
|
||||||
|
})
|
||||||
|
|
||||||
|
//TODO TRANSLATION!!!
|
||||||
|
const baseDescription = ("Your roles in our server have been updated!")
|
||||||
|
|
||||||
|
if (newResult.length > 0) instance.setDescription(baseDescription+"\n\n"+newResult.join("\n"))
|
||||||
|
else instance.setDescription(baseDescription+"\n"+lang.getTranslation("actions.descriptions.rolesEmpty"))
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
//REACTION ROLE LOGS
|
||||||
|
embeds.add(new api.ODEmbed("opendiscord:reaction-role-logs"))
|
||||||
|
embeds.get("opendiscord:reaction-role-logs").workers.add(
|
||||||
|
new api.ODWorker("opendiscord:reaction-role-logs",0,async (instance,params,source) => {
|
||||||
|
const {guild,user,role,result} = params
|
||||||
|
|
||||||
|
instance.setColor(generalConfig.data.mainColor)
|
||||||
|
instance.setTitle(utilities.emojiTitle("🎨",lang.getTranslation("actions.titles.roles")))
|
||||||
|
instance.setAuthor(user.displayName,user.displayAvatarURL())
|
||||||
|
instance.setTimestamp(new Date())
|
||||||
|
|
||||||
|
const newResult = result.filter((r) => r.action != null).sort((a,b) => {
|
||||||
|
if (a.action == "added" && b.action == "removed") return -1
|
||||||
|
else if (a.action == "removed" && b.action == "added") return 1
|
||||||
|
else return 0
|
||||||
|
}).map((r) => {
|
||||||
|
return (r.action == "added") ? "🟢 "+lang.getTranslation("params.uppercase.added")+" "+discord.roleMention(r.role.id) : "🔴 "+lang.getTranslation("params.uppercase.removed")+" "+discord.roleMention(r.role.id)
|
||||||
|
})
|
||||||
|
|
||||||
|
//TODO TRANSLATION!!!
|
||||||
|
const baseDescription = ("{0} has updated their roles!").replace("{0}",discord.userMention(user.id))
|
||||||
|
|
||||||
|
if (newResult.length > 0) instance.setDescription(baseDescription+"\n\n"+newResult.join("\n"))
|
||||||
|
else instance.setDescription(baseDescription+"\n"+lang.getTranslation("actions.descriptions.rolesEmpty"))
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -965,13 +965,21 @@ const roleMessages = () => {
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
|
||||||
|
//REACTION ROLE DM
|
||||||
|
messages.add(new api.ODMessage("opendiscord:reaction-role-dm"))
|
||||||
|
messages.get("opendiscord:reaction-role-dm").workers.add(
|
||||||
|
new api.ODWorker("opendiscord:reaction-role-dm",0,async (instance,params,source) => {
|
||||||
|
const {guild,user,role,result} = params
|
||||||
|
instance.addEmbed(await embeds.getSafe("opendiscord:reaction-role-dm").build(source,{guild,user,role,result}))
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
//REACTION ROLE LOGS
|
//REACTION ROLE LOGS
|
||||||
messages.add(new api.ODMessage("opendiscord:reaction-role-logs"))
|
messages.add(new api.ODMessage("opendiscord:reaction-role-logs"))
|
||||||
messages.get("opendiscord:reaction-role-logs")!.workers.add(
|
messages.get("opendiscord:reaction-role-logs").workers.add(
|
||||||
new api.ODWorker("opendiscord:reaction-role-logs",0,async(instance,params,source) => {
|
new api.ODWorker("opendiscord:reaction-role-logs",0,async (instance,params,source) => {
|
||||||
const {guild,user,role,result} = params
|
const {guild,user,role,result} = params
|
||||||
const embed = await embeds.getSafe("opendiscord:reaction-role-logs").build(source,{guild,user,role,result})
|
instance.addEmbed(await embeds.getSafe("opendiscord:reaction-role-logs").build(source,{guild,user,role,result}))
|
||||||
instance.addEmbed(embed)
|
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -281,6 +281,9 @@ export interface ODEmbedManagerIds_Default {
|
|||||||
"opendiscord:transcript-error":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<any,object|null>,reason:string|null},workers:"opendiscord:transcript-error"},
|
"opendiscord:transcript-error":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<any,object|null>,reason:string|null},workers:"opendiscord:transcript-error"},
|
||||||
|
|
||||||
"opendiscord:reaction-role":{source:"panel-button"|"other",params:{guild:discord.Guild,user:discord.User,role:ODRole,result:ODRoleUpdateResult[]},workers:"opendiscord:reaction-role"},
|
"opendiscord:reaction-role":{source:"panel-button"|"other",params:{guild:discord.Guild,user:discord.User,role:ODRole,result:ODRoleUpdateResult[]},workers:"opendiscord:reaction-role"},
|
||||||
|
"opendiscord:reaction-role-dm":{source:"panel-button"|"other",params:{guild:discord.Guild,user:discord.User,role:ODRole,result:ODRoleUpdateResult[]},workers:"opendiscord:reaction-role-dm"},
|
||||||
|
"opendiscord:reaction-role-logs":{source:"panel-button"|"other",params:{guild:discord.Guild,user:discord.User,role:ODRole,result:ODRoleUpdateResult[]},workers:"opendiscord:reaction-role-logs"},
|
||||||
|
|
||||||
"opendiscord:clear-verify-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-verify-message"},
|
"opendiscord:clear-verify-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-verify-message"},
|
||||||
"opendiscord:clear-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-message"},
|
"opendiscord:clear-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-message"},
|
||||||
"opendiscord:clear-logs":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-logs"},
|
"opendiscord:clear-logs":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-logs"},
|
||||||
@@ -412,6 +415,9 @@ export interface ODMessageManagerIds_Default {
|
|||||||
"opendiscord:transcript-error":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<any,object|null>,reason:string|null},workers:"opendiscord:transcript-error"},
|
"opendiscord:transcript-error":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<any,object|null>,reason:string|null},workers:"opendiscord:transcript-error"},
|
||||||
|
|
||||||
"opendiscord:reaction-role":{source:"panel-button"|"other",params:{guild:discord.Guild,user:discord.User,role:ODRole,result:ODRoleUpdateResult[]},workers:"opendiscord:reaction-role"},
|
"opendiscord:reaction-role":{source:"panel-button"|"other",params:{guild:discord.Guild,user:discord.User,role:ODRole,result:ODRoleUpdateResult[]},workers:"opendiscord:reaction-role"},
|
||||||
|
"opendiscord:reaction-role-dm":{source:"panel-button"|"other",params:{guild:discord.Guild,user:discord.User,role:ODRole,result:ODRoleUpdateResult[]},workers:"opendiscord:reaction-role-dm"},
|
||||||
|
"opendiscord:reaction-role-logs":{source:"panel-button"|"other",params:{guild:discord.Guild,user:discord.User,role:ODRole,result:ODRoleUpdateResult[]},workers:"opendiscord:reaction-role-logs"},
|
||||||
|
|
||||||
"opendiscord:clear-verify-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-verify-message"},
|
"opendiscord:clear-verify-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-verify-message"},
|
||||||
"opendiscord:clear-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-message"},
|
"opendiscord:clear-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-message"},
|
||||||
"opendiscord:clear-logs":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-logs"},
|
"opendiscord:clear-logs":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-logs"},
|
||||||
|
|||||||
Reference in New Issue
Block a user