@@ -7,7 +7,7 @@ make a ticket in our server to start!
|
||||
*if you translate, you will come in the credits*
|
||||
|
||||
# open-ticket
|
||||
[](https://discord.com/invite/26vT9wt3n3) [](https://github.com/DJj123dj/open-ticket/releases/tag/v2.2.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.3.0) [](#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!
|
||||
|
||||
@@ -61,7 +61,7 @@ if there are any errors, you can open an **issue on github** or **contact me in
|
||||
|
||||
### config
|
||||
Our config documentation is moved to another file:
|
||||
[click here to view](https://www.github.com/DJj123dj/open-ticket/wiki/config-v2.2.0)
|
||||
[click here to view](https://www.github.com/DJj123dj/open-ticket/wiki/config-v2.3.0)
|
||||
|
||||
### 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
|
||||
@@ -73,7 +73,7 @@ You can also configure your own permissions
|
||||
|
||||
## information
|
||||
|
||||
_v2.2.0 stable_
|
||||
_v2.3.0 stable_
|
||||
|
||||
changelog: [click here](https://www.github.com/DJj123dj/open-ticket/wiki/Changelog)
|
||||
|
||||
|
||||
+1
-2
@@ -31,7 +31,7 @@ module.exports = () => {
|
||||
})
|
||||
|
||||
client.on("interactionCreate",(interaction) => {
|
||||
if (!interaction.isCommand()) return
|
||||
if (!interaction.isChatInputCommand()) return
|
||||
if (interaction.commandName != "add") return
|
||||
const user = interaction.options.getUser("user")
|
||||
|
||||
@@ -41,7 +41,6 @@ module.exports = () => {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
interaction.channel.messages.fetchPinned().then(msglist => {
|
||||
var firstmsg = msglist.last()
|
||||
|
||||
|
||||
+7
-7
@@ -15,12 +15,12 @@ module.exports = () => {
|
||||
|
||||
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]})
|
||||
|
||||
const closebutton = new discord.MessageActionRow()
|
||||
const closebutton = new discord.ActionRowBuilder()
|
||||
.addComponents([
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("closeTicketTrue1")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("🔒")
|
||||
])
|
||||
|
||||
@@ -34,7 +34,7 @@ module.exports = () => {
|
||||
})
|
||||
|
||||
client.on("interactionCreate",(interaction) => {
|
||||
if (!interaction.isCommand()) return
|
||||
if (!interaction.isChatInputCommand()) return
|
||||
if (interaction.commandName != "close") return
|
||||
|
||||
interaction.channel.messages.fetchPinned().then(msglist => {
|
||||
@@ -42,12 +42,12 @@ module.exports = () => {
|
||||
|
||||
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
|
||||
|
||||
const closebutton = new discord.MessageActionRow()
|
||||
const closebutton = new discord.ActionRowBuilder()
|
||||
.addComponents([
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("closeTicketTrue1")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("🔒")
|
||||
])
|
||||
|
||||
|
||||
+7
-7
@@ -18,12 +18,12 @@ module.exports = () => {
|
||||
|
||||
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]})
|
||||
|
||||
const closebutton = new discord.MessageActionRow()
|
||||
const closebutton = new discord.ActionRowBuilder()
|
||||
.addComponents([
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("deleteTicketTrue")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("❌")
|
||||
])
|
||||
|
||||
@@ -37,7 +37,7 @@ module.exports = () => {
|
||||
})
|
||||
|
||||
client.on("interactionCreate",(interaction) => {
|
||||
if (!interaction.isCommand()) return
|
||||
if (!interaction.isChatInputCommand()) return
|
||||
if (interaction.commandName != "delete") return
|
||||
|
||||
const permsmember = client.guilds.cache.find(g => g.id == interaction.guild.id).members.cache.find(m => m.id == interaction.member.id)
|
||||
@@ -51,12 +51,12 @@ module.exports = () => {
|
||||
|
||||
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
|
||||
|
||||
const closebutton = new discord.MessageActionRow()
|
||||
const closebutton = new discord.ActionRowBuilder()
|
||||
.addComponents([
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("deleteTicketTrue")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("❌")
|
||||
])
|
||||
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@ const log = bot.errorLog.log
|
||||
const l = bot.language
|
||||
|
||||
module.exports = () => {
|
||||
const helpEmbed = new discord.MessageEmbed()
|
||||
const helpEmbed = new discord.EmbedBuilder()
|
||||
.setColor(config.main_color)
|
||||
.setTitle(l.helpMenu.title)
|
||||
|
||||
@@ -35,7 +35,7 @@ module.exports = () => {
|
||||
})
|
||||
|
||||
client.on("interactionCreate",(interaction) => {
|
||||
if (!interaction.isCommand()) return
|
||||
if (!interaction.isChatInputCommand()) return
|
||||
if (interaction.commandName != "help") return
|
||||
|
||||
interaction.reply({embeds:[helpEmbed]})
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ module.exports = () => {
|
||||
})
|
||||
|
||||
client.on("interactionCreate",(interaction) => {
|
||||
if (!interaction.isCommand()) return
|
||||
if (!interaction.isChatInputCommand()) return
|
||||
if (interaction.commandName != "remove") return
|
||||
const user = interaction.options.getUser("user")
|
||||
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ module.exports = () => {
|
||||
})
|
||||
|
||||
client.on("interactionCreate",(interaction) => {
|
||||
if (!interaction.isCommand()) return
|
||||
if (!interaction.isChatInputCommand()) return
|
||||
if (interaction.commandName != "rename") return
|
||||
|
||||
interaction.channel.messages.fetchPinned().then(msglist => {
|
||||
|
||||
+4
-4
@@ -6,12 +6,12 @@ const log = bot.errorLog.log
|
||||
const l = bot.language
|
||||
|
||||
module.exports = () => {
|
||||
var reopenCommandBar = new discord.MessageActionRow()
|
||||
var reopenCommandBar = new discord.ActionRowBuilder()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("reopenTicket1")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("🔓")
|
||||
)
|
||||
|
||||
@@ -32,7 +32,7 @@ module.exports = () => {
|
||||
})
|
||||
|
||||
client.on("interactionCreate",(interaction) => {
|
||||
if (!interaction.isCommand()) return
|
||||
if (!interaction.isChatInputCommand()) return
|
||||
if (interaction.commandName != "reopen") return
|
||||
|
||||
interaction.channel.messages.fetchPinned().then(msglist => {
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ module.exports = () => {
|
||||
})
|
||||
|
||||
client.on("interactionCreate", (interaction) => {
|
||||
if (!interaction.isCommand()) return
|
||||
if (!interaction.isChatInputCommand()) return
|
||||
if (interaction.commandName != "message") return
|
||||
|
||||
const permsmember = client.guilds.cache.find(g => g.id == interaction.guild.id).members.cache.find(m => m.id == interaction.member.id)
|
||||
|
||||
+1
-1
@@ -79,7 +79,7 @@
|
||||
"name":"Choose Your Ticket",
|
||||
"description":"You can click one of the buttons below!\nYou can also customize all the embeds now!",
|
||||
"enableFooter":true,
|
||||
"footer":"Open Ticket v2.2.0 - I'm a footer!",
|
||||
"footer":"Open Ticket v2.3.0 - I'm a footer!",
|
||||
"enableThumbnail":false,
|
||||
"thumbnail":"https://www.example.com/catmemes/cat.png",
|
||||
"color":"#ffffff",
|
||||
|
||||
+1
-7
@@ -252,14 +252,8 @@ exports.checker = async () => {
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
checkType(config.bot_name,"string","bot_name")
|
||||
if (config.main_color.startsWith("#")){
|
||||
checkHexColor(config.main_color,"main_color")
|
||||
}else{
|
||||
checkEmbedColor(config.main_color,"main_color")
|
||||
}
|
||||
checkDiscord("serverid",config.server_id,"server_id")
|
||||
checkToken(config.auth_token)
|
||||
checkDiscordArray("roleid",config.main_adminroles,"main_adminroles")
|
||||
@@ -267,7 +261,7 @@ exports.checker = async () => {
|
||||
//languagefile
|
||||
checkType(config.languagefile,"string","languagefile")
|
||||
const lf = config.languagefile
|
||||
if (!lf.startsWith("custom") && !lf.startsWith("english") && !lf.startsWith("dutch") && !lf.startsWith("romanian") && !lf.startsWith("german") && !lf.startsWith("arabic")){
|
||||
if (!lf.startsWith("custom") && !lf.startsWith("english") && !lf.startsWith("dutch") && !lf.startsWith("romanian") && !lf.startsWith("german") && !lf.startsWith("arabic") && !lf.startsWith("spanish")){
|
||||
createError("'languagefile' | invalid language, more info in the wiki")
|
||||
}
|
||||
|
||||
|
||||
+35
-35
@@ -7,109 +7,109 @@ const l = bot.language
|
||||
|
||||
module.exports = () => {
|
||||
//closebar
|
||||
var closeBar = new discord.MessageActionRow()
|
||||
var closeBar = new discord.ActionRowBuilder()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("closeTicketTrue")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("✅")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("closeTicketFalse")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("❌")
|
||||
)
|
||||
var deleteBar = new discord.MessageActionRow()
|
||||
var deleteBar = new discord.ActionRowBuilder()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("deleteTicketTrue")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("✅")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("deleteTicketFalse")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("❌")
|
||||
)
|
||||
var deleteBar1 = new discord.MessageActionRow()
|
||||
var deleteBar1 = new discord.ActionRowBuilder()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("deleteTicketTrue1")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("✅")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("deleteTicketFalse1")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("❌")
|
||||
)
|
||||
//closebutton
|
||||
var closeRowNormal = new discord.MessageActionRow()
|
||||
var closeRowNormal = new discord.ActionRowBuilder()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("closeTicket")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setLabel(l.buttons.close)
|
||||
.setEmoji("🔒")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("deleteTicket")
|
||||
.setDisabled(false)
|
||||
.setStyle("DANGER")
|
||||
.setStyle(discord.ButtonStyle.Danger)
|
||||
.setLabel(l.buttons.delete)
|
||||
.setEmoji("✖️")
|
||||
)
|
||||
var closeRowClosed = new discord.MessageActionRow()
|
||||
var closeRowClosed = new discord.ActionRowBuilder()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("deleteTicket1")
|
||||
.setDisabled(false)
|
||||
.setStyle("DANGER")
|
||||
.setStyle(discord.ButtonStyle.Danger)
|
||||
.setLabel(l.buttons.delete)
|
||||
.setEmoji("✖️")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("sendTranscript")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setLabel(l.buttons.sendTranscript)
|
||||
.setEmoji("📄")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("reopenTicket")
|
||||
.setDisabled(false)
|
||||
.setStyle("SUCCESS")
|
||||
.setStyle(discord.ButtonStyle.Success)
|
||||
.setLabel(l.buttons.reopen)
|
||||
.setEmoji("✔")
|
||||
)
|
||||
|
||||
var closeRowDisabled = new discord.MessageActionRow()
|
||||
var closeRowDisabled = new discord.ActionRowBuilder()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("closeTicket")
|
||||
.setDisabled(true)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setLabel(l.buttons.close)
|
||||
.setEmoji("🔒")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("deleteTicket")
|
||||
.setDisabled(true)
|
||||
.setStyle("DANGER")
|
||||
.setStyle(discord.ButtonStyle.Danger)
|
||||
.setLabel(l.buttons.delete)
|
||||
.setEmoji("✖️")
|
||||
)
|
||||
@@ -176,12 +176,12 @@ module.exports = () => {
|
||||
}
|
||||
}
|
||||
|
||||
const closedButtonDisabled = new discord.MessageActionRow()
|
||||
const closedButtonDisabled = new discord.ActionRowBuilder()
|
||||
.addComponents([
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("closeTicketTrue1")
|
||||
.setDisabled(true)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("🔒")
|
||||
])
|
||||
interaction.message.edit({components:[closedButtonDisabled]})
|
||||
|
||||
@@ -7,17 +7,18 @@ const l = bot.language
|
||||
const loadChalk = async () => {
|
||||
return await (await import("chalk")).default
|
||||
}
|
||||
const embed = discord.MessageEmbed
|
||||
const embed = discord.EmbedBuilder
|
||||
const c = discord.Colors
|
||||
|
||||
exports.noPermsMessage = new embed()
|
||||
.setColor("RED")
|
||||
.setColor(c.Red)
|
||||
.setTitle(":x: "+l.errors.noPermsTitle+" :x:")
|
||||
.setDescription(l.errors.noPermsDescription)
|
||||
|
||||
/**@param {String} message */
|
||||
exports.invalidArgsMessage = (message) => {
|
||||
var x = new embed()
|
||||
.setColor("RED")
|
||||
.setColor(c.Red)
|
||||
.setTitle(":x: "+l.errors.missingArgsTitle+" :x:")
|
||||
.setDescription(message)
|
||||
|
||||
@@ -27,7 +28,7 @@ exports.invalidArgsMessage = (message) => {
|
||||
/**@param {String} message */
|
||||
exports.serverError = (message) => {
|
||||
var x = new embed()
|
||||
.setColor("ORANGE")
|
||||
.setColor(c.Orange)
|
||||
.setTitle(":warning: "+l.errors.boterror+" :warning:")
|
||||
.setDescription(message)
|
||||
|
||||
@@ -37,14 +38,14 @@ exports.serverError = (message) => {
|
||||
/**@param {String[]} list */
|
||||
exports.invalidIdChooseFromList = (list) => {
|
||||
var x = new embed()
|
||||
.setColor("RED")
|
||||
.setColor(c.Red)
|
||||
.setTitle(":x: "+l.errors.chooseFromListTitle+" :x:")
|
||||
.setDescription(l.errors.chooseFromListDescription+"\n`"+list.join("`\n`")+"`")
|
||||
return x
|
||||
}
|
||||
|
||||
exports.notInATicket = new embed()
|
||||
.setColor("RED")
|
||||
.setColor(c.Red)
|
||||
.setTitle(":x: "+l.errors.notInTicketTitle+" :x:")
|
||||
.setDescription(l.errors.notInTicketDescription)
|
||||
|
||||
@@ -62,7 +63,7 @@ exports.success = (title,message) => {
|
||||
/**@param {String} message @param {String} title */
|
||||
exports.warning = (title,message) => {
|
||||
var x = new embed()
|
||||
.setColor("ORANGE")
|
||||
.setColor(c.Orange)
|
||||
.setTitle(":warning: "+title+" :warning:")
|
||||
.setDescription(message)
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ else if (config.languagefile.startsWith("german")) localLanguage = require("../l
|
||||
else if (config.languagefile.startsWith("french")) localLanguage = require("../language/french.json")
|
||||
else if (config.languagefile.startsWith("romanian")) localLanguage = require("../language/romanian.json")
|
||||
else if (config.languagefile.startsWith("arabic")) localLanguage = require("../language/arabic.json")
|
||||
else if (config.languagefile.startsWith("spanish")) localLanguage = require("../language/spanish.json")
|
||||
|
||||
const errorLog = async () => {
|
||||
const chalk = await (await import("chalk")).default
|
||||
|
||||
@@ -9,7 +9,7 @@ module.exports = async () => {
|
||||
|
||||
console.log(chalk.red("\nINSTRUCTIONS:\n\n1: Run the command you want to delete in discord.\n2: You get the message 'This command is now deleted!'\n3: There is also a message in the console that says the command is deleted.\n4: reload your discord."))
|
||||
client.on("interactionCreate",(interaction) => {
|
||||
if (!interaction.isCommand()) return console.log("this isn't a command!")
|
||||
if (!interaction.isChatInputCommand()) return console.log("this isn't a command!")
|
||||
|
||||
interaction.reply({content:"This command is now deleted!"})
|
||||
|
||||
|
||||
@@ -4,6 +4,9 @@ const client = require("../../index").client
|
||||
const config = bot.config
|
||||
const getoptions = require("../getoptions")
|
||||
|
||||
const act = discord.ApplicationCommandType
|
||||
const acot = discord.ApplicationCommandOptionType
|
||||
|
||||
module.exports = async () => {
|
||||
const chalk = (await import("chalk")).default
|
||||
const sid = config.server_id
|
||||
@@ -42,10 +45,10 @@ module.exports = async () => {
|
||||
name:"ticket",
|
||||
description:"Create a ticket!",
|
||||
defaultPermission:true,
|
||||
type:"CHAT_INPUT",
|
||||
type:act.ChatInput,
|
||||
options:[
|
||||
{
|
||||
type:"STRING",
|
||||
type:acot.String,
|
||||
name:"type",
|
||||
description:"The type of ticket.",
|
||||
required:true,
|
||||
@@ -61,10 +64,10 @@ module.exports = async () => {
|
||||
name:"new",
|
||||
description:"Create a ticket!",
|
||||
defaultPermission:true,
|
||||
type:"CHAT_INPUT",
|
||||
type:act.ChatInput,
|
||||
options:[
|
||||
{
|
||||
type:"STRING",
|
||||
type:acot.String,
|
||||
name:"type",
|
||||
description:"The type of ticket.",
|
||||
required:true,
|
||||
@@ -81,7 +84,7 @@ module.exports = async () => {
|
||||
name:"help",
|
||||
description:"The help menu",
|
||||
defaultPermission:true,
|
||||
type:"CHAT_INPUT"
|
||||
type:act.ChatInput
|
||||
},sid).then(() => {
|
||||
readystats++
|
||||
|
||||
@@ -92,7 +95,7 @@ module.exports = async () => {
|
||||
name:"close",
|
||||
description:"Close the current ticket.",
|
||||
defaultPermission:true,
|
||||
type:"CHAT_INPUT"
|
||||
type:act.ChatInput
|
||||
},sid).then(() => {
|
||||
readystats++
|
||||
})
|
||||
@@ -102,7 +105,7 @@ module.exports = async () => {
|
||||
name:"delete",
|
||||
description:"Delete the current ticket.",
|
||||
defaultPermission:true,
|
||||
type:"CHAT_INPUT"
|
||||
type:act.ChatInput
|
||||
},sid).then(() => {
|
||||
readystats++
|
||||
})
|
||||
@@ -112,14 +115,15 @@ module.exports = async () => {
|
||||
name:"message",
|
||||
description:"Create a ticket message.",
|
||||
defaultPermission:true,
|
||||
type:"CHAT_INPUT",
|
||||
type:act.ChatInput,
|
||||
options:[
|
||||
{
|
||||
type:"STRING",
|
||||
type:acot.String,
|
||||
name:"id",
|
||||
description:"The message id.",
|
||||
required:true,
|
||||
choices:msgchoices
|
||||
choices:msgchoices,
|
||||
max_length:30
|
||||
|
||||
}
|
||||
]
|
||||
@@ -132,10 +136,10 @@ module.exports = async () => {
|
||||
name:"add",
|
||||
description:"Add people to this ticket.",
|
||||
defaultPermission:true,
|
||||
type:"CHAT_INPUT",
|
||||
type:act.ChatInput,
|
||||
options:[
|
||||
{
|
||||
type:"USER",
|
||||
type:acot.User,
|
||||
name:"user",
|
||||
description:"The user to add.",
|
||||
required:true
|
||||
@@ -150,10 +154,10 @@ module.exports = async () => {
|
||||
name:"remove",
|
||||
description:"Remove people from this ticket.",
|
||||
defaultPermission:true,
|
||||
type:"CHAT_INPUT",
|
||||
type:act.ChatInput,
|
||||
options:[
|
||||
{
|
||||
type:"USER",
|
||||
type:acot.User,
|
||||
name:"user",
|
||||
description:"The user to remove.",
|
||||
required:true
|
||||
@@ -168,10 +172,10 @@ module.exports = async () => {
|
||||
name:"rename",
|
||||
description:"Rename this ticket.",
|
||||
defaultPermission:true,
|
||||
type:"CHAT_INPUT",
|
||||
type:act.ChatInput,
|
||||
options:[
|
||||
{
|
||||
type:"STRING",
|
||||
type:acot.String,
|
||||
name:"name",
|
||||
description:"The new name (without prefix).",
|
||||
required:true
|
||||
@@ -186,7 +190,7 @@ module.exports = async () => {
|
||||
name:"reopen",
|
||||
description:"Reopen this ticket.",
|
||||
defaultPermission:true,
|
||||
type:"CHAT_INPUT"
|
||||
type:act.ChatInput
|
||||
},sid).then(() => {
|
||||
readystats++
|
||||
})
|
||||
|
||||
+11
-10
@@ -100,33 +100,33 @@ exports.closeTicket = async (interaction,prefix,mode) => {
|
||||
interaction.channel.permissionOverwrites.set(permissionArray)
|
||||
|
||||
//message
|
||||
var closeButtonRow = new discord.MessageActionRow()
|
||||
var closeButtonRow = new discord.ActionRowBuilder()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("deleteTicket1")
|
||||
.setDisabled(false)
|
||||
.setStyle("DANGER")
|
||||
.setStyle(discord.ButtonStyle.Danger)
|
||||
.setLabel(l.buttons.delete)
|
||||
.setEmoji("✖️")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("sendTranscript")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setLabel(l.buttons.sendTranscript)
|
||||
.setEmoji("📄")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("reopenTicket")
|
||||
.setDisabled(false)
|
||||
.setStyle("SUCCESS")
|
||||
.setStyle(discord.ButtonStyle.Success)
|
||||
.setLabel(l.buttons.reopen)
|
||||
.setEmoji("✔")
|
||||
)
|
||||
|
||||
const embed = new discord.MessageEmbed()
|
||||
const embed = new discord.EmbedBuilder()
|
||||
.setColor(config.main_color)
|
||||
.setTitle(":lock: "+l.messages.closedTitle+" :lock:")
|
||||
.setDescription(l.messages.closedDescription)
|
||||
@@ -186,6 +186,7 @@ exports.closeTicket = async (interaction,prefix,mode) => {
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
if (enableTranscript == true && mode != "deletenotranscript"){
|
||||
|
||||
if (config.system.enable_transcript || config.system.enable_DM_transcript){
|
||||
@@ -195,7 +196,7 @@ exports.closeTicket = async (interaction,prefix,mode) => {
|
||||
}
|
||||
|
||||
if (config.system.enable_transcript){
|
||||
const transcriptEmbed = new discord.MessageEmbed()
|
||||
const transcriptEmbed = new discord.EmbedBuilder()
|
||||
.setColor(config.main_color)
|
||||
.setTitle(l.messages.newTranscriptTitle)
|
||||
.setAuthor({name:interaction.user.username,iconURL:interaction.user.displayAvatarURL({format:"png"})})
|
||||
@@ -209,7 +210,7 @@ exports.closeTicket = async (interaction,prefix,mode) => {
|
||||
}
|
||||
|
||||
if (config.system.enable_DM_transcript){
|
||||
const transcriptEmbed = new discord.MessageEmbed()
|
||||
const transcriptEmbed = new discord.EmbedBuilder()
|
||||
.setColor(config.main_color)
|
||||
.setTitle(l.messages.newTranscriptTitle)
|
||||
.setDescription(l.messages.newTranscriptDescription)
|
||||
|
||||
@@ -8,7 +8,7 @@ const l = bot.language
|
||||
/**
|
||||
*
|
||||
* @param {String} id the id from an open-ticket embed
|
||||
* @returns {{embed:discord.MessageEmbed,componentRows:discord.MessageActionRow[]}} discord embed
|
||||
* @returns {{embed:discord.EmbedBuilder,componentRows:discord.MessageActionRow[]}} discord embed
|
||||
*/
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ exports.createEmbed = (id) => {
|
||||
//-----------------------------------
|
||||
//general importing
|
||||
const data = require("./utils/getTicketMessages").getTicketMessage(id)
|
||||
/**@type {discord.MessageButton[]}*/
|
||||
/**@type {discord.ButtonBuilder[]}*/
|
||||
var buttons = []
|
||||
/**@type {getButton.rawButtonData[]} */
|
||||
var buttonData = []
|
||||
@@ -32,7 +32,7 @@ exports.createEmbed = (id) => {
|
||||
|
||||
//-----------------------------------
|
||||
//create the embed
|
||||
const embed = new discord.MessageEmbed()
|
||||
const embed = new discord.EmbedBuilder()
|
||||
.setColor(data.color)
|
||||
.setTitle(data.name)
|
||||
if (data.enableFooter) embed.setFooter({text:data.footer})
|
||||
@@ -70,7 +70,7 @@ exports.createEmbed = (id) => {
|
||||
|
||||
for (let i = AmountOfRows; i > 0; i--){
|
||||
|
||||
componentRows.push(new discord.MessageActionRow())
|
||||
componentRows.push(new discord.ActionRowBuilder())
|
||||
}
|
||||
|
||||
buttons.forEach((button,index) => {
|
||||
@@ -86,7 +86,7 @@ exports.createEmbed = (id) => {
|
||||
|
||||
//return everything
|
||||
/**
|
||||
* @type {{embed:discord.MessageEmbed,componentRows:discord.MessageActionRow[]}}
|
||||
* @type {{embed:discord.EmbedBuilder,componentRows:discord.MessageActionRow[]}}
|
||||
*/
|
||||
const returnedData = {embed:embed,componentRows:componentRows}
|
||||
return returnedData
|
||||
|
||||
@@ -9,27 +9,27 @@ const getconfigoptions = require("./getoptions")
|
||||
const storage = bot.storage
|
||||
|
||||
module.exports = () => {
|
||||
var closeButton = new discord.MessageActionRow()
|
||||
var closeButton = new discord.ActionRowBuilder()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("closeTicket")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setLabel(l.buttons.close)
|
||||
.setEmoji("🔒")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("deleteTicket")
|
||||
.setDisabled(false)
|
||||
.setStyle("DANGER")
|
||||
.setStyle(discord.ButtonStyle.Danger)
|
||||
.setLabel(l.buttons.delete)
|
||||
.setEmoji("✖️")
|
||||
)
|
||||
|
||||
//ticket button click / create ticket
|
||||
client.on("interactionCreate",(interaction) => {
|
||||
if (interaction.isCommand() && (interaction.commandName == "new" || interaction.commandName == "ticket")){
|
||||
if (interaction.isChatInputCommand() && (interaction.commandName == "new" || interaction.commandName == "ticket")){
|
||||
var customId = "newT"+interaction.options.getString("type")
|
||||
}else if (interaction.isButton()){
|
||||
var customId = interaction.customId
|
||||
@@ -54,7 +54,7 @@ module.exports = () => {
|
||||
|
||||
if (interaction.isButton()){
|
||||
interaction.deferUpdate()
|
||||
}else if (interaction.isCommand()){
|
||||
}else if (interaction.isChatInputCommand()){
|
||||
interaction.reply({embeds:[bot.errorLog.success(l.messages.createdTitle,l.messages.createdDescription)]})
|
||||
}
|
||||
|
||||
@@ -152,7 +152,7 @@ module.exports = () => {
|
||||
}).then((ticketChannel) => {
|
||||
storage.set("userTicketStorage",ticketChannel.id,interaction.member.id)
|
||||
|
||||
var ticketEmbed = new discord.MessageEmbed()
|
||||
var ticketEmbed = new discord.EmbedBuilder()
|
||||
.setAuthor({name:interaction.user.id})
|
||||
.setColor(config.main_color)
|
||||
.setTitle(currentTicketOptions.name)
|
||||
|
||||
+27
-27
@@ -7,88 +7,88 @@ const l = bot.language
|
||||
const storage = bot.storage
|
||||
|
||||
module.exports = () => {
|
||||
var closeRowNormal = new discord.MessageActionRow()
|
||||
var closeRowNormal = new discord.ActionRowBuilder()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("closeTicket")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setLabel(l.buttons.close)
|
||||
.setEmoji("🔒")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("deleteTicket")
|
||||
.setDisabled(false)
|
||||
.setStyle("DANGER")
|
||||
.setStyle(discord.ButtonStyle.Danger)
|
||||
.setLabel(l.buttons.delete)
|
||||
.setEmoji("✖️")
|
||||
)
|
||||
|
||||
var closeRowClosed = new discord.MessageActionRow()
|
||||
var closeRowClosed = new discord.ActionRowBuilder()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("deleteTicket1")
|
||||
.setDisabled(false)
|
||||
.setStyle("DANGER")
|
||||
.setStyle(discord.ButtonStyle.Danger)
|
||||
.setLabel(l.buttons.delete)
|
||||
.setEmoji("✖️")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("sendTranscript")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setLabel(l.buttons.sendTranscript)
|
||||
.setEmoji("📄")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("reopenTicket")
|
||||
.setDisabled(false)
|
||||
.setStyle("SUCCESS")
|
||||
.setStyle(discord.ButtonStyle.Success)
|
||||
.setLabel(l.buttons.reopen)
|
||||
.setEmoji("✔")
|
||||
)
|
||||
|
||||
var reopenBar = new discord.MessageActionRow()
|
||||
var reopenBar = new discord.ActionRowBuilder()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("reopenTicketTrue")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("✅")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("reopenTicketFalse")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("❌")
|
||||
)
|
||||
|
||||
var reopenBar1 = new discord.MessageActionRow()
|
||||
var reopenBar1 = new discord.ActionRowBuilder()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("reopenTicketTrue1")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("✅")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("reopenTicketFalse1")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("❌")
|
||||
)
|
||||
|
||||
var reopenCommandBar = new discord.MessageActionRow()
|
||||
var reopenCommandBar = new discord.ActionRowBuilder()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
new discord.ButtonBuilder()
|
||||
.setCustomId("reopenTicket1")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setStyle(discord.ButtonStyle.Secondary)
|
||||
.setEmoji("🔓")
|
||||
)
|
||||
|
||||
@@ -117,7 +117,7 @@ module.exports = () => {
|
||||
|
||||
interaction.deferUpdate()
|
||||
|
||||
const embed = new discord.MessageEmbed()
|
||||
const embed = new discord.EmbedBuilder()
|
||||
.setColor(config.main_color)
|
||||
.setTitle(":unlock: "+l.messages.reopenTitle+" :unlock:")
|
||||
.setDescription(l.messages.reopenDescription)
|
||||
@@ -184,7 +184,7 @@ module.exports = () => {
|
||||
|
||||
interaction.deferUpdate()
|
||||
|
||||
const embed = new discord.MessageEmbed()
|
||||
const embed = new discord.EmbedBuilder()
|
||||
.setColor(config.main_color)
|
||||
.setTitle(":unlock: "+l.messages.reopenTitle+" :unlock:")
|
||||
.setDescription(l.messages.reopenDescription)
|
||||
|
||||
+12
-11
@@ -6,19 +6,20 @@ const l = bot.language
|
||||
|
||||
/**@returns {"DANGER"|"SUCCESS"|"PRIMARY"|"SECONDARY"} */
|
||||
const getColor = (color) => {
|
||||
const b = discord.ButtonStyle
|
||||
if (color.toLowerCase() == "red"){
|
||||
return "DANGER"
|
||||
return b.Danger
|
||||
}else if (color.toLowerCase() == "green"){
|
||||
return "SUCCESS"
|
||||
return b.Success
|
||||
}else if (color.toLowerCase() == "blue" || color.toLowerCase() == "blurple"){
|
||||
return "PRIMARY"
|
||||
return b.Primary
|
||||
}else if (color.toLowerCase() == "black" || color.toLowerCase() == "gray" || color.toLowerCase() == "grey"){
|
||||
return "SECONDARY"
|
||||
return b.Secondary
|
||||
}else if (color == "DANGER" || color == "SECONDARY" || color == "SUCCESS" || color == "PRIMARY"){
|
||||
return color
|
||||
}else if (color.toLowerCase() == "none" || color.toLowerCase() == "false" || color.toLowerCase() == ""){
|
||||
return "SECONDARY"
|
||||
}else return "SECONDARY"
|
||||
return b.Secondary
|
||||
}else return b.Secondary
|
||||
}
|
||||
|
||||
const getOption = (id) => {
|
||||
@@ -29,13 +30,13 @@ exports.getOption = getOption
|
||||
/**
|
||||
*
|
||||
* @param {String} id
|
||||
* @returns {discord.MessageButton|false}
|
||||
* @returns {discord.ButtonBuilder|false}
|
||||
*/
|
||||
exports.getButton = (id) => {
|
||||
const option = getOption(id)
|
||||
if (!option) return false
|
||||
if (option.type == "ticket"){
|
||||
var button = new discord.MessageButton()
|
||||
var button = new discord.ButtonBuilder()
|
||||
.setCustomId("newT"+option.id)
|
||||
.setDisabled(false)
|
||||
.setStyle(getColor(option.color))
|
||||
@@ -45,9 +46,9 @@ exports.getButton = (id) => {
|
||||
if (!option.label && !option.icon){button.setLabel("no label or emoji")}
|
||||
|
||||
}else if (option.type == "website"){
|
||||
var button = new discord.MessageButton()
|
||||
var button = new discord.ButtonBuilder()
|
||||
.setDisabled(false)
|
||||
.setStyle("LINK")
|
||||
.setStyle(discord.ButtonStyle.Link)
|
||||
.setURL(option.url)
|
||||
|
||||
if (option.label){button.setLabel(option.label)}
|
||||
@@ -55,7 +56,7 @@ exports.getButton = (id) => {
|
||||
if (!option.label && !option.icon){button.setLabel("no label or emoji")}
|
||||
|
||||
}else if (option.type == "role"){
|
||||
var button = new discord.MessageButton()
|
||||
var button = new discord.ButtonBuilder()
|
||||
.setCustomId("newR"+option.id)
|
||||
.setDisabled(false)
|
||||
.setStyle(getColor(option.color))
|
||||
|
||||
@@ -12,8 +12,18 @@
|
||||
|
||||
const discord = require('discord.js')
|
||||
const fs = require('fs')
|
||||
const intents = discord.Intents
|
||||
const client = new discord.Client({intents:[intents.FLAGS.GUILDS,intents.FLAGS.GUILD_MESSAGES,intents.FLAGS.GUILD_MEMBERS],partials:["CHANNEL"]})
|
||||
const {GatewayIntentBits,Partials} = discord
|
||||
const client = new discord.Client({
|
||||
intents:[
|
||||
GatewayIntentBits.DirectMessages,
|
||||
GatewayIntentBits.GuildInvites,
|
||||
GatewayIntentBits.GuildMembers,
|
||||
GatewayIntentBits.GuildMessages,
|
||||
GatewayIntentBits.Guilds,
|
||||
GatewayIntentBits.MessageContent
|
||||
],
|
||||
partials:[Partials.Channel,Partials.Message]
|
||||
})
|
||||
exports.client = client
|
||||
|
||||
client.setMaxListeners(30)
|
||||
@@ -42,6 +52,20 @@ exports.errorLog = require("./core/errorLogSystem")
|
||||
const log = this.errorLog.log
|
||||
|
||||
client.on('ready',async () => {
|
||||
var statusSet = false
|
||||
const setStatus = (type,text) => {
|
||||
if (statusSet == true) return
|
||||
const getTypeEnum = (text) => {
|
||||
if (text.toLowerCase() == "playing") return discord.ActivityType.Playing
|
||||
else if (text.toLowerCase() == "listening") return discord.ActivityType.Listening
|
||||
else if (text.toLowerCase() == "watching") return discord.ActivityType.Watching
|
||||
else return discord.ActivityType.Listening
|
||||
}
|
||||
client.user.setActivity(text,{type:getTypeEnum(type)})
|
||||
statusSet = true
|
||||
log("system","loaded status",[{key:"type",value:type},{key:"text",value:text}])
|
||||
}
|
||||
|
||||
const chalk = await (await import("chalk")).default
|
||||
|
||||
if (!process.argv[2]){
|
||||
@@ -50,7 +74,7 @@ client.on('ready',async () => {
|
||||
|
||||
console.log(chalk.blue("\n\nlogs:")+"\n============")
|
||||
if (config.status.enabled){
|
||||
client.user.setActivity(config.status.text,{type:config.status.type})
|
||||
setStatus(config.status.type,config.status.text)
|
||||
}
|
||||
|
||||
log("system","bot logged in!")
|
||||
@@ -59,13 +83,19 @@ client.on('ready',async () => {
|
||||
return
|
||||
}
|
||||
|
||||
if (process.argv[2] == "d"){
|
||||
if (config.status.enabled){
|
||||
setStatus(config.status.type,config.status.text)
|
||||
}
|
||||
}
|
||||
|
||||
if (!process.argv[2].startsWith("slash")){
|
||||
console.log(chalk.red("WELCOME TO OPEN TICKET!"))
|
||||
log("info","open ticket ready",[{key:"version",value:require("./package.json").version},{key:"language",value:config.languagefile}])
|
||||
|
||||
console.log(chalk.blue("\n\nlogs:")+"\n============")
|
||||
if (config.status.enabled){
|
||||
client.user.setActivity(config.status.text,{type:config.status.type})
|
||||
setStatus(config.status.type,config.status.text)
|
||||
}
|
||||
|
||||
log("system","bot logged in!")
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
{
|
||||
"errors":{
|
||||
"missingArgsTitle":"¡Argumentos inválidos!",
|
||||
"missingArgsDescription":"Argumento faltante.",
|
||||
"noPermsTitle":"¡Sin permisos!",
|
||||
"noPermsDescription":"¡No tienes permiso para usar este comando.!\n¡Necesitas el permiso `ADMINISTRATOR` permiso o tener uno de los roles permitidos!",
|
||||
"chooseFromListTitle":"ID Invalida",
|
||||
"chooseFromListDescription":"Elije una de las ID de abajo:",
|
||||
"boterror":"¡Error del bot!",
|
||||
"notInTicketTitle":"¡No te encuentras en un ticket!",
|
||||
"notInTicketDescription":"¡Este comando no funciona fuera de los tickets!",
|
||||
"ticketDoesntExist":"¡Este ticket no existe!",
|
||||
"roleDoesntExist":"¡Este rol no existe!",
|
||||
"anotherOption":"¡Esta opción no es un ticket, si no otra cosa!",
|
||||
"maxAmountTitle":"¡Máxima cantidad alcanzada!",
|
||||
"maxAmountDescription":"¡Has alcanzado la máxima cantidad de tickets permitida!\n¡Por lo que no puedes crear otro!",
|
||||
"somethingWentWrong":"**¡Algo salió mal!**\n¡Prueba dentro de un rato!",
|
||||
"somethingWentWrongTranscript":"**¡Algo salió mal al hacer el transcript!**\n¡Prueba en otro momento!"
|
||||
},
|
||||
"commands":{
|
||||
"userAddedTitle":"¡Usuario agregado!",
|
||||
"userAddedDescription":"¡{0} fué agregado al ticket!",
|
||||
"userRemovedTitle":"¡Usuario eliminado!",
|
||||
"userRemovedDescription":"¡{0} fué eliminado del ticket!",
|
||||
|
||||
"renameTitle":"¡El nombre fué cambiado!",
|
||||
"renameWarning":"Aviso: Solo puedes cambiar el nombre 2 veces por minuto.\n(Esto es por limitaciones de Discord)",
|
||||
|
||||
"closeTitle":"¡Cierra el ticket!",
|
||||
"closeDescription":"¡Puedes cerrar el ticket con el botón de abajo!",
|
||||
"deleteTitle":"¡Elimina el ticket!",
|
||||
"deleteDescription":"¡Puedes eliminar el ticket con el botón de abajo!",
|
||||
"reopenTitle":"¡Re-Abre el ticket!",
|
||||
"reopenDescription":"¡Puedes re-abrir el ticket con el botón de abajo!",
|
||||
|
||||
"ticketWarning":"¡El emblema está en el mensaje de abajo!",
|
||||
"maxTicketWarning":"**Aviso:** _Solo puedes poseer {0} ticket(s) al mismo tiempo!_"
|
||||
},
|
||||
"helpMenu":{
|
||||
"title":"Menú de ayuda:",
|
||||
"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",
|
||||
|
||||
"msgCmd":"Generar un embed con botones. (Solo admins)",
|
||||
"renameCmd":"Renombrar un ticket. (Sin espacios)",
|
||||
"closeCmd":"Cerrar un ticket.",
|
||||
"deleteCmd":"Eliminar un ticket.",
|
||||
"addCmd":"Agregar un usuario al ticket.",
|
||||
"removeCmd":"Eliminar un usuario del ticket.",
|
||||
"reopenCmd":"Re-Abre un ticket después de que este se vea cerrado."
|
||||
},
|
||||
"buttons":{
|
||||
"close":"Cerrar ticket.",
|
||||
"delete":"Eliminar ticket",
|
||||
"reopen":"Re-Abrir ticket",
|
||||
"sendTranscript":"Obtener transcript."
|
||||
},
|
||||
"messages":{
|
||||
"reopenTitle":"¡Ticket Re-Abierto!",
|
||||
"reopenDescription":"¡Siéntete libre de hablar de nuevo!",
|
||||
"closedTitle":"¡Ticket cerrado!",
|
||||
"closedDescription":"¡Solo admins pueden hablar ahora en este ticket!\n\n*¡Presiona en el botón de abajo para eliminar o re-abrir el ticket!*",
|
||||
"createdTitle":"¡Ticket creado!",
|
||||
"createdDescription":"¡Ticket creado, también te he mencionado en él!",
|
||||
|
||||
"newTicketDmTitle":"¡Nuevo ticket!",
|
||||
"closedTicketDmTitle":"¡Ticket cerrado!",
|
||||
"deletedTicketDmTitle":"¡Ticket eliminado!",
|
||||
"closedTicketDmDescription":"¡Tu ticket fué cerrado!",
|
||||
"deletedTicketDmDescription":"¡Tu ticket fué eliminado!",
|
||||
"reopenTicketDmTitle":"¡Ticket re-abierto!",
|
||||
"reopenTicketDmDescription":"¡Tu ticket se vió abierto de nuevo!",
|
||||
"newTranscriptTitle":"¡Un nuevo transcript está aquí!",
|
||||
"newTranscriptDescription":"¡Puedes encontrar el transcript en el archivo de texto que se muestra arriba!",
|
||||
"hereIsTheTranscript":"Aquí está el transcript:",
|
||||
|
||||
"chooseCategory":"elije una categoría:"
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "open-ticket",
|
||||
"version": "2.2.0",
|
||||
"version": "2.3.0",
|
||||
"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",
|
||||
"scripts": {
|
||||
@@ -14,7 +14,7 @@
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"chalk": "^5.0.1",
|
||||
"discord.js": "13.8.0",
|
||||
"discord.js": "^14.0.2",
|
||||
"express": "^4.17.1",
|
||||
"node": "^16.10.0",
|
||||
"node-localstorage": "^2.2.1"
|
||||
|
||||
Reference in New Issue
Block a user