mirror of
https://github.com/Hessenuk/DiscordTickets.git
synced 2025-01-21 14:56:27 +02:00
do stuff
This commit is contained in:
parent
2910a2a201
commit
18883d5d20
76
.github/CODE_OF_CONDUCT.md
vendored
Normal file
76
.github/CODE_OF_CONDUCT.md
vendored
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
# Contributor Covenant Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
In the interest of fostering an open and welcoming environment, we as
|
||||||
|
contributors and maintainers pledge to making participation in our project and
|
||||||
|
our community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||||
|
level of experience, education, socio-economic status, nationality, personal
|
||||||
|
appearance, race, religion, or sexual identity and orientation.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to creating a positive environment
|
||||||
|
include:
|
||||||
|
|
||||||
|
* Using welcoming and inclusive language
|
||||||
|
* Being respectful of differing viewpoints and experiences
|
||||||
|
* Gracefully accepting constructive criticism
|
||||||
|
* Focusing on what is best for the community
|
||||||
|
* Showing empathy towards other community members
|
||||||
|
|
||||||
|
Examples of unacceptable behavior by participants include:
|
||||||
|
|
||||||
|
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||||
|
advances
|
||||||
|
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||||
|
* Public or private harassment
|
||||||
|
* Publishing others' private information, such as a physical or electronic
|
||||||
|
address, without explicit permission
|
||||||
|
* Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
## Our Responsibilities
|
||||||
|
|
||||||
|
Project maintainers are responsible for clarifying the standards of acceptable
|
||||||
|
behavior and are expected to take appropriate and fair corrective action in
|
||||||
|
response to any instances of unacceptable behavior.
|
||||||
|
|
||||||
|
Project maintainers have the right and responsibility to remove, edit, or
|
||||||
|
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||||
|
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||||
|
permanently any contributor for other behaviors that they deem inappropriate,
|
||||||
|
threatening, offensive, or harmful.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies both within project spaces and in public spaces
|
||||||
|
when an individual is representing the project or its community. Examples of
|
||||||
|
representing a project or community include using an official project e-mail
|
||||||
|
address, posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event. Representation of a project may be
|
||||||
|
further defined and clarified by project maintainers.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported by contacting the project team at contact@eartharoid.me. All
|
||||||
|
complaints will be reviewed and investigated and will result in a response that
|
||||||
|
is deemed necessary and appropriate to the circumstances. The project team is
|
||||||
|
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||||
|
Further details of specific enforcement policies may be posted separately.
|
||||||
|
|
||||||
|
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||||
|
faith may face temporary or permanent repercussions as determined by other
|
||||||
|
members of the project's leadership.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||||
|
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||||
|
|
||||||
|
[homepage]: https://www.contributor-covenant.org
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see
|
||||||
|
https://www.contributor-covenant.org/faq
|
82
.github/CONTRIBUTING.md
vendored
82
.github/CONTRIBUTING.md
vendored
@ -1,23 +1,83 @@
|
|||||||
# Contributing
|
# Contributing
|
||||||
|
|
||||||
## Submitting issues
|
Thank you for considering contributing to DiscordTickets.
|
||||||
|
|
||||||
### Submitting a bug report
|
Before contributing, please read the [code of conduct](CODE_OF_CONDUCT.md), which all contributors must follow.
|
||||||
|
|
||||||
To submit a bug report, please use the "Bug report" template when creating a [new issue](https://github.com/eartharoid/DiscordTickets/issues/new/choose). Describe the bug in as much detail as possible, including how to reproduce the problem, using screenshots or code snippets if possible. Check that someone else hasn't already created a similar first.
|
You don't need to write code to contribute; all contributions are welcome and encouraged. You could:
|
||||||
|
|
||||||
### Submitting a feature request
|
- [Contributing](#contributing)
|
||||||
|
- [Submitting a bug report](#submitting-a-bug-report)
|
||||||
|
- [Submitting a feature request](#submitting-a-feature-request)
|
||||||
|
- [Creating a pull request](#creating-a-pull-request)
|
||||||
|
- [Contributing code](#contributing-code)
|
||||||
|
- [Translating](#translating)
|
||||||
|
- [Updating documentation](#updating-documentation)
|
||||||
|
- [Website](#website)
|
||||||
|
- [JSDoc](#jsdoc)
|
||||||
|
|
||||||
~~To submit a new feature request, please use the "Feature request" template when creating a [new issue](https://github.com/eartharoid/DiscordTickets/issues/new/choose).~~
|
If you want to contribute but don't know how, and this file doesn't answer your questions, [start a discussion](https://github.com/eartharoid/DiscordTickets/discussions/new) or [join the Discord support & community server](https://go.eartharoid.me/discord) to ask for guidance.
|
||||||
|
|
||||||
You can request new features on [Feedbacky](https://app.feedbacky.net/b/dsctickets/).
|
**Issues are for:**
|
||||||
|
|
||||||
### Submitting other issues
|
- Bug reports
|
||||||
|
- Requesting changes to existing features
|
||||||
|
|
||||||
For issues not related to feature requests or bugs, you can [create a blank issue](https://github.com/eartharoid/DiscordTickets/issues/new). Please give us as much information as possible. If you just want to talk (if you need help or have questions), you can join the [Discord server](https://go.eartharoid.me/discord) or use the [Discussions tab](https://github.com/eartharoid/DiscordTickets/discussions).
|
Please label your issues appropriately.
|
||||||
|
|
||||||
## Submitting a pull request
|
**Discussions are for:**
|
||||||
|
|
||||||
To contribute code to this project, create a new [pull request](https://github.com/eartharoid/DiscordTickets/pulls). For anything other than patches (bug fixes, documentation or minor code changes that have no affect on usage), such as a new feature, please create a [new issue](https://github.com/eartharoid/DiscordTickets/issues/new/choose) first, describing what you intend to change and why. Please ensure you update the documentation if needed.
|
- Support (also on [Discord](https://go.eartharoid.me/discord))
|
||||||
|
- General questions (also on [Discord](https://go.eartharoid.me/discord))
|
||||||
|
- Requesting new features
|
||||||
|
|
||||||
When contributing, you should follow the same code style already used throughout, to ensure code is consistent.
|
Please read ["Welcome to DiscordTickets Discussions!"](https://github.com/eartharoid/DiscordTickets/discussions/77) before starting a discussion!
|
||||||
|
|
||||||
|
## Submitting a bug report
|
||||||
|
|
||||||
|
Issues should be used to report bugs. If you have found a bug, check to see if it has already been reported or resolved. If it hasn't, you can [create a new issue](https://github.com/eartharoid/DiscordTickets/issues/new/choose) using the "Bug report" template. Please include as much information as possible in your report.
|
||||||
|
|
||||||
|
## Submitting a feature request
|
||||||
|
|
||||||
|
To request a new feature, [start a new discussion](https://github.com/eartharoid/DiscordTickets/discussions/new?category=Ideas) under the Ideas category so other members of the community can discuss the request and vote on it.
|
||||||
|
|
||||||
|
If you would like to request changes to an existing feature, it may be better to [create an issue](https://github.com/eartharoid/DiscordTickets/issues/new) instead (use the `enhancement` label).
|
||||||
|
|
||||||
|
## Creating a pull request
|
||||||
|
|
||||||
|
To edit the documentation, translate, or contribute code to this project, you will need to [create a new pull request](https://github.com/eartharoid/DiscordTickets/compare). For large changes, you should **consider creating an issue** (or commenting on an existing one) first, as it could save you some time.
|
||||||
|
|
||||||
|
### Contributing code
|
||||||
|
|
||||||
|
Any code changes should be accompanied by any necessary documentation changes.
|
||||||
|
|
||||||
|
You should install the ESLint extension in your editor help you follow the code style.
|
||||||
|
|
||||||
|
- Use single quotes
|
||||||
|
- Functions should be named in camelCase
|
||||||
|
- Variables and constants should be named in snake_case
|
||||||
|
|
||||||
|
### Translating
|
||||||
|
|
||||||
|
Please try to keep the meaning of the translation as close to the original as possible.
|
||||||
|
|
||||||
|
1. Copy [`en-GB.json`](https://github.com/eartharoid/DiscordTickets/blob/master/src/locales/en-GB.json) and name it correctly
|
||||||
|
2. Without modifying the keys (left side of the colon), translate the values (on the right side of the colon).
|
||||||
|
3. [Create a pull request](#creating-a-pull-request)
|
||||||
|
|
||||||
|
### Updating documentation
|
||||||
|
|
||||||
|
#### Website
|
||||||
|
|
||||||
|
The documentation is written in Markdown, with extensions for additional features. See the [Material for MkDocs Reference](https://squidfunk.github.io/mkdocs-material/reference/abbreviations/) for details.
|
||||||
|
|
||||||
|
Please install a Markdown linting extension in your editor.
|
||||||
|
|
||||||
|
If you would like to see a live preview of your changes you can install MkDocs locally after cloning the repository (requires python).
|
||||||
|
|
||||||
|
1. Install with `pip install -r requirements.txt`
|
||||||
|
2. Run `mkdocs serve`
|
||||||
|
|
||||||
|
#### JSDoc
|
||||||
|
|
||||||
|
Feel free to improve or add JSDoc comments in the JavaScript files.
|
||||||
|
19
.github/PULL_REQUEST_TEMPLATE.md
vendored
19
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -1,29 +1,30 @@
|
|||||||
<!--
|
<!--
|
||||||
Please read the CONTRIBUTING file (.github/CONTRIBUTING.md) before creating a pull request.
|
Thank you for contributing to DiscordTickets.
|
||||||
Unless you are doing something small like fixing a typo, please create an issue first!
|
If you haven't already, please read the CONTRIBUTING file (.github/CONTRIBUTING.md) before creating a pull request.
|
||||||
|
Unless this pull request is for something minor like a fixing a typo, you should create an issue first.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
#### Information
|
**Versioning information**
|
||||||
|
|
||||||
<!-- Please select **one** by replacing the space with an `x`: `[X]` -->
|
<!-- Please select **one** by replacing the space with an `x`: `[X]` -->
|
||||||
|
|
||||||
- [ ] This includes major changes (breaking changes)
|
- [ ] This includes major changes (breaking changes)
|
||||||
- [ ] This includes minor changes (minimal usage changes, minor new features)
|
- [ ] This includes minor changes (minimal usage changes, minor new features)
|
||||||
- [ ] This includes patches (bug or typo fixes)
|
- [ ] This includes patches (bug or typo fixes)
|
||||||
- [ ] This is includes **only** documentation changes
|
- [ ] This includes **only** documentation changes
|
||||||
|
|
||||||
#### Is this related to an issue?
|
**Is this related to an issue?**
|
||||||
|
|
||||||
<!-- Reference any issues here -->
|
<!-- Reference any issues here -->
|
||||||
|
|
||||||
#### Changes made
|
**Changes made**
|
||||||
|
|
||||||
<!-- Describe your changes -->
|
<!-- Describe your changes -->
|
||||||
|
|
||||||
#### Confirmations
|
**Confirmations**
|
||||||
|
|
||||||
<!-- Select **all that apply** by replacing the space with an `x`: `[X]` -->
|
<!-- Select **all that apply** by replacing the space with an `x`: `[X]` -->
|
||||||
|
|
||||||
- [ ] I have updated any necessary documentation
|
- [ ] I have updated any necessary documentation
|
||||||
- [ ] This uses consistent code style
|
- [ ] My changes use consistent code style
|
||||||
- [ ] This is tested and works
|
- [ ] My changes are tested and work
|
||||||
|
@ -125,6 +125,14 @@ module.exports = async (log) => {
|
|||||||
type: DataTypes.CHAR(18),
|
type: DataTypes.CHAR(18),
|
||||||
allowNull: false,
|
allowNull: false,
|
||||||
},
|
},
|
||||||
|
edited: {
|
||||||
|
type: DataTypes.BOOLEAN,
|
||||||
|
defaultValue: false,
|
||||||
|
},
|
||||||
|
deleted: {
|
||||||
|
type: DataTypes.BOOLEAN,
|
||||||
|
defaultValue: false,
|
||||||
|
},
|
||||||
updates: {
|
updates: {
|
||||||
type: DataTypes.JSON
|
type: DataTypes.JSON
|
||||||
},
|
},
|
||||||
@ -132,72 +140,6 @@ module.exports = async (log) => {
|
|||||||
tableName: DB_TABLE_PREFIX + 'messages'
|
tableName: DB_TABLE_PREFIX + 'messages'
|
||||||
});
|
});
|
||||||
|
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
const Channel = sequelize.define('Channel', {
|
|
||||||
id: {
|
|
||||||
type: DataTypes.CHAR(18),
|
|
||||||
primaryKey: true,
|
|
||||||
allowNull: false,
|
|
||||||
},
|
|
||||||
name: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
allowNull: false,
|
|
||||||
},
|
|
||||||
}, {
|
|
||||||
tableName: DB_TABLE_PREFIX + 'channel_entities'
|
|
||||||
});
|
|
||||||
|
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
const Role = sequelize.define('Role', {
|
|
||||||
id: {
|
|
||||||
type: DataTypes.CHAR(18),
|
|
||||||
primaryKey: true,
|
|
||||||
allowNull: false,
|
|
||||||
},
|
|
||||||
name: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
allowNull: false,
|
|
||||||
},
|
|
||||||
colour: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
defaultValue: 7506394
|
|
||||||
},
|
|
||||||
}, {
|
|
||||||
tableName: DB_TABLE_PREFIX + 'role_entities'
|
|
||||||
});
|
|
||||||
|
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
const Member = sequelize.define('Member', {
|
|
||||||
id: {
|
|
||||||
type: DataTypes.CHAR(18),
|
|
||||||
primaryKey: true,
|
|
||||||
allowNull: false,
|
|
||||||
},
|
|
||||||
username: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
allowNull: false,
|
|
||||||
},
|
|
||||||
discriminator: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
allowNull: false,
|
|
||||||
},
|
|
||||||
nickname: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
allowNull: false,
|
|
||||||
},
|
|
||||||
avatar: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
},
|
|
||||||
colour: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
},
|
|
||||||
bot: {
|
|
||||||
type: DataTypes.BOOLEAN,
|
|
||||||
},
|
|
||||||
}, {
|
|
||||||
tableName: DB_TABLE_PREFIX + 'member_entities'
|
|
||||||
});
|
|
||||||
|
|
||||||
sequelize.sync();
|
sequelize.sync();
|
||||||
|
|
||||||
return sequelize;
|
return sequelize;
|
||||||
|
@ -2,18 +2,30 @@ module.exports = {
|
|||||||
event: 'message',
|
event: 'message',
|
||||||
execute: async (client, message) => {
|
execute: async (client, message) => {
|
||||||
|
|
||||||
let settings = await message.guild.settings;
|
let settings = await message.guild?.settings;
|
||||||
|
|
||||||
if (settings.log_messages) {
|
if (settings?.log_messages) {
|
||||||
if (message.type !== 'DEFAULT') return;
|
if (message.system) return;
|
||||||
|
|
||||||
let ticket = await client.tickets.get(message.channel.id);
|
let ticket = await client.db.models.Ticket.findOne({
|
||||||
|
where: {
|
||||||
|
id: message.channel.id
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (ticket) {
|
if (ticket) {
|
||||||
client.db.models.Message.create({
|
await client.db.models.Message.create({
|
||||||
id: message.id,
|
id: message.id,
|
||||||
ticket: ticket.id,
|
ticket: ticket.id,
|
||||||
author: message.author.id
|
author: message.author.id,
|
||||||
|
updates: [{
|
||||||
|
content: message.content,
|
||||||
|
time: message.createdTimestamp,
|
||||||
|
embeds: message.embeds.map(embed => {
|
||||||
|
return { ...message.embeds[embed] };
|
||||||
|
}),
|
||||||
|
attachments: [ ...message.attachments.values() ]
|
||||||
|
}]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
29
src/listeners/messageDelete.js
Normal file
29
src/listeners/messageDelete.js
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
module.exports = {
|
||||||
|
event: 'messageDelete',
|
||||||
|
execute: async (client, message) => {
|
||||||
|
|
||||||
|
if (message.partial)
|
||||||
|
try {
|
||||||
|
await message.fetch();
|
||||||
|
} catch (err) {
|
||||||
|
return client.log.error(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
let settings = await message.guild?.settings;
|
||||||
|
|
||||||
|
if (settings?.log_messages) {
|
||||||
|
if (message.system) return;
|
||||||
|
|
||||||
|
let msg = await client.db.models.Message.findOne({
|
||||||
|
where: {
|
||||||
|
id: message.channel.id
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (msg) {
|
||||||
|
msg.deleted = true;
|
||||||
|
await msg.save(); // save changes to message row
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
@ -1,5 +1,45 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
event: 'messageUpdate',
|
event: 'msgUpdate',
|
||||||
execute: (client, m1, m2) => {
|
execute: async (client, oldm, newm) => {
|
||||||
|
|
||||||
|
if (newm.partial)
|
||||||
|
try {
|
||||||
|
await newm.fetch();
|
||||||
|
} catch (err) {
|
||||||
|
return client.log.error(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
let settings = await newm.guild?.settings;
|
||||||
|
|
||||||
|
if (settings?.messages) {
|
||||||
|
if (newm.system) return;
|
||||||
|
|
||||||
|
let msg = await client.db.models.msg.findOne({
|
||||||
|
where: {
|
||||||
|
id: newm.channel.id
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (msg) {
|
||||||
|
let embeds = msg.embeds.map(embed => {
|
||||||
|
return { ...msg.embeds[embed] };
|
||||||
|
});
|
||||||
|
|
||||||
|
if (msg.editedTimestamp) { // message has been edited
|
||||||
|
msg.updates.unshift({
|
||||||
|
content: msg.content,
|
||||||
|
time: msg.editedTimestamp,
|
||||||
|
embeds,
|
||||||
|
attachments: [ ...msg.attachments.values() ]
|
||||||
|
});
|
||||||
|
msg.edited = true;
|
||||||
|
}
|
||||||
|
else { // probably just a link embed loading
|
||||||
|
msg.updates[0] = Object.assign(msg.updates[0], embeds);
|
||||||
|
}
|
||||||
|
|
||||||
|
await msg.save(); // save changes to msg row
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
7
src/listeners/rateLimit.js
Normal file
7
src/listeners/rateLimit.js
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
module.exports = {
|
||||||
|
event: 'rateLimit',
|
||||||
|
execute: (client, limit) => {
|
||||||
|
client.log.warn('Rate-limited!');
|
||||||
|
client.log.debug(limit);
|
||||||
|
}
|
||||||
|
};
|
6
src/listeners/warn.js
Normal file
6
src/listeners/warn.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
module.exports = {
|
||||||
|
event: 'warn',
|
||||||
|
execute: (client, warning) => {
|
||||||
|
client.log.warn(warning);
|
||||||
|
}
|
||||||
|
};
|
@ -174,8 +174,9 @@ module.exports = class Command {
|
|||||||
* @param {boolean} secret - Ephemeral message? **NOTE: EMBEDS AND ATTACHMENTS DO NOT RENDER IF TRUE**
|
* @param {boolean} secret - Ephemeral message? **NOTE: EMBEDS AND ATTACHMENTS DO NOT RENDER IF TRUE**
|
||||||
*/
|
*/
|
||||||
async sendResponse(interaction, content, secret) {
|
async sendResponse(interaction, content, secret) {
|
||||||
|
const send = this.client.api.interactions(interaction.id, interaction.token).messages['@original'].patch;
|
||||||
if (typeof content === 'object')
|
if (typeof content === 'object')
|
||||||
this.client.api.interactions(interaction.id, interaction.token).callback.post({
|
send({
|
||||||
data: {
|
data: {
|
||||||
type: 4,
|
type: 4,
|
||||||
data: {
|
data: {
|
||||||
@ -184,8 +185,8 @@ module.exports = class Command {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
else
|
else if (typeof content === 'string')
|
||||||
this.client.api.interactions(interaction.id, interaction.token).callback.post({
|
send({
|
||||||
data: {
|
data: {
|
||||||
type: 4,
|
type: 4,
|
||||||
data: {
|
data: {
|
||||||
|
@ -1,4 +1,26 @@
|
|||||||
module.exports = {
|
const EventEmitter = require('events');
|
||||||
TicketManager: require('./manager'),
|
// eslint-disable-next-line no-unused-vars
|
||||||
Ticket: require('./ticket'),
|
const { Client } = require('discord.js');
|
||||||
|
|
||||||
|
/** Manages tickets */
|
||||||
|
module.exports = class extends EventEmitter {
|
||||||
|
/**
|
||||||
|
* Create a TicketManager instance
|
||||||
|
* @param {Client} client
|
||||||
|
*/
|
||||||
|
constructor(client) {
|
||||||
|
super();
|
||||||
|
|
||||||
|
/** The Discord Client */
|
||||||
|
this.client = client;
|
||||||
|
|
||||||
|
this.setMaxListeners(this.client.config.max_listeners);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new ticket
|
||||||
|
*/
|
||||||
|
async create() {
|
||||||
|
|
||||||
|
}
|
||||||
};
|
};
|
@ -1,26 +0,0 @@
|
|||||||
const EventEmitter = require('events');
|
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
const { Client } = require('discord.js');
|
|
||||||
|
|
||||||
/** Manages tickets */
|
|
||||||
module.exports = class extends EventEmitter {
|
|
||||||
/**
|
|
||||||
* Create a TicketManager instance
|
|
||||||
* @param {Client} client
|
|
||||||
*/
|
|
||||||
constructor(client) {
|
|
||||||
super();
|
|
||||||
|
|
||||||
/** The Discord Client */
|
|
||||||
this.client = client;
|
|
||||||
|
|
||||||
this.setMaxListeners(this.client.config.max_listeners);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new ticket
|
|
||||||
*/
|
|
||||||
async create() {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
@ -25,15 +25,6 @@ module.exports = {
|
|||||||
*/
|
*/
|
||||||
flags: (secret) => secret ? 1 << 64 : undefined,
|
flags: (secret) => secret ? 1 << 64 : undefined,
|
||||||
|
|
||||||
/**
|
|
||||||
* Set message entities
|
|
||||||
* @param {Discord.Message} message - The message to set entities for
|
|
||||||
*/
|
|
||||||
|
|
||||||
messageEntities(message) {
|
|
||||||
const { client } = message;
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Select a presence from the config
|
* Select a presence from the config
|
||||||
* @returns {Discord.PresenceData}
|
* @returns {Discord.PresenceData}
|
||||||
|
@ -28,6 +28,8 @@ module.exports = {
|
|||||||
colour: '#009999',
|
colour: '#009999',
|
||||||
locale: 'en-GB',
|
locale: 'en-GB',
|
||||||
log_messages: true, // required for transcripts/archives
|
log_messages: true, // required for transcripts/archives
|
||||||
|
prefix: '-',
|
||||||
|
ticket_welcome: 'Hello {{name}}, thank you for creating a ticket. A member of staff will soon be available to assist you.\n\n__All messages in this channel are stored for future reference.__',
|
||||||
},
|
},
|
||||||
logs: {
|
logs: {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
|
Loading…
Reference in New Issue
Block a user