Compare commits

...
20 Commits
Author SHA1 Message Date
1tzEmerald 4af9759700 Update SupportBot version to v8.5 2026-02-14 13:32:59 +00:00
1tzEmerald 835cbbe937 Delete package-lock.json 2026-02-14 13:32:10 +00:00
1tzEmerald 491bb9ba65 . 2026-02-14 13:14:05 +00:00
1tzEmerald ced29535f9 Merge pull request #201 from Emerald-Services/8.5
8.5 Update
2026-02-14 13:11:56 +00:00
1tzEmerald d99e9a105b 8.5 Update
Added TicketRename command
2026-02-14 13:05:07 +00:00
1tzEmerald c72c7c5c34 Merge pull request #200 from Emerald-Services/1tzemerald-patch-3
Delete .idea directory
2026-02-03 16:37:22 +00:00
1tzEmerald 23960bc30d Delete .idea directory 2026-02-03 16:37:08 +00:00
1tzEmerald abb48c281b Merge branch 'release' of https://github.com/Emerald-Services/SupportBot into release 2026-02-03 16:33:08 +00:00
1tzEmerald 7acb825713 Added rename command 2026-02-03 16:33:02 +00:00
1tzEmerald dd2f329485 Merge pull request #199 from Emerald-Services/1tzemerald-patch-2
Update Node.JS version for SupportBot 8.x
2025-11-22 12:52:33 +00:00
1tzEmerald 75577ec0bd Update Node.JS version for SupportBot 8.x 2025-11-22 12:52:23 +00:00
1tzEmerald 7366bcda71 Merge pull request #198 from Emerald-Services/1tzemerald-patch-1
Change support status for SupportBot 7.7.3
2025-11-22 12:51:59 +00:00
1tzEmerald 23e43cfad3 Change support status for SupportBot 7.7.3
Updated support status for SupportBot versions.
2025-11-22 12:51:47 +00:00
Nyo ad9a8085aa Merge pull request #197 from Emerald-Services/ItsNyoty-patch-1
Fix link format for BuiltByBit in README.md
2025-09-30 18:50:12 +02:00
Nyo 2f23e8f23d Fix link format for BuiltByBit in README.md 2025-09-30 18:49:52 +02:00
1tzEmerald 4c07b8a236 Merge pull request #196 from Emerald-Services/dev
8.4.1 guilldMemberAdd update.
2025-09-25 13:16:42 +01:00
1tzEmerald 571bd586fa 8.4.1 guilldMemberAdd update.
Added if statement to .setAccentColor allowing you to remove the color from the config.
2025-09-25 13:16:20 +01:00
1tzEmerald eac2d88873 Merge pull request #195 from Emerald-Services/dev
8.4.1 small fix
2025-09-25 13:10:23 +01:00
1tzEmerald 93c793f393 Merge branch 'dev' of https://github.com/Emerald-Services/SupportBot into dev 2025-09-25 13:09:09 +01:00
1tzEmerald 1aa97b63f9 8.4.1 small fix 2025-09-25 13:09:00 +01:00
11 changed files with 145 additions and 91 deletions

No files matched your search

