mirror of
				https://github.com/warengroup/eximiabots-radiox.git
				synced 2025-11-04 10:09:36 +00:00 
			
		
		
		
	
							
								
								
									
										2
									
								
								.github/workflows/codeql-analyze.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/codeql-analyze.yml
									
									
									
									
										vendored
									
									
								
							@@ -39,7 +39,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: Checkout repository
 | 
			
		||||
      uses: actions/checkout@v2
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
    # Initializes the CodeQL tools for scanning.
 | 
			
		||||
    - name: Initialize CodeQL
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								.github/workflows/dependabot_auto-merge.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/dependabot_auto-merge.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,7 @@
 | 
			
		||||
name: Dependabot Auto-Merge
 | 
			
		||||
on: pull_request_target
 | 
			
		||||
on:
 | 
			
		||||
  pull_request_target:
 | 
			
		||||
    branches: [ develop ]
 | 
			
		||||
 | 
			
		||||
permissions:
 | 
			
		||||
  pull-requests: write
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/docker-build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/docker-build.yml
									
									
									
									
										vendored
									
									
								
							@@ -10,7 +10,7 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: Checkout
 | 
			
		||||
      uses: actions/checkout@v2
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
    - name: Setup Docker Buildx
 | 
			
		||||
      uses: docker/setup-buildx-action@v1.6.0
 | 
			
		||||
      id: buildx
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/labeler.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/labeler.yml
									
									
									
									
										vendored
									
									
								
							@@ -11,7 +11,7 @@ jobs:
 | 
			
		||||
      pull-requests: write
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/labeler@v3
 | 
			
		||||
    - uses: actions/labeler@v4
 | 
			
		||||
      with:
 | 
			
		||||
        repo-token: "${{ secrets.GITHUB_TOKEN }}"
 | 
			
		||||
        sync-labels: true
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/typescript-build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/typescript-build.yml
									
									
									
									
										vendored
									
									
								
							@@ -9,7 +9,7 @@ jobs:
 | 
			
		||||
    name: TypeScript Build
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v1
 | 
			
		||||
    - uses: actions/checkout@v3
 | 
			
		||||
    - name: install node v16
 | 
			
		||||
      uses: actions/setup-node@v3
 | 
			
		||||
      with:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										37
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								README.md
									
									
									
									
									
								
							@@ -5,8 +5,41 @@ Internet Radio to your Discord guild
 | 
			
		||||
This bot is using Gitea repo to get radio stations from [playlist.json](https://git.cwinfo.net/cwchristerw/radio/raw/branch/master/playlist.json) file. List is currently maintained by Christer Warén. You can use alternative list with same format when using RADIOX_STATIONSLISTURL environment variable.
 | 
			
		||||
 | 
			
		||||
## Docker
 | 
			
		||||
1. `docker build -t warengroup/eximiabots-radiox . --pull`
 | 
			
		||||
2. `docker run --name radiox-dev -d --net host -e DISCORD_TOKEN= -v "$PWD/datastore":/usr/src/app/datastore/ warengroup/eximiabots-radiox`
 | 
			
		||||
 | 
			
		||||
### 1. Build Image
 | 
			
		||||
 | 
			
		||||
**Production**
 | 
			
		||||
```
 | 
			
		||||
docker build -t warengroup/eximiabots-radiox:0.3.20 . --pull
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
**Beta**
 | 
			
		||||
```
 | 
			
		||||
docker build -t warengroup/eximiabots-radiox:0.3.20-beta . --pull
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
**Dev**
 | 
			
		||||
```
 | 
			
		||||
docker build -t warengroup/eximiabots-radiox:0.3.20-dev . --pull
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### 2. Run Container
 | 
			
		||||
 | 
			
		||||
**Production**
 | 
			
		||||
```
 | 
			
		||||
docker run --name radiox --net host -d -e DISCORD_TOKEN= -e STREAMER_MODE=auto -v "$PWD/datastore":/usr/src/app/datastore/ warengroup/eximiabots-radiox:0.3.20
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
**Beta**
 | 
			
		||||
```
 | 
			
		||||
docker run --name radiox --net host -d -e DISCORD_TOKEN= -e STREAMER_MODE=auto -v "$PWD/datastore":/usr/src/app/datastore/ warengroup/eximiabots-radiox:0.3.20-beta
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
**Dev**
 | 
			
		||||
```
 | 
			
		||||
docker run --rm --name radiox-dev --net host -e DISCORD_TOKEN= -e DEV_MODE=true -v "$PWD":/usr/src/app/ warengroup/eximiabots-radiox:0.3.20-dev
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Join our Discord Server
 | 
			
		||||
https://discord.gg/rRA65Mn
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										383
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										383
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -1,39 +1,39 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "eximiabots-radiox",
 | 
			
		||||
  "version": "0.3.19",
 | 
			
		||||
  "version": "0.3.20",
 | 
			
		||||
  "lockfileVersion": 2,
 | 
			
		||||
  "requires": true,
 | 
			
		||||
  "packages": {
 | 
			
		||||
    "": {
 | 
			
		||||
      "name": "eximiabots-radiox",
 | 
			
		||||
      "version": "0.3.19",
 | 
			
		||||
      "version": "0.3.20",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@discordjs/builders": "^0.12.0",
 | 
			
		||||
        "@discordjs/opus": "^0.7.0",
 | 
			
		||||
        "@discordjs/rest": "^0.3.0",
 | 
			
		||||
        "@discordjs/voice": "^0.8.0",
 | 
			
		||||
        "discord-api-types": "^0.27.3",
 | 
			
		||||
        "discord-api-types": "^0.31.0",
 | 
			
		||||
        "discord.js": "^13.6.0",
 | 
			
		||||
        "dotenv": "^16.0.0",
 | 
			
		||||
        "libsodium-wrappers": "^0.7.9",
 | 
			
		||||
        "node-fetch": "^3.2.0",
 | 
			
		||||
        "libsodium-wrappers": "^0.7.10",
 | 
			
		||||
        "node-fetch": "^3.2.3",
 | 
			
		||||
        "path": "^0.12.7"
 | 
			
		||||
      },
 | 
			
		||||
      "devDependencies": {
 | 
			
		||||
        "@types/node": "^17.0.21",
 | 
			
		||||
        "@types/ws": "^8.5.1",
 | 
			
		||||
        "@typescript-eslint/eslint-plugin": "^5.12.0",
 | 
			
		||||
        "@typescript-eslint/parser": "^5.12.0",
 | 
			
		||||
        "eslint": "^8.10.0",
 | 
			
		||||
        "eslint-config-prettier": "^8.4.0",
 | 
			
		||||
        "@types/node": "^17.0.23",
 | 
			
		||||
        "@types/ws": "^8.5.3",
 | 
			
		||||
        "@typescript-eslint/eslint-plugin": "^5.18.0",
 | 
			
		||||
        "@typescript-eslint/parser": "^5.18.0",
 | 
			
		||||
        "eslint": "^8.12.0",
 | 
			
		||||
        "eslint-config-prettier": "^8.5.0",
 | 
			
		||||
        "eslint-plugin-prettier": "^4.0.0",
 | 
			
		||||
        "nodemon": "^2.0.15",
 | 
			
		||||
        "prettier": "^2.5.1",
 | 
			
		||||
        "prettier": "^2.6.2",
 | 
			
		||||
        "rimraf": "^3.0.2",
 | 
			
		||||
        "ts-node": "^10.5.0",
 | 
			
		||||
        "tsc-watch": "^4.6.0",
 | 
			
		||||
        "typescript": "^4.5.5"
 | 
			
		||||
        "ts-node": "^10.7.0",
 | 
			
		||||
        "tsc-watch": "^5.0.2",
 | 
			
		||||
        "typescript": "^4.6.3"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">=16.9.1",
 | 
			
		||||
@@ -263,16 +263,16 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@eslint/eslintrc": {
 | 
			
		||||
      "version": "1.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==",
 | 
			
		||||
      "version": "1.2.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz",
 | 
			
		||||
      "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "ajv": "^6.12.4",
 | 
			
		||||
        "debug": "^4.3.2",
 | 
			
		||||
        "espree": "^9.3.1",
 | 
			
		||||
        "globals": "^13.9.0",
 | 
			
		||||
        "ignore": "^4.0.6",
 | 
			
		||||
        "ignore": "^5.2.0",
 | 
			
		||||
        "import-fresh": "^3.2.1",
 | 
			
		||||
        "js-yaml": "^4.1.0",
 | 
			
		||||
        "minimatch": "^3.0.4",
 | 
			
		||||
@@ -282,15 +282,6 @@
 | 
			
		||||
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@eslint/eslintrc/node_modules/ignore": {
 | 
			
		||||
      "version": "4.0.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
 | 
			
		||||
      "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 4"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@humanwhocodes/config-array": {
 | 
			
		||||
      "version": "0.9.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz",
 | 
			
		||||
@@ -412,15 +403,15 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@types/json-schema": {
 | 
			
		||||
      "version": "7.0.9",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz",
 | 
			
		||||
      "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==",
 | 
			
		||||
      "version": "7.0.11",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
 | 
			
		||||
      "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@types/node": {
 | 
			
		||||
      "version": "17.0.21",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz",
 | 
			
		||||
      "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ=="
 | 
			
		||||
      "version": "17.0.23",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz",
 | 
			
		||||
      "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@types/node-fetch": {
 | 
			
		||||
      "version": "2.6.1",
 | 
			
		||||
@@ -445,22 +436,22 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@types/ws": {
 | 
			
		||||
      "version": "8.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-UxlLOfkuQnT2YSBCNq0x86SGOUxas6gAySFeDe2DcnEnA8655UIPoCDorWZCugcvKIL8IUI4oueUfJ1hhZSE2A==",
 | 
			
		||||
      "version": "8.5.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
 | 
			
		||||
      "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@types/node": "*"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@typescript-eslint/eslint-plugin": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-tzrmdGMJI/uii9/V6lurMo4/o+dMTKDH82LkNjhJ3adCW22YQydoRs5MwTiqxGF9CSYxPxQ7EYb4jLNlIs+E+A==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@typescript-eslint/scope-manager": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/type-utils": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/utils": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/scope-manager": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/type-utils": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/utils": "5.18.0",
 | 
			
		||||
        "debug": "^4.3.2",
 | 
			
		||||
        "functional-red-black-tree": "^1.0.1",
 | 
			
		||||
        "ignore": "^5.1.8",
 | 
			
		||||
@@ -486,14 +477,14 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@typescript-eslint/parser": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-+08nYfurBzSSPndngnHvFw/fniWYJ5ymOrn/63oMIbgomVQOvIDhBoJmYZ9lwQOCnQV9xHGvf88ze3jFGUYooQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@typescript-eslint/scope-manager": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/types": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/typescript-estree": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/scope-manager": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/types": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/typescript-estree": "5.18.0",
 | 
			
		||||
        "debug": "^4.3.2"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
@@ -513,13 +504,13 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@typescript-eslint/scope-manager": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@typescript-eslint/types": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/visitor-keys": "5.12.1"
 | 
			
		||||
        "@typescript-eslint/types": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/visitor-keys": "5.18.0"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
 | 
			
		||||
@@ -530,12 +521,12 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@typescript-eslint/type-utils": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-vcn9/6J5D6jtHxpEJrgK8FhaM8r6J1/ZiNu70ZUJN554Y3D9t3iovi6u7JF8l/e7FcBIxeuTEidZDR70UuCIfA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@typescript-eslint/utils": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/utils": "5.18.0",
 | 
			
		||||
        "debug": "^4.3.2",
 | 
			
		||||
        "tsutils": "^3.21.0"
 | 
			
		||||
      },
 | 
			
		||||
@@ -556,9 +547,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@typescript-eslint/types": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
 | 
			
		||||
@@ -569,13 +560,13 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@typescript-eslint/typescript-estree": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@typescript-eslint/types": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/visitor-keys": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/types": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/visitor-keys": "5.18.0",
 | 
			
		||||
        "debug": "^4.3.2",
 | 
			
		||||
        "globby": "^11.0.4",
 | 
			
		||||
        "is-glob": "^4.0.3",
 | 
			
		||||
@@ -596,15 +587,15 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@typescript-eslint/utils": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-+hFGWUMMri7OFY26TsOlGa+zgjEy1ssEipxpLjtl4wSll8zy85x0GrUSju/FHdKfVorZPYJLkF3I4XPtnCTewA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@types/json-schema": "^7.0.9",
 | 
			
		||||
        "@typescript-eslint/scope-manager": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/types": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/typescript-estree": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/scope-manager": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/types": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/typescript-estree": "5.18.0",
 | 
			
		||||
        "eslint-scope": "^5.1.1",
 | 
			
		||||
        "eslint-utils": "^3.0.0"
 | 
			
		||||
      },
 | 
			
		||||
@@ -620,12 +611,12 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@typescript-eslint/visitor-keys": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@typescript-eslint/types": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/types": "5.18.0",
 | 
			
		||||
        "eslint-visitor-keys": "^3.0.0"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
@@ -1192,9 +1183,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/discord-api-types": {
 | 
			
		||||
      "version": "0.27.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.27.3.tgz",
 | 
			
		||||
      "integrity": "sha512-HOG64DTpZ7CB5EU9eKbjHD50H5qG1pxKG8pmFfHUMKjKvEWeLBHfw0c9xF1cruiYLnBb3+n7m3jBWxZ3H1hcgQ=="
 | 
			
		||||
      "version": "0.31.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.31.0.tgz",
 | 
			
		||||
      "integrity": "sha512-IL4KKEo3QOQRcrtkpAYiDOQHIVuDBgtzFgDKsMqllbPKi3o/54mJOvYEG38oFa1G2qR4b+nTB5mMgc85W4/eQw=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/discord.js": {
 | 
			
		||||
      "version": "13.6.0",
 | 
			
		||||
@@ -1340,12 +1331,12 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/eslint": {
 | 
			
		||||
      "version": "8.10.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz",
 | 
			
		||||
      "integrity": "sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==",
 | 
			
		||||
      "version": "8.12.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz",
 | 
			
		||||
      "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@eslint/eslintrc": "^1.2.0",
 | 
			
		||||
        "@eslint/eslintrc": "^1.2.1",
 | 
			
		||||
        "@humanwhocodes/config-array": "^0.9.2",
 | 
			
		||||
        "ajv": "^6.10.0",
 | 
			
		||||
        "chalk": "^4.0.0",
 | 
			
		||||
@@ -1392,9 +1383,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/eslint-config-prettier": {
 | 
			
		||||
      "version": "8.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.4.0.tgz",
 | 
			
		||||
      "integrity": "sha512-CFotdUcMY18nGRo5KGsnNxpznzhkopOcOo0InID+sgQssPrzjvsyKZPvOgymTFeHrFuC3Tzdf2YndhXtULK9Iw==",
 | 
			
		||||
      "version": "8.5.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
 | 
			
		||||
      "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "bin": {
 | 
			
		||||
        "eslint-config-prettier": "bin/cli.js"
 | 
			
		||||
@@ -2234,9 +2225,9 @@
 | 
			
		||||
      "integrity": "sha512-gfeADtR4D/CM0oRUviKBViMGXZDgnFdMKMzHsvBdqLBHd9ySi6EtYnmuhHVDDYgYpAO8eU8hEY+F8vIUAPh08A=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/libsodium-wrappers": {
 | 
			
		||||
      "version": "0.7.9",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz",
 | 
			
		||||
      "integrity": "sha512-9HaAeBGk1nKTRFRHkt7nzxqCvnkWTjn1pdjKgcUnZxj0FyOP4CnhgFhMdrFfgNsukijBGyBLpP2m2uKT1vuWhQ==",
 | 
			
		||||
      "version": "0.7.10",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.10.tgz",
 | 
			
		||||
      "integrity": "sha512-pO3F1Q9NPLB/MWIhehim42b/Fwb30JNScCNh8TcQ/kIc+qGLQch8ag8wb0keK3EP5kbGakk1H8Wwo7v+36rNQg==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "libsodium": "^0.7.0"
 | 
			
		||||
      }
 | 
			
		||||
@@ -2363,9 +2354,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/minimist": {
 | 
			
		||||
      "version": "1.2.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
 | 
			
		||||
      "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
 | 
			
		||||
      "version": "1.2.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
 | 
			
		||||
      "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/minipass": {
 | 
			
		||||
@@ -2443,9 +2434,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/node-fetch": {
 | 
			
		||||
      "version": "3.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-8xeimMwMItMw8hRrOl3C9/xzU49HV/yE6ORew/l+dxWimO5A4Ra8ld2rerlJvc/O7et5Z1zrWsPX43v1QBjCxw==",
 | 
			
		||||
      "version": "3.2.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.3.tgz",
 | 
			
		||||
      "integrity": "sha512-AXP18u4pidSZ1xYXRDPY/8jdv3RAozIt/WLNR/MBGZAz+xjtlr90RvCnsvHQRiXyWliZF/CpytExp32UU67/SA==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "data-uri-to-buffer": "^4.0.0",
 | 
			
		||||
        "fetch-blob": "^3.1.4",
 | 
			
		||||
@@ -2723,15 +2714,18 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/prettier": {
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==",
 | 
			
		||||
      "version": "2.6.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
 | 
			
		||||
      "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "bin": {
 | 
			
		||||
        "prettier": "bin-prettier.js"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">=10.13.0"
 | 
			
		||||
      },
 | 
			
		||||
      "funding": {
 | 
			
		||||
        "url": "https://github.com/prettier/prettier?sponsor=1"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/prettier-linter-helpers": {
 | 
			
		||||
@@ -3254,9 +3248,9 @@
 | 
			
		||||
      "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/ts-node": {
 | 
			
		||||
      "version": "10.5.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.5.0.tgz",
 | 
			
		||||
      "integrity": "sha512-6kEJKwVxAJ35W4akuiysfKwKmjkbYxwQMTBaAxo9KKAx/Yd26mPUyhGz3ji+EsJoAgrLqVsYHNuuYwQe22lbtw==",
 | 
			
		||||
      "version": "10.7.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz",
 | 
			
		||||
      "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@cspotcode/source-map-support": "0.7.0",
 | 
			
		||||
@@ -3276,6 +3270,7 @@
 | 
			
		||||
      "bin": {
 | 
			
		||||
        "ts-node": "dist/bin.js",
 | 
			
		||||
        "ts-node-cwd": "dist/bin-cwd.js",
 | 
			
		||||
        "ts-node-esm": "dist/bin-esm.js",
 | 
			
		||||
        "ts-node-script": "dist/bin-script.js",
 | 
			
		||||
        "ts-node-transpile-only": "dist/bin-transpile.js",
 | 
			
		||||
        "ts-script": "dist/bin-script-deprecated.js"
 | 
			
		||||
@@ -3296,9 +3291,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/tsc-watch": {
 | 
			
		||||
      "version": "4.6.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/tsc-watch/-/tsc-watch-4.6.0.tgz",
 | 
			
		||||
      "integrity": "sha512-DRMADjFe44EDWb+YMIOj4b83UrU6le27L3/o0/9FlmA01ikFd5Dl9RD5h1hpeh0mQdIqXvwfHZszCcjhH3bAmQ==",
 | 
			
		||||
      "version": "5.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/tsc-watch/-/tsc-watch-5.0.2.tgz",
 | 
			
		||||
      "integrity": "sha512-TaOOLY2xJCorxCt6seXhNH/35p991rp2GkddSA3S8wxc6utBeVFVMFnlK8UEsf7I07So8NZ/IpDDb3nBNhN4DA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "cross-spawn": "^7.0.3",
 | 
			
		||||
@@ -3377,9 +3372,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/typescript": {
 | 
			
		||||
      "version": "4.5.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz",
 | 
			
		||||
      "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==",
 | 
			
		||||
      "version": "4.6.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
 | 
			
		||||
      "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "bin": {
 | 
			
		||||
        "tsc": "bin/tsc",
 | 
			
		||||
@@ -3787,28 +3782,20 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@eslint/eslintrc": {
 | 
			
		||||
      "version": "1.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==",
 | 
			
		||||
      "version": "1.2.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz",
 | 
			
		||||
      "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "ajv": "^6.12.4",
 | 
			
		||||
        "debug": "^4.3.2",
 | 
			
		||||
        "espree": "^9.3.1",
 | 
			
		||||
        "globals": "^13.9.0",
 | 
			
		||||
        "ignore": "^4.0.6",
 | 
			
		||||
        "ignore": "^5.2.0",
 | 
			
		||||
        "import-fresh": "^3.2.1",
 | 
			
		||||
        "js-yaml": "^4.1.0",
 | 
			
		||||
        "minimatch": "^3.0.4",
 | 
			
		||||
        "strip-json-comments": "^3.1.1"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "ignore": {
 | 
			
		||||
          "version": "4.0.6",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
 | 
			
		||||
          "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
 | 
			
		||||
          "dev": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@humanwhocodes/config-array": {
 | 
			
		||||
@@ -3903,15 +3890,15 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "@types/json-schema": {
 | 
			
		||||
      "version": "7.0.9",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz",
 | 
			
		||||
      "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==",
 | 
			
		||||
      "version": "7.0.11",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
 | 
			
		||||
      "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "@types/node": {
 | 
			
		||||
      "version": "17.0.21",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz",
 | 
			
		||||
      "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ=="
 | 
			
		||||
      "version": "17.0.23",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz",
 | 
			
		||||
      "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw=="
 | 
			
		||||
    },
 | 
			
		||||
    "@types/node-fetch": {
 | 
			
		||||
      "version": "2.6.1",
 | 
			
		||||
@@ -3935,22 +3922,22 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@types/ws": {
 | 
			
		||||
      "version": "8.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-UxlLOfkuQnT2YSBCNq0x86SGOUxas6gAySFeDe2DcnEnA8655UIPoCDorWZCugcvKIL8IUI4oueUfJ1hhZSE2A==",
 | 
			
		||||
      "version": "8.5.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
 | 
			
		||||
      "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@types/node": "*"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-tzrmdGMJI/uii9/V6lurMo4/o+dMTKDH82LkNjhJ3adCW22YQydoRs5MwTiqxGF9CSYxPxQ7EYb4jLNlIs+E+A==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@typescript-eslint/scope-manager": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/type-utils": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/utils": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/scope-manager": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/type-utils": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/utils": "5.18.0",
 | 
			
		||||
        "debug": "^4.3.2",
 | 
			
		||||
        "functional-red-black-tree": "^1.0.1",
 | 
			
		||||
        "ignore": "^5.1.8",
 | 
			
		||||
@@ -3960,52 +3947,52 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@typescript-eslint/parser": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-+08nYfurBzSSPndngnHvFw/fniWYJ5ymOrn/63oMIbgomVQOvIDhBoJmYZ9lwQOCnQV9xHGvf88ze3jFGUYooQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@typescript-eslint/scope-manager": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/types": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/typescript-estree": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/scope-manager": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/types": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/typescript-estree": "5.18.0",
 | 
			
		||||
        "debug": "^4.3.2"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@typescript-eslint/scope-manager": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@typescript-eslint/types": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/visitor-keys": "5.12.1"
 | 
			
		||||
        "@typescript-eslint/types": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/visitor-keys": "5.18.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@typescript-eslint/type-utils": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-vcn9/6J5D6jtHxpEJrgK8FhaM8r6J1/ZiNu70ZUJN554Y3D9t3iovi6u7JF8l/e7FcBIxeuTEidZDR70UuCIfA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@typescript-eslint/utils": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/utils": "5.18.0",
 | 
			
		||||
        "debug": "^4.3.2",
 | 
			
		||||
        "tsutils": "^3.21.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@typescript-eslint/types": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "@typescript-eslint/typescript-estree": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@typescript-eslint/types": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/visitor-keys": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/types": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/visitor-keys": "5.18.0",
 | 
			
		||||
        "debug": "^4.3.2",
 | 
			
		||||
        "globby": "^11.0.4",
 | 
			
		||||
        "is-glob": "^4.0.3",
 | 
			
		||||
@@ -4014,26 +4001,26 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@typescript-eslint/utils": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-+hFGWUMMri7OFY26TsOlGa+zgjEy1ssEipxpLjtl4wSll8zy85x0GrUSju/FHdKfVorZPYJLkF3I4XPtnCTewA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@types/json-schema": "^7.0.9",
 | 
			
		||||
        "@typescript-eslint/scope-manager": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/types": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/typescript-estree": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/scope-manager": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/types": "5.18.0",
 | 
			
		||||
        "@typescript-eslint/typescript-estree": "5.18.0",
 | 
			
		||||
        "eslint-scope": "^5.1.1",
 | 
			
		||||
        "eslint-utils": "^3.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@typescript-eslint/visitor-keys": {
 | 
			
		||||
      "version": "5.12.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz",
 | 
			
		||||
      "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==",
 | 
			
		||||
      "version": "5.18.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz",
 | 
			
		||||
      "integrity": "sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@typescript-eslint/types": "5.12.1",
 | 
			
		||||
        "@typescript-eslint/types": "5.18.0",
 | 
			
		||||
        "eslint-visitor-keys": "^3.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
@@ -4449,9 +4436,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "discord-api-types": {
 | 
			
		||||
      "version": "0.27.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.27.3.tgz",
 | 
			
		||||
      "integrity": "sha512-HOG64DTpZ7CB5EU9eKbjHD50H5qG1pxKG8pmFfHUMKjKvEWeLBHfw0c9xF1cruiYLnBb3+n7m3jBWxZ3H1hcgQ=="
 | 
			
		||||
      "version": "0.31.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.31.0.tgz",
 | 
			
		||||
      "integrity": "sha512-IL4KKEo3QOQRcrtkpAYiDOQHIVuDBgtzFgDKsMqllbPKi3o/54mJOvYEG38oFa1G2qR4b+nTB5mMgc85W4/eQw=="
 | 
			
		||||
    },
 | 
			
		||||
    "discord.js": {
 | 
			
		||||
      "version": "13.6.0",
 | 
			
		||||
@@ -4558,12 +4545,12 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "eslint": {
 | 
			
		||||
      "version": "8.10.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz",
 | 
			
		||||
      "integrity": "sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==",
 | 
			
		||||
      "version": "8.12.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz",
 | 
			
		||||
      "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@eslint/eslintrc": "^1.2.0",
 | 
			
		||||
        "@eslint/eslintrc": "^1.2.1",
 | 
			
		||||
        "@humanwhocodes/config-array": "^0.9.2",
 | 
			
		||||
        "ajv": "^6.10.0",
 | 
			
		||||
        "chalk": "^4.0.0",
 | 
			
		||||
@@ -4619,9 +4606,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "eslint-config-prettier": {
 | 
			
		||||
      "version": "8.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.4.0.tgz",
 | 
			
		||||
      "integrity": "sha512-CFotdUcMY18nGRo5KGsnNxpznzhkopOcOo0InID+sgQssPrzjvsyKZPvOgymTFeHrFuC3Tzdf2YndhXtULK9Iw==",
 | 
			
		||||
      "version": "8.5.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
 | 
			
		||||
      "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {}
 | 
			
		||||
    },
 | 
			
		||||
@@ -5238,9 +5225,9 @@
 | 
			
		||||
      "integrity": "sha512-gfeADtR4D/CM0oRUviKBViMGXZDgnFdMKMzHsvBdqLBHd9ySi6EtYnmuhHVDDYgYpAO8eU8hEY+F8vIUAPh08A=="
 | 
			
		||||
    },
 | 
			
		||||
    "libsodium-wrappers": {
 | 
			
		||||
      "version": "0.7.9",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz",
 | 
			
		||||
      "integrity": "sha512-9HaAeBGk1nKTRFRHkt7nzxqCvnkWTjn1pdjKgcUnZxj0FyOP4CnhgFhMdrFfgNsukijBGyBLpP2m2uKT1vuWhQ==",
 | 
			
		||||
      "version": "0.7.10",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.10.tgz",
 | 
			
		||||
      "integrity": "sha512-pO3F1Q9NPLB/MWIhehim42b/Fwb30JNScCNh8TcQ/kIc+qGLQch8ag8wb0keK3EP5kbGakk1H8Wwo7v+36rNQg==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "libsodium": "^0.7.0"
 | 
			
		||||
      }
 | 
			
		||||
@@ -5336,9 +5323,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "minimist": {
 | 
			
		||||
      "version": "1.2.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
 | 
			
		||||
      "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
 | 
			
		||||
      "version": "1.2.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
 | 
			
		||||
      "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "minipass": {
 | 
			
		||||
@@ -5391,9 +5378,9 @@
 | 
			
		||||
      "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "node-fetch": {
 | 
			
		||||
      "version": "3.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-8xeimMwMItMw8hRrOl3C9/xzU49HV/yE6ORew/l+dxWimO5A4Ra8ld2rerlJvc/O7et5Z1zrWsPX43v1QBjCxw==",
 | 
			
		||||
      "version": "3.2.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.3.tgz",
 | 
			
		||||
      "integrity": "sha512-AXP18u4pidSZ1xYXRDPY/8jdv3RAozIt/WLNR/MBGZAz+xjtlr90RvCnsvHQRiXyWliZF/CpytExp32UU67/SA==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "data-uri-to-buffer": "^4.0.0",
 | 
			
		||||
        "fetch-blob": "^3.1.4",
 | 
			
		||||
@@ -5597,9 +5584,9 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "prettier": {
 | 
			
		||||
      "version": "2.5.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz",
 | 
			
		||||
      "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==",
 | 
			
		||||
      "version": "2.6.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
 | 
			
		||||
      "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "prettier-linter-helpers": {
 | 
			
		||||
@@ -5971,9 +5958,9 @@
 | 
			
		||||
      "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "ts-node": {
 | 
			
		||||
      "version": "10.5.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.5.0.tgz",
 | 
			
		||||
      "integrity": "sha512-6kEJKwVxAJ35W4akuiysfKwKmjkbYxwQMTBaAxo9KKAx/Yd26mPUyhGz3ji+EsJoAgrLqVsYHNuuYwQe22lbtw==",
 | 
			
		||||
      "version": "10.7.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz",
 | 
			
		||||
      "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@cspotcode/source-map-support": "0.7.0",
 | 
			
		||||
@@ -5992,9 +5979,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "tsc-watch": {
 | 
			
		||||
      "version": "4.6.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/tsc-watch/-/tsc-watch-4.6.0.tgz",
 | 
			
		||||
      "integrity": "sha512-DRMADjFe44EDWb+YMIOj4b83UrU6le27L3/o0/9FlmA01ikFd5Dl9RD5h1hpeh0mQdIqXvwfHZszCcjhH3bAmQ==",
 | 
			
		||||
      "version": "5.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/tsc-watch/-/tsc-watch-5.0.2.tgz",
 | 
			
		||||
      "integrity": "sha512-TaOOLY2xJCorxCt6seXhNH/35p991rp2GkddSA3S8wxc6utBeVFVMFnlK8UEsf7I07So8NZ/IpDDb3nBNhN4DA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "cross-spawn": "^7.0.3",
 | 
			
		||||
@@ -6051,9 +6038,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "typescript": {
 | 
			
		||||
      "version": "4.5.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz",
 | 
			
		||||
      "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==",
 | 
			
		||||
      "version": "4.6.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
 | 
			
		||||
      "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "undefsafe": {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								package.json
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "eximiabots-radiox",
 | 
			
		||||
  "version": "0.3.19",
 | 
			
		||||
  "version": "0.3.20",
 | 
			
		||||
  "description": "Internet Radio to your Discord guild",
 | 
			
		||||
  "main": "index.js",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
@@ -22,27 +22,27 @@
 | 
			
		||||
    "@discordjs/opus": "^0.7.0",
 | 
			
		||||
    "@discordjs/rest": "^0.3.0",
 | 
			
		||||
    "@discordjs/voice": "^0.8.0",
 | 
			
		||||
    "discord-api-types": "^0.27.3",
 | 
			
		||||
    "discord-api-types": "^0.31.0",
 | 
			
		||||
    "discord.js": "^13.6.0",
 | 
			
		||||
    "dotenv": "^16.0.0",
 | 
			
		||||
    "libsodium-wrappers": "^0.7.9",
 | 
			
		||||
    "node-fetch": "^3.2.0",
 | 
			
		||||
    "libsodium-wrappers": "^0.7.10",
 | 
			
		||||
    "node-fetch": "^3.2.3",
 | 
			
		||||
    "path": "^0.12.7"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@types/node": "^17.0.21",
 | 
			
		||||
    "@types/ws": "^8.5.1",
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": "^5.12.0",
 | 
			
		||||
    "@typescript-eslint/parser": "^5.12.0",
 | 
			
		||||
    "eslint": "^8.10.0",
 | 
			
		||||
    "eslint-config-prettier": "^8.4.0",
 | 
			
		||||
    "@types/node": "^17.0.23",
 | 
			
		||||
    "@types/ws": "^8.5.3",
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": "^5.18.0",
 | 
			
		||||
    "@typescript-eslint/parser": "^5.18.0",
 | 
			
		||||
    "eslint": "^8.12.0",
 | 
			
		||||
    "eslint-config-prettier": "^8.5.0",
 | 
			
		||||
    "eslint-plugin-prettier": "^4.0.0",
 | 
			
		||||
    "nodemon": "^2.0.15",
 | 
			
		||||
    "prettier": "^2.5.1",
 | 
			
		||||
    "prettier": "^2.6.2",
 | 
			
		||||
    "rimraf": "^3.0.2",
 | 
			
		||||
    "ts-node": "^10.5.0",
 | 
			
		||||
    "tsc-watch": "^4.6.0",
 | 
			
		||||
    "typescript": "^4.5.5"
 | 
			
		||||
    "ts-node": "^10.7.0",
 | 
			
		||||
    "tsc-watch": "^5.0.2",
 | 
			
		||||
    "typescript": "^4.6.3"
 | 
			
		||||
  },
 | 
			
		||||
  "engines": {
 | 
			
		||||
      "node": ">=16.9.1",
 | 
			
		||||
 
 | 
			
		||||
@@ -25,11 +25,9 @@ module.exports = class Stations extends Array {
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
                if(options.show){
 | 
			
		||||
                    this.logger('Stations');
 | 
			
		||||
                    list.forEach(station => {
 | 
			
		||||
                        console.log("- " + station.name);
 | 
			
		||||
                        this.logger('Stations', station.name);
 | 
			
		||||
                    });
 | 
			
		||||
                    console.log("\n");
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                list.forEach(async station => {
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,10 @@ module.exports = {
 | 
			
		||||
            .setColor(client.config.embedColor)
 | 
			
		||||
            .setDescription(message.bugDescription)
 | 
			
		||||
            .setImage('https://waren.io/berriabot-temp-sa7a36a9xm6837br/images/empty-3.png')
 | 
			
		||||
            .setFooter(client.messages.footerText, "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, ''));
 | 
			
		||||
            .setFooter({
 | 
			
		||||
                text: client.messages.footerText,
 | 
			
		||||
                iconURL: "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, '')
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
        interaction.reply({
 | 
			
		||||
            embeds: [embed],
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,10 @@ module.exports = {
 | 
			
		||||
            .setColor(client.config.embedColor)
 | 
			
		||||
            .setDescription(message.helpDescription)
 | 
			
		||||
            .setImage('https://waren.io/berriabot-temp-sa7a36a9xm6837br/images/empty-3.png')
 | 
			
		||||
            .setFooter(client.messages.footerText, "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, ''));
 | 
			
		||||
            .setFooter({
 | 
			
		||||
                text: client.messages.footerText,
 | 
			
		||||
                iconURL: "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, '')
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
        interaction.reply({
 | 
			
		||||
            embeds: [embed],
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,10 @@ module.exports = {
 | 
			
		||||
            .setColor(client.config.embedColor)
 | 
			
		||||
            .setURL("https://discord.com/api/oauth2/authorize?client_id=" + client.user.id + "&permissions=2184465408&scope=applications.commands%20bot") //View Channels, Send Messages, Embed Links, Use External Emojis, Use Slash Commands, Connect, Speak, Use Voice Activity
 | 
			
		||||
            .setImage('https://waren.io/berriabot-temp-sa7a36a9xm6837br/images/empty-3.png')
 | 
			
		||||
            .setFooter(client.messages.footerText, "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, ''));
 | 
			
		||||
            .setFooter({
 | 
			
		||||
                text: client.messages.footerText,
 | 
			
		||||
                iconURL: "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, '')
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
        interaction.reply({
 | 
			
		||||
            embeds: [embed],
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,10 @@ module.exports = {
 | 
			
		||||
                .setColor(client.config.embedColor)
 | 
			
		||||
                .setDescription(stations)
 | 
			
		||||
                .setImage('https://waren.io/berriabot-temp-sa7a36a9xm6837br/images/empty-3.png')
 | 
			
		||||
                .setFooter(client.messages.footerText, "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, ''));
 | 
			
		||||
                .setFooter({
 | 
			
		||||
                    text: client.messages.footerText,
 | 
			
		||||
                    iconURL: "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, '')
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            interaction.reply({
 | 
			
		||||
                embeds: [embed],
 | 
			
		||||
 
 | 
			
		||||
@@ -94,7 +94,10 @@ module.exports = {
 | 
			
		||||
            .setTitle(client.messages.maintenanceTitle)
 | 
			
		||||
            .setColor(client.config.embedColor)
 | 
			
		||||
            .setDescription(options.find(option => option.value == action).label)
 | 
			
		||||
            .setFooter(client.messages.footerText, "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, ''));
 | 
			
		||||
            .setFooter({
 | 
			
		||||
                text: client.messages.footerText,
 | 
			
		||||
                iconURL: "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, '')
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
        interaction.reply({
 | 
			
		||||
            embeds: [embed],
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,10 @@ module.exports = {
 | 
			
		||||
                .setColor(client.config.embedColor)
 | 
			
		||||
                .setDescription(message.nowplayingDescription)
 | 
			
		||||
                .setImage('https://waren.io/berriabot-temp-sa7a36a9xm6837br/images/empty-3.png')
 | 
			
		||||
                .setFooter(client.messages.footerText, "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, ''));
 | 
			
		||||
                .setFooter({
 | 
			
		||||
                    text: client.messages.footerText,
 | 
			
		||||
                    iconURL: "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, '')
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            interaction.reply({
 | 
			
		||||
                embeds: [embed],
 | 
			
		||||
 
 | 
			
		||||
@@ -23,17 +23,7 @@ module.exports = {
 | 
			
		||||
        if(!currentGuild || currentGuild && !currentGuild.statistics){
 | 
			
		||||
            statistics = "You have not listened any radio stations";
 | 
			
		||||
        } else {
 | 
			
		||||
            Object.keys(stations).forEach(function(station) {
 | 
			
		||||
                if(currentGuild.statistics[stations[station].name] && currentGuild.statistics[stations[station].name].time && parseInt(currentGuild.statistics[stations[station].name].time) > 0 && currentGuild.statistics[stations[station].name].used && parseInt(currentGuild.statistics[stations[station].name].used) > 0){
 | 
			
		||||
                    statistics += `**${parseInt(station) + 1}. ` + stations[station].name + "** \n";
 | 
			
		||||
                    if(global && global.statistics[stations[station].name] && global.statistics[stations[station].name].time && parseInt(global.statistics[stations[station].name].time) > 0 && global.statistics[stations[station].name].used && parseInt(global.statistics[stations[station].name].used) > 0){
 | 
			
		||||
                        statistics += "Guild – Time: " + client.funcs.msToTime(currentGuild.statistics[stations[station].name].time) + " (" + ((currentGuild.statistics[stations[station].name].time / global.statistics[stations[station].name].time) * 100).toFixed(0) + "%" + ")" + " / " + "Used: " + currentGuild.statistics[stations[station].name].used + " (" + ((currentGuild.statistics[stations[station].name].used / global.statistics[stations[station].name].used) * 100).toFixed(0) + "%" + ")" + "\n";
 | 
			
		||||
                        statistics += "Global – Time: " + client.funcs.msToTime(global.statistics[stations[station].name].time) + " / " + "Used: " + global.statistics[stations[station].name].used + "\n\n";
 | 
			
		||||
                    } else {
 | 
			
		||||
                        statistics += "Time: " + client.funcs.msToTime(currentGuild.statistics[stations[station].name].time) + " / " + "Used: " + currentGuild.statistics[stations[station].name].used + "\n\n";
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
            statistics = "[Open Dashboard](https://eximiabots.waren.io/radiox/" + interaction.guild.id + "/stats?info=" + Buffer.from(JSON.stringify(currentGuild), 'utf8').toString('base64') + "&globalInfo=" + Buffer.from(JSON.stringify(global), 'utf8').toString('base64') + ")" + "\n";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const embed = new Discord.MessageEmbed()
 | 
			
		||||
@@ -42,7 +32,10 @@ module.exports = {
 | 
			
		||||
            .setColor(client.config.embedColor)
 | 
			
		||||
            .setDescription(statistics)
 | 
			
		||||
            .setImage('https://waren.io/berriabot-temp-sa7a36a9xm6837br/images/empty-3.png')
 | 
			
		||||
            .setFooter(client.messages.footerText, "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, ''));
 | 
			
		||||
            .setFooter({
 | 
			
		||||
                text: client.messages.footerText,
 | 
			
		||||
                iconURL: "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, '')
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
        interaction.reply({
 | 
			
		||||
            embeds: [embed],
 | 
			
		||||
 
 | 
			
		||||
@@ -20,7 +20,10 @@ module.exports = {
 | 
			
		||||
            .addField(client.messages.statusField4, client.ws.ping + "ms", false)
 | 
			
		||||
            .addField(client.messages.statusField5, client.config.hostedBy, false)
 | 
			
		||||
            .setImage('https://waren.io/berriabot-temp-sa7a36a9xm6837br/images/empty-3.png')
 | 
			
		||||
            .setFooter(client.messages.footerText, "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, ''));
 | 
			
		||||
            .setFooter({
 | 
			
		||||
                text: client.messages.footerText,
 | 
			
		||||
                iconURL: "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, '')
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
        interaction.reply({
 | 
			
		||||
            embeds: [embed],
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,10 @@ module.exports = {
 | 
			
		||||
                .setColor(client.config.embedColor)
 | 
			
		||||
                .addField(client.messages.nowplayingTitle, "-", true)
 | 
			
		||||
                .setImage('https://waren.io/berriabot-temp-sa7a36a9xm6837br/images/empty-3.png')
 | 
			
		||||
                .setFooter(client.messages.footerText, "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, ''));
 | 
			
		||||
                .setFooter({
 | 
			
		||||
                    text: client.messages.footerText,
 | 
			
		||||
                    iconURL: "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, '')
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            if(!radio.message){
 | 
			
		||||
                radio.message = radio.textChannel.send({ embeds: [embed], components: [] });
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,10 @@ module.exports = {
 | 
			
		||||
                .setColor(client.config.embedColor)
 | 
			
		||||
                .setDescription(client.messages.messageCommandsDeprecatedDescription)
 | 
			
		||||
                .setImage('https://waren.io/berriabot-temp-sa7a36a9xm6837br/images/empty-3.png')
 | 
			
		||||
                .setFooter(client.messages.footerText, "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, ''));
 | 
			
		||||
                .setFooter({
 | 
			
		||||
                    text: client.messages.footerText,
 | 
			
		||||
                    iconURL: "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, '')
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
            let msg = await message.channel.send({ embeds: [embed] });
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,10 @@
 | 
			
		||||
module.exports = {
 | 
			
		||||
    name: 'messageDelete',
 | 
			
		||||
    async execute(client, msg) {
 | 
			
		||||
        if (!msg.author.bot || !msg.guild) return;
 | 
			
		||||
        if(!msg.author.bot || !msg.guild) return;
 | 
			
		||||
        const radio = client.radio.get(msg.guild.id);
 | 
			
		||||
        if (!radio) return;
 | 
			
		||||
        if(!radio) return;
 | 
			
		||||
        if(!radio.message) return;
 | 
			
		||||
        if(msg.id != radio.message.id) return;
 | 
			
		||||
        radio.message = null;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -23,20 +23,17 @@ module.exports = {
 | 
			
		||||
        client.funcs.logger('Datastore', 'Ready');
 | 
			
		||||
 | 
			
		||||
        /*DEVELOPERS*/
 | 
			
		||||
        client.funcs.logger('Developers');
 | 
			
		||||
 | 
			
		||||
        client.developers = "";
 | 
			
		||||
        let user = "";
 | 
			
		||||
        for (let i = 0; i < client.config.devId.length; i++) {
 | 
			
		||||
            user = await client.users.fetch(client.config.devId[i]);
 | 
			
		||||
            console.log("- " + user.tag);
 | 
			
		||||
            client.funcs.logger('Developers', user.tag);
 | 
			
		||||
            if (i == client.config.devId.length - 1) {
 | 
			
		||||
                client.developers += user.tag;
 | 
			
		||||
            } else {
 | 
			
		||||
                client.developers += user.tag + " & ";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        console.log("\n");
 | 
			
		||||
 | 
			
		||||
        /*STATIONS*/
 | 
			
		||||
        client.stations = new Stations();
 | 
			
		||||
@@ -63,12 +60,10 @@ module.exports = {
 | 
			
		||||
        /*GUILDS*/
 | 
			
		||||
        client.funcs.logger('Guilds', 'Started fetching list');
 | 
			
		||||
 | 
			
		||||
        client.funcs.logger('Guilds');
 | 
			
		||||
        let guilds = await client.guilds.fetch();
 | 
			
		||||
        guilds.forEach(guild => {
 | 
			
		||||
            console.log("- " + guild.id + " / " + guild.name);
 | 
			
		||||
            client.funcs.logger('Guilds', guild.id + " / " + guild.name);
 | 
			
		||||
        });
 | 
			
		||||
        console.log("\n");
 | 
			
		||||
 | 
			
		||||
        client.funcs.logger('Guilds', 'Successfully fetched list');
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ module.exports = {
 | 
			
		||||
    async execute(client, oldState, newState) {
 | 
			
		||||
        if (oldState.channel === null) return;
 | 
			
		||||
        let change = false;
 | 
			
		||||
        const radio = client.radio.get(newState.guild.id);
 | 
			
		||||
        const radio = client.radio?.get(newState.guild.id);
 | 
			
		||||
        if (!radio) return;
 | 
			
		||||
 | 
			
		||||
        if (newState.member.id === client.user.id && oldState.member.id === client.user.id) {
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,10 @@ module.exports = async function play(client, interaction, guild, station) {
 | 
			
		||||
        .setColor(client.config.embedColor)
 | 
			
		||||
        .addField(client.messages.nowplayingTitle, message.nowplayingDescription, true)
 | 
			
		||||
        .setImage('https://waren.io/berriabot-temp-sa7a36a9xm6837br/images/empty-3.png')
 | 
			
		||||
        .setFooter(client.messages.footerText, "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, ''));
 | 
			
		||||
        .setFooter({
 | 
			
		||||
            text: client.messages.footerText,
 | 
			
		||||
            iconURL: "https://cdn.discordapp.com/emojis/" + client.messageEmojis["eximiabots"].replace(/[^0-9]+/g, '')
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
    const buttons = new Discord.MessageActionRow()
 | 
			
		||||
        .addComponents(
 | 
			
		||||
@@ -54,13 +57,13 @@ module.exports = async function play(client, interaction, guild, station) {
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
    if(!radio.message){
 | 
			
		||||
        radio.message = await radio.textChannel.send({ embeds: [embed], components: [buttons] });
 | 
			
		||||
        radio.message = await radio.textChannel?.send({ embeds: [embed], components: [buttons] });
 | 
			
		||||
    } else {
 | 
			
		||||
        if(radio.textChannel.id == radio.message.channel.id){
 | 
			
		||||
            radio.message.edit({ embeds: [embed], components: [buttons] });
 | 
			
		||||
        } else {
 | 
			
		||||
            radio.message?.delete();
 | 
			
		||||
            radio.message = await radio.textChannel.send({ embeds: [embed], components: [buttons] });
 | 
			
		||||
            radio.message = await radio.textChannel?.send({ embeds: [embed], components: [buttons] });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user