Improved searching for users by name

This commit is contained in:
WatDuhHekBro 2021-04-17 10:21:17 -05:00
parent 564a419b40
commit 8094dbd6c8
No known key found for this signature in database
GPG Key ID: E128514902DF8A05
8 changed files with 54 additions and 46 deletions

View File

@ -3,6 +3,7 @@
- Reworked `poll`
- Extended stream notifications feature
- Fixed various bugs
- Improved searching for users by name
# 3.2.1
- `vaporwave`: Transforms input into full-width text

18
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "travebot",
"version": "3.2.1",
"version": "3.2.2",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "travebot",
"version": "3.2.1",
"version": "3.2.2",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
@ -20,7 +20,7 @@
"mathjs": "^9.3.0",
"moment": "^2.29.1",
"ms": "^2.1.3",
"onion-lasers": "^1.0.0",
"onion-lasers": "^1.1.0",
"relevant-urban": "^2.0.0",
"translate-google": "^1.4.3",
"weather-js": "^2.0.0"
@ -5406,9 +5406,9 @@
}
},
"node_modules/onion-lasers": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/onion-lasers/-/onion-lasers-1.0.0.tgz",
"integrity": "sha512-vVpywipeVUBMffvhxTeq8i+kuIO3zV+t2RQcPFo7XiUjfARR6Kq4CGyPhi9EhVXmylzwSDH+HzBzxZcdfajqng==",
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/onion-lasers/-/onion-lasers-1.1.0.tgz",
"integrity": "sha512-mwdRwvWTsDbiMkYGRskn05fqxvmJm+Mft10rjF5WwHZUm0wpSzD/nZrsrlkQ5KlCzDQJfKD5du8ZM0VX/35DQA==",
"dependencies": {
"discord.js": "^12.5.3",
"glob": "^7.1.6"
@ -12425,9 +12425,9 @@
}
},
"onion-lasers": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/onion-lasers/-/onion-lasers-1.0.0.tgz",
"integrity": "sha512-vVpywipeVUBMffvhxTeq8i+kuIO3zV+t2RQcPFo7XiUjfARR6Kq4CGyPhi9EhVXmylzwSDH+HzBzxZcdfajqng==",
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/onion-lasers/-/onion-lasers-1.1.0.tgz",
"integrity": "sha512-mwdRwvWTsDbiMkYGRskn05fqxvmJm+Mft10rjF5WwHZUm0wpSzD/nZrsrlkQ5KlCzDQJfKD5du8ZM0VX/35DQA==",
"requires": {
"discord.js": "^12.5.3",
"glob": "^7.1.6"

View File

@ -1,6 +1,6 @@
{
"name": "travebot",
"version": "3.2.1",
"version": "3.2.2",
"description": "TravBot Discord bot.",
"main": "dist/index.js",
"scripts": {
@ -23,7 +23,7 @@
"mathjs": "^9.3.0",
"moment": "^2.29.1",
"ms": "^2.1.3",
"onion-lasers": "^1.0.0",
"onion-lasers": "^1.1.0",
"relevant-urban": "^2.0.0",
"translate-google": "^1.4.3",
"weather-js": "^2.0.0"

View File

@ -1,4 +1,4 @@
import {Command, NamedCommand, getMemberByName, RestCommand} from "onion-lasers";
import {Command, NamedCommand, getUserByNickname, RestCommand} from "onion-lasers";
import {isAuthorized, getMoneyEmbed} from "./modules/eco-utils";
import {DailyCommand, PayCommand, GuildCommand, LeaderboardCommand} from "./modules/eco-core";
import {BuyCommand, ShopCommand} from "./modules/eco-shop";
@ -36,9 +36,9 @@ export default new NamedCommand({
description: "See how much money someone else has by using their username.",
async run({send, guild, channel, combined}) {
if (isAuthorized(guild, channel)) {
const member = await getMemberByName(guild!, combined);
if (typeof member !== "string") send(getMoneyEmbed(member.user));
else send(member);
const user = await getUserByNickname(combined, guild);
if (typeof user !== "string") send(getMoneyEmbed(user));
else send(user);
}
}
})

View File

@ -1,4 +1,4 @@
import {Command, getMemberByName, NamedCommand, confirm, RestCommand} from "onion-lasers";
import {Command, getUserByNickname, NamedCommand, confirm, RestCommand} from "onion-lasers";
import {pluralise} from "../../../lib";
import {Storage} from "../../../structures";
import {isAuthorized, getMoneyEmbed, getSendEmbed, ECO_EMBED_COLOR} from "./eco-utils";
@ -156,20 +156,18 @@ export const PayCommand = new NamedCommand({
else if (!guild)
return send("You have to use this in a server if you want to send Mons with a username!");
const member = await getMemberByName(guild, combined);
if (typeof member === "string") return send(member);
else if (member.user.id === author.id) return send("You can't send Mons to yourself!");
else if (member.user.bot && process.argv[2] !== "dev") return send("You can't send Mons to a bot!");
const user = await getUserByNickname(combined, guild);
if (typeof user === "string") return send(user);
else if (user.id === author.id) return send("You can't send Mons to yourself!");
else if (user.bot && !IS_DEV_MODE) return send("You can't send Mons to a bot!");
const target = member.user;
const result = await confirm(
const confirmed = await confirm(
await send(`Are you sure you want to send ${pluralise(amount, "Mon", "s")} to this person?`, {
embed: {
color: ECO_EMBED_COLOR,
author: {
name: target.tag,
icon_url: target.displayAvatarURL({
name: user.tag,
icon_url: user.displayAvatarURL({
format: "png",
dynamic: true
})
@ -179,12 +177,12 @@ export const PayCommand = new NamedCommand({
author.id
);
if (result) {
const receiver = Storage.getUser(target.id);
if (confirmed) {
const receiver = Storage.getUser(user.id);
sender.money -= amount;
receiver.money += amount;
Storage.save();
send(getSendEmbed(author, target, amount));
send(getSendEmbed(author, user, amount));
}
}

View File

@ -1,5 +1,5 @@
import {User} from "discord.js";
import {Command, NamedCommand, getMemberByName, CHANNEL_TYPE, RestCommand} from "onion-lasers";
import {Command, NamedCommand, getUserByNickname, RestCommand} from "onion-lasers";
// Quotes must be used here or the numbers will change
const registry: {[id: string]: string} = {
@ -69,18 +69,17 @@ export default new NamedCommand({
}
}),
any: new RestCommand({
channelType: CHANNEL_TYPE.GUILD,
async run({send, guild, combined}) {
const member = await getMemberByName(guild!, combined);
const user = await getUserByNickname(combined, guild);
if (typeof member !== "string") {
if (member.id in registry) {
send(registry[member.id]);
if (typeof user !== "string") {
if (user.id in registry) {
send(registry[user.id]);
} else {
send(`\`${member.nickname ?? member.user.username}\` hasn't been added to the registry yet!`);
send(`\`${user.tag}\` hasn't been added to the registry yet!`);
}
} else {
send(member);
send(user);
}
}
})

View File

@ -1,7 +1,7 @@
import {MessageEmbed, version as djsversion, Guild, User, GuildMember} from "discord.js";
import ms from "ms";
import os from "os";
import {Command, NamedCommand, getMemberByName, CHANNEL_TYPE, getGuildByName, RestCommand} from "onion-lasers";
import {Command, NamedCommand, getUserByNickname, CHANNEL_TYPE, getGuildByName, RestCommand} from "onion-lasers";
import {formatBytes, trimArray} from "../../lib";
import {verificationLevels, filterLevels, regions} from "../../defs/info";
import moment, {utc} from "moment";
@ -34,17 +34,17 @@ export default new NamedCommand({
description: "Shows another user's avatar by searching their name",
channelType: CHANNEL_TYPE.GUILD,
async run({send, guild, combined}) {
const member = await getMemberByName(guild!, combined);
const user = await getUserByNickname(combined, guild);
if (typeof member !== "string") {
if (typeof user !== "string") {
send(
member.user.displayAvatarURL({
user.displayAvatarURL({
dynamic: true,
size: 2048
})
);
} else {
send(member);
send(user);
}
}
})
@ -125,9 +125,19 @@ export default new NamedCommand({
async run({send, guild, args}) {
const user = args[0] as User;
// Transforms the User object into a GuildMember object of the current guild.
const member = guild?.members.resolve(args[0]);
const member = guild?.members.resolve(user);
send(await getUserInfo(user, member));
}
}),
any: new RestCommand({
description: "Displays info about a user by their nickname or username.",
async run({send, guild, combined}) {
const user = await getUserByNickname(combined, guild);
// Transforms the User object into a GuildMember object of the current guild.
const member = guild?.members.resolve(user);
if (typeof user !== "string") send(await getUserInfo(user, member));
else send(user);
}
})
});

View File

@ -4,7 +4,7 @@ import {
askForReply,
confirm,
askMultipleChoice,
getMemberByName,
getUserByNickname,
RestCommand
} from "onion-lasers";
import {Storage} from "../../structures";
@ -393,9 +393,9 @@ export default new NamedCommand({
any: new RestCommand({
description: "See what time it is for someone else (by their username).",
async run({send, guild, combined}) {
const member = await getMemberByName(guild!, combined);
if (typeof member !== "string") send(getTimeEmbed(member.user));
else send(member);
const user = await getUserByNickname(combined, guild);
if (typeof user !== "string") send(getTimeEmbed(user));
else send(user);
}
})
});