mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-05-10 20:35:02 +00:00
Finish preliminary rework, ready to test
This commit is contained in:
parent
57893e7f76
commit
d0a1beb809
177 changed files with 854 additions and 707 deletions
|
@ -3,6 +3,7 @@ import { sendErrorMessage, sendSuccessMessage, canActOn } from "../../../pluginU
|
|||
import { rolesCmd } from "../types";
|
||||
import { resolveRoleId, stripObjectToScalars, verboseUserMention } from "../../../utils";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { GuildChannel } from "discord.js";
|
||||
|
||||
export const AddRoleCmd = rolesCmd({
|
||||
trigger: "addrole",
|
||||
|
@ -33,7 +34,7 @@ export const AddRoleCmd = rolesCmd({
|
|||
}
|
||||
|
||||
// Sanity check: make sure the role is configured properly
|
||||
const role = (msg.channel as GuildChannel).guild.roles.get(roleId);
|
||||
const role = (msg.channel as GuildChannel).guild.roles.cache.get(roleId);
|
||||
if (!role) {
|
||||
pluginData.state.logs.log(LogType.BOT_ALERT, {
|
||||
body: `Unknown role configured for 'roles' plugin: ${roleId}`,
|
||||
|
@ -42,14 +43,14 @@ export const AddRoleCmd = rolesCmd({
|
|||
return;
|
||||
}
|
||||
|
||||
if (args.member.roles.includes(roleId)) {
|
||||
if (args.member.roles.cache.has(roleId)) {
|
||||
sendErrorMessage(pluginData, msg.channel, "Member already has that role");
|
||||
return;
|
||||
}
|
||||
|
||||
pluginData.state.logs.ignoreLog(LogType.MEMBER_ROLE_ADD, args.member.id);
|
||||
|
||||
await args.member.addRole(roleId);
|
||||
await args.member.roles.add(roleId);
|
||||
|
||||
pluginData.state.logs.log(LogType.MEMBER_ROLE_ADD, {
|
||||
member: stripObjectToScalars(args.member, ["user", "roles"]),
|
||||
|
|
|
@ -4,6 +4,7 @@ import { rolesCmd } from "../types";
|
|||
import { resolveMember, resolveRoleId, stripObjectToScalars, successMessage } from "../../../utils";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { logger } from "../../../logger";
|
||||
import { GuildMember } from "discord.js";
|
||||
|
||||
export const MassAddRoleCmd = rolesCmd({
|
||||
trigger: "massaddrole",
|
||||
|
@ -15,9 +16,9 @@ export const MassAddRoleCmd = rolesCmd({
|
|||
},
|
||||
|
||||
async run({ message: msg, args, pluginData }) {
|
||||
msg.channel.createMessage(`Resolving members...`);
|
||||
msg.channel.send(`Resolving members...`);
|
||||
|
||||
const members: Member[] = [];
|
||||
const members: GuildMember[] = [];
|
||||
const unknownMembers: string[] = [];
|
||||
for (const memberId of args.members) {
|
||||
const member = await resolveMember(pluginData.client, pluginData.guild, memberId);
|
||||
|
@ -57,12 +58,12 @@ export const MassAddRoleCmd = rolesCmd({
|
|||
return;
|
||||
}
|
||||
|
||||
const membersWithoutTheRole = members.filter(m => !m.roles.includes(roleId));
|
||||
const membersWithoutTheRole = members.filter(m => !m.roles.cache.has(roleId));
|
||||
let assigned = 0;
|
||||
const failed: string[] = [];
|
||||
const alreadyHadRole = members.length - membersWithoutTheRole.length;
|
||||
|
||||
msg.channel.createMessage(
|
||||
msg.channel.send(
|
||||
`Adding role **${role.name}** to ${membersWithoutTheRole.length} ${
|
||||
membersWithoutTheRole.length === 1 ? "member" : "members"
|
||||
}...`,
|
||||
|
@ -71,7 +72,7 @@ export const MassAddRoleCmd = rolesCmd({
|
|||
for (const member of membersWithoutTheRole) {
|
||||
try {
|
||||
pluginData.state.logs.ignoreLog(LogType.MEMBER_ROLE_ADD, member.id);
|
||||
await member.addRole(roleId);
|
||||
await member.roles.add(roleId);
|
||||
pluginData.state.logs.log(LogType.MEMBER_ROLE_ADD, {
|
||||
member: stripObjectToScalars(member, ["user", "roles"]),
|
||||
roles: role.name,
|
||||
|
@ -97,6 +98,6 @@ export const MassAddRoleCmd = rolesCmd({
|
|||
resultMessage += `\nUnknown members: ${unknownMembers.join(", ")}`;
|
||||
}
|
||||
|
||||
msg.channel.createMessage(successMessage(resultMessage));
|
||||
msg.channel.send(successMessage(resultMessage));
|
||||
},
|
||||
});
|
||||
|
|
|
@ -4,6 +4,7 @@ import { rolesCmd } from "../types";
|
|||
import { resolveMember, stripObjectToScalars, successMessage, resolveRoleId } from "../../../utils";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { logger } from "../../../logger";
|
||||
import { GuildMember } from "discord.js";
|
||||
|
||||
export const MassRemoveRoleCmd = rolesCmd({
|
||||
trigger: "massremoverole",
|
||||
|
@ -15,9 +16,9 @@ export const MassRemoveRoleCmd = rolesCmd({
|
|||
},
|
||||
|
||||
async run({ message: msg, args, pluginData }) {
|
||||
msg.channel.createMessage(`Resolving members...`);
|
||||
msg.channel.send(`Resolving members...`);
|
||||
|
||||
const members: Member[] = [];
|
||||
const members: GuildMember[] = [];
|
||||
const unknownMembers: string[] = [];
|
||||
for (const memberId of args.members) {
|
||||
const member = await resolveMember(pluginData.client, pluginData.guild, memberId);
|
||||
|
@ -57,12 +58,12 @@ export const MassRemoveRoleCmd = rolesCmd({
|
|||
return;
|
||||
}
|
||||
|
||||
const membersWithTheRole = members.filter(m => m.roles.includes(roleId));
|
||||
const membersWithTheRole = members.filter(m => m.roles.cache.has(roleId));
|
||||
let assigned = 0;
|
||||
const failed: string[] = [];
|
||||
const didNotHaveRole = members.length - membersWithTheRole.length;
|
||||
|
||||
msg.channel.createMessage(
|
||||
msg.channel.send(
|
||||
`Removing role **${role.name}** from ${membersWithTheRole.length} ${
|
||||
membersWithTheRole.length === 1 ? "member" : "members"
|
||||
}...`,
|
||||
|
@ -71,7 +72,7 @@ export const MassRemoveRoleCmd = rolesCmd({
|
|||
for (const member of membersWithTheRole) {
|
||||
try {
|
||||
pluginData.state.logs.ignoreLog(LogType.MEMBER_ROLE_REMOVE, member.id);
|
||||
await member.removeRole(roleId);
|
||||
await member.roles.remove(roleId);
|
||||
pluginData.state.logs.log(LogType.MEMBER_ROLE_REMOVE, {
|
||||
member: stripObjectToScalars(member, ["user", "roles"]),
|
||||
roles: role.name,
|
||||
|
@ -97,6 +98,6 @@ export const MassRemoveRoleCmd = rolesCmd({
|
|||
resultMessage += `\nUnknown members: ${unknownMembers.join(", ")}`;
|
||||
}
|
||||
|
||||
msg.channel.createMessage(successMessage(resultMessage));
|
||||
msg.channel.send(successMessage(resultMessage));
|
||||
},
|
||||
});
|
||||
|
|
|
@ -4,6 +4,7 @@ import { rolesCmd } from "../types";
|
|||
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { stripObjectToScalars, verboseUserMention, resolveRoleId } from "../../../utils";
|
||||
import { GuildChannel } from "discord.js";
|
||||
|
||||
export const RemoveRoleCmd = rolesCmd({
|
||||
trigger: "removerole",
|
||||
|
@ -34,7 +35,7 @@ export const RemoveRoleCmd = rolesCmd({
|
|||
}
|
||||
|
||||
// Sanity check: make sure the role is configured properly
|
||||
const role = (msg.channel as GuildChannel).guild.roles.get(roleId);
|
||||
const role = (msg.channel as GuildChannel).guild.roles.cache.get(roleId);
|
||||
if (!role) {
|
||||
pluginData.state.logs.log(LogType.BOT_ALERT, {
|
||||
body: `Unknown role configured for 'roles' plugin: ${roleId}`,
|
||||
|
@ -43,14 +44,14 @@ export const RemoveRoleCmd = rolesCmd({
|
|||
return;
|
||||
}
|
||||
|
||||
if (!args.member.roles.includes(roleId)) {
|
||||
if (!args.member.roles.cache.has(roleId)) {
|
||||
sendErrorMessage(pluginData, msg.channel, "Member doesn't have that role");
|
||||
return;
|
||||
}
|
||||
|
||||
pluginData.state.logs.ignoreLog(LogType.MEMBER_ROLE_REMOVE, args.member.id);
|
||||
|
||||
await args.member.removeRole(roleId);
|
||||
await args.member.roles.remove(roleId);
|
||||
|
||||
pluginData.state.logs.log(LogType.MEMBER_ROLE_REMOVE, {
|
||||
member: stripObjectToScalars(args.member, ["user", "roles"]),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue