init
This commit is contained in:
commit
6669b3fb8f
34
.gitignore
vendored
Normal file
34
.gitignore
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# dependencies (bun install)
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# output
|
||||||
|
out
|
||||||
|
dist
|
||||||
|
*.tgz
|
||||||
|
|
||||||
|
# code coverage
|
||||||
|
coverage
|
||||||
|
*.lcov
|
||||||
|
|
||||||
|
# logs
|
||||||
|
logs
|
||||||
|
_.log
|
||||||
|
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
|
||||||
|
|
||||||
|
# dotenv environment variable files
|
||||||
|
.env
|
||||||
|
.env.development.local
|
||||||
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
.env.local
|
||||||
|
|
||||||
|
# caches
|
||||||
|
.eslintcache
|
||||||
|
.cache
|
||||||
|
*.tsbuildinfo
|
||||||
|
|
||||||
|
# IntelliJ based IDEs
|
||||||
|
.idea
|
||||||
|
|
||||||
|
# Finder (MacOS) folder config
|
||||||
|
.DS_Store
|
15
README.md
Normal file
15
README.md
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# fantastic_spoon_dc
|
||||||
|
|
||||||
|
To install dependencies:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun install
|
||||||
|
```
|
||||||
|
|
||||||
|
To run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun run index.ts
|
||||||
|
```
|
||||||
|
|
||||||
|
This project was created using `bun init` in bun v1.2.10. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
|
30
bun.lock
Normal file
30
bun.lock
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"lockfileVersion": 1,
|
||||||
|
"workspaces": {
|
||||||
|
"": {
|
||||||
|
"name": "fantastic_spoon_dc",
|
||||||
|
"dependencies": {
|
||||||
|
"seyfert": "^3.0.0",
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/bun": "latest",
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"typescript": "^5",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"packages": {
|
||||||
|
"@types/bun": ["@types/bun@1.2.10", "", { "dependencies": { "bun-types": "1.2.10" } }, "sha512-eilv6WFM3M0c9ztJt7/g80BDusK98z/FrFwseZgT4bXCq2vPhXD4z8R3oddmAn+R/Nmz9vBn4kweJKmGTZj+lg=="],
|
||||||
|
|
||||||
|
"@types/node": ["@types/node@22.15.2", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A=="],
|
||||||
|
|
||||||
|
"bun-types": ["bun-types@1.2.10", "", { "dependencies": { "@types/node": "*" } }, "sha512-b5ITZMnVdf3m1gMvJHG+gIfeJHiQPJak0f7925Hxu6ZN5VKA8AGy4GZ4lM+Xkn6jtWxg5S3ldWvfmXdvnkp3GQ=="],
|
||||||
|
|
||||||
|
"seyfert": ["seyfert@3.0.0", "", {}, "sha512-Gs8e3gBqNgo6KCsCHND1k6I+rtKIeI/aUfA+AC4YQrgV9oiPwrWSCr9F4+Vu6S9IaTEyW9Tl7pkWfTXsukjbwA=="],
|
||||||
|
|
||||||
|
"typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="],
|
||||||
|
|
||||||
|
"undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
|
||||||
|
}
|
||||||
|
}
|
1
commands.json
Normal file
1
commands.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
[{"name":"mcs","type":1,"nsfw":false,"description":"Qeury a Minecraft server","contexts":[0,1,2],"integration_types":[0],"options":[{"name":"ip","description":"Server IP","type":3,"name_localizations":{},"description_localizations":{},"autocomplete":false}]},{"name":"ping","type":1,"nsfw":false,"description":"Show latency with Discord","contexts":[0,1,2],"integration_types":[0],"options":[]}]
|
18
package.json
Normal file
18
package.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"name": "fantastic_spoon_dc",
|
||||||
|
"module": "index.ts",
|
||||||
|
"type": "module",
|
||||||
|
"private": true,
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/bun": "latest"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"dev": "bun --env-file=.env --watch src/index.ts"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"typescript": "^5"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"seyfert": "^3.0.0"
|
||||||
|
}
|
||||||
|
}
|
14
seyfert.config.ts
Normal file
14
seyfert.config.ts
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
import { config } from "seyfert";
|
||||||
|
|
||||||
|
export default config.bot({
|
||||||
|
token: process.env.DC_TOKEN ?? "",
|
||||||
|
locations: {
|
||||||
|
base: "src", // replace with "src" if using bun
|
||||||
|
commands: "commands"
|
||||||
|
},
|
||||||
|
intents: ["Guilds"],
|
||||||
|
// This configuration is optional, in case you want to receive interactions via HTTP
|
||||||
|
// This allows you to use both the gateway and the HTTP webhook
|
||||||
|
publicKey: process.env.PUBLIC_KEY ?? "", // replace with your public key
|
||||||
|
port: 3275, // replace with your application's port
|
||||||
|
});
|
30
src/commands/mcs.ts
Normal file
30
src/commands/mcs.ts
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
import {
|
||||||
|
Command,
|
||||||
|
Declare,
|
||||||
|
Options,
|
||||||
|
createStringOption,
|
||||||
|
type CommandContext
|
||||||
|
} from 'seyfert';
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
ip: createStringOption({
|
||||||
|
description: "Server IP",
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
|
||||||
|
@Declare({
|
||||||
|
name: 'mcs',
|
||||||
|
description: 'Qeury a Minecraft server',
|
||||||
|
})
|
||||||
|
@Options(options)
|
||||||
|
export default class McsCommand extends Command {
|
||||||
|
|
||||||
|
async run(ctx: CommandContext<typeof options>) {
|
||||||
|
const ip = ctx.options.ip || 'hypixel.net';
|
||||||
|
const port = 25565;
|
||||||
|
|
||||||
|
await ctx.write({
|
||||||
|
content: `${ip}:${port}`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
16
src/commands/ping.ts
Normal file
16
src/commands/ping.ts
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import { Declare, Command, type CommandContext } from 'seyfert';
|
||||||
|
|
||||||
|
@Declare({
|
||||||
|
name: 'ping',
|
||||||
|
description: 'Show latency with Discord'
|
||||||
|
})
|
||||||
|
export default class PingCommand extends Command {
|
||||||
|
async run(ctx: CommandContext) {
|
||||||
|
// Average latency between existing connections
|
||||||
|
const ping = ctx.client.gateway.latency;
|
||||||
|
|
||||||
|
await ctx.write({
|
||||||
|
content: `The latency is \`${ping}\``
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
13
src/index.ts
Normal file
13
src/index.ts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import { Client } from "seyfert";
|
||||||
|
|
||||||
|
import type { ParseClient } from "seyfert";
|
||||||
|
|
||||||
|
declare module 'seyfert' {
|
||||||
|
interface UsingClient extends ParseClient<Client<true>> { }
|
||||||
|
}
|
||||||
|
|
||||||
|
const client = new Client();
|
||||||
|
|
||||||
|
// This will start the connection with the Discord gateway and load commands, events, components, and language (i18n)
|
||||||
|
client.start()
|
||||||
|
.then(() => client.uploadCommands({ cachePath: './commands.json' }));
|
28
tsconfig.json
Normal file
28
tsconfig.json
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
// Environment setup & latest features
|
||||||
|
"lib": ["ESNext"],
|
||||||
|
"target": "ESNext",
|
||||||
|
"module": "ESNext",
|
||||||
|
"moduleDetection": "force",
|
||||||
|
"jsx": "react-jsx",
|
||||||
|
"allowJs": true,
|
||||||
|
|
||||||
|
// Bundler mode
|
||||||
|
"moduleResolution": "bundler",
|
||||||
|
"allowImportingTsExtensions": true,
|
||||||
|
"verbatimModuleSyntax": true,
|
||||||
|
"noEmit": true,
|
||||||
|
|
||||||
|
// Best practices
|
||||||
|
"strict": true,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"noFallthroughCasesInSwitch": true,
|
||||||
|
"noUncheckedIndexedAccess": true,
|
||||||
|
|
||||||
|
// Some stricter flags (disabled by default)
|
||||||
|
"noUnusedLocals": false,
|
||||||
|
"noUnusedParameters": false,
|
||||||
|
"noPropertyAccessFromIndexSignature": false
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user