User Preferences and Setup Docs (#20)
* added message style command * docker setup scripts * reformat messageStyle.ts * fix: register unregister on deploy * add: messageStream preference * add: json config handler * update: messageCreate gets config * update: shifted chat to config callback * fix: naming conventions based on discord * update: setup in docs now * add: static docker ips * version increment * add: bot message for no config * fix: no config case * add: clarification for subnetting * update: version increment in lock file --------- Co-authored-by: JT2M0L3Y <jtsmoley@icloud.com>
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
import { SlashCommand } from '../utils/commands.js'
|
||||
import { ThreadCreate } from './threadCreate.js'
|
||||
import { MessageStyle } from './messageStyle.js'
|
||||
import { MessageStream } from './messageStream.js'
|
||||
|
||||
export default [
|
||||
ThreadCreate
|
||||
ThreadCreate,
|
||||
MessageStyle,
|
||||
MessageStream
|
||||
] as SlashCommand[]
|
||||
33
src/commands/messageStream.ts
Normal file
33
src/commands/messageStream.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { ApplicationCommandOptionType, ChannelType, Client, CommandInteraction } from 'discord.js'
|
||||
import { SlashCommand } from '../utils/commands.js'
|
||||
import { openFile } from '../utils/jsonHandler.js'
|
||||
|
||||
export const MessageStream: SlashCommand = {
|
||||
name: 'message-stream',
|
||||
description: 'change preference on message streaming from ollama. WARNING: can be very slow.',
|
||||
|
||||
// user option(s) for setting stream
|
||||
options: [
|
||||
{
|
||||
name: 'stream',
|
||||
description: 'enable or disable stream preference',
|
||||
type: ApplicationCommandOptionType.Boolean,
|
||||
required: true
|
||||
}
|
||||
],
|
||||
|
||||
// change preferences based on command
|
||||
run: async (client: Client, interaction: CommandInteraction) => {
|
||||
// verify channel
|
||||
const channel = await client.channels.fetch(interaction.channelId)
|
||||
if (!channel || channel.type !== ChannelType.GuildText) return
|
||||
|
||||
// save value to json and write to it
|
||||
openFile('config.json', interaction.commandName, interaction.options.get('stream')?.value)
|
||||
|
||||
interaction.reply({
|
||||
content: `Message streaming preferences for embed set to: \`${interaction.options.get('stream')?.value}\``,
|
||||
ephemeral: true
|
||||
})
|
||||
}
|
||||
}
|
||||
33
src/commands/messageStyle.ts
Normal file
33
src/commands/messageStyle.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { ChannelType, Client, CommandInteraction, ApplicationCommandOptionType } from 'discord.js'
|
||||
import { SlashCommand } from '../utils/commands.js'
|
||||
import { openFile } from '../utils/jsonHandler.js'
|
||||
|
||||
export const MessageStyle: SlashCommand = {
|
||||
name: 'message-style',
|
||||
description: 'sets the message style to embed or normal',
|
||||
|
||||
// set available user options to pass to the command
|
||||
options: [
|
||||
{
|
||||
name: 'embed',
|
||||
description: 'toggle embedded or normal message',
|
||||
type: ApplicationCommandOptionType.Boolean,
|
||||
required: true
|
||||
}
|
||||
],
|
||||
|
||||
// Query for message information and set the style
|
||||
run: async (client: Client, interaction: CommandInteraction) => {
|
||||
// fetch channel and message
|
||||
const channel = await client.channels.fetch(interaction.channelId)
|
||||
if (!channel || channel.type !== ChannelType.GuildText) return
|
||||
|
||||
// set the message style
|
||||
openFile('config.json', interaction.commandName, interaction.options.get('embed')?.value)
|
||||
|
||||
interaction.reply({
|
||||
content: `Message style preferences for embed set to: \`${interaction.options.get('embed')?.value}\``,
|
||||
ephemeral: true
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -17,11 +17,11 @@ export const ThreadCreate: SlashCommand = {
|
||||
})
|
||||
|
||||
// Send a message in the thread
|
||||
thread.send(`**User:** ${interaction.user}`)
|
||||
thread.send(`**User:** ${interaction.user} \n**People in Coversation:** ${thread.memberCount}`)
|
||||
|
||||
// user only reply
|
||||
return interaction.reply({
|
||||
content: 'I can help you in the Thread below.',
|
||||
content: `I can help you in the Thread below. \n**Thread ID:** ${thread.id}`,
|
||||
ephemeral: true
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user