Merge branch 'ZynerOrg:main' into dev
This commit is contained in:
commit
8eeb3f86ce
6 changed files with 102 additions and 63 deletions
28
.github/workflows/docker-image.yml
vendored
28
.github/workflows/docker-image.yml
vendored
|
@ -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' }}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Add table
Reference in a new issue