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

@ -29,7 +29,7 @@ export const NamesCmd = nameHistoryCmd({
);
const usernameRows = usernames.map(r => `\`[${r.timestamp}]\` **${disableCodeBlocks(r.username)}**`);
const user = pluginData.client.user!.get(args.userId);
const user = await pluginData.client.users.fetch(args.userId);
const currentUsername = user ? `${user.username}#${user.discriminator}` : args.userId;
const nicknameDays = Math.round(NICKNAME_RETENTION_PERIOD / DAYS);

View file

@ -2,10 +2,15 @@ import { nameHistoryEvt } from "../types";
import { updateNickname } from "../updateNickname";
export const ChannelJoinEvt = nameHistoryEvt({
event: "voiceChannelJoin",
event: "voiceStateUpdate",
async listener(meta) {
meta.pluginData.state.updateQueue.add(() => updateNickname(meta.pluginData, meta.args.member));
meta.pluginData.state.updateQueue.add(() =>
updateNickname(
meta.pluginData,
meta.args.newState.member ? meta.args.newState.member : meta.args.oldState.member!,
),
);
},
});

View file

@ -1,11 +1,12 @@
import { GuildMember } from "discord.js";
import { GuildPluginData } from "knub";
import { NameHistoryPluginType } from "./types";
export async function updateNickname(pluginData: GuildPluginData<NameHistoryPluginType>, member: Member) {
export async function updateNickname(pluginData: GuildPluginData<NameHistoryPluginType>, member: GuildMember) {
if (!member) return;
const latestEntry = await pluginData.state.nicknameHistory.getLastEntry(member.id);
if (!latestEntry || latestEntry.nickname !== member.nick) {
if (!latestEntry && member.nick == null) return; // No need to save "no nickname" if there's no previous data
await pluginData.state.nicknameHistory.addEntry(member.id, member.nick);
if (!latestEntry || latestEntry.nickname !== member.nickname) {
if (!latestEntry && member.nickname == null) return; // No need to save "no nickname" if there's no previous data
await pluginData.state.nicknameHistory.addEntry(member.id, member.nickname);
}
}