recipe grounwork
This commit is contained in:
parent
c714596653
commit
77dbd8ee3f
|
@ -1,3 +1,5 @@
|
||||||
{
|
{
|
||||||
"token": "token"
|
"token": "token",
|
||||||
|
"sitePort": 15385,
|
||||||
|
"siteURL": "https://localhost:15385"
|
||||||
}
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
/**
|
||||||
|
* @param { import("knex").Knex } knex
|
||||||
|
* @returns { Promise<void> }
|
||||||
|
*/
|
||||||
|
exports.up = function(knex) {
|
||||||
|
return knex.schema
|
||||||
|
.createTable('craftingRecipes', (table) => {
|
||||||
|
table.increments('id');
|
||||||
|
table.string('table');
|
||||||
|
})
|
||||||
|
.createTable('craftingRecipeItems', (table) => {
|
||||||
|
table.integer('id').references('id').inTable('craftingRecipes').notNullable();
|
||||||
|
table.integer('item').notNullable();
|
||||||
|
table.integer('quantity').defaultTo(1);
|
||||||
|
table.enum('type', ['input', 'output', 'requirement']);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param { import("knex").Knex } knex
|
||||||
|
* @returns { Promise<void> }
|
||||||
|
*/
|
||||||
|
exports.down = function(knex) {
|
||||||
|
return knex.schema
|
||||||
|
.dropTable('craftingRecipes')
|
||||||
|
.dropTable('craftingRecipeItems');
|
||||||
|
};
|
|
@ -0,0 +1,30 @@
|
||||||
|
import { CommandInteraction, SlashCommandBuilder } from 'discord.js';
|
||||||
|
import { Command } from '../types/index';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data: new SlashCommandBuilder()
|
||||||
|
.setName('recipe')
|
||||||
|
.setDescription('[ADMIN] Manage custom recipes for items')
|
||||||
|
.addSubcommand(sub =>
|
||||||
|
sub
|
||||||
|
.setName('create')
|
||||||
|
.setDescription('[ADMIN] Create a custom recipe')
|
||||||
|
)
|
||||||
|
.setDMPermission(false)
|
||||||
|
.setDefaultMemberPermissions(0),
|
||||||
|
|
||||||
|
execute: async (interaction: CommandInteraction) => {
|
||||||
|
if (!interaction.isChatInputCommand()) return;
|
||||||
|
|
||||||
|
interaction.deferReply({ ephemeral: true });
|
||||||
|
|
||||||
|
const sub = interaction.options.getSubcommand(true);
|
||||||
|
|
||||||
|
if (sub === 'create') {
|
||||||
|
interaction.reply({
|
||||||
|
ephemeral: true,
|
||||||
|
content: `To create a recipe, go here: ${interaction.client.config.siteURL}/create-recipe\nOnce done, click the button below and paste the resulting string in.`
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} satisfies Command;
|
|
@ -1,6 +1,6 @@
|
||||||
import { Client, GatewayIntentBits, Events, Collection, CommandInteraction, CommandInteractionOption, ApplicationCommandOptionType } from 'discord.js';
|
import { Client, GatewayIntentBits, Events, Collection, CommandInteraction, CommandInteractionOption, ApplicationCommandOptionType } from 'discord.js';
|
||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
const { token } = JSON.parse(fs.readFileSync('./config.json', 'utf8'));
|
const { token, sitePort, siteURL } = JSON.parse(fs.readFileSync('./config.json', 'utf8'));
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import { initializeAnnouncements } from './lib/subscriptions';
|
import { initializeAnnouncements } from './lib/subscriptions';
|
||||||
import * as log from './lib/log';
|
import * as log from './lib/log';
|
||||||
|
@ -20,6 +20,10 @@ const bot = new Client({
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
bot.config = {
|
||||||
|
token, sitePort, siteURL
|
||||||
|
};
|
||||||
|
|
||||||
async function init() {
|
async function init() {
|
||||||
log.nonsense('booting chip...');
|
log.nonsense('booting chip...');
|
||||||
|
|
||||||
|
|
|
@ -8,8 +8,15 @@ export interface Command {
|
||||||
serverWhitelist?: string[],
|
serverWhitelist?: string[],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface Config {
|
||||||
|
token: string,
|
||||||
|
sitePort: number,
|
||||||
|
siteURL: string
|
||||||
|
}
|
||||||
|
|
||||||
declare module 'discord.js' {
|
declare module 'discord.js' {
|
||||||
export interface Client {
|
export interface Client {
|
||||||
|
config: Config,
|
||||||
commands: Collection<string, Command>;
|
commands: Collection<string, Command>;
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue