Compare commits

..

33 commits

Author SHA1 Message Date
Ethan Lane 07237b82aa v3.2.0
All checks were successful
continuous-integration/drone/push Build is passing
2024-01-29 17:53:43 +00:00
Ethan Lane 56f0d105be Create button event to gain the server access role (#398)
All checks were successful
continuous-integration/drone/push Build is passing
# Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

- Add the ability for button event interactions to be created
- Added a button event interaction which gives a user the role which is specified in the config `verification.role`
- Added a command to generate a button to activate the verify button event

#232

## Type of change

Please delete options that are not relevant.

- [x] New feature (non-breaking change which adds functionality)

# How Has This Been Tested?

Please describe the tests that you ran to verify the changes. Provide instructions so we can reproduce. Please also list any relevant details to your test configuration.

# Checklist

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that provde my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream modules

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/398
Reviewed-by: VylpesTester <tester@vylpes.com>
Co-authored-by: Ethan Lane <ethan@vylpes.com>
Co-committed-by: Ethan Lane <ethan@vylpes.com>
2024-01-26 20:59:05 +00:00
RenovateBot f0ab3b9080 Update dependency np to v9 (#380)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [np](https://github.com/sindresorhus/np) | devDependencies | major | [`^8.0.4` -> `^9.0.0`](https://renovatebot.com/diffs/npm/np/8.0.4/9.2.0) |

---

### Release Notes

<details>
<summary>sindresorhus/np (np)</summary>

### [`v9.2.0`](https://github.com/sindresorhus/np/releases/tag/v9.2.0)

[Compare Source](https://github.com/sindresorhus/np/compare/v9.1.0...v9.2.0)

-   Fix yarn npm publish for scoped packages  [`8d3a984`](https://github.com/sindresorhus/np/commit/8d3a984)
-   Fix broken revert code after publish failure  [`819ed29`](https://github.com/sindresorhus/np/commit/819ed29)

### [`v9.1.0`](https://github.com/sindresorhus/np/releases/tag/v9.1.0)

[Compare Source](https://github.com/sindresorhus/np/compare/v9.0.0...v9.1.0)

-   Add Yarn Berry support ([#&#8203;723](https://github.com/sindresorhus/np/issues/723))  [`0d9522b`](https://github.com/sindresorhus/np/commit/0d9522b)

### [`v9.0.0`](https://github.com/sindresorhus/np/releases/tag/v9.0.0)

[Compare Source](https://github.com/sindresorhus/np/compare/v8.0.4...v9.0.0)

##### Breaking

-   Require Node.js 18 and npm 9  [`6c2e00e`](https://github.com/sindresorhus/np/commit/6c2e00e)

##### Improvements

-   Group unpublished files in folders ([#&#8203;716](https://github.com/sindresorhus/np/issues/716))  [`c31c2bc`](https://github.com/sindresorhus/np/commit/c31c2bc)
-   improve messages related to new files and dependencies ([#&#8203;702](https://github.com/sindresorhus/np/issues/702))  [`ad7b09e`](https://github.com/sindresorhus/np/commit/ad7b09e)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/380
Reviewed-by: Vylpes <ethan@vylpes.com>
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2024-01-22 17:25:55 +00:00
Ethan Lane 7c2870d28e Fix bug where a default config setting wouldn't show the key you were using (#388)
All checks were successful
continuous-integration/drone/push Build is passing
# Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

- Fix bug where a default config setting wouldn't show the key you were using
- Fix bug where a config which doesn't exist wouldn't show the key you were using

#289

## Type of change

Please delete options that are not relevant.

- [x] Bug fix (non-breaking change which fixes an issue)

# How Has This Been Tested?

Please describe the tests that you ran to verify the changes. Provide instructions so we can reproduce. Please also list any relevant details to your test configuration.

- This was tested by checking both a setting which is defaulted and not used, and both now show they key correctly

# Checklist

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that provde my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream modules

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/388
Reviewed-by: VylpesTester <tester@vylpes.com>
Co-authored-by: Ethan Lane <ethan@vylpes.com>
Co-committed-by: Ethan Lane <ethan@vylpes.com>
2023-12-22 14:36:36 +00:00
RenovateBot 26e7c20389 Update dependency @types/node to v20.10.5 (#387)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped)) | devDependencies | patch | [`20.10.4` -> `20.10.5`](https://renovatebot.com/diffs/npm/@types%2fnode/20.10.4/20.10.5) |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/387
Reviewed-by: Vylpes <ethan@vylpes.com>
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-12-18 13:32:33 +00:00
RenovateBot 4eabb2fbde Update dependency @discordjs/rest to v2.2.0 (#375)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@discordjs/rest](https://discord.js.org) ([source](https://github.com/discordjs/discord.js)) | dependencies | minor | [`2.0.1` -> `2.2.0`](https://renovatebot.com/diffs/npm/@discordjs%2frest/2.0.1/2.2.0) |

---

### Release Notes

<details>
<summary>discordjs/discord.js (@&#8203;discordjs/rest)</summary>

### [`v2.2.0`](https://github.com/discordjs/discord.js/blob/HEAD/packages/rest/CHANGELOG.md#discordjsrest220---2023-11-17)

[Compare Source](https://github.com/discordjs/discord.js/compare/@discordjs/rest@2.1.0...@discordjs/rest@2.2.0)

#### Bug Fixes

-   Minify mainlib docs json ([#&#8203;9963](https://github.com/discordjs/discord.js/issues/9963)) ([4b88306](4b88306dcb))

#### Features

-   Present x-ratelimit-scope for 429s hit ([#&#8203;9973](https://github.com/discordjs/discord.js/issues/9973)) ([6df233d](6df233de14))

#### Typings

-   Use wrapper utilities ([#&#8203;9945](https://github.com/discordjs/discord.js/issues/9945)) ([4bc1dae](4bc1dae36f))

### [`v2.1.0`](https://github.com/discordjs/discord.js/blob/HEAD/packages/rest/CHANGELOG.md#discordjsrest210---2023-11-12)

[Compare Source](https://github.com/discordjs/discord.js/compare/@discordjs/rest@2.0.1...@discordjs/rest@2.1.0)

#### Bug Fixes

-   **REST:** Strip webhook tokens ([#&#8203;9723](https://github.com/discordjs/discord.js/issues/9723)) ([cf49f40](cf49f405b0))

#### Documentation

-   Fix "its" typo ([#&#8203;9825](https://github.com/discordjs/discord.js/issues/9825)) ([c50809e](c50809e206))
-   **create-discord-bot:** Support bun in create-discord-bot ([#&#8203;9798](https://github.com/discordjs/discord.js/issues/9798)) ([7157748](7157748fe3))

#### Features

-   Expose Retry-After and sublimit timeouts in RatelimitData ([#&#8203;9864](https://github.com/discordjs/discord.js/issues/9864)) ([81e7866](81e7866903))
-   **CDN:** Support emoji size ([#&#8203;9787](https://github.com/discordjs/discord.js/issues/9787)) ([778df45](778df45166))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/375
Reviewed-by: Vylpes <ethan@vylpes.com>
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-12-18 13:31:46 +00:00
RenovateBot 24146e9772 Update dependency @types/uuid to v9.0.7 (#371)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@types/uuid](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/uuid) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped)) | dependencies | patch | [`9.0.6` -> `9.0.7`](https://renovatebot.com/diffs/npm/@types%2fuuid/9.0.6/9.0.7) |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/371
Reviewed-by: Vylpes <ethan@vylpes.com>
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-12-18 13:29:24 +00:00
RenovateBot 9e01c1871d Update dependency jest to v29.7.0 (#357)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [jest](https://jestjs.io/) ([source](https://github.com/jestjs/jest)) | dependencies | minor | [`29.5.0` -> `29.7.0`](https://renovatebot.com/diffs/npm/jest/29.5.0/29.7.0) |
| [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jest) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped)) | dependencies | patch | [`29.5.1` -> `29.5.11`](https://renovatebot.com/diffs/npm/@types%2fjest/29.5.1/29.5.11) |

---

### Release Notes

<details>
<summary>jestjs/jest (jest)</summary>

### [`v29.7.0`](https://github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#2970)

[Compare Source](https://github.com/jestjs/jest/compare/v29.6.4...v29.7.0)

##### Features

-   `[create-jest]` Add `npm init` / `yarn create` initialiser for Jest projects ([#&#8203;14465](https://github.com/jestjs/jest/pull/14453))
-   `[jest-validate]` Allow deprecation warnings for unknown options ([#&#8203;14499](https://github.com/jestjs/jest/pull/14499))

##### Fixes

-   `[jest-resolver]` Replace unmatched capture groups in `moduleNameMapper` with empty string instead of `undefined` ([#&#8203;14507](https://github.com/jestjs/jest/pull/14507))
-   `[jest-snapshot]` Allow for strings as well as template literals in inline snapshots ([#&#8203;14465](https://github.com/jestjs/jest/pull/14465))
-   `[@jest/test-sequencer]` Calculate test runtime if `perStats.duration` is missing ([#&#8203;14473](https://github.com/jestjs/jest/pull/14473))

##### Performance

-   `[@jest/create-cache-key-function]` Cache access of `NODE_ENV` and `BABEL_ENV` ([#&#8203;14455](https://github.com/jestjs/jest/pull/14455))

##### Chore & Maintenance

-   `[jest-cli]` Move internal config initialisation logic to the `create-jest` package ([#&#8203;14465](https://github.com/jestjs/jest/pull/14453))

### [`v29.6.4`](https://github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#2964)

[Compare Source](https://github.com/jestjs/jest/compare/v29.6.3...v29.6.4)

##### Fixes

-   `[jest-core]` Fix typo in `scheduleAndRun` performance marker ([#&#8203;14434](https://github.com/jestjs/jest/pull/14434))
-   `[jest-environment-node]` Make sure `atob` and `btoa` are writeable in Node 20 ([#&#8203;14446](https://github.com/jestjs/jest/pull/14446))
-   `[jest-worker]` Additional error wrapper for `parentPort.postMessage` to fix unhandled `DataCloneError`. ([#&#8203;14437](https://github.com/jestjs/jest/pull/14437))

### [`v29.6.3`](https://github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#2963)

[Compare Source](https://github.com/jestjs/jest/compare/v29.6.2...v29.6.3)

##### Fixes

-   `[expect, @&#8203;jest/expect-utils]` `ObjectContaining` support `sumbol` as key ([#&#8203;14414](https://github.com/jestjs/jest/pull/14414))
-   `[expect]` Remove `@types/node` from dependencies ([#&#8203;14385](https://github.com/jestjs/jest/pull/14385))
-   `[jest-core]` Use workers in watch mode by default to avoid crashes ([#&#8203;14059](https://github.com/facebook/jest/pull/14059) & [#&#8203;14085](https://github.com/facebook/jest/pull/14085)).
-   `[jest-reporters]` Update `istanbul-lib-instrument` dependency to v6. ([#&#8203;14401](https://github.com/jestjs/jest/pull/14401))
-   `[jest-mock]` Revert [#&#8203;13692](https://github.com/jestjs/jest/pull/13692) as it was a breaking change ([#&#8203;14429](https://github.com/jestjs/jest/pull/14429))
-   `[jest-mock]` Revert [#&#8203;13866](https://github.com/jestjs/jest/pull/13866) as it was a breaking change ([#&#8203;14429](https://github.com/jestjs/jest/pull/14429))
-   `[jest-mock]` Revert [#&#8203;13867](https://github.com/jestjs/jest/pull/13867) as it was a breaking change ([#&#8203;14429](https://github.com/jestjs/jest/pull/14429))
-   `[@jest/reporters]` Marks Reporter's hooks as optional ([#&#8203;14433](https://github.com/jestjs/jest/pull/14433))
-   `[jest-runtime]` Fix dynamic ESM import module bug when loaded module through `jest.isolateModulesAsync` ([#&#8203;14397](https://github.com/jestjs/jest/pull/14397))

##### Chore & Maintenance

-   `[jest-changed-files, jest-circus, jest-console, @&#8203;jest/core, @&#8203;jest/runtime, @&#8203;jest/transform]` Use `invariant` and `notEmpty` from `jest-util` rather than own internal ([#&#8203;14366](https://github.com/jestjs/jest/pull/14366))

### [`v29.6.2`](https://github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#2962)

[Compare Source](https://github.com/jestjs/jest/compare/v29.6.1...v29.6.2)

##### Fixes

-   `[jest-circus]` Fix snapshot matchers in concurrent tests when nr of tests exceeds `maxConcurrency` ([#&#8203;14335](https://github.com/jestjs/jest/pull/14335))
-   `[@jest/core]` When running global setup and teardown, do not try to change the `message` property of the thrown error object when the `message` property is unwritable ([#&#8203;14113](https://github.com/jestjs/jest/pull/14113))
-   `[jest-snapshot]` Move `@types/prettier` from `dependencies` to `devDependencies` ([#&#8203;14328](https://github.com/jestjs/jest/pull/14328))
-   `[jest-snapshot]` Throw an explicit error if Prettier v3 is used ([#&#8203;14367](https://github.com/jestjs/jest/pull/14367))
-   `[jest-reporters]` Add "skipped" and "todo" symbols to Github Actions Reporter ([#&#8203;14309](https://github.com/jestjs/jest/pull/14309))

##### Chore & Maintenance

-   `[@jest/core]` Use `pluralize` from `jest-util` rather than own internal ([#&#8203;14322](https://github.com/jestjs/jest/pull/14322))

### [`v29.6.1`](https://github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#2961)

[Compare Source](https://github.com/jestjs/jest/compare/v29.6.0...v29.6.1)

##### Fixes

-   `[jest-circus]` Revert [#&#8203;14110](https://github.com/jestjs/jest/pull/14110) as it was a breaking change ([#&#8203;14304](https://github.com/jestjs/jest/pull/14304))

### [`v29.6.0`](https://github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#2960)

[Compare Source](https://github.com/jestjs/jest/compare/v29.5.0...v29.6.0)

##### Features

-   `[jest-circus, jest-snapshot]` Add support for snapshot matchers in concurrent tests ([#&#8203;14139](https://github.com/jestjs/jest/pull/14139))
-   `[jest-cli]` Include type definitions to generated config files ([#&#8203;14078](https://github.com/facebook/jest/pull/14078))
-   `[jest-snapshot]` Support arrays as property matchers ([#&#8203;14025](https://github.com/facebook/jest/pull/14025))
-   `[jest-core, jest-circus, jest-reporter, jest-runner]` Added support for reporting about start individual test cases using jest-circus ([#&#8203;14174](https://github.com/jestjs/jest/pull/14174))

##### Fixes

-   `[jest-circus]` Prevent false test failures caused by promise rejections handled asynchronously ([#&#8203;14110](https://github.com/jestjs/jest/pull/14110))
-   `[jest-config]` Handle frozen config object ([#&#8203;14054](https://github.com/facebook/jest/pull/14054))
-   `[jest-config]` Allow `coverageDirectory` and `collectCoverageFrom` in project config ([#&#8203;14180](https://github.com/jestjs/jest/pull/14180))
-   `[jest-core]` Always use workers in watch mode to avoid crashes ([#&#8203;14059](https://github.com/facebook/jest/pull/14059)).
-   `[jest-environment-jsdom, jest-environment-node]` Fix assignment of `customExportConditions` via `testEnvironmentOptions` when custom env subclass defines a default value ([#&#8203;13989](https://github.com/facebook/jest/pull/13989))
-   `[jest-matcher-utils]` Fix copying value of inherited getters ([#&#8203;14007](https://github.com/facebook/jest/pull/14007))
-   `[jest-mock]` Tweak typings to allow `jest.replaceProperty()` replace methods ([#&#8203;14008](https://github.com/facebook/jest/pull/14008))
-   `[jest-mock]` Improve user input validation and error messages of `spyOn` and `replaceProperty` methods ([#&#8203;14087](https://github.com/facebook/jest/pull/14087))
-   `[jest-runtime]` Bind `jest.isolateModulesAsync` to `this` ([#&#8203;14083](https://github.com/facebook/jest/pull/14083))
-   `[jest-runtime]` Forward `wrapperLength` to the `Script` constructor as `columnOffset` for accurate debugging ([#&#8203;14148](https://github.com/facebook/jest/pull/14148))
-   `[jest-runtime]` Guard `_isMockFunction` access with `in` ([#&#8203;14188](https://github.com/facebook/jest/pull/14188))
-   `[jest-snapshot]` Fix a potential bug when not using prettier and improve performance ([#&#8203;14036](https://github.com/facebook/jest/pull/14036))
-   `[@jest/transform]` Do not instrument `.json` modules ([#&#8203;14048](https://github.com/facebook/jest/pull/14048))
-   `[jest-worker]` Restart a shut down worker before sending it a task ([#&#8203;14015](https://github.com/facebook/jest/pull/14015))

##### Chore & Maintenance

-   `[*]` Update `semver` dependency to get vulnerability fix ([#&#8203;14262](https://github.com/jestjs/jest/pull/14262))
-   `[docs]` Updated documentation for the `--runTestsByPath` CLI command ([#&#8203;14004](https://github.com/facebook/jest/pull/14004))
-   `[docs]` Updated documentation regarding the synchronous fallback when asynchronous code transforms are unavailable ([#&#8203;14056](https://github.com/facebook/jest/pull/14056))
-   `[docs]` Update jest statistics of use and downloads in website Index.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/357
Reviewed-by: Vylpes <ethan@vylpes.com>
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-12-18 13:28:35 +00:00
Ethan Lane efb431ef3a Fix nickname change event not working (#385)
All checks were successful
continuous-integration/drone/push Build is passing
# Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

- Fix the nickname changed event not working
    - This was due to the default value not being set because of a typo
- Update the client to allow partials for guild members

#353

## Type of change

Please delete options that are not relevant.

- [x] Bug fix (non-breaking change which fixes an issue)

# How Has This Been Tested?

Please describe the tests that you ran to verify the changes. Provide instructions so we can reproduce. Please also list any relevant details to your test configuration.

- This has been tested locally by making sure the nickname change event fires when expected

# Checklist

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that provde my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream modules

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/385
Reviewed-by: VylpesTester <tester@vylpes.com>
Co-authored-by: Ethan Lane <ethan@vylpes.com>
Co-committed-by: Ethan Lane <ethan@vylpes.com>
2023-12-16 16:50:26 +00:00
RenovateBot 900acff3df Update dependency @types/node to v20.10.4 (#376)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped)) | devDependencies | minor | [`20.8.10` -> `20.10.4`](https://renovatebot.com/diffs/npm/@types%2fnode/20.8.10/20.10.4) |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/376
Reviewed-by: Vylpes <ethan@vylpes.com>
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-12-11 11:54:29 +00:00
RenovateBot 0506385099 Update dependency random-bunny to v2.1.5 (#372)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [random-bunny](https://gitea.vylpes.xyz/RabbitLabs/random-bunny) | dependencies | patch | [`2.1.4` -> `2.1.5`](https://renovatebot.com/diffs/npm/random-bunny/2.1.4/2.1.5) |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/372
Reviewed-by: Vylpes <ethan@vylpes.com>
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-12-11 11:53:28 +00:00
RenovateBot b437293dc4 Update dependency discord.js to v14.14.1 (#351)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [discord.js](https://discord.js.org) ([source](https://github.com/discordjs/discord.js)) | dependencies | minor | [`14.11.0` -> `14.14.1`](https://renovatebot.com/diffs/npm/discord.js/14.11.0/14.14.1) |

---

### Release Notes

<details>
<summary>discordjs/discord.js (discord.js)</summary>

### [`v14.14.1`](https://github.com/discordjs/discord.js/blob/HEAD/packages/discord.js/CHANGELOG.md#14141---2023-11-12)

[Compare Source](https://github.com/discordjs/discord.js/compare/14.14.0...14.14.1)

#### Bug Fixes

-   **Emoji:** `id` set as `undefined` edge case ([#&#8203;9953](https://github.com/discordjs/discord.js/issues/9953)) ([cc07a28](cc07a28f12))
-   **BaseClient:** Default in objects properly ([#&#8203;9952](https://github.com/discordjs/discord.js/issues/9952)) ([f93abf7](f93abf7e35))

#### Documentation

-   Use preferred nullable syntax (`?T` over `T | null`) ([#&#8203;9946](https://github.com/discordjs/discord.js/issues/9946)) ([1e4ef35](1e4ef35436))

#### Refactor

-   Use formatters ([#&#8203;9956](https://github.com/discordjs/discord.js/issues/9956)) ([40726db](40726db722))

#### Typings

-   Use wrapper utilities ([#&#8203;9945](https://github.com/discordjs/discord.js/issues/9945)) ([4bc1dae](4bc1dae36f))

### [`v14.14.0`](https://github.com/discordjs/discord.js/blob/HEAD/packages/discord.js/CHANGELOG.md#14140---2023-11-12)

[Compare Source](https://github.com/discordjs/discord.js/compare/14.13.0...14.14.0)

#### Bug Fixes

-   **Client:** Ensure destroyed connections are not ready ([#&#8203;9942](https://github.com/discordjs/discord.js/issues/9942)) ([b5e23ec](b5e23ec2ec))
-   **Webhook:** Do not call `client.deleteWebhook` in `delete` ([#&#8203;9786](https://github.com/discordjs/discord.js/issues/9786)) ([31d914e](31d914e44b))
-   **GuildManager#fetch:** Inject shard id ([#&#8203;9921](https://github.com/discordjs/discord.js/issues/9921)) ([85753a9](85753a9d6f))
-   Prevent 'undefined' debug message on intentional shard closure ([#&#8203;9846](https://github.com/discordjs/discord.js/issues/9846)) ([0e0b85b](0e0b85b766))
-   **Role:** Calculate position correctly when rawPositions are equal ([#&#8203;9871](https://github.com/discordjs/discord.js/issues/9871)) ([0529b2a](0529b2af95))
-   **GuildScheduledEvent:** Use `if...else` pattern and handle partials ([#&#8203;9802](https://github.com/discordjs/discord.js/issues/9802)) ([32d614c](32d614ccd3))

#### Documentation

-   **Message:** Remove duplicated word 'of' in description ([#&#8203;9923](https://github.com/discordjs/discord.js/issues/9923)) ([85a78f9](85a78f96d4))
-   **GuildMember:** Clarify display color ([#&#8203;9891](https://github.com/discordjs/discord.js/issues/9891)) ([e38d03f](e38d03fbe7))
-   Remove duplicate `APIEmoji` ([#&#8203;9880](https://github.com/discordjs/discord.js/issues/9880)) ([8cfadb6](8cfadb6953))
-   Consolidate API types ([#&#8203;9881](https://github.com/discordjs/discord.js/issues/9881)) ([44a3cbf](44a3cbf39e))
-   Remove `FileOptions` ([#&#8203;9855](https://github.com/discordjs/discord.js/issues/9855)) ([eaabcdf](eaabcdfda6))
-   **DiscordjsErrorCodes:** Deprecate unused properties ([#&#8203;9790](https://github.com/discordjs/discord.js/issues/9790)) ([4588e07](4588e075c3))
-   **ApplicationCommandManager:** Id parameter can take options ([#&#8203;9664](https://github.com/discordjs/discord.js/issues/9664)) ([ed14135](ed14135844))
-   **Attachment:** Add MIME types link to `contentType` ([#&#8203;9824](https://github.com/discordjs/discord.js/issues/9824)) ([85b2498](85b24988a5))
-   Fix "its" typo ([#&#8203;9825](https://github.com/discordjs/discord.js/issues/9825)) ([c50809e](c50809e206))
-   **GuildMember:** Clarify timeout parameter wording ([#&#8203;9800](https://github.com/discordjs/discord.js/issues/9800)) ([8d97e2d](8d97e2d2c5))
-   **create-discord-bot:** Support bun in create-discord-bot ([#&#8203;9798](https://github.com/discordjs/discord.js/issues/9798)) ([7157748](7157748fe3))

#### Features

-   Default select menu values ([#&#8203;9867](https://github.com/discordjs/discord.js/issues/9867)) ([4ff3ea4](4ff3ea4a1b))
-   Mainlib docs on new website ([#&#8203;9930](https://github.com/discordjs/discord.js/issues/9930)) ([da455bc](da455bceea))
-   **cleanContent:** Add slash commands and emojis ([#&#8203;9809](https://github.com/discordjs/discord.js/issues/9809)) ([c2349d4](c2349d4be4))
-   **Emoji:** Add `imageURL()` ([#&#8203;9788](https://github.com/discordjs/discord.js/issues/9788)) ([b6c762c](b6c762cb84))
-   Onboarding mode and edit method ([#&#8203;9647](https://github.com/discordjs/discord.js/issues/9647)) ([7671a83](7671a836f4))
-   Support new application properties and patch endpoint ([#&#8203;9709](https://github.com/discordjs/discord.js/issues/9709)) ([1fe7247](1fe7247528))
-   **BaseChannel:** Add `isThreadOnly()` ([#&#8203;9847](https://github.com/discordjs/discord.js/issues/9847)) ([699b232](699b232922))
-   **StageInstanceManager:** Add `guildScheduledEvent` to `create()` ([#&#8203;8885](https://github.com/discordjs/discord.js/issues/8885)) ([931c3ed](931c3ed593))
-   Support `default_thread_rate_limit_per_user` in channel creation ([#&#8203;9273](https://github.com/discordjs/discord.js/issues/9273)) ([1e5c14b](1e5c14b741))
-   Add media channels ([#&#8203;9662](https://github.com/discordjs/discord.js/issues/9662)) ([571aedd](571aedd58a))
-   Support widget image URL ([#&#8203;9782](https://github.com/discordjs/discord.js/issues/9782)) ([b6a2441](b6a2441819))
-   **GuildAuditLogsEntry:** Expose extra integrationType in relevant log types ([#&#8203;9796](https://github.com/discordjs/discord.js/issues/9796)) ([3109798](310979808e))
-   Add support for teams update ([#&#8203;9805](https://github.com/discordjs/discord.js/issues/9805)) ([c66636d](c66636da11))
-   **Presence:** Expose sync_id in Activity ([#&#8203;9766](https://github.com/discordjs/discord.js/issues/9766)) ([485dd71](485dd718c5))

#### Refactor

-   **utils:** Remove `mergeDefault` ([#&#8203;9938](https://github.com/discordjs/discord.js/issues/9938)) ([5b0aa92](5b0aa92c81))
-   Use proper variable names in callbacks ([#&#8203;9840](https://github.com/discordjs/discord.js/issues/9840)) ([11f6955](11f6955ed9))
-   **GuildAuditLogsEntry:** Abstract reduce logic into a new function ([#&#8203;9845](https://github.com/discordjs/discord.js/issues/9845)) ([19ea0ba](19ea0baa00))
-   Stickers are free (no more "premium" packs) ([#&#8203;9791](https://github.com/discordjs/discord.js/issues/9791)) ([e02a59b](e02a59bbb6))

#### Typings

-   **Partials:** Add toString() method to supported Partials ([#&#8203;9835](https://github.com/discordjs/discord.js/issues/9835)) ([7422d9f](7422d9f172))
-   **MessageEditOptions:** Correct `attachments` type ([#&#8203;9874](https://github.com/discordjs/discord.js/issues/9874)) ([2aa3250](2aa3250584))
-   **UserContextMenuCommandInteraction:** Nullify `targetMember` ([#&#8203;9844](https://github.com/discordjs/discord.js/issues/9844)) ([3c043d8](3c043d83a9))
-   Don't include dom types ([#&#8203;9831](https://github.com/discordjs/discord.js/issues/9831)) ([9dbc954](9dbc9542c4))
-   **Client:** Fix isReady narrowing ([#&#8203;9828](https://github.com/discordjs/discord.js/issues/9828)) ([6404c01](6404c013e7))

### [`v14.13.0`](https://github.com/discordjs/discord.js/blob/HEAD/packages/discord.js/CHANGELOG.md#14130---2023-08-17)

[Compare Source](https://github.com/discordjs/discord.js/compare/14.12.1...14.13.0)

#### Bug Fixes

-   **Action:** Do not add the client user as a recipient ([#&#8203;9774](https://github.com/discordjs/discord.js/issues/9774)) ([24fbb11](24fbb11ba2))
-   **DMChannel:** Correct partial typo ([#&#8203;9773](https://github.com/discordjs/discord.js/issues/9773)) ([c1ff545](c1ff545bf1))
-   **CachedManager:** Allow overriding constructor for makeCache ([#&#8203;9763](https://github.com/discordjs/discord.js/issues/9763)) ([346fa57](346fa57f95))
-   **types:** Fixed CachedManager constructor arguments in type ([#&#8203;9761](https://github.com/discordjs/discord.js/issues/9761)) ([b3c85d3](b3c85d34a6))
-   **Action:** Do not set `undefined` values ([#&#8203;9755](https://github.com/discordjs/discord.js/issues/9755)) ([d8e3755](d8e37551ce))

#### Documentation

-   **EmbedBuilder:** `@readonly` length ([#&#8203;9778](https://github.com/discordjs/discord.js/issues/9778)) ([8f572a6](8f572a6bad))
-   **WebhookEditOptions:** Add all of the types ([#&#8203;9776](https://github.com/discordjs/discord.js/issues/9776)) ([d5be424](d5be4242c6))
-   Update Node.js requirement to 16.11.0 ([#&#8203;9764](https://github.com/discordjs/discord.js/issues/9764)) ([188877c](188877c50a))

#### Features

-   **Client:** Add deleteWebhook method ([#&#8203;9777](https://github.com/discordjs/discord.js/issues/9777)) ([d90ba8d](d90ba8dce8))
-   **ClientPresence:** Allow setting activity state ([#&#8203;9743](https://github.com/discordjs/discord.js/issues/9743)) ([9ed1b59](9ed1b59df6))
-   **ClientApplication:** Approximate guild count and new `GET` route ([#&#8203;9713](https://github.com/discordjs/discord.js/issues/9713)) ([632a9b4](632a9b4965))
-   **Role:** Add `flags` ([#&#8203;9694](https://github.com/discordjs/discord.js/issues/9694)) ([3b18e5b](3b18e5b08d))
-   **Attachment:** Add `flags` ([#&#8203;9686](https://github.com/discordjs/discord.js/issues/9686)) ([692f0fc](692f0fc96d))
-   Add `Client#webhooksUpdate` ([#&#8203;9732](https://github.com/discordjs/discord.js/issues/9732)) ([0de071d](0de071d0a5))

#### Typings

-   **GuildInvitableChannelResolvable:** Allow forum channels ([#&#8203;9775](https://github.com/discordjs/discord.js/issues/9775)) ([727dc09](727dc094d5))
-   Make activity name required ([#&#8203;9765](https://github.com/discordjs/discord.js/issues/9765)) ([0a9a3ed](0a9a3ede29))
-   **BaseButtonComponentData:** Narrow component type ([#&#8203;9735](https://github.com/discordjs/discord.js/issues/9735)) ([a30d46c](a30d46c5f5))

### [`v14.12.1`](https://github.com/discordjs/discord.js/blob/HEAD/packages/discord.js/CHANGELOG.md#14121---2023-08-01)

[Compare Source](https://github.com/discordjs/discord.js/compare/14.12.0...14.12.1)

#### Bug Fixes

-   **BaseClient:** Fix destroy method ([#&#8203;9742](https://github.com/discordjs/discord.js/issues/9742)) ([1af7e5a](1af7e5a0bb))

### [`v14.12.0`](https://github.com/discordjs/discord.js/blob/HEAD/packages/discord.js/CHANGELOG.md#14120---2023-07-31)

[Compare Source](https://github.com/discordjs/discord.js/compare/14.11.0...14.12.0)

#### Bug Fixes

-   **ChannelUpdate:** Check against unknown channels ([#&#8203;9697](https://github.com/discordjs/discord.js/issues/9697)) ([7fb91c5](7fb91c57f7))
-   **Action:** Use existing recipients if available ([#&#8203;9653](https://github.com/discordjs/discord.js/issues/9653)) ([719e54a](719e54a921))
-   Everyone role members ([#&#8203;9685](https://github.com/discordjs/discord.js/issues/9685)) ([0803eb5](0803eb562b))
-   `awaitMessageComponent` with `MessageComponentInteraction`s ([#&#8203;8598](https://github.com/discordjs/discord.js/issues/8598)) ([b61e4fb](b61e4fb0dc))
-   **ThreadManager:** Fix internal crash upon conditionally resolving thread members ([#&#8203;9648](https://github.com/discordjs/discord.js/issues/9648)) ([a6dbe16](a6dbe163dd))
-   **User:** Check global name in equals ([#&#8203;9631](https://github.com/discordjs/discord.js/issues/9631)) ([8f3bd38](8f3bd38072))
-   **WebSocketManager:** Await WebSocket destroy ([#&#8203;9519](https://github.com/discordjs/discord.js/issues/9519)) ([75308f2](75308f2669))
-   **Client:** Safe call for possibly null WebSocket ([#&#8203;9600](https://github.com/discordjs/discord.js/issues/9600)) ([24a6149](24a61495b9))
-   **ThreadManager:** Ensure `fetchActive()` only returns active threads in a channel ([#&#8203;9568](https://github.com/discordjs/discord.js/issues/9568)) ([53aa24d](53aa24d418))
-   **LimitedCollection:** Allow items to be stored if keepOverLimit is true when maxSize is 0 ([#&#8203;9534](https://github.com/discordjs/discord.js/issues/9534)) ([9345d1b](9345d1b1ac))
-   **AutocompleteInteraction:** Prevent snake casing of locales ([#&#8203;9565](https://github.com/discordjs/discord.js/issues/9565)) ([7196fe3](7196fe36e8))

#### Documentation

-   Change `Channel` to `BaseChannel` ([#&#8203;9718](https://github.com/discordjs/discord.js/issues/9718)) ([e5effb6](e5effb6f6a))
-   **BaseChannel:** Remove `APIChannel` ([#&#8203;9717](https://github.com/discordjs/discord.js/issues/9717)) ([125405f](125405f1cf))
-   **BuildersSelectMenuOption:** Update link ([#&#8203;9690](https://github.com/discordjs/discord.js/issues/9690)) ([ede9f4e](ede9f4e5e2))
-   **ClientOptions:** Change default value of sweepers in docs ([#&#8203;9591](https://github.com/discordjs/discord.js/issues/9591)) ([911e6ef](911e6eff75))
-   **Client:** Correct invite gateway permission checks ([#&#8203;9597](https://github.com/discordjs/discord.js/issues/9597)) ([e1b6eee](e1b6eeed0e))
-   Fix broken links to new documentation ([#&#8203;9563](https://github.com/discordjs/discord.js/issues/9563)) ([d01e8aa](d01e8aa8af))

#### Features

-   Add ws option support for "buildIdentifyThrottler" ([#&#8203;9728](https://github.com/discordjs/discord.js/issues/9728)) ([6307f81](6307f81385))
-   **Client:** Add `guildAvailable` event ([#&#8203;9692](https://github.com/discordjs/discord.js/issues/9692)) ([3c85fb2](3c85fb21e6))
-   User avatar decorations ([#&#8203;8914](https://github.com/discordjs/discord.js/issues/8914)) ([8d97017](8d97017458))
-   Add silent option to ShardingManager ([#&#8203;9506](https://github.com/discordjs/discord.js/issues/9506)) ([df40dcd](df40dcdb85))
-   **EmbedBuilder:** Add `.length` ([#&#8203;8682](https://github.com/discordjs/discord.js/issues/8682)) ([53c17e0](53c17e00c0))
-   Guild onboarding ([#&#8203;9120](https://github.com/discordjs/discord.js/issues/9120)) ([dc73c93](dc73c938ff))
-   Add resume event in shard ([#&#8203;9650](https://github.com/discordjs/discord.js/issues/9650)) ([a73d54e](a73d54e43a))
-   **presence:** Re-introduce image resolving for other platforms ([#&#8203;9637](https://github.com/discordjs/discord.js/issues/9637)) ([73c2f8a](73c2f8aa17))
-   Add message to send resume event to shard ([#&#8203;9626](https://github.com/discordjs/discord.js/issues/9626)) ([a873ec1](a873ec1e85))
-   Support new username system ([#&#8203;9512](https://github.com/discordjs/discord.js/issues/9512)) ([1ab60f9](1ab60f9da4))
-   **GuildAuditLogsEntry#extra:** Add missing `channel` property ([#&#8203;9518](https://github.com/discordjs/discord.js/issues/9518)) ([2272321](227232112d))

#### Performance

-   **Channel:** Linear speed position getter ([#&#8203;9497](https://github.com/discordjs/discord.js/issues/9497)) ([09b0382](09b0382c45))
-   **Role:** Improve `members` getter ([#&#8203;9529](https://github.com/discordjs/discord.js/issues/9529)) ([37181ab](37181ab232))

#### Refactor

-   **User:** Remove deprecation warning from tag ([#&#8203;9660](https://github.com/discordjs/discord.js/issues/9660)) ([cf8012c](cf8012c200))
-   **GuildMember:** Make `_roles` property non-enumerable ([#&#8203;9387](https://github.com/discordjs/discord.js/issues/9387)) ([46167a7](46167a79d7))
-   **rest:** Switch api to fetch-like and provide strategies ([#&#8203;9416](https://github.com/discordjs/discord.js/issues/9416)) ([cdaa0a3](cdaa0a36f5))
    -   **BREAKING CHANGE:** NodeJS v18+ is required when using node due to the use of global `fetch`
    -   **BREAKING CHANGE:** The raw method of REST now returns a web compatible `Respone` object.
    -   **BREAKING CHANGE:** The `parseResponse` utility method has been updated to operate on a web compatible `Response` object.
    -   **BREAKING CHANGE:** Many underlying internals have changed, some of which were exported.
    -   **BREAKING CHANGE:** `DefaultRestOptions` used to contain a default `agent`, which is now set to `null` instead.

#### Typings

-   **MessageManager:** Allow comparison of messages again ([#&#8203;9612](https://github.com/discordjs/discord.js/issues/9612)) ([a48d0ef](a48d0efb09))
-   **AutoModerationActionExecution:** Add forum channels as a possible type in `channel()` ([#&#8203;9623](https://github.com/discordjs/discord.js/issues/9623)) ([d64330a](d64330a157))
-   **ModalSubmitFields:** Components is an array ([#&#8203;9406](https://github.com/discordjs/discord.js/issues/9406)) ([1cab79f](1cab79f6fd))
-   Use `readonly` arrays and `const` type parameters in places ([#&#8203;9641](https://github.com/discordjs/discord.js/issues/9641)) ([cd69868](cd6986854f))
-   **BaseInteraction:** `appPermissions` not `null` in guilds ([#&#8203;9601](https://github.com/discordjs/discord.js/issues/9601)) ([6c2242f](6c2242f4f9))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/351
Reviewed-by: Vylpes <ethan@vylpes.com>
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-12-11 11:51:36 +00:00
Ethan Lane d217cac169 Fix typo in config list saying about messages for member events (#368)
All checks were successful
continuous-integration/drone/push Build is passing
# Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

- Fix typo in config list, instead of talking about the member events it was mentioning message logs

#354

## Type of change

Please delete options that are not relevant.

- [x] Bug fix (non-breaking change which fixes an issue)

# How Has This Been Tested?

Please describe the tests that you ran to verify the changes. Provide instructions so we can reproduce. Please also list any relevant details to your test configuration.

- This has been tested by running the `/config list` command and making sure its updated

# Checklist

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that provde my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream modules

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/368
Co-authored-by: Ethan Lane <ethan@vylpes.com>
Co-committed-by: Ethan Lane <ethan@vylpes.com>
2023-11-10 18:24:08 +00:00
Ethan Lane 2bbb50bf59 Fix typo in PR template (#367)
All checks were successful
continuous-integration/drone/push Build is passing
# Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

- Fix typo in PR template, from "Provde" to "Provide"

#333

## Type of change

Please delete options that are not relevant.

- [x] Bug fix (non-breaking change which fixes an issue)

# How Has This Been Tested?

Please describe the tests that you ran to verify the changes. Provide instructions so we can reproduce. Please also list any relevant details to your test configuration.

- No testing was needed

# Checklist

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that provde my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream modules

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/367
Co-authored-by: Ethan Lane <ethan@vylpes.com>
Co-committed-by: Ethan Lane <ethan@vylpes.com>
2023-11-10 18:22:53 +00:00
Ethan Lane af2da69843 Update message delete log embed to only show filenames (#366)
All checks were successful
continuous-integration/drone/push Build is passing
# Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

- Update message delete log embed to only show file names
- Update the title of the attachments heading to show how many attachments it had

#322

## Type of change

Please delete options that are not relevant.

- [x] Bug fix (non-breaking change which fixes an issue)

# How Has This Been Tested?

Please describe the tests that you ran to verify the changes. Provide instructions so we can reproduce. Please also list any relevant details to your test configuration.

- This has been tested by deleting messages with attachments and ensuring it logs as expected

# Checklist

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that provde my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream modules

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/366
Co-authored-by: Ethan Lane <ethan@vylpes.com>
Co-committed-by: Ethan Lane <ethan@vylpes.com>
2023-11-10 18:21:27 +00:00
RenovateBot f76f1f42d7 Update dependency emoji-regex to v10.3.0 (#365)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [emoji-regex](https://mths.be/emoji-regex) ([source](https://github.com/mathiasbynens/emoji-regex)) | dependencies | minor | [`10.2.1` -> `10.3.0`](https://renovatebot.com/diffs/npm/emoji-regex/10.2.1/10.3.0) |

---

### Release Notes

<details>
<summary>mathiasbynens/emoji-regex (emoji-regex)</summary>

### [`v10.3.0`](6acf03a84f...3a5f0fbf44)

[Compare Source](6acf03a84f...3a5f0fbf44)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/365
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-11-06 18:22:08 +00:00
RenovateBot 0424a964a6 Update dependency @types/node to v20.8.10 (#364)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped)) | devDependencies | patch | [`20.8.9` -> `20.8.10`](https://renovatebot.com/diffs/npm/@types%2fnode/20.8.9/20.8.10) |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/364
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-11-06 18:21:12 +00:00
RenovateBot 24cbac5363 Update dependency random-bunny to v2.1.4 (#347)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [random-bunny](https://gitea.vylpes.xyz/RabbitLabs/random-bunny) | dependencies | patch | [`2.1.3` -> `2.1.4`](https://renovatebot.com/diffs/npm/random-bunny/2.1.3/2.1.4) |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/347
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-11-06 18:20:22 +00:00
RenovateBot fd217f2732 Update dependency ts-jest to v29.1.1 (#344)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [ts-jest](https://kulshekhar.github.io/ts-jest) ([source](https://github.com/kulshekhar/ts-jest)) | dependencies | patch | [`29.1.0` -> `29.1.1`](https://renovatebot.com/diffs/npm/ts-jest/29.1.0/29.1.1) |

---

### Release Notes

<details>
<summary>kulshekhar/ts-jest (ts-jest)</summary>

### [`v29.1.1`](f208af917e...9670787b08)

[Compare Source](f208af917e...9670787b08)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44OS4wIiwidXBkYXRlZEluVmVyIjoiMzcuMC4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/344
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-11-06 18:18:15 +00:00
RenovateBot 5f99bd9df7 Update dependency jest-mock-extended to v3.0.5 (#343)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [jest-mock-extended](https://github.com/marchaos/jest-mock-extended) | dependencies | patch | [`3.0.4` -> `3.0.5`](https://renovatebot.com/diffs/npm/jest-mock-extended/3.0.4/3.0.5) |

---

### Release Notes

<details>
<summary>marchaos/jest-mock-extended (jest-mock-extended)</summary>

### [`v3.0.5`](18609501e1...cc9a485623)

[Compare Source](18609501e1...cc9a485623)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44OS4wIiwidXBkYXRlZEluVmVyIjoiMzcuMC4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/343
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-11-06 18:16:49 +00:00
RenovateBot 0cf08eeec4 Update dependency @discordjs/rest to v2.0.1 (#341)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@discordjs/rest](https://discord.js.org) ([source](https://github.com/discordjs/discord.js)) | dependencies | patch | [`2.0.0` -> `2.0.1`](https://renovatebot.com/diffs/npm/@discordjs%2frest/2.0.0/2.0.1) |

---

### Release Notes

<details>
<summary>discordjs/discord.js (@&#8203;discordjs/rest)</summary>

### [`v2.0.1`](d04987f09b...84ead6e554)

[Compare Source](d04987f09b...84ead6e554)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44OS4wIiwidXBkYXRlZEluVmVyIjoiMzcuMC4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/341
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-11-06 18:14:40 +00:00
RenovateBot 2edb913b96 Update dependency typescript to v5.2.2 (#358)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [typescript](https://www.typescriptlang.org/) ([source](https://github.com/Microsoft/TypeScript)) | devDependencies | minor | [`5.0.4` -> `5.2.2`](https://renovatebot.com/diffs/npm/typescript/5.0.4/5.2.2) |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/358
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-11-01 17:56:39 +00:00
RenovateBot 9544642a42 Update dependency dotenv to v16.3.1 (#352)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [dotenv](https://github.com/motdotla/dotenv) | dependencies | minor | [`16.0.3` -> `16.3.1`](https://renovatebot.com/diffs/npm/dotenv/16.0.3/16.3.1) |

---

### Release Notes

<details>
<summary>motdotla/dotenv (dotenv)</summary>

### [`v16.3.1`](76d3682e10...b13ca7bbda)

[Compare Source](76d3682e10...b13ca7bbda)

### [`v16.3.0`](a0e21a5bb9...76d3682e10)

[Compare Source](a0e21a5bb9...76d3682e10)

### [`v16.2.0`](dc1cd6c8cb...a0e21a5bb9)

[Compare Source](dc1cd6c8cb...a0e21a5bb9)

### [`v16.1.4`](4d255441cf...dc1cd6c8cb)

[Compare Source](4d255441cf...dc1cd6c8cb)

### [`v16.1.3`](3f40e1245d...4d255441cf)

[Compare Source](3f40e1245d...4d255441cf)

### [`v16.1.2`](66080bdefa...3f40e1245d)

[Compare Source](66080bdefa...3f40e1245d)

### [`v16.1.1`](ef48935323...66080bdefa)

[Compare Source](ef48935323...66080bdefa)

### [`v16.1.0`](560df1555e...ef48935323)

[Compare Source](560df1555e...ef48935323)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/352
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-11-01 17:54:56 +00:00
RenovateBot 0f441ed457 Update dependency @types/node to v20.8.9 (#348)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped)) | devDependencies | minor | [`20.1.4` -> `20.8.9`](https://renovatebot.com/diffs/npm/@types%2fnode/20.1.4/20.8.9) |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/348
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-11-01 17:53:22 +00:00
RenovateBot edf7af967d Update dependency @types/uuid to v9.0.6 (#342)
All checks were successful
continuous-integration/drone/push Build is passing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@types/uuid](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/uuid) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped)) | dependencies | patch | [`9.0.1` -> `9.0.6`](https://renovatebot.com/diffs/npm/@types%2fuuid/9.0.1/9.0.6) |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44OS4wIiwidXBkYXRlZEluVmVyIjoiMzcuMC4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/342
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-11-01 17:48:41 +00:00
Ethan Lane 9955f5730b Merge branch 'main' into develop
All checks were successful
continuous-integration/drone/push Build is passing
2023-10-25 15:06:46 +01:00
Ethan Lane 5ca0a13127 Fix hostname in drone config
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-29 18:01:47 +01:00
Ethan Lane 2d51b83d77 Fix invalid config value not showing properly (#336)
Some checks failed
continuous-integration/drone/push Build is failing
# Description

- Fix the invalid config value not showing properly
- When there is no server value or default value, it will show it as `<NONE>`

#315

## Type of change

Please delete options that are not relevant.

- [x] Bug fix (non-breaking change which fixes an issue)

# How Has This Been Tested?

Please describe the tests that you ran to verify the changes. Provide instructions so we can reproduce. Please also list any relevant details to your test configuration.

# Checklist

- [x] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that provde my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [x] Any dependent changes have been merged and published in downstream modules

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/336
Co-authored-by: Ethan Lane <ethan@vylpes.com>
Co-committed-by: Ethan Lane <ethan@vylpes.com>
2023-09-29 18:00:29 +01:00
Ethan Lane 7613aedbbe Fix muted command not working (#335)
Some checks failed
continuous-integration/drone/push Build is failing
# Description

- Fix muted command not working
- This was caused by the muted role name still using old logic before per-server configuration

#316

## Type of change

Please delete options that are not relevant.

- [x] Bug fix (non-breaking change which fixes an issue)

# How Has This Been Tested?

- This was tested locally by running the mute and unmute commands, and seeing it the error no longer occurs

# Checklist

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that provde my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [x] Any dependent changes have been merged and published in downstream modules

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/335
Co-authored-by: Ethan Lane <ethan@vylpes.com>
Co-committed-by: Ethan Lane <ethan@vylpes.com>
2023-08-18 21:07:19 +01:00
Ethan Lane 1c4fdd05f1 Fix config get command not returning the right key value name (#334)
Some checks failed
continuous-integration/drone/push Build is failing
# Description

- Fixed the `/config get` command not returning the actual key's name, instead using a strinified "Object" property

#289

## Type of change

Please delete options that are not relevant.

- [x] Bug fix (non-breaking change which fixes an issue)

# How Has This Been Tested?

- This was tested by running the `/config get` command on my dev bot, and making sure it still gets the correct value for the key string

# Checklist

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that provide my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [x] Any dependent changes have been merged and published in downstream modules

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/334
Co-authored-by: Ethan Lane <ethan@vylpes.com>
Co-committed-by: Ethan Lane <ethan@vylpes.com>
2023-08-18 21:04:06 +01:00
Ethan Lane 2d48a6fde2 Fix moderation commands not sending log embed with user avatar (#328)
Some checks failed
continuous-integration/drone/push Build is failing
# Description

- Fixes the moderation commands not sending the log embed with the user avatar
- Updates the .env files to use v3.2

#205

## Type of change

Please delete options that are not relevant.

- [x] Bug fix (non-breaking change which fixes an issue)

# How Has This Been Tested?

- This has been tested locally by running the warn command against a user, and seeing if the log uses my avatar in the thumbnail

# Checklist

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that provde my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [x] Any dependent changes have been merged and published in downstream modules

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/328
Co-authored-by: Ethan Lane <ethan@vylpes.com>
Co-committed-by: Ethan Lane <ethan@vylpes.com>
2023-08-11 20:52:16 +01:00
RenovateBot 9968e2e5fb Update dependency @discordjs/rest to v2 (#327)
Some checks failed
continuous-integration/drone/push Build is failing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@discordjs/rest](https://discord.js.org) ([source](https://github.com/discordjs/discord.js)) | dependencies | major | [`^1.1.0` -> `^2.0.0`](https://renovatebot.com/diffs/npm/@discordjs%2frest/1.7.1/2.0.0) |

---

### Release Notes

<details>
<summary>discordjs/discord.js</summary>

### [`v2.0.0`](https://github.com/discordjs/discord.js/blob/HEAD/packages/rest/CHANGELOG.md#discordjsrest200-httpsgithubcomdiscordjsdiscordjscomparediscordjsrest171discordjsrest200---2023-07-31)

[Compare Source](https://github.com/discordjs/discord.js/compare/@discordjs/rest@1.7.1...@discordjs/rest@2.0.0)

#### Features

-   No-de-no-de, now with extra buns ([#&#8203;9683](https://github.com/discordjs/discord.js/issues/9683)) ([386f206](386f206caf))
    -   **BREAKING CHANGE:** The REST and RequestManager classes now extend AsyncEventEmitter
        from `@vladfrangu/async_event_emitter`, which aids in cross-compatibility
        between Node, Deno, Bun, CF Workers, Vercel Functions, etc.
    -   **BREAKING CHANGE:** DefaultUserAgentAppendix has been adapted to support multiple
        different platforms (previously mentioned Deno, Bun, CF Workers, etc)
    -   **BREAKING CHANGE:** the entry point for `@discordjs/rest` will now differ
        in non-node-like environments (CF Workers, etc.)
    -   **Co-authored-by:** Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com>
    -   **Co-authored-by:** Jiralite <33201955+Jiralite@users.noreply.github.com>
    -   **Co-authored-by:** suneettipirneni <suneettipirneni@icloud.com>
-   User avatar decorations ([#&#8203;8914](https://github.com/discordjs/discord.js/issues/8914)) ([8d97017](8d97017458))
-   Support new username system ([#&#8203;9512](https://github.com/discordjs/discord.js/issues/9512)) ([1ab60f9](1ab60f9da4))

#### Refactor

-   **REST:** Remove double classing ([#&#8203;9722](https://github.com/discordjs/discord.js/issues/9722)) ([8f4256d](8f4256db8a))
    -   **BREAKING CHANGE:** `REST` and `RequestManager` have been combined, most of the properties, methods, and events from both classes can now be found on `REST`
    -   **BREAKING CHANGE:** `REST#raw` has been removed in favor of `REST#queueRequest`
    -   **BREAKING CHANGE:** `REST#getAgent` has been removed in favor of `REST#agent`

<!---->

-   chore: update for /rest changes

<!---->

-   **rest:** Switch api to fetch-like and provide strategies ([#&#8203;9416](https://github.com/discordjs/discord.js/issues/9416)) ([cdaa0a3](cdaa0a36f5))
    -   **BREAKING CHANGE:** NodeJS v18+ is required when using node due to the use of global `fetch`
    -   **BREAKING CHANGE:** The raw method of REST now returns a web compatible `Respone` object.
    -   **BREAKING CHANGE:** The `parseResponse` utility method has been updated to operate on a web compatible `Response` object.
    -   **BREAKING CHANGE:** Many underlying internals have changed, some of which were exported.
    -   **BREAKING CHANGE:** `DefaultRestOptions` used to contain a default `agent`, which is now set to `null` instead.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC43NC4yIiwidXBkYXRlZEluVmVyIjoiMzQuNzQuMiJ9-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/327
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-08-07 17:46:37 +01:00
RenovateBot 82c8eed933 Update dependency minimatch to v9.0.3 (#318)
Some checks failed
continuous-integration/drone/push Build is failing
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [minimatch](https://github.com/isaacs/minimatch) | dependencies | patch | [`9.0.2` -> `9.0.3`](https://renovatebot.com/diffs/npm/minimatch/9.0.2/9.0.3) |

---

### Release Notes

<details>
<summary>isaacs/minimatch</summary>

### [`v9.0.3`](https://github.com/isaacs/minimatch/compare/v9.0.2...v9.0.3)

[Compare Source](https://github.com/isaacs/minimatch/compare/v9.0.2...v9.0.3)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC43NC4yIiwidXBkYXRlZEluVmVyIjoiMzQuNzQuMiJ9-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/318
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
2023-08-07 17:44:19 +01:00
28 changed files with 1383 additions and 1268 deletions

View file

@ -7,7 +7,7 @@
# any secret values. # any secret values.
BOT_TOKEN= BOT_TOKEN=
BOT_VER=3.1.3 BOT_VER=3.2 DEV
BOT_AUTHOR=Vylpes BOT_AUTHOR=Vylpes
BOT_OWNERID=147392775707426816 BOT_OWNERID=147392775707426816
BOT_CLIENTID=682942374040961060 BOT_CLIENTID=682942374040961060

View file

@ -54,11 +54,11 @@ steps:
- yarn install --frozen-lockfile - yarn install --frozen-lockfile
- yarn build - yarn build
- name: test # - name: test
image: node # image: node
commands: # commands:
- yarn install --frozen-lockfile # - yarn install --frozen-lockfile
- yarn test # - yarn test
trigger: trigger:
branch: branch:

View file

@ -24,6 +24,6 @@ Please describe the tests that you ran to verify the changes. Provide instructio
- [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation - [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings - [ ] My changes generate no new warnings
- [ ] I have added tests that provde my fix is effective or that my feature works - [ ] I have added tests that provide my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes - [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream modules - [ ] Any dependent changes have been merged and published in downstream modules

View file

@ -7,7 +7,7 @@
# any secret values. # any secret values.
BOT_TOKEN= BOT_TOKEN=
BOT_VER=3.1.3 BOT_VER=3.2
BOT_AUTHOR=Vylpes BOT_AUTHOR=Vylpes
BOT_OWNERID=147392775707426816 BOT_OWNERID=147392775707426816
BOT_CLIENTID=680083120896081954 BOT_CLIENTID=680083120896081954

View file

@ -7,7 +7,7 @@
# any secret values. # any secret values.
BOT_TOKEN= BOT_TOKEN=
BOT_VER=3.1.3 BOT_VER=3.2 BETA
BOT_AUTHOR=Vylpes BOT_AUTHOR=Vylpes
BOT_OWNERID=147392775707426816 BOT_OWNERID=147392775707426816
BOT_CLIENTID=1016767908740857949 BOT_CLIENTID=1016767908740857949

View file

@ -26,11 +26,11 @@ event.message.delete.channel: Sets the channel the bot will log message delete e
event.message.update.enabled: Enables/Disables the message delete log event (Default: "false") event.message.update.enabled: Enables/Disables the message delete log event (Default: "false")
event.message.update.channel: Sets the channel the bot will log message delete events to (Default: "message-logs") event.message.update.channel: Sets the channel the bot will log message delete events to (Default: "message-logs")
event.member.add.enabled: Enables/Disables the message delete log event (Default: "false") event.member.add.enabled: Enables/Disables the member join log event (Default: "false")
event.member.add.channel: Sets the channel the bot will log message delete events to (Default: "member-logs") event.member.add.channel: Sets the channel the bot will log member join events to (Default: "member-logs")
event.member.remove.enabled: Enables/Disables the message delete log event (Default: "false") event.member.remove.enabled: Enables/Disables the member leave log event (Default: "false")
event.member.remove.channel: Sets the channel the bot will log message delete events to (Default: "member-logs") event.member.remove.channel: Sets the channel the bot will log member leave events to (Default: "member-logs")
event.member.update.enabled: Enables/Disables the message delete log event (Default: "false") event.member.update.enabled: Enables/Disables the member update log event (Default: "false")
event.member.update.channel: Sets the channel the bot will log message delete events to (Default: "member-logs") event.member.update.channel: Sets the channel the bot will log member update events to (Default: "member-logs")

View file

@ -1,6 +1,6 @@
{ {
"name": "vylbot-app", "name": "vylbot-app",
"version": "3.1.3", "version": "3.2.0",
"description": "A discord bot made for Vylpes' Den", "description": "A discord bot made for Vylpes' Den",
"main": "./dist/vylbot", "main": "./dist/vylbot",
"typings": "./dist", "typings": "./dist",
@ -26,7 +26,7 @@
"homepage": "https://github.com/Vylpes/vylbot-app", "homepage": "https://github.com/Vylpes/vylbot-app",
"funding": "https://ko-fi.com/vylpes", "funding": "https://ko-fi.com/vylpes",
"dependencies": { "dependencies": {
"@discordjs/rest": "^1.1.0", "@discordjs/rest": "^2.0.0",
"@types/jest": "^29.0.0", "@types/jest": "^29.0.0",
"@types/uuid": "^9.0.0", "@types/uuid": "^9.0.0",
"discord.js": "^14.3.0", "discord.js": "^14.3.0",
@ -34,7 +34,7 @@
"emoji-regex": "^10.0.0", "emoji-regex": "^10.0.0",
"jest": "^29.0.0", "jest": "^29.0.0",
"jest-mock-extended": "^3.0.0", "jest-mock-extended": "^3.0.0",
"minimatch": "9.0.2", "minimatch": "9.0.3",
"mysql": "^2.18.1", "mysql": "^2.18.1",
"random-bunny": "^2.0.5", "random-bunny": "^2.0.5",
"ts-jest": "^29.0.0", "ts-jest": "^29.0.0",
@ -45,7 +45,7 @@
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^20.0.0", "@types/node": "^20.0.0",
"np": "^8.0.4", "np": "^9.0.0",
"typescript": "^5.0.0" "typescript": "^5.0.0"
} }
} }

View file

@ -0,0 +1,42 @@
import { ButtonInteraction, CacheType } from "discord.js";
import { ButtonEvent } from "../type/buttonEvent";
import SettingsHelper from "../helpers/SettingsHelper";
export default class Verify extends ButtonEvent {
public override async execute(interaction: ButtonInteraction<CacheType>) {
if (!interaction.guildId || !interaction.guild) return;
const roleName = await SettingsHelper.GetSetting("verification.role", interaction.guildId);
if (!roleName) return;
const role = interaction.guild.roles.cache.find(x => x.name == roleName);
if (!role) {
await interaction.reply({
content: `Unable to find the role, ${roleName}`,
ephemeral: true,
});
return;
}
const member = interaction.guild.members.cache.find(x => x.id == interaction.user.id);
if (!member || !member.manageable) {
await interaction.reply({
content: "Unable to give role to user",
ephemeral: true,
});
return;
}
await member.roles.add(role);
await interaction.reply({
content: "Given role",
ephemeral: true,
});
}
}

View file

@ -1,4 +1,4 @@
import { Client } from "discord.js"; import { Client, Partials } from "discord.js";
import * as dotenv from "dotenv"; import * as dotenv from "dotenv";
import { createConnection } from "typeorm"; import { createConnection } from "typeorm";
import { EventType } from "../constants/EventType"; import { EventType } from "../constants/EventType";
@ -9,10 +9,13 @@ import { Command } from "../type/command";
import { Events } from "./events"; import { Events } from "./events";
import { Util } from "./util"; import { Util } from "./util";
import AppDataSource from "../database/dataSources/appDataSource"; import AppDataSource from "../database/dataSources/appDataSource";
import ButtonEventItem from "../contracts/ButtonEventItem";
import { ButtonEvent } from "../type/buttonEvent";
export class CoreClient extends Client { export class CoreClient extends Client {
private static _commandItems: ICommandItem[]; private static _commandItems: ICommandItem[];
private static _eventItems: IEventItem[]; private static _eventItems: IEventItem[];
private static _buttonEvents: ButtonEventItem[];
private _events: Events; private _events: Events;
private _util: Util; private _util: Util;
@ -25,12 +28,17 @@ export class CoreClient extends Client {
return this._eventItems; return this._eventItems;
} }
constructor(intents: number[]) { public static get buttonEvents(): ButtonEventItem[] {
super({ intents: intents }); return this._buttonEvents;
}
constructor(intents: number[], partials: Partials[]) {
super({ intents: intents, partials: partials });
dotenv.config(); dotenv.config();
CoreClient._commandItems = []; CoreClient._commandItems = [];
CoreClient._eventItems = []; CoreClient._eventItems = [];
CoreClient._buttonEvents = [];
this._events = new Events(); this._events = new Events();
this._util = new Util(); this._util = new Util();
@ -73,4 +81,13 @@ export class CoreClient extends Client {
CoreClient._eventItems.push(item); CoreClient._eventItems.push(item);
} }
public static RegisterButtonEvent(buttonId: string, event: ButtonEvent) {
const item: ButtonEventItem = {
ButtonId: buttonId,
Event: event,
};
CoreClient._buttonEvents.push(item);
}
} }

View file

@ -1,40 +1,18 @@
import { Interaction } from "discord.js"; import { Interaction } from "discord.js";
import ICommandItem from "../contracts/ICommandItem"; import ChatInputCommand from "./interactionCreate/chatInputCommand";
import SettingsHelper from "../helpers/SettingsHelper"; import Button from "./interactionCreate/button";
import { CoreClient } from "./client";
export class Events { export class Events {
public async onInteractionCreate(interaction: Interaction) { public async onInteractionCreate(interaction: Interaction) {
if (!interaction.isChatInputCommand()) return;
if (!interaction.guildId) return; if (!interaction.guildId) return;
const disabledCommandsString = await SettingsHelper.GetSetting("commands.disabled", interaction.guildId); if (interaction.isChatInputCommand()) {
const disabledCommands = disabledCommandsString?.split(","); ChatInputCommand.onChatInput(interaction);
const disabledCommandsMessage = await SettingsHelper.GetSetting("commands.disabled.message", interaction.guildId);
if (disabledCommands?.find(x => x == interaction.commandName)) {
await interaction.reply(disabledCommandsMessage || "This command is disabled.");
return;
} }
const item = CoreClient.commandItems.find(x => x.Name == interaction.commandName && !x.ServerId); if (interaction.isButton()) {
const itemForServer = CoreClient.commandItems.find(x => x.Name == interaction.commandName && x.ServerId == interaction.guildId); Button.onButtonClicked(interaction);
let itemToUse: ICommandItem;
if (!itemForServer) {
if (!item) {
await interaction.reply('Command not found');
return;
}
itemToUse = item;
} else {
itemToUse = itemForServer;
} }
itemToUse.Command.execute(interaction);
} }
// Emit when bot is logged in and ready to use // Emit when bot is logged in and ready to use

View file

@ -0,0 +1,17 @@
import { ButtonInteraction } from "discord.js";
import { CoreClient } from "../client";
export default class Button {
public static async onButtonClicked(interaction: ButtonInteraction) {
if (!interaction.isButton) return;
const item = CoreClient.buttonEvents.find(x => x.ButtonId == interaction.customId.split(" ")[0]);
if (!item) {
await interaction.reply("Event not found.");
return;
}
item.Event.execute(interaction);
}
}

View file

@ -0,0 +1,27 @@
import { Interaction } from "discord.js";
import { CoreClient } from "../client";
import ICommandItem from "../../contracts/ICommandItem";
export default class ChatInputCommand {
public static async onChatInput(interaction: Interaction) {
if (!interaction.isChatInputCommand()) return;
const item = CoreClient.commandItems.find(x => x.Name == interaction.commandName && !x.ServerId);
const itemForServer = CoreClient.commandItems.find(x => x.Name == interaction.commandName && x.ServerId == interaction.guildId);
let itemToUse: ICommandItem;
if (!itemForServer) {
if (!item) {
await interaction.reply("Command not found.");
return;
}
itemToUse = item;
} else {
itemToUse = itemForServer;
}
itemToUse.Command.execute(interaction);
}
}

View file

@ -37,7 +37,7 @@ export class Util {
.flatMap(x => x.Command.CommandBuilder); .flatMap(x => x.Command.CommandBuilder);
if (!client.guilds.cache.has(guild)) continue; if (!client.guilds.cache.has(guild)) continue;
rest.put( rest.put(
Routes.applicationGuildCommands(process.env.BOT_CLIENTID!, guild), Routes.applicationGuildCommands(process.env.BOT_CLIENTID!, guild),
{ {

View file

@ -44,6 +44,7 @@ export default class Ban extends Command {
.setColor(EmbedColours.Ok) .setColor(EmbedColours.Ok)
.setTitle("Member Banned") .setTitle("Member Banned")
.setDescription(`<@${targetUser.user.id}> \`${targetUser.user.tag}\``) .setDescription(`<@${targetUser.user.id}> \`${targetUser.user.tag}\``)
.setThumbnail(targetUser.user.avatarURL())
.addFields([ .addFields([
{ {
name: "Moderator", name: "Moderator",

View file

@ -116,9 +116,15 @@ export default class Config extends Command {
const setting = server.Settings.filter(x => x.Key == key.value)[0]; const setting = server.Settings.filter(x => x.Key == key.value)[0];
if (setting) { if (setting) {
await interaction.reply(`\`${key}\`: \`${setting.Value}\``); await interaction.reply(`\`${key.value}\`: \`${setting.Value}\``);
} else { } else {
await interaction.reply(`\`${key}\`: \`${DefaultValues.GetValue(key.value.toString())}\` <DEFAULT>`); var defaultValue = DefaultValues.GetValue(key.value.toString());
if (defaultValue) {
await interaction.reply(`\`${key.value}\`: \`${defaultValue}\` <DEFAULT>`);
} else {
await interaction.reply(`\`${key.value}\`: <NONE>`);
}
} }
} }
@ -191,4 +197,4 @@ export default class Config extends Command {
await interaction.reply('Setting has been set.'); await interaction.reply('Setting has been set.');
} }
} }

View file

@ -44,6 +44,7 @@ export default class Kick extends Command {
.setColor(EmbedColours.Ok) .setColor(EmbedColours.Ok)
.setTitle("Member Kicked") .setTitle("Member Kicked")
.setDescription(`<@${targetUser.user.id}> \`${targetUser.user.tag}\``) .setDescription(`<@${targetUser.user.id}> \`${targetUser.user.tag}\``)
.setThumbnail(targetUser.user.avatarURL())
.addFields([ .addFields([
{ {
name: "Moderator", name: "Moderator",

View file

@ -42,6 +42,7 @@ export default class Mute extends Command {
.setColor(EmbedColours.Ok) .setColor(EmbedColours.Ok)
.setTitle("Member Muted") .setTitle("Member Muted")
.setDescription(`<@${targetUser.user.id}> \`${targetUser.user.tag}\``) .setDescription(`<@${targetUser.user.id}> \`${targetUser.user.tag}\``)
.setThumbnail(targetUser.user.avatarURL())
.addFields([ .addFields([
{ {
name: "Moderator", name: "Moderator",
@ -53,7 +54,14 @@ export default class Mute extends Command {
}, },
]); ]);
const mutedRole = interaction.guild.roles.cache.find(role => role.name == process.env.ROLES_MUTED); const mutedRoleName = await SettingsHelper.GetSetting('role.muted', interaction.guildId);
if (!mutedRoleName) {
await interaction.reply('Unable to find configuration. Please contact the bot author.');
return;
}
const mutedRole = interaction.guild.roles.cache.find(role => role.name == mutedRoleName);
if (!mutedRole) { if (!mutedRole) {
await interaction.reply('Muted role not found.'); await interaction.reply('Muted role not found.');

View file

@ -1,7 +1,8 @@
import { CommandInteraction, EmbedBuilder, PermissionsBitField, SlashCommandBuilder } from "discord.js"; import { ActionRowBuilder, ButtonBuilder, ButtonStyle, CommandInteraction, EmbedBuilder, PermissionsBitField, SlashCommandBuilder } from "discord.js";
import { existsSync, readFileSync } from "fs"; import { existsSync, readFileSync } from "fs";
import EmbedColours from "../constants/EmbedColours"; import EmbedColours from "../constants/EmbedColours";
import { Command } from "../type/command"; import { Command } from "../type/command";
import SettingsHelper from "../helpers/SettingsHelper";
interface IRules { interface IRules {
title?: string; title?: string;
@ -14,13 +15,36 @@ export default class Rules extends Command {
constructor() { constructor() {
super(); super();
super.CommandBuilder = new SlashCommandBuilder() this.CommandBuilder = new SlashCommandBuilder()
.setName("rules") .setName('rules')
.setDescription("Send the rules embeds for this server") .setDescription("Rules-related commands")
.setDefaultMemberPermissions(PermissionsBitField.Flags.Administrator); .setDefaultMemberPermissions(PermissionsBitField.Flags.Administrator)
.addSubcommand(x =>
x
.setName('embeds')
.setDescription('Send the rules embeds for this server'))
.addSubcommand(x =>
x
.setName('access')
.setDescription('Send the server verification embed button'));
} }
public override async execute(interaction: CommandInteraction) { public override async execute(interaction: CommandInteraction) {
if (!interaction.isChatInputCommand()) return;
switch (interaction.options.getSubcommand()) {
case "embeds":
await this.SendEmbeds(interaction);
break;
case "access":
await this.SendAccessButton(interaction);
break;
default:
await interaction.reply("Subcommand doesn't exist.");
}
}
private async SendEmbeds(interaction: CommandInteraction) {
if (!interaction.guildId) return; if (!interaction.guildId) return;
if (!existsSync(`${process.cwd()}/data/rules/${interaction.guildId}.json`)) { if (!existsSync(`${process.cwd()}/data/rules/${interaction.guildId}.json`)) {
@ -71,4 +95,27 @@ export default class Rules extends Command {
await interaction.reply({ embeds: [ successEmbed ], ephemeral: true }); await interaction.reply({ embeds: [ successEmbed ], ephemeral: true });
} }
private async SendAccessButton(interaction: CommandInteraction) {
if (!interaction.guildId) return;
const buttonLabel = await SettingsHelper.GetSetting("rules.access.label", interaction.guildId);
const row = new ActionRowBuilder<ButtonBuilder>()
.addComponents([
new ButtonBuilder()
.setCustomId('verify')
.setStyle(ButtonStyle.Primary)
.setLabel(buttonLabel || "Verify")
]);
await interaction.channel?.send({
components: [ row ]
});
await interaction.reply({
content: "Success",
ephemeral: true,
});
}
} }

View file

@ -64,6 +64,7 @@ export default class Timeout extends Command {
.setColor(EmbedColours.Ok) .setColor(EmbedColours.Ok)
.setTitle("Member Timed Out") .setTitle("Member Timed Out")
.setDescription(`<@${targetUser.user.id}> \`${targetUser.user.tag}\``) .setDescription(`<@${targetUser.user.id}> \`${targetUser.user.tag}\``)
.setThumbnail(targetUser.user.avatarURL())
.addFields([ .addFields([
{ {
name: "Moderator", name: "Moderator",

View file

@ -40,6 +40,7 @@ export default class Unmute extends Command {
.setColor(EmbedColours.Ok) .setColor(EmbedColours.Ok)
.setTitle("Member Unmuted") .setTitle("Member Unmuted")
.setDescription(`<@${targetUser.user.id}> \`${targetUser.user.tag}\``) .setDescription(`<@${targetUser.user.id}> \`${targetUser.user.tag}\``)
.setThumbnail(targetUser.user.avatarURL())
.addFields([ .addFields([
{ {
name: "Moderator", name: "Moderator",
@ -51,7 +52,14 @@ export default class Unmute extends Command {
}, },
]); ]);
const mutedRole = interaction.guild.roles.cache.find(role => role.name == process.env.ROLES_MUTED); const mutedRoleName = await SettingsHelper.GetSetting('role.muted', interaction.guildId);
if (!mutedRoleName) {
await interaction.reply('Unable to find configuration. Please contact the bot author.');
return;
}
const mutedRole = interaction.guild.roles.cache.find(role => role.name == mutedRoleName);
if (!mutedRole) { if (!mutedRole) {
await interaction.reply('Muted role not found.'); await interaction.reply('Muted role not found.');

View file

@ -41,6 +41,7 @@ export default class Warn extends Command {
.setColor(EmbedColours.Ok) .setColor(EmbedColours.Ok)
.setTitle("Member Warned") .setTitle("Member Warned")
.setDescription(`<@${targetUser.user.id}> \`${targetUser.user.tag}\``) .setDescription(`<@${targetUser.user.id}> \`${targetUser.user.tag}\``)
.setThumbnail(targetUser.user.avatarURL())
.addFields([ .addFields([
{ {
name: "Moderator", name: "Moderator",

View file

@ -6,7 +6,7 @@ export default class DefaultValues {
this.SetValues(); this.SetValues();
const res = this.values.find(x => x.Key == key); const res = this.values.find(x => x.Key == key);
if (!res) { if (!res) {
return undefined; return undefined;
} }
@ -31,6 +31,7 @@ export default class DefaultValues {
// Rules (Command) // Rules (Command)
this.values.push({ Key: "rules.file", Value: "data/rules/rules" }); this.values.push({ Key: "rules.file", Value: "data/rules/rules" });
this.values.push({ Key: "rules.access.label", Value: "Verify" });
// Channels // Channels
this.values.push({ Key: "channels.logs.message", Value: "message-logs" }); this.values.push({ Key: "channels.logs.message", Value: "message-logs" });
@ -46,18 +47,18 @@ export default class DefaultValues {
// Event // Event
this.values.push({ Key: "event.message.delete.enabled", Value: "false" }); this.values.push({ Key: "event.message.delete.enabled", Value: "false" });
this.values.push({ Key: "event.message.delete.channel", Value: "message-logs" }); this.values.push({ Key: "event.message.delete.channel", Value: "message-logs" });
this.values.push({ Key: "event.message.update.enabled", Value: "false" }); this.values.push({ Key: "event.message.update.enabled", Value: "false" });
this.values.push({ Key: "event.message.update.channel", Value: "message-logs" }); this.values.push({ Key: "event.message.update.channel", Value: "message-logs" });
this.values.push({ Key: "event.member.add.enabled", Value: "false" }); this.values.push({ Key: "event.member.add.enabled", Value: "false" });
this.values.push({ Key: "event.member.add.channel", Value: "member-logs" }); this.values.push({ Key: "event.member.add.channel", Value: "member-logs" });
this.values.push({ Key: "event.member.remove.enabled", Value: "false" }); this.values.push({ Key: "event.member.remove.enabled", Value: "false" });
this.values.push({ Key: "event.member.remove.channel", Value: "member-logs" }); this.values.push({ Key: "event.member.remove.channel", Value: "member-logs" });
this.values.push({ Key: "event.member.update.enabled", Value: "false" }); this.values.push({ Key: "event.member.update.enabled", Value: "false" });
this.values.push({ Key: "event.member.remove.channel", Value: "member-logs" }); this.values.push({ Key: "event.member.update.channel", Value: "member-logs" });
} }
} }

View file

@ -0,0 +1,8 @@
import { ButtonEvent } from "../type/buttonEvent";
interface ButtonEventItem {
ButtonId: string,
Event: ButtonEvent,
}
export default ButtonEventItem;

View file

@ -33,8 +33,8 @@ export default async function MessageDelete(message: Message) {
if (message.attachments.size > 0) { if (message.attachments.size > 0) {
embed.addFields([ embed.addFields([
{ {
name: "Attachments", name: `Attachments (${message.attachments.size})`,
value: `\`\`\`${message.attachments.map(x => x.url).join("\n")}\`\`\`` value: `\`\`\`${message.attachments.map(x => x.name).join("\n")}\`\`\``
} }
]); ]);
} }

View file

@ -37,6 +37,9 @@ import MessageDelete from "./events/MessageEvents/MessageDelete";
import MessageUpdate from "./events/MessageEvents/MessageUpdate"; import MessageUpdate from "./events/MessageEvents/MessageUpdate";
import MessageCreate from "./events/MessageEvents/MessageCreate"; import MessageCreate from "./events/MessageEvents/MessageCreate";
// Button Event Imports
import Verify from "./buttonEvents/verify";
export default class Registry { export default class Registry {
public static RegisterCommands() { public static RegisterCommands() {
CoreClient.RegisterCommand("about", new About()); CoreClient.RegisterCommand("about", new About());
@ -84,4 +87,8 @@ export default class Registry {
CoreClient.RegisterEvent(EventType.MessageUpdate, MessageUpdate); CoreClient.RegisterEvent(EventType.MessageUpdate, MessageUpdate);
CoreClient.RegisterEvent(EventType.MessageCreate, MessageCreate); CoreClient.RegisterEvent(EventType.MessageCreate, MessageCreate);
} }
public static RegisterButtonEvents() {
CoreClient.RegisterButtonEvent("verify", new Verify());
}
} }

5
src/type/buttonEvent.ts Normal file
View file

@ -0,0 +1,5 @@
import { ButtonInteraction } from "discord.js";
export abstract class ButtonEvent {
abstract execute(interaction: ButtonInteraction): Promise<void>;
}

View file

@ -1,7 +1,7 @@
import { CoreClient } from "./client/client"; import { CoreClient } from "./client/client";
import * as dotenv from "dotenv"; import * as dotenv from "dotenv";
import registry from "./registry"; import registry from "./registry";
import { IntentsBitField } from "discord.js"; import { IntentsBitField, Partials } from "discord.js";
dotenv.config(); dotenv.config();
@ -30,9 +30,13 @@ const client = new CoreClient([
IntentsBitField.Flags.GuildMessages, IntentsBitField.Flags.GuildMessages,
IntentsBitField.Flags.GuildMembers, IntentsBitField.Flags.GuildMembers,
IntentsBitField.Flags.MessageContent, IntentsBitField.Flags.MessageContent,
], [
Partials.GuildMember,
Partials.User,
]); ]);
registry.RegisterCommands(); registry.RegisterCommands();
registry.RegisterEvents(); registry.RegisterEvents();
registry.RegisterButtonEvents();
client.start(); client.start();

2332
yarn.lock

File diff suppressed because it is too large Load diff