+26
View File
@@ -0,0 +1,26 @@
const Discord = require("discord.js");
const fs = require("fs");
const yaml = require("js-yaml");
const { Command } = require('../Structures/Addon.js'); // Adjust the path as needed
const supportbot = yaml.load(fs.readFileSync("./Configs/supportbot.yml", "utf8"));
module.exports = new Command({
name: "addon",
description: "This is a sample addon!",
options: [],
permissions: ["Administrator"],
async run(interaction) {
let disableCommand = true;
const PingEmbed = new Discord.EmbedBuilder()
.setDescription(
`This is a sample addon.\n\nPong! \`${interaction.client.ws.ping} ms\``
)
.setColor(supportbot.Embed.Colours.General);
interaction.reply({
embeds: [PingEmbed],
});
},
});
-45
View File
@@ -1,45 +0,0 @@
// SupportBot | Emerald Services
// Info Command
const fs = require("fs");
const { ContainerBuilder, UserSelectMenuBuilder, ButtonStyle, MessageFlags } = require('discord.js');
const yaml = require("js-yaml");
const supportbot = yaml.load(
fs.readFileSync("./Configs/supportbot.yml", "utf8")
);
const cmdconfig = yaml.load(
fs.readFileSync("./Configs/commands.yml", "utf8")
);
const msgconfig = yaml.load(
fs.readFileSync("./Configs/messages.yml", "utf8")
);
const db = require("../../Structures/Database.js");
const Command = require("../../Structures/Command.js");
module.exports = new Command({
name: "test",
description: cmdconfig.Info.Description,
options: [],
permissions: cmdconfig.Info.Permission,
async run(interaction, client) {
const ticketPanelembed = new ContainerBuilder()
.addTextDisplayComponents(
textDisplay => textDisplay
.setContent("SupportBot"),
)
await interaction.reply({
components: [ticketPanelembed],
flags: MessageFlags.IsComponentsV2,
});
},
});
+64
View File
@@ -0,0 +1,64 @@
// SupportBot | Emerald Services
// Info Command
const fs = require("fs");
const {
EmbedBuilder,
ApplicationCommandOptionType,
ApplicationCommandType,
ChannelType,
ActionRowBuilder,
ButtonBuilder,
StringSelectMenuBuilder,
StringSelectMenuOptionBuilder,
ButtonStyle,
MessageCollector,
MessageFlags,
ModalBuilder,
TextInputBuilder,
TextInputStyle,
SeparatorBuilder,
ContainerBuilder,
TextDisplayBuilder
} = require("discord.js");
const yaml = require("js-yaml");
const supportbot = yaml.load(
fs.readFileSync("./Configs/supportbot.yml", "utf8")
);
const cmdconfig = yaml.load(
fs.readFileSync("./Configs/commands.yml", "utf8")
);
const msgconfig = yaml.load(
fs.readFileSync("./Configs/messages.yml", "utf8")
);
const Command = require("../../Structures/Command.js");
module.exports = new Command({
name: cmdconfig.TicketRename.Command,
description: cmdconfig.TicketRename.Description,
options: [],
permissions: cmdconfig.TicketRename.Permission,
async run(interaction) {
const modal = new ModalBuilder()
.setCustomId("renameTicketModal")
.setTitle("Rename Channel")
.addComponents(
new ActionRowBuilder().addComponents(
new TextInputBuilder()
.setCustomId("renameTicket")
.setLabel("New Channel Name")
.setStyle(TextInputStyle.Short)
.setRequired(true)
)
);
return interaction.showModal(modal);
},
});
+4 -4
View File
@@ -507,6 +507,10 @@ module.exports = new Command({
`**Reason:**\n ${TicketReason}`
);
if (supportbot.Ticket.TicketReason && TicketReason) {
ticketMsgContainer.addTextDisplayComponents(ticketReason)
}
const selectMenuRow = new ActionRowBuilder();
const SelectMenus = new StringSelectMenuBuilder()
@@ -561,10 +565,6 @@ module.exports = new Command({
ticketMsgContainer.addActionRowComponents(selectMenuRow)
if (supportbot.Ticket.TicketReason && TicketReason) {
ticketMsgContainer.addTextDisplayComponents(ticketReason)
}
await ticketChannel.send({
flags: MessageFlags.IsComponentsV2,
components: [ticketMsgContainer],
+9
View File
@@ -37,12 +37,21 @@ Profile:
Permission: ["SendMessages"]
# Command is automatically disabled when the TicketClaims is disabled.
OpenTicket:
Command: "ticket"
Description: "Create a support ticket."
Permission: ["SendMessages"]
Enabled: true
TicketRename:
Command: "rename"
Description: "Rename a support ticket."
Permission: ["SendMessages"]
Enabled: true
AddUser:
Command: "add"
Description: "Add a user to a support ticket."
+29 -30
View File
@@ -13,7 +13,7 @@
#
# SupportBot Configuration (supportbot.yml)
SupportBot_Version: "v8.4"
SupportBot_Version: "v8.5"
# -------------------------
# General
@@ -21,7 +21,7 @@ SupportBot_Version: "v8.4"
General:
Name: "SupportBot"
Token: "BOT_TOKEN"
Token: "BBOT_TOKEN_HERE"
Addons:
Enabled: true
@@ -66,12 +66,12 @@ Embed:
Roles:
AutoRole:
Enabled: true
Role: "1111111111111111"
Role: "ROLE_ID"
StaffMember:
Staff: "1111111111111111"
Admin: "1111111111111111"
Moderator: "1111111111111111"
Staff: "ROLE_ID"
Admin: "ROLE_ID"
Moderator: "ROLE_ID"
Mod:
AllowSupportStaff: false
@@ -84,11 +84,11 @@ Roles:
Welcome:
Enabled: true
Channel: "1111111111111111"
Channel: "WELCOME_CHANNEL_ID"
Leave:
Enabled: true
Channel: "1111111111111111"
Channel: "LEAVE_CHANNEL_ID "
# ----------------------------
# Suggestions
@@ -96,8 +96,8 @@ Leave:
Suggestions:
Mode: "Channel" # Channel or Forum
ForumChannel: "1111111111111111"
Channel: "1111111111111111"
ForumChannel: "FORUM_CHANNEL_ID" # A forum channel, disabled if mode is set to Channel.
Channel: "SUGGESTIONS_CHANNEL_ID" # A text channel, disabled if mode is set to Forum.
UpvoteEmoji: "✅"
DownvoteEmoji: "❌"
@@ -130,10 +130,10 @@ Suggestions:
# 4 - Red
Tags:
Created: "1111111111111111"
Considering: "1111111111111111"
Solved: "1111111111111111"
Denied: "1111111111111111"
Created: "TAG_ID"
Considering: "TAG_ID"
Solved: "TAG_ID"
Denied: "TAG_ID"
# -------------------------
# Tickets
@@ -141,25 +141,25 @@ Suggestions:
VoiceTickets:
Name: "%username%'s VC"
Category: "1111111111111111"
Category: "VC_CATEGORY_ID"
Ticket:
TicketType: "threads"
TicketType: "channels"
# Available TicketTypes:
# channels - Tickets will be created as channels in the TicketChannelsCategory
# threads - Tickets will be created as threads through the "TicketHome" channel.
TicketHome: "1111111111111111"
TicketHome: "TICKET_HOME_CHANNEL_ID"
# What is TicketHome?
# - Channel where the Ticket creation panel is sent.
# - Channel where ticket threads are made. (only if ticket threads is enabled above.)
# For TicketType: channels
TicketChannelsCategory: "1111111111111111"
TicketChannelsCategory2: "1111111111111111" # This will be used if the first category has reached the max channel limit.
TicketArchiveCategory: "1111111111111111"
TicketChannelsCategory: "TICKET_CHANNELS_CATEGORY_ID"
TicketChannelsCategory2: "TICKET_CHANNELS_CATEGORY_ID_2" # This will be used if the first category has reached the max channel limit.
TicketArchiveCategory: "TICKET_ARCHIVE_CATEGORY_ID"
# ---
Channel: "ticket-" # The prefix for ticket channel names
@@ -197,8 +197,8 @@ Ticket:
StaffOnly: true
ClaimTickets:
Enabled: true
Channel: "1111111111111111"
Enabled: false
Channel: "CLAIM_TICKETS_CHANNEL_ID"
# Channel where the ticket assignments are sent for staff to claim.
ClaimAcceptTime: 120000
@@ -220,8 +220,8 @@ Ticket:
# 4 - Red
ReviewSystem:
Enabled: false
Channel: "1111111111111111"
Enabled: true
Channel: "REVIEW_CHANNEL_ID"
UseModal: true
Questions:
@@ -232,9 +232,9 @@ Ticket:
- "Have you tried resolving the issue yourself?"
Log:
TicketDataLog: "1111111111111111"
TicketDataLog: "TICKKET_DATA_LOG_CHANNEL_ID"
TickeDataTitle: "Ticket Data"
TicketBlacklistLog: "1111111111111111"
TicketBlacklistLog: "TICKET_BLACKLIST_LOG_CHANNEL_ID"
# -------------------------
# Buttons
@@ -258,7 +258,6 @@ Buttons:
Unlock: "Unlock Ticket"
Unlock_Emoji: "🔓"
Unlock_Style: "2"
# Available Button Styles
# 1 - Blurple
# 2 - Grey
@@ -287,12 +286,12 @@ SelectMenus:
# -------------------------
MessageDelete:
Channel: "1111111111111111"
Channel: "LOG_CHANNEL_ID"
Colour: "#d92525"
MessageUpdate:
Channel: "1111111111111111"
Channel: "LOG_CHANNEL_ID"
Colour: "#f2a024"
Translate:
TranslateLog: "1111111111111111"
TranslateLog: "LOG_CHANNEL_ID"
+1 -1
View File
@@ -1 +1 @@
{}
+4 -3
View File
@@ -36,10 +36,11 @@ function getWelcomeThumbnail(client, member, iconCfg) {
function buildModernComponents(client, member) {
const container = new ContainerBuilder()
.setAccentColor(
parseInt(msgconfig.Welcome.Modern.Colour.replace("#", ""), 16)
);
if (msgconfig.Welcome.Modern.Colour) {
container .setAccentColor(parseInt(msgconfig.Welcome.Modern.Colour.replace("#", ""), 16));
}
const section = new SectionBuilder().addTextDisplayComponents(
new TextDisplayBuilder().setContent(
msgconfig.Welcome.Modern.Title.replace(/%joined_user%/g, member.user)
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2025 Emerald Services
Copyright (c) 2026 Emerald Services
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+3 -3
View File
@@ -28,8 +28,8 @@
| SupportBot | Node.JS | Discord.JS | Supported |
|------------|---------|------------|------------|
| 8.x | 20.x | 14.x. | ✅ Yes
| 7.7.3 | 16.x | 13.x. | ✅ Yes
| 8.x | 22.x | 14.x. | ✅ Yes
| 7.7.3 | 16.x | 13.x. | ❌ No
| 7.x | 16.x | 13.x. | ❌ No
| 6.x | 14.x | 13.x. | ❌ No
| 5.x | 12.x | 13.x. | ❌ No
@@ -74,7 +74,7 @@ Released under the [MIT](https://opensource.org/licenses/MIT) license.
- [Official addons repository](https://github.com/Emerald-Services/Addons/)
- [Syphers Addons](https://github.com/SypherRed/SB_Addons_Unofficial)
- [BuiltByBit](https://builtbybit.com/supportbot)
- [BuiltByBit]([https://builtbybit.com/supportbot](https://builtbybit.com/resources/supportbot-advanced-ticket-bot.8940/))
- [Polymart](https://polymart.org/resource/supportbot-1-discord-ticket-bot.518)
+4 -4
View File
@@ -41,26 +41,26 @@ logTypes.forEach((type) => {
function logToFile(type, data) {
const date = new Date().toISOString().split("T")[0];
const file = path.join(`./logs/${type}`, `${type}-${date}.log`);
const file = path.join(`./Logs/${type}`, `${type}-${date}.log`);
fs.appendFileSync(file, `[${new Date().toISOString()}] ${data}\n`);
}
const origLog = console.log;
console.log = (...args) => {
origLog(...args);
logToFile("output", args.join(" "));
logToFile("Output", args.join(" "));
};
const origWarn = console.warn;
console.warn = (...args) => {
origWarn(...args);
logToFile("warn", args.join(" "));
logToFile("Warn", args.join(" "));
};
const origError = console.error;
console.error = (...args) => {
origError(...args);
logToFile("error", args.join(" "));
logToFile("Error", args.join(" "));
};
process.on("unhandledRejection", (reason) => {