API: allowCategoryChange param in related actions
Added the 'allowCategoryChange' parameter in related ticket actions (claim, unclaim, close, reopen) to disable the changing of the category. This can be used by plugins not wanting the category of the channel to change.
This commit is contained in:
+16
-14
@@ -26,20 +26,22 @@ export const registerActions = async () => {
|
|||||||
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-claimed",user.id,1,"increase")
|
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-claimed",user.id,1,"increase")
|
||||||
|
|
||||||
//update category
|
//update category
|
||||||
const rawClaimCategory = ticket.option.get("opendiscord:channel-categories-claimed").value.find((c) => c.user == user.id)
|
if (params.allowCategoryChange){
|
||||||
const claimCategory = (rawClaimCategory) ? rawClaimCategory.category : null
|
const rawClaimCategory = ticket.option.get("opendiscord:channel-categories-claimed").value.find((c) => c.user == user.id)
|
||||||
if (claimCategory){
|
const claimCategory = (rawClaimCategory) ? rawClaimCategory.category : null
|
||||||
try {
|
if (claimCategory){
|
||||||
channel.setParent(claimCategory,{lockPermissions:false})
|
try {
|
||||||
ticket.get("opendiscord:category-mode").value = "claimed"
|
channel.setParent(claimCategory,{lockPermissions:false})
|
||||||
ticket.get("opendiscord:category").value = claimCategory
|
ticket.get("opendiscord:category-mode").value = "claimed"
|
||||||
}catch(e){
|
ticket.get("opendiscord:category").value = claimCategory
|
||||||
opendiscord.log("Unable to move ticket to 'claimed category'!","error",[
|
}catch(e){
|
||||||
{key:"channel",value:"#"+channel.name},
|
opendiscord.log("Unable to move ticket to 'claimed category'!","error",[
|
||||||
{key:"channelid",value:channel.id,hidden:true},
|
{key:"channel",value:"#"+channel.name},
|
||||||
{key:"categoryid",value:claimCategory}
|
{key:"channelid",value:channel.id,hidden:true},
|
||||||
])
|
{key:"categoryid",value:claimCategory}
|
||||||
opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException"))
|
])
|
||||||
|
opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException"))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+15
-13
@@ -28,19 +28,21 @@ export const registerActions = async () => {
|
|||||||
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-closed",user.id,1,"increase")
|
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-closed",user.id,1,"increase")
|
||||||
|
|
||||||
//update category
|
//update category
|
||||||
const closeCategory = ticket.option.get("opendiscord:channel-category-closed").value
|
if (params.allowCategoryChange){
|
||||||
if (closeCategory !== ""){
|
const closeCategory = ticket.option.get("opendiscord:channel-category-closed").value
|
||||||
try {
|
if (closeCategory !== ""){
|
||||||
channel.setParent(closeCategory,{lockPermissions:false})
|
try {
|
||||||
ticket.get("opendiscord:category-mode").value = "closed"
|
channel.setParent(closeCategory,{lockPermissions:false})
|
||||||
ticket.get("opendiscord:category").value = closeCategory
|
ticket.get("opendiscord:category-mode").value = "closed"
|
||||||
}catch(e){
|
ticket.get("opendiscord:category").value = closeCategory
|
||||||
opendiscord.log("Unable to move ticket to 'closed category'!","error",[
|
}catch(e){
|
||||||
{key:"channel",value:"#"+channel.name},
|
opendiscord.log("Unable to move ticket to 'closed category'!","error",[
|
||||||
{key:"channelid",value:channel.id,hidden:true},
|
{key:"channel",value:"#"+channel.name},
|
||||||
{key:"categoryid",value:closeCategory}
|
{key:"channelid",value:channel.id,hidden:true},
|
||||||
])
|
{key:"categoryid",value:closeCategory}
|
||||||
opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException"))
|
])
|
||||||
|
opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException"))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+45
-43
@@ -28,53 +28,55 @@ export const registerActions = async () => {
|
|||||||
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-reopened",user.id,1,"increase")
|
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-reopened",user.id,1,"increase")
|
||||||
|
|
||||||
//update category
|
//update category
|
||||||
const channelCategory = ticket.option.get("opendiscord:channel-category").value
|
if (params.allowCategoryChange){
|
||||||
const channelBackupCategory = ticket.option.get("opendiscord:channel-category-backup").value
|
const channelCategory = ticket.option.get("opendiscord:channel-category").value
|
||||||
if (channelCategory !== ""){
|
const channelBackupCategory = ticket.option.get("opendiscord:channel-category-backup").value
|
||||||
//category enabled
|
if (channelCategory !== ""){
|
||||||
try {
|
//category enabled
|
||||||
const normalCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelCategory)
|
try {
|
||||||
if (!normalCategory){
|
const normalCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelCategory)
|
||||||
//default category was not found
|
if (!normalCategory){
|
||||||
opendiscord.log("Ticket Reopening Error: Unable to find category! #1","error",[
|
//default category was not found
|
||||||
{key:"categoryid",value:channelCategory},
|
opendiscord.log("Ticket Reopening Error: Unable to find category! #1","error",[
|
||||||
{key:"backup",value:"false"}
|
{key:"categoryid",value:channelCategory},
|
||||||
])
|
{key:"backup",value:"false"}
|
||||||
}else{
|
])
|
||||||
//default category was found
|
|
||||||
if (normalCategory.children.cache.size >= 49 && channelBackupCategory != ""){
|
|
||||||
//use backup category
|
|
||||||
const backupCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelBackupCategory)
|
|
||||||
if (!backupCategory){
|
|
||||||
//default category was not found
|
|
||||||
opendiscord.log("Ticket Reopening Error: Unable to find category! #2","error",[
|
|
||||||
{key:"categoryid",value:channelBackupCategory},
|
|
||||||
{key:"backup",value:"true"}
|
|
||||||
])
|
|
||||||
}else{
|
|
||||||
//use backup category
|
|
||||||
channel.setParent(backupCategory,{lockPermissions:false})
|
|
||||||
ticket.get("opendiscord:category-mode").value = "backup"
|
|
||||||
ticket.get("opendiscord:category").value = backupCategory.id
|
|
||||||
}
|
|
||||||
}else{
|
}else{
|
||||||
//use default category
|
//default category was found
|
||||||
channel.setParent(normalCategory,{lockPermissions:false})
|
if (normalCategory.children.cache.size >= 49 && channelBackupCategory != ""){
|
||||||
ticket.get("opendiscord:category-mode").value = "normal"
|
//use backup category
|
||||||
ticket.get("opendiscord:category").value = normalCategory.id
|
const backupCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelBackupCategory)
|
||||||
|
if (!backupCategory){
|
||||||
|
//default category was not found
|
||||||
|
opendiscord.log("Ticket Reopening Error: Unable to find category! #2","error",[
|
||||||
|
{key:"categoryid",value:channelBackupCategory},
|
||||||
|
{key:"backup",value:"true"}
|
||||||
|
])
|
||||||
|
}else{
|
||||||
|
//use backup category
|
||||||
|
channel.setParent(backupCategory,{lockPermissions:false})
|
||||||
|
ticket.get("opendiscord:category-mode").value = "backup"
|
||||||
|
ticket.get("opendiscord:category").value = backupCategory.id
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
//use default category
|
||||||
|
channel.setParent(normalCategory,{lockPermissions:false})
|
||||||
|
ticket.get("opendiscord:category-mode").value = "normal"
|
||||||
|
ticket.get("opendiscord:category").value = normalCategory.id
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}catch(e){
|
||||||
|
opendiscord.log("Unable to move ticket to 'reopened category'!","error",[
|
||||||
|
{key:"channel",value:"#"+channel.name},
|
||||||
|
{key:"channelid",value:channel.id,hidden:true},
|
||||||
|
])
|
||||||
|
opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException"))
|
||||||
}
|
}
|
||||||
}catch(e){
|
}else{
|
||||||
opendiscord.log("Unable to move ticket to 'reopened category'!","error",[
|
channel.setParent(null,{lockPermissions:false})
|
||||||
{key:"channel",value:"#"+channel.name},
|
ticket.get("opendiscord:category-mode").value = null
|
||||||
{key:"channelid",value:channel.id,hidden:true},
|
ticket.get("opendiscord:category").value = null
|
||||||
])
|
|
||||||
opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException"))
|
|
||||||
}
|
}
|
||||||
}else{
|
|
||||||
channel.setParent(null,{lockPermissions:false})
|
|
||||||
ticket.get("opendiscord:category-mode").value = null
|
|
||||||
ticket.get("opendiscord:category").value = null
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//update permissions
|
//update permissions
|
||||||
|
|||||||
@@ -22,54 +22,56 @@ export const registerActions = async () => {
|
|||||||
ticket.get("opendiscord:busy").value = true
|
ticket.get("opendiscord:busy").value = true
|
||||||
|
|
||||||
//update category
|
//update category
|
||||||
const channelCategory = ticket.option.get("opendiscord:channel-category").value
|
if (params.allowCategoryChange){
|
||||||
const channelBackupCategory = ticket.option.get("opendiscord:channel-category-backup").value
|
const channelCategory = ticket.option.get("opendiscord:channel-category").value
|
||||||
if (channelCategory !== ""){
|
const channelBackupCategory = ticket.option.get("opendiscord:channel-category-backup").value
|
||||||
//category enabled
|
if (channelCategory !== ""){
|
||||||
try {
|
//category enabled
|
||||||
const normalCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelCategory)
|
try {
|
||||||
if (!normalCategory){
|
const normalCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelCategory)
|
||||||
//default category was not found
|
if (!normalCategory){
|
||||||
opendiscord.log("Ticket Unclaiming Error: Unable to find category! #1","error",[
|
//default category was not found
|
||||||
{key:"categoryid",value:channelCategory},
|
opendiscord.log("Ticket Unclaiming Error: Unable to find category! #1","error",[
|
||||||
{key:"backup",value:"false"}
|
{key:"categoryid",value:channelCategory},
|
||||||
])
|
{key:"backup",value:"false"}
|
||||||
}else{
|
])
|
||||||
//default category was found
|
|
||||||
if (normalCategory.children.cache.size >= 49 && channelBackupCategory != ""){
|
|
||||||
//use backup category
|
|
||||||
const backupCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelBackupCategory)
|
|
||||||
if (!backupCategory){
|
|
||||||
//default category was not found
|
|
||||||
opendiscord.log("Ticket Unclaiming Error: Unable to find category! #2","error",[
|
|
||||||
{key:"categoryid",value:channelBackupCategory},
|
|
||||||
{key:"backup",value:"true"}
|
|
||||||
])
|
|
||||||
}else{
|
|
||||||
//use backup category
|
|
||||||
channel.setParent(backupCategory,{lockPermissions:false})
|
|
||||||
ticket.get("opendiscord:category-mode").value = "backup"
|
|
||||||
ticket.get("opendiscord:category").value = backupCategory.id
|
|
||||||
}
|
|
||||||
}else{
|
}else{
|
||||||
//use default category
|
//default category was found
|
||||||
channel.setParent(normalCategory,{lockPermissions:false})
|
if (normalCategory.children.cache.size >= 49 && channelBackupCategory != ""){
|
||||||
ticket.get("opendiscord:category-mode").value = "normal"
|
//use backup category
|
||||||
ticket.get("opendiscord:category").value = normalCategory.id
|
const backupCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelBackupCategory)
|
||||||
|
if (!backupCategory){
|
||||||
|
//default category was not found
|
||||||
|
opendiscord.log("Ticket Unclaiming Error: Unable to find category! #2","error",[
|
||||||
|
{key:"categoryid",value:channelBackupCategory},
|
||||||
|
{key:"backup",value:"true"}
|
||||||
|
])
|
||||||
|
}else{
|
||||||
|
//use backup category
|
||||||
|
channel.setParent(backupCategory,{lockPermissions:false})
|
||||||
|
ticket.get("opendiscord:category-mode").value = "backup"
|
||||||
|
ticket.get("opendiscord:category").value = backupCategory.id
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
//use default category
|
||||||
|
channel.setParent(normalCategory,{lockPermissions:false})
|
||||||
|
ticket.get("opendiscord:category-mode").value = "normal"
|
||||||
|
ticket.get("opendiscord:category").value = normalCategory.id
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}catch(e){
|
||||||
|
opendiscord.log("Unable to move ticket to 'unclaimed category'!","error",[
|
||||||
|
{key:"channel",value:"#"+channel.name},
|
||||||
|
{key:"channelid",value:channel.id,hidden:true}
|
||||||
|
])
|
||||||
|
opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException"))
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
}catch(e){
|
channel.setParent(null,{lockPermissions:false})
|
||||||
opendiscord.log("Unable to move ticket to 'unclaimed category'!","error",[
|
ticket.get("opendiscord:category-mode").value = null
|
||||||
{key:"channel",value:"#"+channel.name},
|
ticket.get("opendiscord:category").value = null
|
||||||
{key:"channelid",value:channel.id,hidden:true}
|
|
||||||
])
|
|
||||||
opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException"))
|
|
||||||
}
|
}
|
||||||
}else{
|
|
||||||
channel.setParent(null,{lockPermissions:false})
|
|
||||||
ticket.get("opendiscord:category-mode").value = null
|
|
||||||
ticket.get("opendiscord:category").value = null
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//update ticket message
|
//update ticket message
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ export interface ODActionManagerIds_Default {
|
|||||||
},
|
},
|
||||||
"opendiscord:close-ticket":{
|
"opendiscord:close-ticket":{
|
||||||
source:"slash"|"text"|"ticket-message"|"reopen-message"|"autoclose"|"other",
|
source:"slash"|"text"|"ticket-message"|"reopen-message"|"autoclose"|"other",
|
||||||
params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean},
|
params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean,allowCategoryChange?:boolean},
|
||||||
result:{},
|
result:{},
|
||||||
workers:"opendiscord:close-ticket"|"opendiscord:discord-logs"|"opendiscord:logs"
|
workers:"opendiscord:close-ticket"|"opendiscord:discord-logs"|"opendiscord:logs"
|
||||||
},
|
},
|
||||||
@@ -48,19 +48,19 @@ export interface ODActionManagerIds_Default {
|
|||||||
},
|
},
|
||||||
"opendiscord:reopen-ticket":{
|
"opendiscord:reopen-ticket":{
|
||||||
source:"slash"|"text"|"ticket-message"|"close-message"|"autoclose-message"|"other",
|
source:"slash"|"text"|"ticket-message"|"close-message"|"autoclose-message"|"other",
|
||||||
params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean},
|
params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean,allowCategoryChange?:boolean},
|
||||||
result:{},
|
result:{},
|
||||||
workers:"opendiscord:reopen-ticket"|"opendiscord:discord-logs"|"opendiscord:logs"
|
workers:"opendiscord:reopen-ticket"|"opendiscord:discord-logs"|"opendiscord:logs"
|
||||||
},
|
},
|
||||||
"opendiscord:claim-ticket":{
|
"opendiscord:claim-ticket":{
|
||||||
source:"slash"|"text"|"ticket-message"|"unclaim-message"|"other",
|
source:"slash"|"text"|"ticket-message"|"unclaim-message"|"other",
|
||||||
params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean},
|
params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean,allowCategoryChange?:boolean},
|
||||||
result:{},
|
result:{},
|
||||||
workers:"opendiscord:claim-ticket"|"opendiscord:discord-logs"|"opendiscord:logs"
|
workers:"opendiscord:claim-ticket"|"opendiscord:discord-logs"|"opendiscord:logs"
|
||||||
},
|
},
|
||||||
"opendiscord:unclaim-ticket":{
|
"opendiscord:unclaim-ticket":{
|
||||||
source:"slash"|"text"|"ticket-message"|"claim-message"|"other",
|
source:"slash"|"text"|"ticket-message"|"claim-message"|"other",
|
||||||
params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean},
|
params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean,allowCategoryChange?:boolean},
|
||||||
result:{},
|
result:{},
|
||||||
workers:"opendiscord:unclaim-ticket"|"opendiscord:discord-logs"|"opendiscord:logs"
|
workers:"opendiscord:unclaim-ticket"|"opendiscord:discord-logs"|"opendiscord:logs"
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user