v2.5.1
This commit is contained in:
@@ -7,7 +7,7 @@ make a ticket in our server to start!
|
|||||||
*if you translate, you will come in the credits*
|
*if you translate, you will come in the credits*
|
||||||
|
|
||||||
# open-ticket
|
# open-ticket
|
||||||
[](https://discord.com/invite/26vT9wt3n3) [](https://github.com/DJj123dj/open-ticket/releases/tag/v2.5.0) [](#packages) [](https://github.com/DJj123dj/open-ticket/blob/main/LICENSE)
|
[](https://discord.com/invite/26vT9wt3n3) [](https://github.com/DJj123dj/open-ticket/releases/tag/v2.5.1) [](#packages) [](https://github.com/DJj123dj/open-ticket/blob/main/LICENSE)
|
||||||
|
|
||||||
This is an open-source discord ticket bot, you can configure it and it comes with cool features like transcripts & custom options!
|
This is an open-source discord ticket bot, you can configure it and it comes with cool features like transcripts & custom options!
|
||||||
|
|
||||||
@@ -20,10 +20,11 @@ This is an open-source discord ticket bot, you can configure it and it comes wit
|
|||||||
- Sanke: for translation & new ideas
|
- Sanke: for translation & new ideas
|
||||||
- Everyone that reported a bug
|
- Everyone that reported a bug
|
||||||
#### And our translators!
|
#### And our translators!
|
||||||
- ExothDE: for translation
|
- ExothDE
|
||||||
- 1x1: for translation
|
- 1x1
|
||||||
- R0JO: for translation
|
- R0JO
|
||||||
- t0miiis for translation
|
- t0miiis
|
||||||
|
- josuens14
|
||||||
|
|
||||||
## features
|
## features
|
||||||
- discord interaction buttons
|
- discord interaction buttons
|
||||||
@@ -68,7 +69,7 @@ if there are any errors, you can open an **issue on github** or **contact me in
|
|||||||
|
|
||||||
### config
|
### config
|
||||||
Our config documentation is moved to another file:
|
Our config documentation is moved to another file:
|
||||||
[click here to view](https://www.github.com/DJj123dj/open-ticket/wiki/config-v2.5.0)
|
[click here to view](https://www.github.com/DJj123dj/open-ticket/wiki/config-v2.5.1)
|
||||||
|
|
||||||
### intents & permissions
|
### intents & permissions
|
||||||
In the discord developer portal in the "bot" panel you will find 3 switches under the title "Gateaway Intents". The following switches should always be turned on
|
In the discord developer portal in the "bot" panel you will find 3 switches under the title "Gateaway Intents". The following switches should always be turned on
|
||||||
@@ -80,7 +81,7 @@ You can also configure your own permissions
|
|||||||
|
|
||||||
## information
|
## information
|
||||||
|
|
||||||
_v2.5.0 stable_
|
_v2.5.1 stable_
|
||||||
|
|
||||||
changelog: [click here](https://www.github.com/DJj123dj/open-ticket/wiki/Changelog)
|
changelog: [click here](https://www.github.com/DJj123dj/open-ticket/wiki/Changelog)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -53,7 +53,7 @@ module.exports = () => {
|
|||||||
if (!interaction.guild) return
|
if (!interaction.guild) return
|
||||||
if (!permsChecker.command(interaction.user.id,interaction.guild.id)){
|
if (!permsChecker.command(interaction.user.id,interaction.guild.id)){
|
||||||
permsChecker.sendUserNoPerms(interaction.user)
|
permsChecker.sendUserNoPerms(interaction.user)
|
||||||
return interaction.reply({embeds:[bot.errorLog.noPermsDelete]})
|
return interaction.reply({embeds:[bot.errorLog.noPermsDelete(interaction.user)]})
|
||||||
}
|
}
|
||||||
|
|
||||||
interaction.channel.messages.fetchPinned().then(msglist => {
|
interaction.channel.messages.fetchPinned().then(msglist => {
|
||||||
|
|||||||
+1
-1
@@ -79,7 +79,7 @@
|
|||||||
"description":"You can click one of the buttons below!",
|
"description":"You can click one of the buttons below!",
|
||||||
|
|
||||||
"enableFooter":false,
|
"enableFooter":false,
|
||||||
"footer":"Open Ticket v2.5.0 - I'm a footer!",
|
"footer":"Open Ticket v2.5.1 - I'm a footer!",
|
||||||
|
|
||||||
"enableThumbnail":false,
|
"enableThumbnail":false,
|
||||||
"thumbnail":"https://www.example.com/catmemes/cat.png",
|
"thumbnail":"https://www.example.com/catmemes/cat.png",
|
||||||
|
|||||||
@@ -1,331 +0,0 @@
|
|||||||
const discord = require('discord.js')
|
|
||||||
const bot = require('../index')
|
|
||||||
const client = bot.client
|
|
||||||
const config = bot.config
|
|
||||||
const l = bot.language
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = () => {
|
|
||||||
//closebar
|
|
||||||
var closeBar = new discord.ActionRowBuilder()
|
|
||||||
.addComponents(
|
|
||||||
new discord.ButtonBuilder()
|
|
||||||
.setCustomId("closeTicketTrue")
|
|
||||||
.setDisabled(false)
|
|
||||||
.setStyle(discord.ButtonStyle.Secondary)
|
|
||||||
.setEmoji("✅")
|
|
||||||
)
|
|
||||||
.addComponents(
|
|
||||||
new discord.ButtonBuilder()
|
|
||||||
.setCustomId("closeTicketFalse")
|
|
||||||
.setDisabled(false)
|
|
||||||
.setStyle(discord.ButtonStyle.Secondary)
|
|
||||||
.setEmoji("❌")
|
|
||||||
)
|
|
||||||
var deleteBar = new discord.ActionRowBuilder()
|
|
||||||
.addComponents(
|
|
||||||
new discord.ButtonBuilder()
|
|
||||||
.setCustomId("deleteTicketTrue")
|
|
||||||
.setDisabled(false)
|
|
||||||
.setStyle(discord.ButtonStyle.Secondary)
|
|
||||||
.setEmoji("✅")
|
|
||||||
)
|
|
||||||
.addComponents(
|
|
||||||
new discord.ButtonBuilder()
|
|
||||||
.setCustomId("deleteTicketFalse")
|
|
||||||
.setDisabled(false)
|
|
||||||
.setStyle(discord.ButtonStyle.Secondary)
|
|
||||||
.setEmoji("❌")
|
|
||||||
)
|
|
||||||
var deleteBar1 = new discord.ActionRowBuilder()
|
|
||||||
.addComponents(
|
|
||||||
new discord.ButtonBuilder()
|
|
||||||
.setCustomId("deleteTicketTrue1")
|
|
||||||
.setDisabled(false)
|
|
||||||
.setStyle(discord.ButtonStyle.Secondary)
|
|
||||||
.setEmoji("✅")
|
|
||||||
)
|
|
||||||
.addComponents(
|
|
||||||
new discord.ButtonBuilder()
|
|
||||||
.setCustomId("deleteTicketFalse1")
|
|
||||||
.setDisabled(false)
|
|
||||||
.setStyle(discord.ButtonStyle.Secondary)
|
|
||||||
.setEmoji("❌")
|
|
||||||
)
|
|
||||||
//closebutton
|
|
||||||
var closeRowNormal = new discord.ActionRowBuilder()
|
|
||||||
.addComponents(
|
|
||||||
new discord.ButtonBuilder()
|
|
||||||
.setCustomId("closeTicket")
|
|
||||||
.setDisabled(false)
|
|
||||||
.setStyle(discord.ButtonStyle.Secondary)
|
|
||||||
.setLabel(l.buttons.close)
|
|
||||||
.setEmoji("🔒")
|
|
||||||
)
|
|
||||||
.addComponents(
|
|
||||||
new discord.ButtonBuilder()
|
|
||||||
.setCustomId("deleteTicket")
|
|
||||||
.setDisabled(false)
|
|
||||||
.setStyle(discord.ButtonStyle.Danger)
|
|
||||||
.setLabel(l.buttons.delete)
|
|
||||||
.setEmoji("✖️")
|
|
||||||
)
|
|
||||||
var closeRowClosed = new discord.ActionRowBuilder()
|
|
||||||
.addComponents(
|
|
||||||
new discord.ButtonBuilder()
|
|
||||||
.setCustomId("deleteTicket1")
|
|
||||||
.setDisabled(false)
|
|
||||||
.setStyle(discord.ButtonStyle.Danger)
|
|
||||||
.setLabel(l.buttons.delete)
|
|
||||||
.setEmoji("✖️")
|
|
||||||
)
|
|
||||||
.addComponents(
|
|
||||||
new discord.ButtonBuilder()
|
|
||||||
.setCustomId("sendTranscript")
|
|
||||||
.setDisabled(false)
|
|
||||||
.setStyle(discord.ButtonStyle.Secondary)
|
|
||||||
.setLabel(l.buttons.sendTranscript)
|
|
||||||
.setEmoji("📄")
|
|
||||||
)
|
|
||||||
.addComponents(
|
|
||||||
new discord.ButtonBuilder()
|
|
||||||
.setCustomId("reopenTicket")
|
|
||||||
.setDisabled(false)
|
|
||||||
.setStyle(discord.ButtonStyle.Success)
|
|
||||||
.setLabel(l.buttons.reopen)
|
|
||||||
.setEmoji("✔")
|
|
||||||
)
|
|
||||||
|
|
||||||
var closeRowDisabled = new discord.ActionRowBuilder()
|
|
||||||
.addComponents(
|
|
||||||
new discord.ButtonBuilder()
|
|
||||||
.setCustomId("closeTicket")
|
|
||||||
.setDisabled(true)
|
|
||||||
.setStyle(discord.ButtonStyle.Secondary)
|
|
||||||
.setLabel(l.buttons.close)
|
|
||||||
.setEmoji("🔒")
|
|
||||||
)
|
|
||||||
.addComponents(
|
|
||||||
new discord.ButtonBuilder()
|
|
||||||
.setCustomId("deleteTicket")
|
|
||||||
.setDisabled(true)
|
|
||||||
.setStyle(discord.ButtonStyle.Danger)
|
|
||||||
.setLabel(l.buttons.delete)
|
|
||||||
.setEmoji("✖️")
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
//NORMAL CLOSE
|
|
||||||
client.on("interactionCreate",interaction => {
|
|
||||||
if (!interaction.isButton()) return
|
|
||||||
if (interaction.customId != "closeTicket") return
|
|
||||||
|
|
||||||
interaction.deferUpdate()
|
|
||||||
interaction.message.edit({components:[closeBar]})
|
|
||||||
|
|
||||||
})
|
|
||||||
client.on("interactionCreate",interaction => {
|
|
||||||
if (!interaction.isButton()) return
|
|
||||||
if (interaction.customId != "closeTicketFalse") return
|
|
||||||
|
|
||||||
interaction.deferUpdate()
|
|
||||||
interaction.message.edit({components:[closeRowNormal]})
|
|
||||||
})
|
|
||||||
|
|
||||||
var closeTicketButtonChecker = false
|
|
||||||
client.on("interactionCreate",async interaction => {
|
|
||||||
if (!interaction.isButton()) return
|
|
||||||
if (interaction.customId != "closeTicketTrue") return
|
|
||||||
|
|
||||||
interaction.deferUpdate()
|
|
||||||
|
|
||||||
if (closeTicketButtonChecker == true) return
|
|
||||||
closeTicketButtonChecker = true
|
|
||||||
|
|
||||||
if (config.system.closeMode == "adminonly"){
|
|
||||||
const permsmember = client.guilds.cache.find(g => g.id == interaction.guild.id).members.cache.find(m => m.id == interaction.member.id)
|
|
||||||
if (config.main_adminroles.some((item)=>{return permsmember.roles.cache.has(item)}) == false && !permsmember.permissions.has("Administrator") && !permsmember.permissions.has("ManageGuild")){
|
|
||||||
try {
|
|
||||||
return msg.member.send({embeds:[bot.errorLog.noPermsMessage]})
|
|
||||||
}catch{
|
|
||||||
return msg.channel.send({embeds:[bot.errorLog.noPermsMessage]})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
interaction.message.edit({components:[closeRowDisabled]})
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @type {String}
|
|
||||||
*/
|
|
||||||
const name = interaction.channel.name
|
|
||||||
var prefix = ""
|
|
||||||
const tickets = config.options
|
|
||||||
tickets.forEach((ticket) => {
|
|
||||||
if (name.startsWith(ticket.channelprefix)){
|
|
||||||
prefix = ticket.channelprefix
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
await require("./ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"close")
|
|
||||||
closeTicketButtonChecker = false
|
|
||||||
})
|
|
||||||
|
|
||||||
var closeTicket1ButtonChecker = false
|
|
||||||
client.on("interactionCreate",async interaction => {
|
|
||||||
if (!interaction.isButton()) return
|
|
||||||
if (interaction.customId != "closeTicketTrue1") return
|
|
||||||
|
|
||||||
interaction.deferUpdate()
|
|
||||||
|
|
||||||
if (closeTicket1ButtonChecker == true) return
|
|
||||||
closeTicket1ButtonChecker = true
|
|
||||||
|
|
||||||
if (config.system.closeMode == "adminonly"){
|
|
||||||
const permsmember = client.guilds.cache.find(g => g.id == interaction.guild.id).members.cache.find(m => m.id == interaction.member.id)
|
|
||||||
if (config.main_adminroles.some((item)=>{return permsmember.roles.cache.has(item)}) == false && !permsmember.permissions.has("Administrator") && !permsmember.permissions.has("ManageGuild")){
|
|
||||||
try {
|
|
||||||
return interaction.member.send({embeds:[bot.errorLog.noPermsMessage]})
|
|
||||||
}catch{
|
|
||||||
return interaction.channel.send({embeds:[bot.errorLog.noPermsMessage]})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const closedButtonDisabled = new discord.ActionRowBuilder()
|
|
||||||
.addComponents([
|
|
||||||
new discord.ButtonBuilder()
|
|
||||||
.setCustomId("closeTicketTrue1")
|
|
||||||
.setDisabled(true)
|
|
||||||
.setStyle(discord.ButtonStyle.Secondary)
|
|
||||||
.setEmoji("🔒")
|
|
||||||
])
|
|
||||||
interaction.message.edit({components:[closedButtonDisabled]})
|
|
||||||
|
|
||||||
interaction.channel.messages.fetchPinned().then((messages) => {
|
|
||||||
messages.first().edit({components:[closeRowDisabled]})
|
|
||||||
})
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @type {String}
|
|
||||||
*/
|
|
||||||
const name = interaction.channel.name
|
|
||||||
var prefix = ""
|
|
||||||
const tickets = config.options
|
|
||||||
tickets.forEach((ticket) => {
|
|
||||||
if (name.startsWith(ticket.channelprefix)){
|
|
||||||
prefix = ticket.channelprefix
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
await require("./ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"close")
|
|
||||||
closeTicket1ButtonChecker = false
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
//NORMAL DELETE
|
|
||||||
client.on("interactionCreate",interaction => {
|
|
||||||
if (!interaction.isButton()) return
|
|
||||||
if (interaction.customId != "deleteTicket") return
|
|
||||||
|
|
||||||
interaction.deferUpdate()
|
|
||||||
interaction.message.edit({components:[deleteBar]})
|
|
||||||
|
|
||||||
})
|
|
||||||
client.on("interactionCreate",interaction => {
|
|
||||||
if (!interaction.isButton()) return
|
|
||||||
if (interaction.customId != "deleteTicketFalse") return
|
|
||||||
|
|
||||||
interaction.deferUpdate()
|
|
||||||
interaction.message.edit({components:[closeRowNormal]})
|
|
||||||
})
|
|
||||||
var deleteTicketButtonChecker = false
|
|
||||||
client.on("interactionCreate",async interaction => {
|
|
||||||
if (!interaction.isButton()) return
|
|
||||||
if (interaction.customId != "deleteTicketTrue") return
|
|
||||||
|
|
||||||
interaction.deferUpdate()
|
|
||||||
|
|
||||||
if (deleteTicketButtonChecker == true) return
|
|
||||||
deleteTicketButtonChecker = true
|
|
||||||
|
|
||||||
const permsmember = client.guilds.cache.find(g => g.id == interaction.guild.id).members.cache.find(m => m.id == interaction.member.id)
|
|
||||||
if (config.main_adminroles.some((item)=>{return permsmember.roles.cache.has(item)}) == false && !permsmember.permissions.has("Administrator") && !permsmember.permissions.has("ManageGuild")){
|
|
||||||
try {
|
|
||||||
return interaction.member.send({embeds:[bot.errorLog.noPermsMessage]})
|
|
||||||
}catch{
|
|
||||||
return interaction.channel.send({embeds:[bot.errorLog.noPermsMessage]})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @type {String}
|
|
||||||
*/
|
|
||||||
const name = interaction.channel.name
|
|
||||||
var prefix = ""
|
|
||||||
const tickets = config.options
|
|
||||||
tickets.forEach((ticket) => {
|
|
||||||
if (name.startsWith(ticket.channelprefix)){
|
|
||||||
prefix = ticket.channelprefix
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
await require("./ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"delete")
|
|
||||||
deleteTicketButtonChecker = false
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//CLOSED DELETE
|
|
||||||
client.on("interactionCreate",interaction => {
|
|
||||||
if (!interaction.isButton()) return
|
|
||||||
if (interaction.customId != "deleteTicket1") return
|
|
||||||
|
|
||||||
interaction.deferUpdate()
|
|
||||||
interaction.message.edit({components:[deleteBar1]})
|
|
||||||
|
|
||||||
})
|
|
||||||
client.on("interactionCreate",interaction => {
|
|
||||||
if (!interaction.isButton()) return
|
|
||||||
if (interaction.customId != "deleteTicketFalse1") return
|
|
||||||
|
|
||||||
interaction.deferUpdate()
|
|
||||||
interaction.message.edit({components:[closeRowClosed]})
|
|
||||||
})
|
|
||||||
|
|
||||||
var deleteTicket1ButtonChecker = false
|
|
||||||
client.on("interactionCreate",async interaction => {
|
|
||||||
if (!interaction.isButton()) return
|
|
||||||
if (interaction.customId != "deleteTicketTrue1") return
|
|
||||||
|
|
||||||
interaction.deferUpdate()
|
|
||||||
|
|
||||||
if (deleteTicket1ButtonChecker == true) return
|
|
||||||
deleteTicket1ButtonChecker = true
|
|
||||||
|
|
||||||
const permsmember = client.guilds.cache.find(g => g.id == interaction.guild.id).members.cache.find(m => m.id == interaction.member.id)
|
|
||||||
if (config.main_adminroles.some((item)=>{return permsmember.roles.cache.has(item)}) == false && !permsmember.permissions.has("Administrator") && !permsmember.permissions.has("ManageGuild")){
|
|
||||||
try {
|
|
||||||
return interaction.member.send({embeds:[bot.errorLog.noPermsMessage]})
|
|
||||||
}catch{
|
|
||||||
return interaction.channel.send({embeds:[bot.errorLog.noPermsMessage]})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @type {String}
|
|
||||||
*/
|
|
||||||
const name = interaction.channel.name
|
|
||||||
var prefix = ""
|
|
||||||
const tickets = config.options
|
|
||||||
tickets.forEach((ticket) => {
|
|
||||||
if (name.startsWith(ticket.channelprefix)){
|
|
||||||
prefix = ticket.channelprefix
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
await require("./ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"deletenotranscript")
|
|
||||||
deleteTicket1ButtonChecker = false
|
|
||||||
})
|
|
||||||
}
|
|
||||||
+10
-2
@@ -10,15 +10,23 @@ const loadChalk = async () => {
|
|||||||
const embed = discord.EmbedBuilder
|
const embed = discord.EmbedBuilder
|
||||||
const c = discord.Colors
|
const c = discord.Colors
|
||||||
|
|
||||||
exports.noPermsMessage = new embed()
|
/**@param {discord.User} user*/
|
||||||
|
exports.noPermsMessage = (user) => {
|
||||||
|
return new embed()
|
||||||
.setColor(c.Red)
|
.setColor(c.Red)
|
||||||
.setTitle(":x: "+l.errors.noPermsTitle)
|
.setTitle(":x: "+l.errors.noPermsTitle)
|
||||||
.setDescription(l.errors.noPermsDescription)
|
.setDescription(l.errors.noPermsDescription)
|
||||||
|
.setFooter({iconURL:user.displayAvatarURL(),text:user.tag})
|
||||||
|
}
|
||||||
|
|
||||||
exports.noPermsDelete = new embed()
|
/**@param {discord.User} user*/
|
||||||
|
exports.noPermsDelete = (user) => {
|
||||||
|
return new embed()
|
||||||
.setColor(c.Red)
|
.setColor(c.Red)
|
||||||
.setTitle(":x: "+l.errors.noPermsTitle)
|
.setTitle(":x: "+l.errors.noPermsTitle)
|
||||||
.setDescription(l.errors.noPermsDelete)
|
.setDescription(l.errors.noPermsDelete)
|
||||||
|
.setFooter({iconURL:user.displayAvatarURL(),text:user.tag})
|
||||||
|
}
|
||||||
|
|
||||||
/**@param {String} message */
|
/**@param {String} message */
|
||||||
exports.invalidArgsMessage = (message) => {
|
exports.invalidArgsMessage = (message) => {
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ module.exports = () => {
|
|||||||
if (config.system.closeMode == "adminonly"){
|
if (config.system.closeMode == "adminonly"){
|
||||||
if (!permissionChecker.command(interaction.user.id,interaction.guild.id)){
|
if (!permissionChecker.command(interaction.user.id,interaction.guild.id)){
|
||||||
if (!permissionChecker.sendUserNoPerms(interaction.user)){
|
if (!permissionChecker.sendUserNoPerms(interaction.user)){
|
||||||
permissionChecker.sendChannelNoPerms(interaction.channel)
|
permissionChecker.sendChannelNoPerms(interaction.channel,interaction.user)
|
||||||
}
|
}
|
||||||
interaction.message.edit({components:[firstcomponents]})
|
interaction.message.edit({components:[firstcomponents]})
|
||||||
closeTicketButtonChecker = false
|
closeTicketButtonChecker = false
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ module.exports = () => {
|
|||||||
|
|
||||||
if (!permissionChecker.command(interaction.user.id,interaction.guild.id)){
|
if (!permissionChecker.command(interaction.user.id,interaction.guild.id)){
|
||||||
if (!permissionChecker.sendUserNoDelete(interaction.user)){
|
if (!permissionChecker.sendUserNoDelete(interaction.user)){
|
||||||
permissionChecker.sendChannelNoDelete(interaction.channel)
|
permissionChecker.sendChannelNoDelete(interaction.channel,interaction.user)
|
||||||
}
|
}
|
||||||
await interaction.message.edit({components:[firstcomponents]})
|
await interaction.message.edit({components:[firstcomponents]})
|
||||||
deleteTicketButtonChecker = false
|
deleteTicketButtonChecker = false
|
||||||
@@ -70,10 +70,9 @@ module.exports = () => {
|
|||||||
|
|
||||||
const firstcomponents = bot.buttons.close.closeCommandRow
|
const firstcomponents = bot.buttons.close.closeCommandRow
|
||||||
|
|
||||||
console.log("closed with NO TRANSCRIPT")
|
|
||||||
if (!permissionChecker.command(interaction.user.id,interaction.guild.id)){
|
if (!permissionChecker.command(interaction.user.id,interaction.guild.id)){
|
||||||
if (!permissionChecker.sendUserNoDelete(interaction.user)){
|
if (!permissionChecker.sendUserNoDelete(interaction.user)){
|
||||||
permissionChecker.sendChannelNoDelete(interaction.channel)
|
permissionChecker.sendChannelNoDelete(interaction.channel,interaction.user)
|
||||||
}
|
}
|
||||||
await interaction.message.edit({components:[firstcomponents]})
|
await interaction.message.edit({components:[firstcomponents]})
|
||||||
deleteTicketButtonChecker1 = false
|
deleteTicketButtonChecker1 = false
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ exports.NEWcloseTicket = async (member,channel,prefix,mode,reason,nomessage) =>
|
|||||||
const chalk = await (await import("chalk")).default
|
const chalk = await (await import("chalk")).default
|
||||||
const channelmessages = await channel.messages.fetch()
|
const channelmessages = await channel.messages.fetch()
|
||||||
|
|
||||||
const newReason = reason ? reason : "none"
|
const newReason = reason ? reason : l.messages.none
|
||||||
|
|
||||||
//start code
|
//start code
|
||||||
|
|
||||||
@@ -298,7 +298,7 @@ exports.NEWcloseTicket = async (member,channel,prefix,mode,reason,nomessage) =>
|
|||||||
|
|
||||||
if (enableTranscript == true && mode != "deletenotranscript"){
|
if (enableTranscript == true && mode != "deletenotranscript"){
|
||||||
|
|
||||||
const transcriptReason = (mode == "close") ? "**reason:** "+newReason : "**reason:** none"
|
const transcriptReason = (mode == "close") ? "**"+l.messages.reason+":** "+newReason : "**"+l.messages.reason+":** none"
|
||||||
|
|
||||||
if (config.system.enable_transcript || config.system.enable_DM_transcript){
|
if (config.system.enable_transcript || config.system.enable_DM_transcript){
|
||||||
var fileattachment = await require("./transcript").createTranscript(channelmessages,channel)
|
var fileattachment = await require("./transcript").createTranscript(channelmessages,channel)
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ exports.command = (memberid,guildid) => {
|
|||||||
*/
|
*/
|
||||||
exports.sendUserNoPerms = (user) => {
|
exports.sendUserNoPerms = (user) => {
|
||||||
try {
|
try {
|
||||||
user.send({embeds:[bot.errorLog.noPermsMessage]})
|
user.send({embeds:[bot.errorLog.noPermsMessage(user)]})
|
||||||
return true
|
return true
|
||||||
}catch{
|
}catch{
|
||||||
return false
|
return false
|
||||||
@@ -54,7 +54,7 @@ exports.sendUserNoPerms = (user) => {
|
|||||||
*/
|
*/
|
||||||
exports.sendUserNoDelete = (user) => {
|
exports.sendUserNoDelete = (user) => {
|
||||||
try {
|
try {
|
||||||
user.send({embeds:[bot.errorLog.noPermsDelete]})
|
user.send({embeds:[bot.errorLog.noPermsDelete(user)]})
|
||||||
return true
|
return true
|
||||||
}catch{
|
}catch{
|
||||||
return false
|
return false
|
||||||
@@ -64,11 +64,12 @@ exports.sendUserNoPerms = (user) => {
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {discord.TextChannel} channel
|
* @param {discord.TextChannel} channel
|
||||||
|
* @param {discord.User} user
|
||||||
* @returns {Boolean}
|
* @returns {Boolean}
|
||||||
*/
|
*/
|
||||||
exports.sendChannelNoPerms = (channel) => {
|
exports.sendChannelNoPerms = (channel,user) => {
|
||||||
try {
|
try {
|
||||||
channel.send({embeds:[bot.errorLog.noPermsMessage]})
|
channel.send({embeds:[bot.errorLog.noPermsMessage(user)]})
|
||||||
return true
|
return true
|
||||||
}catch{
|
}catch{
|
||||||
return false
|
return false
|
||||||
@@ -78,9 +79,10 @@ exports.sendUserNoPerms = (user) => {
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {discord.TextChannel} channel
|
* @param {discord.TextChannel} channel
|
||||||
|
* @param {discord.User} user
|
||||||
* @returns {Boolean}
|
* @returns {Boolean}
|
||||||
*/
|
*/
|
||||||
exports.sendChannelNoTicket = (channel) => {
|
exports.sendChannelNoTicket = (channel,user) => {
|
||||||
try {
|
try {
|
||||||
channel.send({embeds:[bot.errorLog.notInATicket]})
|
channel.send({embeds:[bot.errorLog.notInATicket]})
|
||||||
return true
|
return true
|
||||||
@@ -92,11 +94,12 @@ exports.sendUserNoPerms = (user) => {
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {discord.TextChannel} channel
|
* @param {discord.TextChannel} channel
|
||||||
|
* @param {discord.User} user
|
||||||
* @returns {Boolean}
|
* @returns {Boolean}
|
||||||
*/
|
*/
|
||||||
exports.sendChannelNoDelete = (channel) => {
|
exports.sendChannelNoDelete = (channel,user) => {
|
||||||
try {
|
try {
|
||||||
channel.send({embeds:[bot.errorLog.noPermsDelete]})
|
channel.send({embeds:[bot.errorLog.noPermsDelete(user)]})
|
||||||
return true
|
return true
|
||||||
}catch{
|
}catch{
|
||||||
return false
|
return false
|
||||||
|
|||||||
+14
-14
@@ -3,8 +3,8 @@
|
|||||||
"missingArgsTitle":"¡Argumentos inválidos!",
|
"missingArgsTitle":"¡Argumentos inválidos!",
|
||||||
"missingArgsDescription":"Argumento faltante.",
|
"missingArgsDescription":"Argumento faltante.",
|
||||||
"noPermsTitle":"¡Sin permisos!",
|
"noPermsTitle":"¡Sin permisos!",
|
||||||
"noPermsDescription":"You need the `ADMINISTRATOR` permission or be in the list of allowed roles!",
|
"noPermsDescription":"Necesitas el permiso de `ADMINISTRADOR` o estar en la lista de roles permitidos!",
|
||||||
"noPermsDelete":"Only admins can delete a ticket!",
|
"noPermsDelete":"Solo los administradores pueden eliminar un ticket.!",
|
||||||
"chooseFromListTitle":"ID Invalida",
|
"chooseFromListTitle":"ID Invalida",
|
||||||
"chooseFromListDescription":"Elije una de las ID de abajo:",
|
"chooseFromListDescription":"Elije una de las ID de abajo:",
|
||||||
"boterror":"¡Error del bot!",
|
"boterror":"¡Error del bot!",
|
||||||
@@ -19,18 +19,18 @@
|
|||||||
"somethingWentWrongTranscript":"**¡Algo salió mal al hacer el transcript!**\n¡Prueba en otro momento!"
|
"somethingWentWrongTranscript":"**¡Algo salió mal al hacer el transcript!**\n¡Prueba en otro momento!"
|
||||||
},
|
},
|
||||||
"commands":{
|
"commands":{
|
||||||
"userAddedTitle":"Added {0} to this ticket!",
|
"userAddedTitle":"Se agregó {0} al ticket!",
|
||||||
"userRemovedTitle":"Removed {0} from this ticket!",
|
"userRemovedTitle":"Se eliminó {0} del ticket!",
|
||||||
"renameTitle":"Changed the name to {0}!",
|
"renameTitle":"Cambió el nombre a {0}!",
|
||||||
"closeTitle":"Closed this ticket!",
|
"closeTitle":"Cerró este ticket!",
|
||||||
"deleteTitle":"Deleting this ticket...",
|
"deleteTitle":"Eliminando este ticket...",
|
||||||
"reopenTitle":"Re-Opened this ticket!",
|
"reopenTitle":"Re-abrió este boleto!",
|
||||||
|
|
||||||
"ticketWarning":"The embed is in the message below!",
|
"ticketWarning":"La inserción está en el mensaje a continuación!",
|
||||||
"maxTicketWarning":"**Warning:** _You can only create {0} ticket(s) at a time!_"
|
"maxTicketWarning":"**Advertencia:** _Solo puedes crear {0} ticket(s) a la vez!_"
|
||||||
},
|
},
|
||||||
"helpMenu":{
|
"helpMenu":{
|
||||||
"title":"Available Commands:",
|
"title":"Comandos disponibles:",
|
||||||
"header1":"**¡Dirígete a {0} para crear un nuevo ticket!**\n\n",
|
"header1":"**¡Dirígete a {0} para crear un nuevo ticket!**\n\n",
|
||||||
"header2":"**¡Ejecuta el comando `/new` o `/ticket` para crear un ticket!**\n\n",
|
"header2":"**¡Ejecuta el comando `/new` o `/ticket` para crear un ticket!**\n\n",
|
||||||
|
|
||||||
@@ -66,10 +66,10 @@
|
|||||||
"newTranscriptTitle":"¡Un nuevo transcript está aquí!",
|
"newTranscriptTitle":"¡Un nuevo transcript está aquí!",
|
||||||
"hereIsTheTranscript":"Aquí está el transcript:",
|
"hereIsTheTranscript":"Aquí está el transcript:",
|
||||||
|
|
||||||
"chooseCategory":"elije una categoría:",
|
"chooseCategory":"Elije una categoría:",
|
||||||
"gettingdeleted":"El ticket se está viendo eliminado...",
|
"gettingdeleted":"El ticket se está viendo eliminado...",
|
||||||
|
|
||||||
"none":"none",
|
"none":"Ninguna.",
|
||||||
"reason":"reason"
|
"reason":"Razón"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "open-ticket",
|
"name": "open-ticket",
|
||||||
"version": "2.5.0",
|
"version": "2.5.1",
|
||||||
"description": "This is an open-source discord ticket bot, you can configure it and it comes with cool features like a transcript.",
|
"description": "This is an open-source discord ticket bot, you can configure it and it comes with cool features like a transcript.",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Reference in New Issue
Block a user