3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-10 12:25:02 +00:00

Finish preliminary rework, ready to test

This commit is contained in:
Dark 2021-06-02 04:07:50 +02:00
parent 57893e7f76
commit d0a1beb809
No known key found for this signature in database
GPG key ID: 2CD6ACB6B0A87B8A
177 changed files with 854 additions and 707 deletions

View file

@ -30,6 +30,6 @@ export async function addRoleAction(
const rolesToAdd = Array.isArray(action.role) ? action.role : [action.role];
await target.edit({
roles: Array.from(new Set([...target.roles, ...rolesToAdd])),
roles: Array.from(new Set([...target.roles.cache.array(), ...rolesToAdd])),
});
}

View file

@ -3,6 +3,7 @@ import { CustomEventsPluginType } from "../types";
import * as t from "io-ts";
import { renderTemplate } from "../../../templateFormatter";
import { ActionError } from "../ActionError";
import { TextChannel } from "discord.js";
export const MessageAction = t.type({
type: t.literal("message"),
@ -21,5 +22,5 @@ export async function messageAction(
if (!targetChannel) throw new ActionError("Unknown target channel");
if (!(targetChannel instanceof TextChannel)) throw new ActionError("Target channel is not a text channel");
await targetChannel.createMessage({ content: action.content });
await targetChannel.send({ content: action.content });
}

View file

@ -5,6 +5,7 @@ import { renderTemplate } from "../../../templateFormatter";
import { resolveMember } from "../../../utils";
import { ActionError } from "../ActionError";
import { canActOn } from "../../../pluginUtils";
import { VoiceChannel } from "discord.js";
export const MoveToVoiceChannelAction = t.type({
type: t.literal("move_to_vc"),
@ -33,8 +34,8 @@ export async function moveToVoiceChannelAction(
if (!targetChannel) throw new ActionError("Unknown target channel");
if (!(targetChannel instanceof VoiceChannel)) throw new ActionError("Target channel is not a voice channel");
if (!target.voiceState.channelID) return;
if (!target.voice.channelID) return;
await target.edit({
channelID: targetChannel.id,
channel: targetChannel.id,
});
}

View file

@ -30,11 +30,8 @@ export async function setChannelPermissionOverridesAction(
}
for (const override of action.overrides) {
await channel.editPermission(
override.id,
override.allow,
override.deny,
override.type,
await channel.overwritePermissions(
[{ id: override.id, allow: BigInt(override.allow), deny: BigInt(override.deny), type: override.type }],
`Custom event: ${event.name}`,
);
}

View file

@ -10,6 +10,7 @@ import { messageAction } from "../actions/messageAction";
import { makeRoleMentionableAction } from "../actions/makeRoleMentionableAction";
import { makeRoleUnmentionableAction } from "../actions/makeRoleUnmentionableAction";
import { setChannelPermissionOverridesAction } from "../actions/setChannelPermissionOverrides";
import { Message, TextChannel } from "discord.js";
export async function runEvent(
pluginData: GuildPluginData<CustomEventsPluginType>,
@ -38,7 +39,7 @@ export async function runEvent(
} catch (e) {
if (e instanceof ActionError) {
if (event.trigger.type === "command") {
sendErrorMessage(pluginData, (eventData.msg as Message).channel, e.message);
sendErrorMessage(pluginData, (eventData.msg as Message).channel as TextChannel, e.message);
} else {
// TODO: Where to log action errors from other kinds of triggers?
}