81 lines
1.5 KiB
TypeScript
81 lines
1.5 KiB
TypeScript
import knex from 'knex';
|
|
import * as log from './log';
|
|
|
|
export const db = knex({
|
|
client: 'sqlite3',
|
|
connection: {
|
|
filename: './jillo.sqlite'
|
|
},
|
|
useNullAsDefault: true,
|
|
log: {
|
|
warn: log.warn,
|
|
error: log.error,
|
|
deprecate: log.warn,
|
|
debug: log.info
|
|
}
|
|
});
|
|
|
|
export interface ScheduledSubscription {
|
|
name: string;
|
|
next: number;
|
|
}
|
|
export interface Subscription {
|
|
key: string,
|
|
channel: string,
|
|
guild?: string
|
|
}
|
|
export interface Counter {
|
|
id: number,
|
|
key: string,
|
|
emoji: string,
|
|
value: number,
|
|
channel: string,
|
|
guild: string,
|
|
message?: string,
|
|
allowlistConsumer: boolean,
|
|
allowlistProducer: boolean,
|
|
linkedItem?: number
|
|
}
|
|
export interface CounterUserLink {
|
|
id: number,
|
|
user: string,
|
|
producer: boolean
|
|
}
|
|
export interface CounterConfiguration {
|
|
id: number,
|
|
configName: string,
|
|
value: string
|
|
}
|
|
export interface CustomItem {
|
|
id: number,
|
|
guild: string,
|
|
name: string,
|
|
description?: string,
|
|
emoji: string,
|
|
type: 'plain' | 'weapon' | 'consumable',
|
|
// also damage for weapons; weapons are always unstackable (cus i said so)
|
|
maxStack: number,
|
|
behavior?: string,
|
|
untradable: boolean,
|
|
behaviorValue?: number
|
|
}
|
|
export interface ItemInventory {
|
|
user: string,
|
|
item: number,
|
|
quantity: number
|
|
}
|
|
export interface CraftingStationCooldown {
|
|
station: string,
|
|
user: string,
|
|
usedAt: number
|
|
}
|
|
export interface CustomCraftingRecipe {
|
|
id: number,
|
|
station: string
|
|
}
|
|
export interface CustomCraftingRecipeItem {
|
|
id: number,
|
|
item: number,
|
|
quantity: number,
|
|
type: 'input' | 'output' | 'requirement'
|
|
} |