feat: Add slashcommand api
This commit is contained in:
@@ -48,6 +48,29 @@ export async function activate(context) {
|
||||
embedType: 'e2e.coverage',
|
||||
render: (payload) => `E2E custom embed: ${payload?.title ?? 'missing title'}`
|
||||
}));
|
||||
context.subscriptions.push(api.commands.register('e2e-echo', {
|
||||
description: 'Echo the provided text back into the channel',
|
||||
icon: '📣',
|
||||
name: 'e2e-echo',
|
||||
options: [{ name: 'message', required: true, type: 'rest' }],
|
||||
run: (slashContext) => {
|
||||
api.messages.send(`E2E echo: ${slashContext.args.message || '(empty)'}`);
|
||||
},
|
||||
scope: 'server'
|
||||
}));
|
||||
context.subscriptions.push(api.commands.register('e2e-ping', {
|
||||
description: 'Log a pong from the plugin runtime',
|
||||
icon: '🏓',
|
||||
name: 'e2e-ping',
|
||||
run: (slashContext) => {
|
||||
api.logger.info(`E2E ping handled in ${slashContext.server?.name ?? 'no server'}`);
|
||||
},
|
||||
scope: 'global'
|
||||
}));
|
||||
api.commands.list();
|
||||
api.context.getCurrent();
|
||||
api.logger.debug('coverage debug');
|
||||
api.logger.error('coverage error');
|
||||
|
||||
const injectedBadge = document.createElement('div');
|
||||
|
||||
@@ -99,12 +122,15 @@ export async function activate(context) {
|
||||
api.roles.setAssignments([]);
|
||||
|
||||
api.channels.list();
|
||||
api.channels.addTextChannel({ id: 'e2e-text', name: 'E2E Text', position: 89 });
|
||||
api.channels.addAudioChannel({ id: 'e2e-audio', name: 'E2E Audio', position: 90 });
|
||||
api.channels.addVideoChannel({ id: 'e2e-video', name: 'E2E Video', position: 91 });
|
||||
api.channels.select('general');
|
||||
api.channels.rename('e2e-audio', 'E2E Audio Renamed');
|
||||
api.channels.remove('e2e-text');
|
||||
|
||||
api.server.getCurrent();
|
||||
await api.server.updateIcon('e2e-plugin-icon').catch((error) => api.logger.warn('server icon rejected', String(error)));
|
||||
api.server.updatePermissions({ allowVoice: true });
|
||||
api.server.updateSettings({
|
||||
name: api.server.getCurrent()?.name,
|
||||
@@ -129,6 +155,10 @@ export async function activate(context) {
|
||||
});
|
||||
api.messages.moderateDelete('missing-message-id');
|
||||
api.messages.sync(api.messages.readCurrent());
|
||||
await api.messages.import(api.messages.readCurrent()).catch((error) => api.logger.warn('message import rejected', String(error)));
|
||||
api.messages.setTyping(true);
|
||||
api.messages.setTyping(false);
|
||||
context.subscriptions.push(api.messages.subscribeTyping(() => {}));
|
||||
context.subscriptions.push(api.messageBus.subscribe({
|
||||
handler: () => {},
|
||||
latestMessageLimit: 5,
|
||||
@@ -147,6 +177,19 @@ export async function activate(context) {
|
||||
topic: 'e2e:latest'
|
||||
});
|
||||
|
||||
if (shouldMutateChat) {
|
||||
const sentMessage = api.messages.readCurrent().find((message) => message.content === editedMessage);
|
||||
|
||||
if (sentMessage) {
|
||||
const attachmentFile = new File(['plugin attachment'], 'e2e-plugin.txt', { type: 'text/plain' });
|
||||
|
||||
await api.attachments.import({
|
||||
files: [attachmentFile],
|
||||
messageId: sentMessage.id
|
||||
}).catch((error) => api.logger.warn('attachment import rejected', String(error)));
|
||||
}
|
||||
}
|
||||
|
||||
api.p2p.connectedPeers();
|
||||
api.p2p.broadcastData('e2e:p2p', { ok: true });
|
||||
api.p2p.sendData('missing-peer', 'e2e:p2p', { ok: true });
|
||||
|
||||
Reference in New Issue
Block a user