Merge branch 'ZynerOrg:main' into dev

This commit is contained in:
Axel Olausson Holtenäs 2022-10-23 19:36:54 +02:00 committed by GitHub
commit 8eeb3f86ce
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 102 additions and 63 deletions

View file

@ -1,20 +1,24 @@
name: Docker Image CI name: Docker Image CI
on: on:
schedule:
- cron: "0 10 * * *"
push: push:
branches: branches:
- main - "**"
- dev tags:
- "v*.*.*"
pull_request:
branches:
- "main"
jobs: jobs:
docker: docker:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- - name: Checkout
name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
- - name: Docker meta
name: Docker meta
id: meta id: meta
uses: docker/metadata-action@v4 uses: docker/metadata-action@v4
with: with:
@ -30,20 +34,16 @@ jobs:
type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}} type=semver,pattern={{major}}
type=sha type=sha
- - name: Set up QEMU
name: Set up QEMU
uses: docker/setup-qemu-action@v2 uses: docker/setup-qemu-action@v2
- - name: Set up Docker Buildx
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2 uses: docker/setup-buildx-action@v2
- - name: Login to Docker Hub
name: Login to Docker Hub
uses: docker/login-action@v2 uses: docker/login-action@v2
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }} password: ${{ secrets.DOCKERHUB_TOKEN }}
- - name: Build and push
name: Build and push
uses: docker/build-push-action@v3 uses: docker/build-push-action@v3
with: with:
push: ${{ github.event_name != 'pull_request' }} push: ${{ github.event_name != 'pull_request' }}

View file

@ -3,7 +3,7 @@ version: "3.7"
services: services:
app: app:
container_name: app container_name: app
image: vermiumwastaken/xyter image: zyner/xyter:main
restart: unless-stopped restart: unless-stopped
env_file: env_file:
- .env - .env
@ -18,6 +18,7 @@ services:
- PUID=1000 - PUID=1000
- PGID=1000 - PGID=1000
- TZ=Region/City - TZ=Region/City
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=database - MYSQL_DATABASE=database
- MYSQL_USER=username - MYSQL_USER=username
- MYSQL_PASSWORD=password - MYSQL_PASSWORD=password

View file

