Merge branch 'dev' into 'main'
Dev See merge request illegitimate/illegitimate-bot!296
This commit is contained in:
14
dev-db.yml
Normal file
14
dev-db.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
services:
|
||||
db:
|
||||
container_name: postgres-dev
|
||||
image: postgres
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./dev/data:/var/lib/postgresql/data
|
||||
ports:
|
||||
- 5432:5432
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=dev
|
||||
- POSTGRES_USER=dev
|
||||
- POSTGRES_DB=illegitimate
|
||||
@@ -2,6 +2,7 @@ import { FlatCompat } from "@eslint/eslintrc"
|
||||
import js from "@eslint/js"
|
||||
import typescriptEslint from "@typescript-eslint/eslint-plugin"
|
||||
import tsParser from "@typescript-eslint/parser"
|
||||
import drizzle from "eslint-plugin-drizzle"
|
||||
import globals from "globals"
|
||||
import path from "node:path"
|
||||
import { fileURLToPath } from "node:url"
|
||||
@@ -20,10 +21,11 @@ export default [
|
||||
{
|
||||
ignores: ["**/node_modules", "**/dist", "**/dev"]
|
||||
},
|
||||
...compat.extends("eslint:recommended", "plugin:@typescript-eslint/recommended"),
|
||||
...compat.extends("eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:drizzle/all"),
|
||||
{
|
||||
plugins: {
|
||||
"@typescript-eslint": typescriptEslint
|
||||
"@typescript-eslint": typescriptEslint,
|
||||
"drizzle": drizzle
|
||||
},
|
||||
|
||||
languageOptions: {
|
||||
@@ -87,6 +89,12 @@ export default [
|
||||
"ts-ignore": "allow-with-description",
|
||||
"ts-nocheck": "allow-with-description",
|
||||
"ts-check": "allow-with-description"
|
||||
}],
|
||||
"drizzle/enforce-delete-with-where": ["error", {
|
||||
"drizzleObjectName": ["db"]
|
||||
}],
|
||||
"drizzle/enforce-update-with-where": ["error", {
|
||||
"drizzleObjectName": ["db"]
|
||||
}]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
"db:generate": "drizzle-kit generate",
|
||||
"db:migrate": "drizzle-kit migrate",
|
||||
"db:studio": "drizzle-kit studio",
|
||||
"db:start": "docker compose -f dev-db.yml up -d",
|
||||
"db:stop": "docker compose -f dev-db.yml down",
|
||||
"push:prod": "tsx scripts/deploy-commands.ts",
|
||||
"push:dev": "tsx scripts/dev-deploy.ts",
|
||||
"delete:dev": "tsx scripts/delete-commands.ts"
|
||||
@@ -65,6 +67,7 @@
|
||||
"dprint": "^0.47.2",
|
||||
"drizzle-kit": "^0.24.2",
|
||||
"eslint": "^9.11.1",
|
||||
"eslint-plugin-drizzle": "^0.2.3",
|
||||
"globals": "^15.9.0",
|
||||
"sqlite3": "^5.1.7",
|
||||
"tsx": "^4.19.1",
|
||||
|
||||
12
pnpm-lock.yaml
generated
12
pnpm-lock.yaml
generated
@@ -104,6 +104,9 @@ importers:
|
||||
eslint:
|
||||
specifier: ^9.11.1
|
||||
version: 9.11.1
|
||||
eslint-plugin-drizzle:
|
||||
specifier: ^0.2.3
|
||||
version: 0.2.3(eslint@9.11.1)
|
||||
globals:
|
||||
specifier: ^15.9.0
|
||||
version: 15.9.0
|
||||
@@ -1466,6 +1469,11 @@ packages:
|
||||
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
eslint-plugin-drizzle@0.2.3:
|
||||
resolution: {integrity: sha512-BO+ymHo33IUNoJlC0rbd7HP9EwwpW4VIp49R/tWQF/d2E1K2kgTf0tCXT0v9MSiBr6gGR1LtPwMLapTKEWSg9A==}
|
||||
peerDependencies:
|
||||
eslint: '>=8.0.0'
|
||||
|
||||
eslint-scope@8.0.2:
|
||||
resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
@@ -3927,6 +3935,10 @@ snapshots:
|
||||
|
||||
escape-string-regexp@5.0.0: {}
|
||||
|
||||
eslint-plugin-drizzle@0.2.3(eslint@9.11.1):
|
||||
dependencies:
|
||||
eslint: 9.11.1
|
||||
|
||||
eslint-scope@8.0.2:
|
||||
dependencies:
|
||||
esrecurse: 4.3.0
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
import { devMessage, embedColor, hypixelGuildID } from "config/options.js"
|
||||
import { waitingListRole } from "config/roles.js"
|
||||
import { ApplicationCommandType, ContextMenuCommandBuilder, PermissionFlagsBits, userMention } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import { IContextMenu } from "interfaces"
|
||||
import db from "src/db/db.js"
|
||||
import { verifies } from "src/db/schema.js"
|
||||
import roleManage from "utils/functions/rolesmanage.js"
|
||||
import { getGuild, getHeadURL, getIGN } from "utils/Hypixel.js"
|
||||
|
||||
@@ -25,7 +23,7 @@ export default {
|
||||
const user = await interaction.guild!.members.fetch(targetId)
|
||||
const usermentioned = userMention(user.user.id)
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: eq(verifies.userID, user.user.id)
|
||||
where: ({ userID }, { eq }) => eq(userID, user.id)
|
||||
})
|
||||
|
||||
if (!verifyData) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { embedColor } from "config/options.js"
|
||||
import { InteractionContextType, PermissionFlagsBits, SlashCommandBuilder } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import { ICommand } from "interfaces"
|
||||
import db from "src/db/db.js"
|
||||
import { settings } from "src/db/schema.js"
|
||||
@@ -38,7 +39,7 @@ export default {
|
||||
const setting = interaction.options.getString("setting")!
|
||||
const value = interaction.options.getString("value")!
|
||||
const settingsData = await db.query.settings.findFirst({
|
||||
where: (settings, { eq }) => eq(settings.name, setting)
|
||||
where: ({ name }, { eq }) => eq(name, setting)
|
||||
})
|
||||
|
||||
if (!settingsData) {
|
||||
@@ -56,7 +57,7 @@ export default {
|
||||
} else {
|
||||
await db.update(settings).set({
|
||||
value: value
|
||||
})
|
||||
}).where(eq(settings.name, setting))
|
||||
|
||||
await interaction.editReply({
|
||||
embeds: [{
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
import { devMessage, embedColor } from "config/options.js"
|
||||
import { InteractionContextType, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import { ICommand } from "interfaces"
|
||||
import db from "src/db/db.js"
|
||||
import { verifies } from "src/db/schema.js"
|
||||
import { getHeadURL, getIGN, getUUID } from "utils/Hypixel.js"
|
||||
|
||||
export default {
|
||||
@@ -40,7 +38,7 @@ export default {
|
||||
}
|
||||
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: eq(verifies.uuid, uuid)
|
||||
where: ({ uuid: uuidfromdb }, { eq }) => eq(uuidfromdb, uuid)
|
||||
})
|
||||
if (!verifyData) {
|
||||
await interaction.editReply({
|
||||
|
||||
@@ -29,7 +29,7 @@ export default {
|
||||
async execute({ interaction }) {
|
||||
const member = interaction.options.getMember("user") as GuildMember
|
||||
const verifiedUser = await db.query.verifies.findFirst({
|
||||
where: eq(verifies.userID, member.user.id)
|
||||
where: ({ userID }, { eq }) => eq(userID, member.user.id)
|
||||
})
|
||||
const mod = interaction.user
|
||||
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
import { devMessage, embedColor, hypixelGuildID } from "config/options.js"
|
||||
import { waitingListRole } from "config/roles.js"
|
||||
import { GuildMember, InteractionContextType, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import { ICommand } from "interfaces"
|
||||
import db from "src/db/db.js"
|
||||
import { verifies } from "src/db/schema.js"
|
||||
import roleManage from "utils/functions/rolesmanage.js"
|
||||
import { getGuild, getHeadURL, getIGN } from "utils/Hypixel.js"
|
||||
|
||||
@@ -32,7 +30,7 @@ export default {
|
||||
const user = interaction.options.getMember("user") as GuildMember
|
||||
const usermentioned = userMention(user.user.id)
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: eq(verifies.userID, user.user.id)
|
||||
where: ({ userID }, { eq }) => eq(userID, user.user.id)
|
||||
})
|
||||
|
||||
if (!verifyData) {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { devMessage, embedColor, hypixelGuildID } from "config/options.js"
|
||||
import { GuildMember, InteractionContextType, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import { ICommand } from "interfaces"
|
||||
import db from "src/db/db.js"
|
||||
import { verifies } from "src/db/schema.js"
|
||||
@@ -38,7 +37,7 @@ export default {
|
||||
const mod = interaction.user
|
||||
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: eq(verifies.userID, user.user.id)
|
||||
where: ({ userID }, { eq }) => eq(userID, user.user.id)
|
||||
})
|
||||
if (verifyData) {
|
||||
interaction.editReply("That user is already verified.")
|
||||
|
||||
@@ -38,7 +38,7 @@ export default {
|
||||
const reason = interaction.options.getString("reason") ?? "No reason provided."
|
||||
const mod = interaction.user!
|
||||
const waiting = await db.query.waitingLists.findFirst({
|
||||
where: eq(waitingLists.userID, member.user.id)
|
||||
where: ({ userID }, { eq }) => eq(userID, member.user.id)
|
||||
})
|
||||
|
||||
if (!waiting) {
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
import { devMessage, embedColor, hypixelGuildID } from "config/options.js"
|
||||
import { waitingListRole } from "config/roles.js"
|
||||
import { GuildMember, InteractionContextType, SlashCommandBuilder } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import { ICommand } from "interfaces"
|
||||
import db from "src/db/db.js"
|
||||
import { verifies } from "src/db/schema.js"
|
||||
import roleManage from "utils/functions/rolesmanage.js"
|
||||
import { getGuild, getHeadURL, getIGN } from "utils/Hypixel.js"
|
||||
|
||||
@@ -24,7 +22,7 @@ export default {
|
||||
|
||||
const user = interaction.member as GuildMember
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: eq(verifies.userID, user.user.id)
|
||||
where: ({ userID }, { eq }) => eq(userID, user.user.id)
|
||||
})
|
||||
|
||||
if (!verifyData) {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { devMessage, embedColor, hypixelGuildID } from "config/options.js"
|
||||
import { GuildMember, InteractionContextType, SlashCommandBuilder } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import { ICommand } from "interfaces"
|
||||
import { IPlayerData } from "interfaces"
|
||||
import { IGuildData } from "interfaces"
|
||||
@@ -35,7 +34,7 @@ export default {
|
||||
const ign = interaction.options.getString("ign")!
|
||||
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: eq(verifies.userID, user.user.id)
|
||||
where: ({ userID }, { eq }) => eq(userID, user.id)
|
||||
})
|
||||
if (verifyData) {
|
||||
interaction.editReply("You are already verified.\n" + "Try running /update to update your roles.")
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
import { devMessage, embedColor } from "config/options.js"
|
||||
import { InteractionContextType, SlashCommandBuilder, userMention } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import { ICommand } from "interfaces"
|
||||
import db from "src/db/db.js"
|
||||
import { verifies } from "src/db/schema.js"
|
||||
import { getHeadURL, getIGN } from "utils/Hypixel.js"
|
||||
|
||||
export default {
|
||||
@@ -22,7 +20,7 @@ export default {
|
||||
|
||||
const user = interaction.user
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: eq(verifies.userID, user.id)
|
||||
where: ({ userID }, { eq }) => eq(userID, user.id)
|
||||
})
|
||||
|
||||
if (!verifyData) {
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
import { devMessage, embedColor } from "config/options.js"
|
||||
import { InteractionContextType, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import { ICommand } from "interfaces"
|
||||
import db from "src/db/db.js"
|
||||
import { verifies } from "src/db/schema.js"
|
||||
import { getHeadURL, getIGN } from "utils/Hypixel.js"
|
||||
|
||||
export default {
|
||||
@@ -29,7 +27,7 @@ export default {
|
||||
|
||||
const user = interaction.options.getUser("user")!
|
||||
const verifiedUser = await db.query.verifies.findFirst({
|
||||
where: eq(verifies.userID, user.id)
|
||||
where: ({ userID }, { eq }) => eq(userID, user.id)
|
||||
})
|
||||
if (!verifiedUser) {
|
||||
interaction.editReply({
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
import { devMessage, embedColor } from "config/options.js"
|
||||
import { bwfkdr, bwstars, bwwins, duelswins, duelswlr, swkdr, swstars } from "config/reqs.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import { IButton } from "interfaces"
|
||||
import db from "src/db/db.js"
|
||||
import { guildApps } from "src/db/schema.js"
|
||||
import { bedwarsLevel, getGuild, getHeadURL, getPlayer, hypixelLevel, skywarsLevel } from "utils/Hypixel.js"
|
||||
|
||||
export default {
|
||||
@@ -17,7 +15,7 @@ export default {
|
||||
const embed = message.embeds[0]
|
||||
const applicantId = embed.footer!.text.split(" ")[1]
|
||||
const guildappdata = await db.query.guildApps.findFirst({
|
||||
where: eq(guildApps.userID, applicantId)
|
||||
where: ({ userID }, { eq }) => eq(userID, applicantId)
|
||||
})
|
||||
const uuid = guildappdata!.uuid
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ export default {
|
||||
})
|
||||
|
||||
const applicantEntry = await db.query.guildApps.findFirst({
|
||||
where: eq(guildApps.userID, applicantId)
|
||||
where: ({ userID }, { eq }) => eq(userID, applicantId)
|
||||
})
|
||||
const applicantUUID = applicantEntry!.uuid
|
||||
const time = Date.now()
|
||||
|
||||
@@ -3,7 +3,6 @@ import { applicationsChannel, embedColor } from "config/options.js"
|
||||
import { guild as guildQuestions } from "config/questions.js"
|
||||
import { guildRole } from "config/roles.js"
|
||||
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, GuildMember, TextChannel } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import { IButton } from "interfaces"
|
||||
import db from "src/db/db.js"
|
||||
import { guildApps } from "src/db/schema.js"
|
||||
@@ -33,7 +32,7 @@ export default {
|
||||
}
|
||||
|
||||
const application = await db.query.guildApps.findFirst({
|
||||
where: eq(guildApps.userID, user.user.id)
|
||||
where: ({ userID }, { eq }) => eq(userID, user.user.id)
|
||||
})
|
||||
|
||||
if (application) {
|
||||
|
||||
@@ -3,10 +3,9 @@ import { embedColor, staffApplicationsChannel } from "config/options.js"
|
||||
import { staff as staffQuestions } from "config/questions.js"
|
||||
import { guildRole, guildStaff } from "config/roles.js"
|
||||
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, GuildMember, TextChannel } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import { IButton } from "interfaces"
|
||||
import db from "src/db/db.js"
|
||||
import { settings, staffApps } from "src/db/schema.js"
|
||||
import { staffApps } from "src/db/schema.js"
|
||||
import env from "utils/Env.js"
|
||||
import applicationQuestions from "utils/functions/applicationquestions.js"
|
||||
|
||||
@@ -19,7 +18,7 @@ export default {
|
||||
const guild = interaction.guild!
|
||||
const userRoles = user.roles.cache
|
||||
const setting = await db.query.settings.findFirst({
|
||||
where: eq(settings.name, "staffApplications")
|
||||
where: ({ name }, { eq }) => eq(name, "staffApplications")
|
||||
})
|
||||
const status = setting?.value || "0"
|
||||
|
||||
@@ -52,7 +51,7 @@ export default {
|
||||
}
|
||||
|
||||
const application = await db.query.staffApps.findFirst({
|
||||
where: eq(staffApps.userID, user.user.id)
|
||||
where: ({ userID }, { eq }) => eq(userID, user.user.id)
|
||||
})
|
||||
|
||||
if (application) {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { devMessage, embedColor, hypixelGuildID } from "config/options.js"
|
||||
import { GuildMember } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import { IModal } from "interfaces"
|
||||
import db from "src/db/db.js"
|
||||
import { verifies } from "src/db/schema.js"
|
||||
@@ -17,7 +16,7 @@ export default {
|
||||
const user = interaction.member as GuildMember
|
||||
const ign = interaction.fields.fields.get("verifyign")!.value
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: eq(verifies.userID, user.user.id)
|
||||
where: ({ userID }, { eq }) => eq(userID, user.id)
|
||||
})
|
||||
if (verifyData) {
|
||||
interaction.editReply("You are already verified.\n" + "Try running /update to update your roles.")
|
||||
|
||||
Reference in New Issue
Block a user