@ -6,116 +6,153 @@ CREATE TABLE `Guild` (
`embedColorError` VARCHAR(191) NOT NULL DEFAULT '#bb2124', `embedColorError` VARCHAR(191) NOT NULL DEFAULT '#bb2124',
`embedFooterText` VARCHAR(191) NOT NULL DEFAULT 'https://github.com/ZynerOrg/xyter', `embedFooterText` VARCHAR(191) NOT NULL DEFAULT 'https://github.com/ZynerOrg/xyter',
`embedFooterIcon` VARCHAR(191) NOT NULL DEFAULT 'https://github.com/ZynerOrg.png', `embedFooterIcon` VARCHAR(191) NOT NULL DEFAULT 'https://github.com/ZynerOrg.png',
`creditsEnabled` BOOLEAN NOT NULL DEFAULT false, `creditsEnabled` BOOLEAN NOT NULL DEFAULT FALSE,
`creditsRate` INTEGER NOT NULL DEFAULT 1, `creditsRate` INTEGER NOT NULL DEFAULT 1,
`creditsTimeout` INTEGER NOT NULL DEFAULT 5, `creditsTimeout` INTEGER NOT NULL DEFAULT 5,
`creditsWorkRate` INTEGER NOT NULL DEFAULT 25, `creditsWorkRate` INTEGER NOT NULL DEFAULT 25,
`creditsWorkTimeout` INTEGER NOT NULL DEFAULT 86400, `creditsWorkTimeout` INTEGER NOT NULL DEFAULT 86400,
`creditsMinimumLength` INTEGER NOT NULL DEFAULT 5, `creditsMinimumLength` INTEGER NOT NULL DEFAULT 5,
`pointsEnabled` BOOLEAN NOT NULL DEFAULT false, `pointsEnabled` BOOLEAN NOT NULL DEFAULT FALSE,
`pointsRate` INTEGER NOT NULL DEFAULT 1, `pointsRate` INTEGER NOT NULL DEFAULT 1,
`pointsTimeout` INTEGER NOT NULL DEFAULT 5, `pointsTimeout` INTEGER NOT NULL DEFAULT 5,
`pointsMinimumLength` INTEGER NOT NULL DEFAULT 5, `pointsMinimumLength` INTEGER NOT NULL DEFAULT 5,
`reputationsEnabled` BOOLEAN NOT NULL DEFAULT false, `reputationsEnabled` BOOLEAN NOT NULL DEFAULT FALSE,
`countersEnabled` BOOLEAN NOT NULL DEFAULT false, `countersEnabled` BOOLEAN NOT NULL DEFAULT FALSE,
`apiCpggUrlIv` VARCHAR(191) NULL, `apiCpggUrlIv` VARCHAR(191) NULL,
`apiCpggUrlContent` VARCHAR(191) NULL, `apiCpggUrlContent` VARCHAR(191) NULL,
`apiCpggTokenIv` VARCHAR(191) NULL, `apiCpggTokenIv` VARCHAR(191) NULL,
`apiCpggTokenContent` VARCHAR(191) NULL, `apiCpggTokenContent` VARCHAR(191) NULL,
`auditsEnabled` BOOLEAN NOT NULL DEFAULT false, `auditsEnabled` BOOLEAN NOT NULL DEFAULT FALSE,
`auditsChannelId` VARCHAR(191) NULL, `auditsChannelId` VARCHAR(191) NULL,
`shopRolesEnabled` BOOLEAN NOT NULL DEFAULT false, `shopRolesEnabled` BOOLEAN NOT NULL DEFAULT FALSE,
`shopRolesPricePerHour` INTEGER NOT NULL DEFAULT 5, `shopRolesPricePerHour` INTEGER NOT NULL DEFAULT 5,
`welcomeEnabled` BOOLEAN NOT NULL DEFAULT false, `welcomeEnabled` BOOLEAN NOT NULL DEFAULT FALSE,
`welcomeJoinChannelId` VARCHAR(191) NULL, `welcomeJoinChannelId` VARCHAR(191) NULL,
`welcomeJoinChannelMessage` VARCHAR(191) NULL, `welcomeJoinChannelMessage` VARCHAR(191) NULL,
`welcomeLeaveChannelId` VARCHAR(191) NULL, `welcomeLeaveChannelId` VARCHAR(191) NULL,
`welcomeLeaveChannelMessage` VARCHAR(191) NULL, `welcomeLeaveChannelMessage` VARCHAR(191) NULL,
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `createdAt` DATETIME (3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updatedAt` DATETIME(3) NOT NULL, `updatedAt` DATETIME (3) NOT NULL,
UNIQUE INDEX `Guild_id_key` (`id`))
UNIQUE INDEX `Guild_id_key`(`id`) DEFAULT CHARACTER
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable -- CreateTable
CREATE TABLE `User` ( CREATE TABLE `User` (
`id` VARCHAR(191) NOT NULL, `id` VARCHAR(191) NOT NULL,
`reputationsEarned` INTEGER NOT NULL DEFAULT 0, `reputationsEarned` INTEGER NOT NULL DEFAULT 0,
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `createdAt` DATETIME (3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updatedAt` DATETIME(3) NOT NULL, `updatedAt` DATETIME (3) NOT NULL,
UNIQUE INDEX `User_id_key` (`id`))
UNIQUE INDEX `User_id_key`(`id`) DEFAULT CHARACTER
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable -- CreateTable
CREATE TABLE `GuildMember` ( CREATE TABLE `GuildMember` (
`userId` VARCHAR(191) NOT NULL, `userId` VARCHAR(191) NOT NULL,
`guildId` VARCHAR(191) NOT NULL, `guildId` VARCHAR(191) NOT NULL,
`creditsEarned` INTEGER NOT NULL DEFAULT 0, `creditsEarned` INTEGER NOT NULL DEFAULT 0,
`pointsEarned` INTEGER NOT NULL DEFAULT 0, `pointsEarned` INTEGER NOT NULL DEFAULT 0,
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `createdAt` DATETIME (3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updatedAt` DATETIME(3) NOT NULL, `updatedAt` DATETIME (3) NOT NULL,
UNIQUE INDEX `GuildMember_userId_guildId_key` (`userId`, `guildId`))
UNIQUE INDEX `GuildMember_userId_guildId_key`(`userId`, `guildId`) DEFAULT CHARACTER
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable -- CreateTable
CREATE TABLE `GuildCounter` ( CREATE TABLE `GuildCounter` (
`guildId` VARCHAR(191) NOT NULL, `guildId` VARCHAR(191) NOT NULL,
`channelId` VARCHAR(191) NOT NULL, `channelId` VARCHAR(191) NOT NULL,
`triggerWord` VARCHAR(191) NOT NULL, `triggerWord` VARCHAR(191) NOT NULL,
`count` INTEGER NOT NULL DEFAULT 0, `count` INTEGER NOT NULL DEFAULT 0,
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `createdAt` DATETIME (3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updatedAt` DATETIME(3) NOT NULL, `updatedAt` DATETIME (3) NOT NULL,
UNIQUE INDEX `GuildCounter_guildId_channelId_key` (`guildId`, `channelId`))
UNIQUE INDEX `GuildCounter_guildId_channelId_key`(`guildId`, `channelId`) DEFAULT CHARACTER
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable -- CreateTable
CREATE TABLE `Cooldown` ( CREATE TABLE `Cooldown` (
`guildId` VARCHAR(191) NOT NULL, `guildId` VARCHAR(191) NOT NULL,
`userId` VARCHAR(191) NOT NULL, `userId` VARCHAR(191) NOT NULL,
`cooldown` INTEGER NOT NULL, `cooldown` INTEGER NOT NULL,
`timeoutId` VARCHAR(191) NOT NULL, `timeoutId` VARCHAR(191) NOT NULL,
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `createdAt` DATETIME (3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updatedAt` DATETIME(3) NOT NULL, `updatedAt` DATETIME (3) NOT NULL,
UNIQUE INDEX `Cooldown_guildId_userId_timeoutId_key` (`guildId`, `userId`, `timeoutId`))
UNIQUE INDEX `Cooldown_guildId_userId_timeoutId_key`(`guildId`, `userId`, `timeoutId`) DEFAULT CHARACTER
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable -- CreateTable
CREATE TABLE `GuildShopRoles` ( CREATE TABLE `GuildShopRoles` (
`guildId` VARCHAR(191) NOT NULL, `guildId` VARCHAR(191) NOT NULL,
`roleId` VARCHAR(191) NOT NULL, `roleId` VARCHAR(191) NOT NULL,
`userId` VARCHAR(191) NOT NULL, `userId` VARCHAR(191) NOT NULL,
`pricePerHour` INTEGER NOT NULL DEFAULT 5, `pricePerHour` INTEGER NOT NULL DEFAULT 5,
`lastPayed` DATETIME(3) NOT NULL, `lastPayed` DATETIME (3) NOT NULL,
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `createdAt` DATETIME (3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updatedAt` DATETIME(3) NOT NULL, `updatedAt` DATETIME (3) NOT NULL,
UNIQUE INDEX `GuildShopRoles_guildId_userId_roleId_key` (`guildId`, `userId`, `roleId`))
UNIQUE INDEX `GuildShopRoles_guildId_userId_roleId_key`(`guildId`, `userId`, `roleId`) DEFAULT CHARACTER
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- AddForeignKey -- AddForeignKey
ALTER TABLE `GuildMember` ADD CONSTRAINT `GuildMember_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `User`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE `GuildMember`
ADD CONSTRAINT `GuildMember_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `User` (`id`) ON DELETE RESTRICT ON
UPDATE
CASCADE;
-- AddForeignKey -- AddForeignKey
ALTER TABLE `GuildMember` ADD CONSTRAINT `GuildMember_guildId_fkey` FOREIGN KEY (`guildId`) REFERENCES `Guild`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE `GuildMember`
ADD CONSTRAINT `GuildMember_guildId_fkey` FOREIGN KEY (`guildId`) REFERENCES `Guild` (`id`) ON DELETE RESTRICT ON
UPDATE
CASCADE;
-- AddForeignKey -- AddForeignKey
ALTER TABLE `GuildCounter` ADD CONSTRAINT `GuildCounter_guildId_fkey` FOREIGN KEY (`guildId`) REFERENCES `Guild`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE `GuildCounter`
ADD CONSTRAINT `GuildCounter_guildId_fkey` FOREIGN KEY (`guildId`) REFERENCES `Guild` (`id`) ON DELETE RESTRICT ON
UPDATE
CASCADE;
-- AddForeignKey -- AddForeignKey
ALTER TABLE `Cooldown` ADD CONSTRAINT `Cooldown_guildId_fkey` FOREIGN KEY (`guildId`) REFERENCES `Guild`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE `Cooldown`
ADD CONSTRAINT `Cooldown_guildId_fkey` FOREIGN KEY (`guildId`) REFERENCES `Guild` (`id`) ON DELETE RESTRICT ON
UPDATE
CASCADE;
-- AddForeignKey -- AddForeignKey
ALTER TABLE `Cooldown` ADD CONSTRAINT `Cooldown_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `User`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE `Cooldown`
ADD CONSTRAINT `Cooldown_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `User` (`id`) ON DELETE RESTRICT ON
UPDATE
CASCADE;
-- AddForeignKey -- AddForeignKey
ALTER TABLE `GuildShopRoles` ADD CONSTRAINT `GuildShopRoles_guildId_fkey` FOREIGN KEY (`guildId`) REFERENCES `Guild`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE `GuildShopRoles`
ADD CONSTRAINT `GuildShopRoles_guildId_fkey` FOREIGN KEY (`guildId`) REFERENCES `Guild` (`id`) ON DELETE RESTRICT ON
UPDATE
CASCADE;
-- AddForeignKey -- AddForeignKey
ALTER TABLE `GuildShopRoles` ADD CONSTRAINT `GuildShopRoles_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `User`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE `GuildShopRoles`
ADD CONSTRAINT `GuildShopRoles_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `User` (`id`) ON DELETE RESTRICT ON
UPDATE
CASCADE;
-- AddForeignKey -- AddForeignKey
ALTER TABLE `GuildShopRoles` ADD CONSTRAINT `GuildShopRoles_userId_guildId_fkey` FOREIGN KEY (`userId`, `guildId`) REFERENCES `GuildMember`(`userId`, `guildId`) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE `GuildShopRoles`
ADD CONSTRAINT `GuildShopRoles_userId_guildId_fkey` FOREIGN KEY (`userId`, `guildId`) REFERENCES `GuildMember` (`userId`, `guildId`) ON DELETE RESTRICT ON
UPDATE
CASCADE;

View file

@ -1,6 +1,7 @@
import { Guild, User } from "discord.js"; import { Guild, User } from "discord.js";
import prisma from "../../handlers/database"; import prisma from "../../handlers/database";
// Start an transaction between two users in a guild.
export const transfer = async ( export const transfer = async (
guild: Guild, guild: Guild,
from: User, from: User,