Compare commits
57 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d9a1b9b99c | |||
| 6fe26e7837 | |||
| afc2b10a86 | |||
| 3369bd521d | |||
| d52aff9936 | |||
| a44f81bddf | |||
| 2925c3d788 | |||
| 9dcd27c45f | |||
| e882ee7e57 | |||
| 20ecfb3e84 | |||
| 16f4b7eaf9 | |||
| 940d3f6c30 | |||
| 4252a2f060 | |||
| f602638aae | |||
| c9c45d17e7 | |||
| bf27b6519a | |||
| 085b51a95d | |||
| fc41f8ad2f | |||
| d6d05f6a72 | |||
| ed76ad6044 | |||
| c0036e7471 | |||
| 55812d6422 | |||
| 93b40700e0 | |||
| 345e368faa | |||
| 523f057ea3 | |||
| a0a9383d32 | |||
| 06685d0ad4 | |||
| 17d295043f | |||
| e069b80a1d | |||
| a016217a06 | |||
| 6dcd1b2665 | |||
| 6f369ee441 | |||
| 79611c34ae | |||
| bec6a886b1 | |||
| 0cd23ff738 | |||
| ba8d2f5cb9 | |||
| fdbf05b846 | |||
| 25ec6a1906 | |||
| f73217e282 | |||
| e0122e5365 | |||
| 7ccfe95b33 | |||
| eb48b90c96 | |||
| f62d629b1f | |||
| 2772a16525 | |||
| 502cffbf06 | |||
| 8fde14112b | |||
| dd159fa854 | |||
| dec7d3a50a | |||
| 978e08b713 | |||
| fd9cc47836 | |||
| 75fa8fce66 | |||
| 51691595ce | |||
| 3f64f2e8e5 | |||
| 8db44d917c | |||
| bb66625541 | |||
| 81a73d519f | |||
| b44a3c482e |
@@ -1,3 +1,4 @@
|
|||||||
node_modules
|
node_modules
|
||||||
secrets.env
|
secrets.env
|
||||||
data
|
data
|
||||||
|
tokens.txt
|
||||||
+19
-6
@@ -6,10 +6,11 @@ var DataStore = require("./datastore");
|
|||||||
var ds = new DataStore("activity");
|
var ds = new DataStore("activity");
|
||||||
|
|
||||||
|
|
||||||
app.get("/detect/:userid", (req, res) => {
|
app.get("/detect/:code", (req, res) => {
|
||||||
res.sendFile(process.cwd() + "/track-image.png");
|
res.sendFile(process.cwd() + "/track-image.png");
|
||||||
if (req.headers["user-agent"].includes("Discordbot")) return;
|
if (req.headers["user-agent"].includes("Discordbot")) return;
|
||||||
onActivity(req.params.userid);
|
onActivity(ds.get(req.params.code));
|
||||||
|
ds.del(req.params.code);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -54,9 +55,9 @@ module.exports.interval = setInterval(async () => {
|
|||||||
|
|
||||||
|
|
||||||
async function deactivateMember(member) {
|
async function deactivateMember(member) {
|
||||||
//if (ds.get(member.id + "deactivated")) return "member is already deactivated";
|
|
||||||
await member.roles.add(config.inactive_role);
|
await member.roles.add(config.inactive_role);
|
||||||
ds.put(member.id + "deactivated");
|
ds.put(member.id + "deactivated");
|
||||||
|
ds.put(member.id, Date.now());
|
||||||
|
|
||||||
var magic_channel = client.channels.resolve(ds.get(member.id + "magicchannelid"));
|
var magic_channel = client.channels.resolve(ds.get(member.id + "magicchannelid"));
|
||||||
if (!magic_channel) {
|
if (!magic_channel) {
|
||||||
@@ -82,17 +83,19 @@ async function deactivateMember(member) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var magic_channel_message_id = ds.get(member.id + "magicchannelmessage");
|
var magic_channel_message_id = ds.get(member.id + "magicchannelmessage");
|
||||||
|
var unique_code = Math.random().toString();
|
||||||
|
ds.put(unique_code, member.id);
|
||||||
|
var content = `${config.base_uri}/detect/${unique_code}`;
|
||||||
if (!magic_channel_message_id) {
|
if (!magic_channel_message_id) {
|
||||||
var magic_channel_message = await magic_channel.send(`${config.base_uri}/detect/${member.id}?${Math.random()}`);
|
var magic_channel_message = await magic_channel.send({content});
|
||||||
ds.put(member.id + "magicchannelmessage", magic_channel_message.id)
|
ds.put(member.id + "magicchannelmessage", magic_channel_message.id)
|
||||||
} else {
|
} else {
|
||||||
await magic_channel.messages.edit(magic_channel_message_id, {content: `${config.base_uri}/detect/${member.id}?${Math.random()}`});
|
await magic_channel.messages.edit(magic_channel_message_id, {content});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function reactivateMember(member) {
|
async function reactivateMember(member) {
|
||||||
//if (!ds.get(member.id + "deactivated")) return "member is not deactivated";
|
|
||||||
await member.roles.remove(config.inactive_role);
|
await member.roles.remove(config.inactive_role);
|
||||||
ds.del(member.id + "deactivated");
|
ds.del(member.id + "deactivated");
|
||||||
var magic_channel = client.channels.resolve(ds.get(member.id + "magicchannelid"));
|
var magic_channel = client.channels.resolve(ds.get(member.id + "magicchannelid"));
|
||||||
@@ -101,3 +104,13 @@ async function reactivateMember(member) {
|
|||||||
|
|
||||||
module.exports.deactivateMember = deactivateMember;
|
module.exports.deactivateMember = deactivateMember;
|
||||||
module.exports.reactivateMember = reactivateMember;
|
module.exports.reactivateMember = reactivateMember;
|
||||||
|
|
||||||
|
|
||||||
|
client.on("messageCreate", async message => {
|
||||||
|
if (message.guildId != config.guild) return;
|
||||||
|
let deactivatedMembersMentionedViaRoles = [...new Set(message.mentions.roles.flatMap(r => r.members).values())].filter(x => ds.get(x.id + "deactivated"));
|
||||||
|
if (deactivatedMembersMentionedViaRoles.length) {
|
||||||
|
for (let m of deactivatedMembersMentionedViaRoles) await reactivateMember(m);
|
||||||
|
await message.reply({content: deactivatedMembersMentionedViaRoles.map(String).join(' '), allowedMentions:{repliedUser: false}});
|
||||||
|
}
|
||||||
|
});
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
module.exports = class DiscordBackup {
|
||||||
|
constructor(guild) {
|
||||||
|
this.guild = guild;
|
||||||
|
this.data = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
async backupGuild() {
|
||||||
|
// includes emojis, stickers, roles
|
||||||
|
this.data.guild = await this.guild.client.api.guilds(this.guild.id).get();
|
||||||
|
}
|
||||||
|
|
||||||
|
async backupMembers() {
|
||||||
|
this.data.members = await this.guild.client.api.guilds(this.guild.id).members.get({query: {limit: 1000}});
|
||||||
|
}
|
||||||
|
|
||||||
|
async backupChannel(channelId) {
|
||||||
|
var data = {
|
||||||
|
channel: await this.guild.client.api.channels[channelId].get(),
|
||||||
|
messages: []
|
||||||
|
};
|
||||||
|
this.data.channels ||= [];
|
||||||
|
this.data.channels.push(data);
|
||||||
|
do {
|
||||||
|
var messages = await this.guild.client.api.channels[channelId].messages.get({query: {
|
||||||
|
before: messages?.at(-1)?.id, limit: 100
|
||||||
|
}});
|
||||||
|
data.messages.push(...messages);
|
||||||
|
} while (messages.length > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
async backupEverything() {
|
||||||
|
await this.backupGuild();
|
||||||
|
await this.backupMembers();
|
||||||
|
for (let channelId of this.guild.channels.cache.keys()) {
|
||||||
|
try {
|
||||||
|
await this.backupChannel(channelId);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error.stack);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
serialize() {
|
||||||
|
return JSON.stringify(this.data);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -8,78 +8,5 @@ var client = module.exports = new Discord.Client({
|
|||||||
|
|
||||||
client.login(config.token).then(async () => {
|
client.login(config.token).then(async () => {
|
||||||
console.log("ready");
|
console.log("ready");
|
||||||
(await client.channels.fetch(config.bot_channel))?.send('a');
|
(await client.channels.fetch(config.bot_channel))?.send('a2');
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
/* small misc stuff here */
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
client.on("guildMemberAdd", member => {
|
|
||||||
if (member.guild.id != config.guild) return;
|
|
||||||
// add role
|
|
||||||
member.roles.add(member.user.bot ? config.bot_role : config.human_role);
|
|
||||||
});
|
|
||||||
// join message
|
|
||||||
client.on("messageDelete", message => {
|
|
||||||
if (message.channel.id != config.default_channel) return;
|
|
||||||
if (message.type != "GUILD_MEMBER_JOIN") return;
|
|
||||||
client.channels.resolve(config.default_channel)?.send(
|
|
||||||
`sussy baka ${message.author} deleted their join message ||(from <t:${message.createdAt.valueOf()}>)||`
|
|
||||||
);
|
|
||||||
});
|
|
||||||
client.on("guildMemberRemove", member => {
|
|
||||||
if (member.guild.id != config.guild) return;
|
|
||||||
// leave message
|
|
||||||
client.channels.resolve(config.default_channel)?.send(random([
|
|
||||||
`${member.user.username} left`,
|
|
||||||
`${member.user.username} disappeared`,
|
|
||||||
`${member.user.username.toLowerCase()} is gone`
|
|
||||||
]));
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
client.on("messageCreate", message => {
|
|
||||||
// comment thread on announcements
|
|
||||||
message.channel.id == config.announcement_channel && message.startThread({name: "Comments"});
|
|
||||||
// stupid m bot
|
|
||||||
message.author.id == "732072478519722096" && message.content.endsWith("is bad letter m is much better") && message.delete();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// add reactions to video and audio
|
|
||||||
{
|
|
||||||
let a = async m => {
|
|
||||||
if (m.guild?.id != config.guild) return;
|
|
||||||
if ((m.embeds.some(e => e.type == "video") || m.attachments.some(a => a.contentType?.startsWith('video'))) && !m.g) {
|
|
||||||
m.g = true;
|
|
||||||
m.react(config.mi_emoji);
|
|
||||||
}
|
|
||||||
if (m.attachments.some(a => a.contentType?.startsWith('audio')) && !m.d) {
|
|
||||||
m.d = true;
|
|
||||||
m.react(config.ki_emoji);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
client.on("messageCreate", a);
|
|
||||||
client.on("messageUpdate", (r, q) => a(q));
|
|
||||||
}
|
|
||||||
|
|
||||||
// thing to access archived channels
|
|
||||||
client.on("voiceStateUpdate", (oldState, newState) => {
|
|
||||||
if (newState.guild.id != config.guild) return;
|
|
||||||
if (oldState.channelId != config.archive_portal_voice_channel && newState.channelId == config.archive_portal_voice_channel) {
|
|
||||||
// join
|
|
||||||
newState.member?.roles.add(config.view_archived_channels_role);
|
|
||||||
} else if (oldState.channelId == config.archive_portal_voice_channel && newState.channelId != config.archive_portal_voice_channel) {
|
|
||||||
// leave
|
|
||||||
newState.member?.roles.remove(config.view_archived_channels_role);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// save deleted emojis
|
|
||||||
client.on("emojiDelete", emoji => {
|
|
||||||
client.channels.resolve(config.bot_channel)?.send({
|
|
||||||
content: "emoji deleted",
|
|
||||||
files: [{attachment: emoji.url, name: `${emoji.name}.${emoji.url.split('.').pop()}`}]
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
@@ -9,11 +9,11 @@ var commands = require("./commands");
|
|||||||
|
|
||||||
|
|
||||||
function getColorRoleFor(user_id) {
|
function getColorRoleFor(user_id) {
|
||||||
var color_id;
|
|
||||||
try {
|
try {
|
||||||
color_id = fs.readFileSync(config.data_dir + "color/" + user_id, "utf8");
|
return client.guilds.resolve(config.guild)?.roles.fetch(
|
||||||
|
fs.readFileSync(config.data_dir + "color/" + user_id, "utf8")
|
||||||
|
);
|
||||||
} catch (e) {}
|
} catch (e) {}
|
||||||
return client.guilds.resolve(config.guild)?.roles.fetch(color_id);
|
|
||||||
}
|
}
|
||||||
module.exports.getColorRoleFor = getColorRoleFor;
|
module.exports.getColorRoleFor = getColorRoleFor;
|
||||||
|
|
||||||
@@ -115,8 +115,7 @@ commands.push({
|
|||||||
{
|
{
|
||||||
name: "icon",
|
name: "icon",
|
||||||
description: "Image URL or an emoji",
|
description: "Image URL or an emoji",
|
||||||
type: "STRING",
|
type: "STRING"
|
||||||
required: true
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
exec: async i => {
|
exec: async i => {
|
||||||
@@ -125,13 +124,13 @@ commands.push({
|
|||||||
if (!colorRole) return void i.editReply({content: "You don't have color role!"});
|
if (!colorRole) return void i.editReply({content: "You don't have color role!"});
|
||||||
try {
|
try {
|
||||||
let icon = i.options.getString("icon");
|
let icon = i.options.getString("icon");
|
||||||
if (icon.startsWith("http")) {
|
if (/^https?:\/\//i.test(icon)) {
|
||||||
await colorRole.setIcon(icon);
|
await colorRole.setIcon(icon);
|
||||||
await i.editReply({files: [{
|
await i.editReply({files: [{
|
||||||
attachment: icon,
|
attachment: icon,
|
||||||
name: icon.match(/\/(\w*(?:\.png|\.jpg|\.jpeg|\.gif|\.webp))$/i)?.[1] || "icon.png"
|
name: icon.match(/\/(\w*(?:\.png|\.jpg|\.jpeg|\.gif|\.webp))$/i)?.[1] || "icon.png"
|
||||||
}]});
|
}]});
|
||||||
} else {
|
} else if (icon) {
|
||||||
var emoji = Discord.Util.parseEmoji(icon);
|
var emoji = Discord.Util.parseEmoji(icon);
|
||||||
if (emoji?.id) {
|
if (emoji?.id) {
|
||||||
await colorRole.setIcon(i.client.rest.cdn.Emoji(emoji.id, emoji.animated ? 'gif' : 'png'));
|
await colorRole.setIcon(i.client.rest.cdn.Emoji(emoji.id, emoji.animated ? 'gif' : 'png'));
|
||||||
@@ -139,6 +138,9 @@ commands.push({
|
|||||||
await colorRole.setUnicodeEmoji(icon);
|
await colorRole.setUnicodeEmoji(icon);
|
||||||
}
|
}
|
||||||
await i.editReply({content: icon});
|
await i.editReply({content: icon});
|
||||||
|
} else {
|
||||||
|
await colorRole.setIcon(null);
|
||||||
|
await i.editReply({content: "icon removed"});
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
await i.editReply({content: error.message});
|
await i.editReply({content: error.message});
|
||||||
|
|||||||
+29
@@ -121,6 +121,35 @@ var commands = module.exports = [
|
|||||||
name: "Steal Emoji",
|
name: "Steal Emoji",
|
||||||
type: "MESSAGE",
|
type: "MESSAGE",
|
||||||
exec: i => commands.find(x => x.name == "steal").exec(i)
|
exec: i => commands.find(x => x.name == "steal").exec(i)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "setbanner",
|
||||||
|
description: "Set the server banner image",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
name: "url",
|
||||||
|
description: "HTTP(S) URL to an image",
|
||||||
|
type: "STRING"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
exec: async i => {
|
||||||
|
var url = i.options.getString("url");
|
||||||
|
try {
|
||||||
|
if (!url) {
|
||||||
|
await i.guild.setBanner(null);
|
||||||
|
await i.reply("cleared the server banner");
|
||||||
|
} else {
|
||||||
|
if (/^https?:\/\//i.test(url)) {
|
||||||
|
await i.guild.setBanner(url);
|
||||||
|
await i.reply(url);
|
||||||
|
} else {
|
||||||
|
await i.reply("http image url only!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
await i.reply(error.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -12,11 +12,11 @@ module.exports = {
|
|||||||
eval_undefined_emoji: "707729833601531935",
|
eval_undefined_emoji: "707729833601531935",
|
||||||
mi_emoji: "887931046086185060",
|
mi_emoji: "887931046086185060",
|
||||||
ki_emoji: "887935846710394910",
|
ki_emoji: "887935846710394910",
|
||||||
default_channel: "672956424162115586",
|
default_channel: "949831184957980722",
|
||||||
bot_channel: "782353314137505793",
|
bot_channel: "949831221981097984",
|
||||||
archive_channel: "802280618636869663",
|
archive_channel: "802280618636869663",
|
||||||
moe_channel: "871864787213111366",
|
moe_channel: "871864787213111366",
|
||||||
porn_channel: "835734868427669574",
|
porn_channel: "949831237927862333",
|
||||||
announcement_channel: "876010629490683955",
|
announcement_channel: "876010629490683955",
|
||||||
miku_channel: "900583427483516938",
|
miku_channel: "900583427483516938",
|
||||||
archive_category: "887838689533771776",
|
archive_category: "887838689533771776",
|
||||||
@@ -25,26 +25,32 @@ module.exports = {
|
|||||||
base_uri: "https://ldb.owo69.me",
|
base_uri: "https://ldb.owo69.me",
|
||||||
world_clock: [
|
world_clock: [
|
||||||
{
|
{
|
||||||
|
flag: "🇺🇸",
|
||||||
timezone: "America/Los_Angeles",
|
timezone: "America/Los_Angeles",
|
||||||
channel: "887897732428226660"
|
channel: "887897732428226660"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
flag: "🇺🇸",
|
||||||
timezone: "America/New_York",
|
timezone: "America/New_York",
|
||||||
channel: "888507872932143155"
|
channel: "888507872932143155"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
flag: "🇩🇪",
|
||||||
timezone: "Europe/Berlin",
|
timezone: "Europe/Berlin",
|
||||||
channel: "887897886879281203"
|
channel: "887897886879281203"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
flag: "🇷🇺",
|
||||||
timezone: "Europe/Moscow",
|
timezone: "Europe/Moscow",
|
||||||
channel: "887897904738599002"
|
channel: "887897904738599002"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
flag: "🇵🇭",
|
||||||
timezone: "Asia/Manila",
|
timezone: "Asia/Manila",
|
||||||
channel: "888505937315389451"
|
channel: "888505937315389451"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
flag: "🇯🇵",
|
||||||
timezone: "Asia/Tokyo",
|
timezone: "Asia/Tokyo",
|
||||||
channel: "887897753198419999"
|
channel: "887897753198419999"
|
||||||
}
|
}
|
||||||
@@ -66,5 +72,10 @@ module.exports = {
|
|||||||
tag: "巡音ルカ",
|
tag: "巡音ルカ",
|
||||||
channel: "916444961958928394"
|
channel: "916444961958928394"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
vrchat_status_category: "959236139913445376",
|
||||||
|
vrchat_configuration: {
|
||||||
|
username: process.env.VRCHAT_USERNAME,
|
||||||
|
password: process.env.VRCHAT_PASSWORD
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
var client = require("./client.js");
|
||||||
|
var config = require("./config");
|
||||||
|
|
||||||
|
|
||||||
|
client.on("guildMemberAdd", member => {
|
||||||
|
if (member.guild.id != config.guild) return;
|
||||||
|
// add role
|
||||||
|
member.roles.add(member.user.bot ? config.bot_role : config.human_role);
|
||||||
|
// welcome message
|
||||||
|
client.channels.resolve(config.default_channel)?.send(
|
||||||
|
`Welcome ${member}. Please tell from where you entered this server and some other info about yourself in order to gain access to message history.`
|
||||||
|
);
|
||||||
|
});
|
||||||
|
// join message
|
||||||
|
/*client.on("messageDelete", message => {
|
||||||
|
if (message.channel.id != config.default_channel) return;
|
||||||
|
if (message.type != "GUILD_MEMBER_JOIN") return;
|
||||||
|
client.channels.resolve(config.default_channel)?.send(
|
||||||
|
`sussy baka ${message.author} deleted their join message ||(from <t:${Math.floor(message.createdAt.valueOf()/1000)}>)||`
|
||||||
|
);
|
||||||
|
});*/
|
||||||
|
client.on("guildMemberRemove", member => {
|
||||||
|
if (member.guild.id != config.guild) return;
|
||||||
|
// leave message
|
||||||
|
client.channels.resolve(config.default_channel)?.send(random([
|
||||||
|
`${member.user.username} left`,
|
||||||
|
`${member.user.username} disappeared`,
|
||||||
|
`${member.user.username.toLowerCase()} is gone`
|
||||||
|
]));
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
client.on("messageCreate", message => {
|
||||||
|
// comment thread on announcements
|
||||||
|
message.channel.id == config.announcement_channel && message.startThread({name: "Comments"});
|
||||||
|
// stupid m bot
|
||||||
|
message.author.id == "732072478519722096" && message.content.endsWith("is bad letter m is much better") && message.delete();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// add reactions to video and audio
|
||||||
|
{
|
||||||
|
let a = async m => {
|
||||||
|
if (m.guild?.id != config.guild) return;
|
||||||
|
if ((m.embeds.some(e => e.type == "video") || m.attachments.some(a => a.contentType?.startsWith('video'))) && !m.g) {
|
||||||
|
m.g = true;
|
||||||
|
m.react(config.mi_emoji);
|
||||||
|
}
|
||||||
|
if (m.attachments.some(a => a.contentType?.startsWith('audio')) && !m.d) {
|
||||||
|
m.d = true;
|
||||||
|
m.react(config.ki_emoji);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
client.on("messageCreate", a);
|
||||||
|
client.on("messageUpdate", (r, q) => a(q));
|
||||||
|
}
|
||||||
|
|
||||||
|
// thing to access archived channels
|
||||||
|
client.on("voiceStateUpdate", (oldState, newState) => {
|
||||||
|
if (newState.guild.id != config.guild) return;
|
||||||
|
if (oldState.channelId != config.archive_portal_voice_channel && newState.channelId == config.archive_portal_voice_channel) {
|
||||||
|
// join
|
||||||
|
newState.member?.roles.add(config.view_archived_channels_role);
|
||||||
|
} else if (oldState.channelId == config.archive_portal_voice_channel && newState.channelId != config.archive_portal_voice_channel) {
|
||||||
|
// leave
|
||||||
|
newState.member?.roles.remove(config.view_archived_channels_role);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// save deleted emojis
|
||||||
|
client.on("emojiDelete", emoji => {
|
||||||
|
client.channels.resolve(config.bot_channel)?.send({
|
||||||
|
content: "emoji deleted",
|
||||||
|
files: [{attachment: emoji.url, name: `${emoji.name}.${emoji.url.split('.').pop()}`}]
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -1,19 +1,6 @@
|
|||||||
process.title = "lamp discord bot";
|
|
||||||
process.on("unhandledRejection", error => {
|
process.on("unhandledRejection", error => {
|
||||||
console.error("Unhandled Rejection:\n" + error.stack);
|
console.error("Unhandled Rejection:\n" + error.stack);
|
||||||
});
|
});
|
||||||
|
|
||||||
require("./util"); // global variables set in here
|
require("dotenv").config();
|
||||||
require("./client");
|
require("./vrchat");
|
||||||
require('./eval-exec');
|
|
||||||
require('./colors');
|
|
||||||
require('./www');
|
|
||||||
require('./pinboard');
|
|
||||||
require('./pixiv-embedder');
|
|
||||||
require('./translate2');
|
|
||||||
require('./world-clock');
|
|
||||||
require('./buttonthing');
|
|
||||||
require("./activitytracker");
|
|
||||||
require("./vocabularygame");
|
|
||||||
require("./pixiv-subscribe");
|
|
||||||
require("./count-cmd");
|
|
||||||
Generated
+424
-208
@@ -5,13 +5,17 @@
|
|||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@discordjs/voice": "^0.7.5",
|
||||||
"deepl": "^1.0.12",
|
"deepl": "^1.0.12",
|
||||||
"discord.js": "github:iShibi/discord.js#feat-role-icon",
|
"discord.js": "^13.6.0",
|
||||||
|
"dotenv": "^16.0.0",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"fast-average-color-node": "^1.0.3",
|
"fast-average-color-node": "^1.0.3",
|
||||||
"kuroshiro": "^1.2.0",
|
"kuroshiro": "^1.2.0",
|
||||||
"kuroshiro-analyzer-kuromoji": "^1.1.0",
|
"kuroshiro-analyzer-kuromoji": "^1.1.0",
|
||||||
"node-fetch": "^2.6.1"
|
"libsodium-wrappers": "^0.7.9",
|
||||||
|
"node-fetch": "^2.6.1",
|
||||||
|
"vrchat": "^1.6.9"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/runtime": {
|
"node_modules/@babel/runtime": {
|
||||||
@@ -26,40 +30,53 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@discordjs/builders": {
|
"node_modules/@discordjs/builders": {
|
||||||
"version": "0.5.0",
|
"version": "0.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.11.0.tgz",
|
||||||
"integrity": "sha512-HP5y4Rqw68o61Qv4qM5tVmDbWi4mdTFftqIOGRo33SNPpLJ1Ga3KEIR2ibKofkmsoQhEpLmopD1AZDs3cKpHuw==",
|
"integrity": "sha512-ZTB8yJdJKrKlq44dpWkNUrAtEJEq0gqpb7ASdv4vmq6/mZal5kOv312hQ56I/vxwMre+VIkoHquNUAfnTbiYtg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sindresorhus/is": "^4.0.1",
|
"@sindresorhus/is": "^4.2.0",
|
||||||
"discord-api-types": "^0.22.0",
|
"discord-api-types": "^0.26.0",
|
||||||
"ow": "^0.27.0",
|
|
||||||
"ts-mixer": "^6.0.0",
|
"ts-mixer": "^6.0.0",
|
||||||
"tslib": "^2.3.0"
|
"tslib": "^2.3.1",
|
||||||
|
"zod": "^3.11.6"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.0.0",
|
"node": ">=16.0.0",
|
||||||
"npm": ">=7.0.0"
|
"npm": ">=7.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@discordjs/collection": {
|
"node_modules/@discordjs/collection": {
|
||||||
"version": "0.2.1",
|
"version": "0.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.4.0.tgz",
|
||||||
"integrity": "sha512-vhxqzzM8gkomw0TYRF3tgx7SwElzUlXT/Aa41O7mOcyN6wIJfj5JmDWaO5XGKsGSsNx7F3i5oIlrucCCWV1Nog==",
|
"integrity": "sha512-zmjq+l/rV35kE6zRrwe8BHqV78JvIh2ybJeZavBi5NySjWXqN3hmmAKg7kYMMXSeiWtSsMoZ/+MQi0DiQWy2lw==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.0.0"
|
"node": ">=16.0.0",
|
||||||
|
"npm": ">=7.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@discordjs/form-data": {
|
"node_modules/@discordjs/voice": {
|
||||||
"version": "3.0.1",
|
"version": "0.7.5",
|
||||||
"resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.7.5.tgz",
|
||||||
"integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==",
|
"integrity": "sha512-lUk+CmIXNKslT6DkC9IF9rpsqhzlTiedauUCPBzepjd4XWxwBZiyVIzR6QpbAirxkAwCoAbbje+3Ho71PGLEAw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"asynckit": "^0.4.0",
|
"@types/ws": "^8.2.0",
|
||||||
"combined-stream": "^1.0.8",
|
"discord-api-types": "^0.24.0",
|
||||||
"mime-types": "^2.1.12"
|
"prism-media": "^1.3.2",
|
||||||
|
"tiny-typed-emitter": "^2.1.0",
|
||||||
|
"tslib": "^2.3.1",
|
||||||
|
"ws": "^8.2.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 6"
|
"node": ">=16.0.0",
|
||||||
|
"npm": ">=7.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@discordjs/voice/node_modules/discord-api-types": {
|
||||||
|
"version": "0.24.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz",
|
||||||
|
"integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@mapbox/node-pre-gyp": {
|
"node_modules/@mapbox/node-pre-gyp": {
|
||||||
@@ -82,18 +99,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sapphire/async-queue": {
|
"node_modules/@sapphire/async-queue": {
|
||||||
"version": "1.1.4",
|
"version": "1.1.9",
|
||||||
"resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.9.tgz",
|
||||||
"integrity": "sha512-fFrlF/uWpGOX5djw5Mu2Hnnrunao75WGey0sP0J3jnhmrJ5TAPzHYOmytD5iN/+pMxS+f+u/gezqHa9tPhRHEA==",
|
"integrity": "sha512-CbXaGwwlEMq+l1TRu01FJCvySJ1CEFKFclHT48nIfNeZXaAAmmwwy7scUKmYHPUa3GhoMp6Qr1B3eAJux6XgOQ==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14",
|
"node": ">=v14.0.0",
|
||||||
"npm": ">=6"
|
"npm": ">=7.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sindresorhus/is": {
|
"node_modules/@sindresorhus/is": {
|
||||||
"version": "4.0.1",
|
"version": "4.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.1.tgz",
|
||||||
"integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==",
|
"integrity": "sha512-BrzrgtaqEre0qfvI8sMTaEvx+bayuhPmfe2rfeUGPPHYr/PLxCOqkOe4TQTDPb+qcqgNcsAtXV/Ew74mcDIE8w==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
},
|
},
|
||||||
@@ -106,10 +123,37 @@
|
|||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz",
|
||||||
"integrity": "sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw=="
|
"integrity": "sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw=="
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/node-fetch": {
|
||||||
|
"version": "2.5.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz",
|
||||||
|
"integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/node": "*",
|
||||||
|
"form-data": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/node-fetch/node_modules/form-data": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
|
||||||
|
"dependencies": {
|
||||||
|
"asynckit": "^0.4.0",
|
||||||
|
"combined-stream": "^1.0.8",
|
||||||
|
"mime-types": "^2.1.12"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/tough-cookie": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.1.tgz",
|
||||||
|
"integrity": "sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg=="
|
||||||
|
},
|
||||||
"node_modules/@types/ws": {
|
"node_modules/@types/ws": {
|
||||||
"version": "7.4.7",
|
"version": "8.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz",
|
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz",
|
||||||
"integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==",
|
"integrity": "sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
@@ -190,6 +234,23 @@
|
|||||||
"follow-redirects": "^1.14.0"
|
"follow-redirects": "^1.14.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/axios-cookiejar-support": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/axios-cookiejar-support/-/axios-cookiejar-support-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-IZJxnAJ99XxiLqNeMOqrPbfR7fRyIfaoSLdPUf4AMQEGkH8URs0ghJK/xtqBsD+KsSr3pKl4DEQjCn834pHMig==",
|
||||||
|
"dependencies": {
|
||||||
|
"is-redirect": "^1.0.0",
|
||||||
|
"pify": "^5.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 10.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@types/tough-cookie": ">=2.3.3",
|
||||||
|
"axios": ">=0.16.2",
|
||||||
|
"tough-cookie": ">=2.3.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/balanced-match": {
|
"node_modules/balanced-match": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||||
@@ -245,14 +306,6 @@
|
|||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/callsites": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/canvas": {
|
"node_modules/canvas": {
|
||||||
"version": "2.8.0",
|
"version": "2.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/canvas/-/canvas-2.8.0.tgz",
|
"resolved": "https://registry.npmjs.org/canvas/-/canvas-2.8.0.tgz",
|
||||||
@@ -415,44 +468,39 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/discord-api-types": {
|
"node_modules/discord-api-types": {
|
||||||
"version": "0.22.0",
|
"version": "0.26.1",
|
||||||
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.22.0.tgz",
|
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz",
|
||||||
"integrity": "sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg==",
|
"integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/discord.js": {
|
"node_modules/discord.js": {
|
||||||
"version": "13.2.0-dev",
|
"version": "13.6.0",
|
||||||
"resolved": "git+ssh://git@github.com/iShibi/discord.js.git#3782416c07a1e8f207657db1fc8fc973488b7c86",
|
"resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.6.0.tgz",
|
||||||
"license": "Apache-2.0",
|
"integrity": "sha512-tXNR8zgsEPxPBvGk3AQjJ9ljIIC6/LOPjzKwpwz8Y1Q2X66Vi3ZqFgRHYwnHKC0jC0F+l4LzxlhmOJsBZDNg9g==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@discordjs/builders": "^0.5.0",
|
"@discordjs/builders": "^0.11.0",
|
||||||
"@discordjs/collection": "^0.2.1",
|
"@discordjs/collection": "^0.4.0",
|
||||||
"@discordjs/form-data": "^3.0.1",
|
"@sapphire/async-queue": "^1.1.9",
|
||||||
"@sapphire/async-queue": "^1.1.4",
|
"@types/node-fetch": "^2.5.12",
|
||||||
"@types/ws": "^7.4.7",
|
"@types/ws": "^8.2.2",
|
||||||
"discord-api-types": "^0.22.0",
|
"discord-api-types": "^0.26.0",
|
||||||
|
"form-data": "^4.0.0",
|
||||||
"node-fetch": "^2.6.1",
|
"node-fetch": "^2.6.1",
|
||||||
"ws": "^7.5.1"
|
"ws": "^8.4.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=16.6.0",
|
"node": ">=16.6.0",
|
||||||
"npm": ">=7.0.0"
|
"npm": ">=7.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/dot-prop": {
|
"node_modules/dotenv": {
|
||||||
"version": "6.0.1",
|
"version": "16.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz",
|
||||||
"integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
|
"integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==",
|
||||||
"dependencies": {
|
|
||||||
"is-obj": "^2.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10"
|
"node": ">=12"
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/doublearray": {
|
"node_modules/doublearray": {
|
||||||
@@ -590,9 +638,9 @@
|
|||||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||||
},
|
},
|
||||||
"node_modules/follow-redirects": {
|
"node_modules/follow-redirects": {
|
||||||
"version": "1.14.3",
|
"version": "1.14.7",
|
||||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.3.tgz",
|
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz",
|
||||||
"integrity": "sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw==",
|
"integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "individual",
|
"type": "individual",
|
||||||
@@ -608,6 +656,19 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/form-data": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||||
|
"dependencies": {
|
||||||
|
"asynckit": "^0.4.0",
|
||||||
|
"combined-stream": "^1.0.8",
|
||||||
|
"mime-types": "^2.1.12"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/forwarded": {
|
"node_modules/forwarded": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
||||||
@@ -755,12 +816,12 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/is-obj": {
|
"node_modules/is-redirect": {
|
||||||
"version": "2.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
|
||||||
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
|
"integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/isarray": {
|
"node_modules/isarray": {
|
||||||
@@ -797,16 +858,24 @@
|
|||||||
"kuromoji": "^0.1.1"
|
"kuromoji": "^0.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/libsodium": {
|
||||||
|
"version": "0.7.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.9.tgz",
|
||||||
|
"integrity": "sha512-gfeADtR4D/CM0oRUviKBViMGXZDgnFdMKMzHsvBdqLBHd9ySi6EtYnmuhHVDDYgYpAO8eU8hEY+F8vIUAPh08A=="
|
||||||
|
},
|
||||||
|
"node_modules/libsodium-wrappers": {
|
||||||
|
"version": "0.7.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz",
|
||||||
|
"integrity": "sha512-9HaAeBGk1nKTRFRHkt7nzxqCvnkWTjn1pdjKgcUnZxj0FyOP4CnhgFhMdrFfgNsukijBGyBLpP2m2uKT1vuWhQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"libsodium": "^0.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/lodash": {
|
"node_modules/lodash": {
|
||||||
"version": "4.17.21",
|
"version": "4.17.21",
|
||||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||||
},
|
},
|
||||||
"node_modules/lodash.isequal": {
|
|
||||||
"version": "4.5.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
|
||||||
"integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
|
|
||||||
},
|
|
||||||
"node_modules/lru-cache": {
|
"node_modules/lru-cache": {
|
||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||||
@@ -1033,25 +1102,6 @@
|
|||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/ow": {
|
|
||||||
"version": "0.27.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/ow/-/ow-0.27.0.tgz",
|
|
||||||
"integrity": "sha512-SGnrGUbhn4VaUGdU0EJLMwZWSupPmF46hnTRII7aCLCrqixTAC5eKo8kI4/XXf1eaaI8YEVT+3FeGNJI9himAQ==",
|
|
||||||
"dependencies": {
|
|
||||||
"@sindresorhus/is": "^4.0.1",
|
|
||||||
"callsites": "^3.1.0",
|
|
||||||
"dot-prop": "^6.0.1",
|
|
||||||
"lodash.isequal": "^4.5.0",
|
|
||||||
"type-fest": "^1.2.1",
|
|
||||||
"vali-date": "^1.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=12"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/parseurl": {
|
"node_modules/parseurl": {
|
||||||
"version": "1.3.3",
|
"version": "1.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
|
||||||
@@ -1073,6 +1123,42 @@
|
|||||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||||
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
|
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
|
||||||
},
|
},
|
||||||
|
"node_modules/pify": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/prism-media": {
|
||||||
|
"version": "1.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.2.tgz",
|
||||||
|
"integrity": "sha512-L6UsGHcT6i4wrQhFF1aPK+MNYgjRqR2tUoIqEY+CG1NqVkMjPRKzS37j9f8GiYPlD6wG9ruBj+q5Ax+bH8Ik1g==",
|
||||||
|
"peerDependencies": {
|
||||||
|
"@discordjs/opus": "^0.5.0",
|
||||||
|
"ffmpeg-static": "^4.2.7 || ^3.0.0 || ^2.4.0",
|
||||||
|
"node-opus": "^0.3.3",
|
||||||
|
"opusscript": "^0.0.8"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@discordjs/opus": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"ffmpeg-static": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"node-opus": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"opusscript": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/process-nextick-args": {
|
"node_modules/process-nextick-args": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
||||||
@@ -1090,6 +1176,19 @@
|
|||||||
"node": ">= 0.10"
|
"node": ">= 0.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/psl": {
|
||||||
|
"version": "1.8.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
|
||||||
|
"integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
|
||||||
|
},
|
||||||
|
"node_modules/punycode": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/qs": {
|
"node_modules/qs": {
|
||||||
"version": "6.7.0",
|
"version": "6.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
|
||||||
@@ -1341,6 +1440,11 @@
|
|||||||
"node": ">= 10"
|
"node": ">= 10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/tiny-typed-emitter": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA=="
|
||||||
|
},
|
||||||
"node_modules/toidentifier": {
|
"node_modules/toidentifier": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
|
||||||
@@ -1349,6 +1453,19 @@
|
|||||||
"node": ">=0.6"
|
"node": ">=0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/tough-cookie": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==",
|
||||||
|
"dependencies": {
|
||||||
|
"psl": "^1.1.33",
|
||||||
|
"punycode": "^2.1.1",
|
||||||
|
"universalify": "^0.1.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ts-mixer": {
|
"node_modules/ts-mixer": {
|
||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz",
|
||||||
@@ -1359,17 +1476,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
||||||
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
|
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
|
||||||
},
|
},
|
||||||
"node_modules/type-fest": {
|
|
||||||
"version": "1.4.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
|
|
||||||
"integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/type-is": {
|
"node_modules/type-is": {
|
||||||
"version": "1.6.18",
|
"version": "1.6.18",
|
||||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
||||||
@@ -1382,6 +1488,14 @@
|
|||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/universalify": {
|
||||||
|
"version": "0.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
|
||||||
|
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/unpipe": {
|
"node_modules/unpipe": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||||
@@ -1403,14 +1517,6 @@
|
|||||||
"node": ">= 0.4.0"
|
"node": ">= 0.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vali-date": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/vary": {
|
"node_modules/vary": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
||||||
@@ -1419,6 +1525,17 @@
|
|||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/vrchat": {
|
||||||
|
"version": "1.6.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/vrchat/-/vrchat-1.6.9.tgz",
|
||||||
|
"integrity": "sha512-eV3EzHtObBGIzb5tEOP6vqeZsGIlMLXybO2CwpkSDvGra2ORIoh5hYnUq9JeMnAsmwF/xMpPHrb5yg5ZPDhAoA==",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/tough-cookie": "^4.0.1",
|
||||||
|
"axios": "^0.21.4",
|
||||||
|
"axios-cookiejar-support": "^1.0.1",
|
||||||
|
"tough-cookie": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/wide-align": {
|
"node_modules/wide-align": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
|
||||||
@@ -1433,11 +1550,11 @@
|
|||||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||||
},
|
},
|
||||||
"node_modules/ws": {
|
"node_modules/ws": {
|
||||||
"version": "7.5.2",
|
"version": "8.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/ws/-/ws-8.4.1.tgz",
|
||||||
"integrity": "sha512-lkF7AWRicoB9mAgjeKbGqVUekLnSNO4VjKVnuPHpQeOxZOErX6BPXwJk70nFslRCEEA8EVW7ZjKwXaP9N+1sKQ==",
|
"integrity": "sha512-6eqQ4yN2y2xv8b+BgbkUzPPyfo/PDl3VOWb06ZE0jIFYwuHMsMQN6F7o84yxJYCblfCRAxzpU59We4Rr4w0Luw==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8.3.0"
|
"node": ">=10.0.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"bufferutil": "^4.0.1",
|
"bufferutil": "^4.0.1",
|
||||||
@@ -1464,6 +1581,14 @@
|
|||||||
"engines": {
|
"engines": {
|
||||||
"node": "*"
|
"node": "*"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"node_modules/zod": {
|
||||||
|
"version": "3.11.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/zod/-/zod-3.11.6.tgz",
|
||||||
|
"integrity": "sha512-daZ80A81I3/9lIydI44motWe6n59kRBfNzTuS2bfzVh1nAXi667TOTWWtatxyG+fwgNUiagSj/CWZwRRbevJIg==",
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/colinhacks"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -1476,30 +1601,40 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@discordjs/builders": {
|
"@discordjs/builders": {
|
||||||
"version": "0.5.0",
|
"version": "0.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.11.0.tgz",
|
||||||
"integrity": "sha512-HP5y4Rqw68o61Qv4qM5tVmDbWi4mdTFftqIOGRo33SNPpLJ1Ga3KEIR2ibKofkmsoQhEpLmopD1AZDs3cKpHuw==",
|
"integrity": "sha512-ZTB8yJdJKrKlq44dpWkNUrAtEJEq0gqpb7ASdv4vmq6/mZal5kOv312hQ56I/vxwMre+VIkoHquNUAfnTbiYtg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@sindresorhus/is": "^4.0.1",
|
"@sindresorhus/is": "^4.2.0",
|
||||||
"discord-api-types": "^0.22.0",
|
"discord-api-types": "^0.26.0",
|
||||||
"ow": "^0.27.0",
|
|
||||||
"ts-mixer": "^6.0.0",
|
"ts-mixer": "^6.0.0",
|
||||||
"tslib": "^2.3.0"
|
"tslib": "^2.3.1",
|
||||||
|
"zod": "^3.11.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@discordjs/collection": {
|
"@discordjs/collection": {
|
||||||
"version": "0.2.1",
|
"version": "0.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.4.0.tgz",
|
||||||
"integrity": "sha512-vhxqzzM8gkomw0TYRF3tgx7SwElzUlXT/Aa41O7mOcyN6wIJfj5JmDWaO5XGKsGSsNx7F3i5oIlrucCCWV1Nog=="
|
"integrity": "sha512-zmjq+l/rV35kE6zRrwe8BHqV78JvIh2ybJeZavBi5NySjWXqN3hmmAKg7kYMMXSeiWtSsMoZ/+MQi0DiQWy2lw=="
|
||||||
},
|
},
|
||||||
"@discordjs/form-data": {
|
"@discordjs/voice": {
|
||||||
"version": "3.0.1",
|
"version": "0.7.5",
|
||||||
"resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.7.5.tgz",
|
||||||
"integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==",
|
"integrity": "sha512-lUk+CmIXNKslT6DkC9IF9rpsqhzlTiedauUCPBzepjd4XWxwBZiyVIzR6QpbAirxkAwCoAbbje+3Ho71PGLEAw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"asynckit": "^0.4.0",
|
"@types/ws": "^8.2.0",
|
||||||
"combined-stream": "^1.0.8",
|
"discord-api-types": "^0.24.0",
|
||||||
"mime-types": "^2.1.12"
|
"prism-media": "^1.3.2",
|
||||||
|
"tiny-typed-emitter": "^2.1.0",
|
||||||
|
"tslib": "^2.3.1",
|
||||||
|
"ws": "^8.2.3"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"discord-api-types": {
|
||||||
|
"version": "0.24.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz",
|
||||||
|
"integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A=="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@mapbox/node-pre-gyp": {
|
"@mapbox/node-pre-gyp": {
|
||||||
@@ -1519,24 +1654,50 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@sapphire/async-queue": {
|
"@sapphire/async-queue": {
|
||||||
"version": "1.1.4",
|
"version": "1.1.9",
|
||||||
"resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.9.tgz",
|
||||||
"integrity": "sha512-fFrlF/uWpGOX5djw5Mu2Hnnrunao75WGey0sP0J3jnhmrJ5TAPzHYOmytD5iN/+pMxS+f+u/gezqHa9tPhRHEA=="
|
"integrity": "sha512-CbXaGwwlEMq+l1TRu01FJCvySJ1CEFKFclHT48nIfNeZXaAAmmwwy7scUKmYHPUa3GhoMp6Qr1B3eAJux6XgOQ=="
|
||||||
},
|
},
|
||||||
"@sindresorhus/is": {
|
"@sindresorhus/is": {
|
||||||
"version": "4.0.1",
|
"version": "4.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.1.tgz",
|
||||||
"integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g=="
|
"integrity": "sha512-BrzrgtaqEre0qfvI8sMTaEvx+bayuhPmfe2rfeUGPPHYr/PLxCOqkOe4TQTDPb+qcqgNcsAtXV/Ew74mcDIE8w=="
|
||||||
},
|
},
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "16.6.1",
|
"version": "16.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz",
|
||||||
"integrity": "sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw=="
|
"integrity": "sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw=="
|
||||||
},
|
},
|
||||||
|
"@types/node-fetch": {
|
||||||
|
"version": "2.5.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz",
|
||||||
|
"integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==",
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "*",
|
||||||
|
"form-data": "^3.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"form-data": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
|
||||||
|
"requires": {
|
||||||
|
"asynckit": "^0.4.0",
|
||||||
|
"combined-stream": "^1.0.8",
|
||||||
|
"mime-types": "^2.1.12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@types/tough-cookie": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.1.tgz",
|
||||||
|
"integrity": "sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg=="
|
||||||
|
},
|
||||||
"@types/ws": {
|
"@types/ws": {
|
||||||
"version": "7.4.7",
|
"version": "8.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz",
|
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz",
|
||||||
"integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==",
|
"integrity": "sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
@@ -1608,6 +1769,15 @@
|
|||||||
"follow-redirects": "^1.14.0"
|
"follow-redirects": "^1.14.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"axios-cookiejar-support": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/axios-cookiejar-support/-/axios-cookiejar-support-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-IZJxnAJ99XxiLqNeMOqrPbfR7fRyIfaoSLdPUf4AMQEGkH8URs0ghJK/xtqBsD+KsSr3pKl4DEQjCn834pHMig==",
|
||||||
|
"requires": {
|
||||||
|
"is-redirect": "^1.0.0",
|
||||||
|
"pify": "^5.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"balanced-match": {
|
"balanced-match": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||||
@@ -1659,11 +1829,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
|
||||||
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
|
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
|
||||||
},
|
},
|
||||||
"callsites": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
|
|
||||||
},
|
|
||||||
"canvas": {
|
"canvas": {
|
||||||
"version": "2.8.0",
|
"version": "2.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/canvas/-/canvas-2.8.0.tgz",
|
"resolved": "https://registry.npmjs.org/canvas/-/canvas-2.8.0.tgz",
|
||||||
@@ -1781,31 +1946,30 @@
|
|||||||
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
|
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
|
||||||
},
|
},
|
||||||
"discord-api-types": {
|
"discord-api-types": {
|
||||||
"version": "0.22.0",
|
"version": "0.26.1",
|
||||||
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.22.0.tgz",
|
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz",
|
||||||
"integrity": "sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg=="
|
"integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ=="
|
||||||
},
|
},
|
||||||
"discord.js": {
|
"discord.js": {
|
||||||
"version": "git+ssh://git@github.com/iShibi/discord.js.git#3782416c07a1e8f207657db1fc8fc973488b7c86",
|
"version": "13.6.0",
|
||||||
"from": "discord.js@git://github.com/iShibi/discord.js#feat-role-icon",
|
"resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.6.0.tgz",
|
||||||
|
"integrity": "sha512-tXNR8zgsEPxPBvGk3AQjJ9ljIIC6/LOPjzKwpwz8Y1Q2X66Vi3ZqFgRHYwnHKC0jC0F+l4LzxlhmOJsBZDNg9g==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@discordjs/builders": "^0.5.0",
|
"@discordjs/builders": "^0.11.0",
|
||||||
"@discordjs/collection": "^0.2.1",
|
"@discordjs/collection": "^0.4.0",
|
||||||
"@discordjs/form-data": "^3.0.1",
|
"@sapphire/async-queue": "^1.1.9",
|
||||||
"@sapphire/async-queue": "^1.1.4",
|
"@types/node-fetch": "^2.5.12",
|
||||||
"@types/ws": "^7.4.7",
|
"@types/ws": "^8.2.2",
|
||||||
"discord-api-types": "^0.22.0",
|
"discord-api-types": "^0.26.0",
|
||||||
|
"form-data": "^4.0.0",
|
||||||
"node-fetch": "^2.6.1",
|
"node-fetch": "^2.6.1",
|
||||||
"ws": "^7.5.1"
|
"ws": "^8.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dot-prop": {
|
"dotenv": {
|
||||||
"version": "6.0.1",
|
"version": "16.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz",
|
||||||
"integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
|
"integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q=="
|
||||||
"requires": {
|
|
||||||
"is-obj": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"doublearray": {
|
"doublearray": {
|
||||||
"version": "0.0.2",
|
"version": "0.0.2",
|
||||||
@@ -1928,9 +2092,19 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"follow-redirects": {
|
"follow-redirects": {
|
||||||
"version": "1.14.3",
|
"version": "1.14.7",
|
||||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.3.tgz",
|
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz",
|
||||||
"integrity": "sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw=="
|
"integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ=="
|
||||||
|
},
|
||||||
|
"form-data": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||||
|
"requires": {
|
||||||
|
"asynckit": "^0.4.0",
|
||||||
|
"combined-stream": "^1.0.8",
|
||||||
|
"mime-types": "^2.1.12"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"forwarded": {
|
"forwarded": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
@@ -2051,10 +2225,10 @@
|
|||||||
"number-is-nan": "^1.0.0"
|
"number-is-nan": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"is-obj": {
|
"is-redirect": {
|
||||||
"version": "2.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
|
||||||
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
|
"integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ="
|
||||||
},
|
},
|
||||||
"isarray": {
|
"isarray": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
@@ -2087,16 +2261,24 @@
|
|||||||
"kuromoji": "^0.1.1"
|
"kuromoji": "^0.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"libsodium": {
|
||||||
|
"version": "0.7.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.9.tgz",
|
||||||
|
"integrity": "sha512-gfeADtR4D/CM0oRUviKBViMGXZDgnFdMKMzHsvBdqLBHd9ySi6EtYnmuhHVDDYgYpAO8eU8hEY+F8vIUAPh08A=="
|
||||||
|
},
|
||||||
|
"libsodium-wrappers": {
|
||||||
|
"version": "0.7.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz",
|
||||||
|
"integrity": "sha512-9HaAeBGk1nKTRFRHkt7nzxqCvnkWTjn1pdjKgcUnZxj0FyOP4CnhgFhMdrFfgNsukijBGyBLpP2m2uKT1vuWhQ==",
|
||||||
|
"requires": {
|
||||||
|
"libsodium": "^0.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"lodash": {
|
"lodash": {
|
||||||
"version": "4.17.21",
|
"version": "4.17.21",
|
||||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||||
},
|
},
|
||||||
"lodash.isequal": {
|
|
||||||
"version": "4.5.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
|
||||||
"integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
|
|
||||||
},
|
|
||||||
"lru-cache": {
|
"lru-cache": {
|
||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||||
@@ -2253,19 +2435,6 @@
|
|||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ow": {
|
|
||||||
"version": "0.27.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/ow/-/ow-0.27.0.tgz",
|
|
||||||
"integrity": "sha512-SGnrGUbhn4VaUGdU0EJLMwZWSupPmF46hnTRII7aCLCrqixTAC5eKo8kI4/XXf1eaaI8YEVT+3FeGNJI9himAQ==",
|
|
||||||
"requires": {
|
|
||||||
"@sindresorhus/is": "^4.0.1",
|
|
||||||
"callsites": "^3.1.0",
|
|
||||||
"dot-prop": "^6.0.1",
|
|
||||||
"lodash.isequal": "^4.5.0",
|
|
||||||
"type-fest": "^1.2.1",
|
|
||||||
"vali-date": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"parseurl": {
|
"parseurl": {
|
||||||
"version": "1.3.3",
|
"version": "1.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
|
||||||
@@ -2281,6 +2450,17 @@
|
|||||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||||
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
|
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
|
||||||
},
|
},
|
||||||
|
"pify": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA=="
|
||||||
|
},
|
||||||
|
"prism-media": {
|
||||||
|
"version": "1.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.2.tgz",
|
||||||
|
"integrity": "sha512-L6UsGHcT6i4wrQhFF1aPK+MNYgjRqR2tUoIqEY+CG1NqVkMjPRKzS37j9f8GiYPlD6wG9ruBj+q5Ax+bH8Ik1g==",
|
||||||
|
"requires": {}
|
||||||
|
},
|
||||||
"process-nextick-args": {
|
"process-nextick-args": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
||||||
@@ -2295,6 +2475,16 @@
|
|||||||
"ipaddr.js": "1.9.1"
|
"ipaddr.js": "1.9.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"psl": {
|
||||||
|
"version": "1.8.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
|
||||||
|
"integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
|
||||||
|
},
|
||||||
|
"punycode": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
|
||||||
|
},
|
||||||
"qs": {
|
"qs": {
|
||||||
"version": "6.7.0",
|
"version": "6.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
|
||||||
@@ -2493,11 +2683,26 @@
|
|||||||
"yallist": "^4.0.0"
|
"yallist": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"tiny-typed-emitter": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA=="
|
||||||
|
},
|
||||||
"toidentifier": {
|
"toidentifier": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
|
||||||
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
|
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
|
||||||
},
|
},
|
||||||
|
"tough-cookie": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==",
|
||||||
|
"requires": {
|
||||||
|
"psl": "^1.1.33",
|
||||||
|
"punycode": "^2.1.1",
|
||||||
|
"universalify": "^0.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"ts-mixer": {
|
"ts-mixer": {
|
||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz",
|
||||||
@@ -2508,11 +2713,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
||||||
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
|
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
|
||||||
},
|
},
|
||||||
"type-fest": {
|
|
||||||
"version": "1.4.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
|
|
||||||
"integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA=="
|
|
||||||
},
|
|
||||||
"type-is": {
|
"type-is": {
|
||||||
"version": "1.6.18",
|
"version": "1.6.18",
|
||||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
||||||
@@ -2522,6 +2722,11 @@
|
|||||||
"mime-types": "~2.1.24"
|
"mime-types": "~2.1.24"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"universalify": {
|
||||||
|
"version": "0.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
|
||||||
|
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
|
||||||
|
},
|
||||||
"unpipe": {
|
"unpipe": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||||
@@ -2537,16 +2742,22 @@
|
|||||||
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
|
||||||
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
|
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
|
||||||
},
|
},
|
||||||
"vali-date": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY="
|
|
||||||
},
|
|
||||||
"vary": {
|
"vary": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
||||||
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
|
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
|
||||||
},
|
},
|
||||||
|
"vrchat": {
|
||||||
|
"version": "1.6.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/vrchat/-/vrchat-1.6.9.tgz",
|
||||||
|
"integrity": "sha512-eV3EzHtObBGIzb5tEOP6vqeZsGIlMLXybO2CwpkSDvGra2ORIoh5hYnUq9JeMnAsmwF/xMpPHrb5yg5ZPDhAoA==",
|
||||||
|
"requires": {
|
||||||
|
"@types/tough-cookie": "^4.0.1",
|
||||||
|
"axios": "^0.21.4",
|
||||||
|
"axios-cookiejar-support": "^1.0.1",
|
||||||
|
"tough-cookie": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"wide-align": {
|
"wide-align": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
|
||||||
@@ -2561,9 +2772,9 @@
|
|||||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||||
},
|
},
|
||||||
"ws": {
|
"ws": {
|
||||||
"version": "7.5.2",
|
"version": "8.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/ws/-/ws-8.4.1.tgz",
|
||||||
"integrity": "sha512-lkF7AWRicoB9mAgjeKbGqVUekLnSNO4VjKVnuPHpQeOxZOErX6BPXwJk70nFslRCEEA8EVW7ZjKwXaP9N+1sKQ==",
|
"integrity": "sha512-6eqQ4yN2y2xv8b+BgbkUzPPyfo/PDl3VOWb06ZE0jIFYwuHMsMQN6F7o84yxJYCblfCRAxzpU59We4Rr4w0Luw==",
|
||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
"yallist": {
|
"yallist": {
|
||||||
@@ -2575,6 +2786,11 @@
|
|||||||
"version": "0.3.1",
|
"version": "0.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/zlibjs/-/zlibjs-0.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/zlibjs/-/zlibjs-0.3.1.tgz",
|
||||||
"integrity": "sha1-UBl+2yihxCymWcyLTmqd3W1ERVQ="
|
"integrity": "sha1-UBl+2yihxCymWcyLTmqd3W1ERVQ="
|
||||||
|
},
|
||||||
|
"zod": {
|
||||||
|
"version": "3.11.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/zod/-/zod-3.11.6.tgz",
|
||||||
|
"integrity": "sha512-daZ80A81I3/9lIydI44motWe6n59kRBfNzTuS2bfzVh1nAXi667TOTWWtatxyG+fwgNUiagSj/CWZwRRbevJIg=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-2
@@ -1,11 +1,15 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@discordjs/voice": "^0.7.5",
|
||||||
"deepl": "^1.0.12",
|
"deepl": "^1.0.12",
|
||||||
"discord.js": "github:iShibi/discord.js#feat-role-icon",
|
"discord.js": "^13.6.0",
|
||||||
|
"dotenv": "^16.0.0",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"fast-average-color-node": "^1.0.3",
|
"fast-average-color-node": "^1.0.3",
|
||||||
"kuroshiro": "^1.2.0",
|
"kuroshiro": "^1.2.0",
|
||||||
"kuroshiro-analyzer-kuromoji": "^1.1.0",
|
"kuroshiro-analyzer-kuromoji": "^1.1.0",
|
||||||
"node-fetch": "^2.6.1"
|
"libsodium-wrappers": "^0.7.9",
|
||||||
|
"node-fetch": "^2.6.1",
|
||||||
|
"vrchat": "^1.6.9"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-5
@@ -8,7 +8,7 @@ var app = require("./www");
|
|||||||
var commands = require("./commands");
|
var commands = require("./commands");
|
||||||
|
|
||||||
|
|
||||||
commands.push({
|
/*commands.push({
|
||||||
type: "MESSAGE",
|
type: "MESSAGE",
|
||||||
name: "Archive",
|
name: "Archive",
|
||||||
exec: async i => {
|
exec: async i => {
|
||||||
@@ -19,17 +19,17 @@ commands.push({
|
|||||||
ephemeral: true
|
ephemeral: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});*/
|
||||||
|
|
||||||
|
|
||||||
client.on("messageReactionAdd", async (reaction, user) => {
|
client.on("messageReactionAdd", async (reaction, user) => {
|
||||||
if (reaction.emoji.name == '📍' || reaction.emoji.name == '📌') {
|
if (reaction.emoji.name == '📍' || reaction.emoji.name == '📌') {
|
||||||
if (!reaction.message.guild) return;
|
if (!reaction.message.guild) return;
|
||||||
if (reaction.message.channel.id == config.archive_channel) return;
|
if (reaction.message.channel.id == config.archive_channel) return;
|
||||||
if (reaction.message['has been "pinned"'] || reaction.count > 1) return;
|
if (reaction.message['has been pinned'] || reaction.count > 1) return;
|
||||||
reaction.message['has been "pinned"'] = true;
|
reaction.message['has been pinned'] = true;
|
||||||
|
|
||||||
if (reaction.message.channel.id == config.porn_channel) {
|
/*if (reaction.message.channel.id == config.porn_channel)*/ {
|
||||||
try {
|
try {
|
||||||
await reaction.message.pin();
|
await reaction.message.pin();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
+1
-1
@@ -67,7 +67,7 @@ async function embedPixiv(/*message*/ channel, /*array of*/ links, send = channe
|
|||||||
}
|
}
|
||||||
} else await fallback();
|
} else await fallback();
|
||||||
function fallback() {
|
function fallback() {
|
||||||
let urls = images.map(image => image.url.replace("i.pximg.net", "pximg-proxy.cf"));
|
let urls = images.map(image => image.url.replace("i.pximg.net", "px.owo39.me"));
|
||||||
if (illust.xRestrict && !channel.nsfw) urls = urls.map(url => `||${url} ||`);
|
if (illust.xRestrict && !channel.nsfw) urls = urls.map(url => `||${url} ||`);
|
||||||
urls = urls.join('\n');
|
urls = urls.join('\n');
|
||||||
if (urls.length > 2000) {
|
if (urls.length > 2000) {
|
||||||
|
|||||||
+107
-19
@@ -6,6 +6,37 @@ var KuromojiAnalyzer = require("kuroshiro-analyzer-kuromoji");
|
|||||||
var kuroshiro = new Kuroshiro();
|
var kuroshiro = new Kuroshiro();
|
||||||
kuroshiro.init(new KuromojiAnalyzer());
|
kuroshiro.init(new KuromojiAnalyzer());
|
||||||
|
|
||||||
|
var lang2flag = {
|
||||||
|
BG: '🇧🇬',
|
||||||
|
CS: '🇨🇿',
|
||||||
|
DA: '🇩🇰',
|
||||||
|
DE: '🇩🇪',
|
||||||
|
EL: '🇬🇷',
|
||||||
|
EN: '🇬🇧',
|
||||||
|
'EN-GB': '🇬🇧',
|
||||||
|
'EN-US': '🇺🇸',
|
||||||
|
ES: '🇪🇸',
|
||||||
|
ET: '🇪🇪',
|
||||||
|
FI: '🇫🇮',
|
||||||
|
FR: '🇫🇷',
|
||||||
|
HU: '🇭🇺',
|
||||||
|
IT: '🇮🇹',
|
||||||
|
JA: '🇯🇵',
|
||||||
|
LT: '🇱🇹',
|
||||||
|
LV: '🇱🇻',
|
||||||
|
NL: '🇳🇱',
|
||||||
|
PL: '🇵🇱',
|
||||||
|
PT: '🇵🇹',
|
||||||
|
'PT-PT': '🇵🇹',
|
||||||
|
'PT-BR': '🇧🇷',
|
||||||
|
RO: '🇷🇴',
|
||||||
|
RU: '🇷🇺',
|
||||||
|
SK: '🇸🇰',
|
||||||
|
SL: '🇸🇮',
|
||||||
|
SV: '🇸🇻',
|
||||||
|
ZH: '🇨🇳'
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
commands.push({
|
commands.push({
|
||||||
name: "toen",
|
name: "toen",
|
||||||
@@ -15,7 +46,7 @@ commands.push({
|
|||||||
{
|
{
|
||||||
type: "STRING",
|
type: "STRING",
|
||||||
name: "text",
|
name: "text",
|
||||||
description: "Text",
|
description: "Text to translate",
|
||||||
required: true
|
required: true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -29,16 +60,65 @@ commands.push({
|
|||||||
{
|
{
|
||||||
type: "STRING",
|
type: "STRING",
|
||||||
name: "text",
|
name: "text",
|
||||||
description: "Text",
|
description: "Text to translate",
|
||||||
required: true
|
required: true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
exec: i => t(i, "JA")
|
exec: i => t(i, "JA")
|
||||||
});
|
});
|
||||||
|
commands.push({
|
||||||
|
name: "tolang",
|
||||||
|
description: "Translate text to any language",
|
||||||
|
global: true,
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
type: "STRING",
|
||||||
|
name: "lang",
|
||||||
|
description: "Language to translate to",
|
||||||
|
required: true,
|
||||||
|
choices: [
|
||||||
|
{ name: 'Bulgarian', value: 'BG' },
|
||||||
|
{ name: 'Czech', value: 'CS' },
|
||||||
|
{ name: 'Danish', value: 'DA' },
|
||||||
|
{ name: 'German', value: 'DE' },
|
||||||
|
{ name: 'Greek', value: 'EL' },
|
||||||
|
{ name: 'English (British)', value: 'EN-GB' },
|
||||||
|
{ name: 'English (American)', value: 'EN-US' },
|
||||||
|
{ name: 'Spanish', value: 'ES' },
|
||||||
|
{ name: 'Estonian', value: 'ET' },
|
||||||
|
{ name: 'Finnish', value: 'FI' },
|
||||||
|
{ name: 'French', value: 'FR' },
|
||||||
|
{ name: 'Hungarian', value: 'HU' },
|
||||||
|
{ name: 'Italian', value: 'IT' },
|
||||||
|
{ name: 'Japanese', value: 'JA' },
|
||||||
|
{ name: 'Lithuanian', value: 'LT' },
|
||||||
|
{ name: 'Latvian', value: 'LV' },
|
||||||
|
{ name: 'Dutch', value: 'NL' },
|
||||||
|
{ name: 'Polish', value: 'PL' },
|
||||||
|
// { name: 'Portuguese (all Portuguese varieties excluding Brazilian Portuguese)', value: 'PT-PT' },
|
||||||
|
{ name: 'Portuguese (Brazilian)', value: 'PT-BR' },
|
||||||
|
{ name: 'Romanian', value: 'RO' },
|
||||||
|
{ name: 'Russian', value: 'RU' },
|
||||||
|
{ name: 'Slovak', value: 'SK' },
|
||||||
|
{ name: 'Slovenian', value: 'SL' },
|
||||||
|
{ name: 'Swedish', value: 'SV' },
|
||||||
|
{ name: 'Chinese', value: 'ZH' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "STRING",
|
||||||
|
name: "text",
|
||||||
|
description: "Text to translate",
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
exec: i => t(i, i.options.getString("lang"))
|
||||||
|
});
|
||||||
|
|
||||||
async function t(i, target_lang) {
|
async function t(i, target_lang) {
|
||||||
var text = i.options.getString("text");
|
var text = i.options.getString("text");
|
||||||
await i.deferReply();
|
await i.deferReply();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var translation = (await deepl({
|
var translation = (await deepl({
|
||||||
text,
|
text,
|
||||||
@@ -49,18 +129,24 @@ async function t(i, target_lang) {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
return void await i.editReply(error.message);
|
return void await i.editReply(error.message);
|
||||||
}
|
}
|
||||||
if (translation.detected_source_language == "JA") {
|
|
||||||
try {
|
if (translation.detected_source_language == "JA") try {
|
||||||
var input_romaji = await kuroshiro.convert(text, {to: "romaji", mode: "spaced"});
|
var input_romaji = await kuroshiro.convert(text, {to: "romaji", mode: "spaced"});
|
||||||
} catch (error) {}
|
} catch (error) {}
|
||||||
}
|
if (target_lang == "JA") try {
|
||||||
if (target_lang == "JA") {
|
var output_romaji = await kuroshiro.convert(translation.text, {to: "romaji", mode: "spaced"});
|
||||||
try {
|
} catch (error) {}
|
||||||
var output_romaji = await kuroshiro.convert(translation.text, {to: "romaji", mode: "spaced"});
|
|
||||||
} catch (error) {}
|
let input_flag = lang2flag[translation.detected_source_language] || `[${translation.detected_source_language}]`;
|
||||||
}
|
let output_flag = lang2flag[target_lang] || `[${target_lang}]`;
|
||||||
let msg = `${text}${input_romaji ? `\n${input_romaji}` : ''}\n${translation.text}${output_romaji ? `\n${output_romaji}` : ''}`;
|
|
||||||
|
let msg = input_flag + ' ' + text;
|
||||||
|
if (input_romaji) msg += '\n' + input_flag + ' ' + input_romaji;
|
||||||
|
msg += '\n' + output_flag + ' ' + translation.text;
|
||||||
|
if (output_romaji) msg += '\n' + output_flag + ' ' + output_romaji;
|
||||||
|
|
||||||
await i.editReply(msg);
|
await i.editReply(msg);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var reverse_translation = (await deepl({
|
var reverse_translation = (await deepl({
|
||||||
text: translation.text,
|
text: translation.text,
|
||||||
@@ -68,13 +154,15 @@ async function t(i, target_lang) {
|
|||||||
free_api: true,
|
free_api: true,
|
||||||
auth_key: config.deepl_auth_key
|
auth_key: config.deepl_auth_key
|
||||||
})).data.translations[0];
|
})).data.translations[0];
|
||||||
if (text.toLowerCase() != reverse_translation.text.toLowerCase()){
|
if (normalize(text) != normalize(reverse_translation.text)){
|
||||||
if (translation.detected_source_language == "JA") {
|
if (translation.detected_source_language == "JA") try {
|
||||||
try {
|
var reverse_romaji = await kuroshiro.convert(reverse_translation.text, {to: "romaji", mode: "spaced"});
|
||||||
var reverse_romaji = await kuroshiro.convert(reverse_translation.text, {to: "romaji", mode: "spaced"});
|
} catch (error) {}
|
||||||
} catch (error) {}
|
|
||||||
}
|
|
||||||
await i.editReply(`${msg}\n🔁 ${reverse_translation.text}${reverse_romaji ? `\n🔁 ${reverse_romaji}` : ''}`);
|
await i.editReply(`${msg}\n🔁 ${reverse_translation.text}${reverse_romaji ? `\n🔁 ${reverse_romaji}` : ''}`);
|
||||||
}
|
}
|
||||||
} catch(error) {}
|
} catch(error) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function normalize(text) {
|
||||||
|
return text.toLowerCase()//.split('').filter(x => x.match(/[a-z0-9 ]/)).join('');
|
||||||
|
}
|
||||||
@@ -0,0 +1,98 @@
|
|||||||
|
var vrchat = require("vrchat");
|
||||||
|
var client = require("./client");
|
||||||
|
var config = require("./config");
|
||||||
|
var fs = require("fs");
|
||||||
|
|
||||||
|
var configuration = new vrchat.Configuration(config.vrchat_configuration);
|
||||||
|
|
||||||
|
var authenticationApi = new vrchat.AuthenticationApi(configuration);
|
||||||
|
authenticationApi.getCurrentUser().then(console.log);
|
||||||
|
|
||||||
|
var usersApi = new vrchat.UsersApi(configuration);
|
||||||
|
var worldsApi = new vrchat.WorldsApi(configuration);
|
||||||
|
|
||||||
|
var status2icon = {
|
||||||
|
"join me": '🔵',
|
||||||
|
"active": '🟢',
|
||||||
|
"ask me": '🟠',
|
||||||
|
"busy": '🔴',
|
||||||
|
"offline": '⚫'
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
var vrcul = JSON.parse(fs.readFileSync("data/vrcul.json"), "utf8");
|
||||||
|
} catch(error) {
|
||||||
|
var vrcul = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
async function updateUserStatuses() {
|
||||||
|
for (let x of vrcul) {
|
||||||
|
try {
|
||||||
|
|
||||||
|
let user = (await usersApi.getUser(x.userId)).data;
|
||||||
|
let status_icon = user.state == "online" ? status2icon[user.status] : '⚫';
|
||||||
|
let nn = `${status_icon} ${user.displayName}`;
|
||||||
|
|
||||||
|
var channel = client.channels.resolve(x.channel);
|
||||||
|
if (!channel) {
|
||||||
|
channel = await client.channels.resolve(config.vrchat_status_category).createChannel(nn, {type: "GUILD_VOICE"});
|
||||||
|
x.channel = channel.id;
|
||||||
|
fs.writeFileSync("data/vrcul.json", JSON.stringify(vrcul));
|
||||||
|
} else if (nn != channel.name) {
|
||||||
|
await channel.setName(nn);
|
||||||
|
}
|
||||||
|
|
||||||
|
continue;
|
||||||
|
|
||||||
|
let belowChannel = client.channels.resolve(config.vrchat_status_category).children.find(x => x.position == channel.position + 1);
|
||||||
|
if (user.worldId && user.worldId != "offline") {
|
||||||
|
let bcn = `┗ ${await getWorldNameForId(user.worldId)}`;
|
||||||
|
if (belowChannel && belowChannel.name.startsWith('┗') && belowChannel.name != bcn) { //todo debug
|
||||||
|
await belowChannel.setName(bcn);
|
||||||
|
} else {
|
||||||
|
let ch = await client.channels.resolve(config.vrchat_status_category).createChannel(`┗ ${await getWorldNameForId(user.worldId)}`, {type: "GUILD_VOICE", /*position: belowChannel.position*/});
|
||||||
|
// position option is erratic
|
||||||
|
await ch.setPosition(channel.position + 1);
|
||||||
|
}
|
||||||
|
} else if (belowChannel?.name.startsWith('┗')) {
|
||||||
|
await belowChannel.delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.error("vrcus", error.stack);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports.interval = setInterval(updateUserStatuses, 1000*60*5);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
client.on("interactionCreate", async i => {
|
||||||
|
if (i.commandName == "addvru") {
|
||||||
|
try {
|
||||||
|
await i.deferReply();
|
||||||
|
let u = i.options.getString("user");
|
||||||
|
let user = (await usersApi[u.startsWith("usr_") ? 'getUser' : 'getUserByName'](u)).data;
|
||||||
|
let status_icon = user.state == "online" ? status2icon[user.status] : '⚫';
|
||||||
|
let nn = `${status_icon} ${user.displayName}`;
|
||||||
|
let channel = await client.channels.resolve(config.vrchat_status_category).createChannel(nn, {type: "GUILD_VOICE"});
|
||||||
|
vrcul.push({channel: channel.id, userId: user.id});
|
||||||
|
fs.writeFileSync("data/vrcul.json", JSON.stringify(vrcul));
|
||||||
|
await i.editReply(channel.toString());
|
||||||
|
} catch (error) {
|
||||||
|
i.reply(error.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var worldnamecache = {};
|
||||||
|
async function getWorldNameForId(worldId) {
|
||||||
|
if (worldId == "private") return "Private World";
|
||||||
|
return worldnamecache[worldId] = worldnamecache[worldId] || (await worldsApi.getWorld(worldId)).data.name;
|
||||||
|
}
|
||||||
+1
-1
@@ -5,7 +5,7 @@ client.once("ready", () => {
|
|||||||
(function clock() {
|
(function clock() {
|
||||||
var d = new Date();
|
var d = new Date();
|
||||||
for (let x of config.world_clock) {
|
for (let x of config.world_clock) {
|
||||||
let t = Intl.DateTimeFormat("en", {
|
let t = x.flag + ' ' + Intl.DateTimeFormat("en", {
|
||||||
timeZone: x.timezone,
|
timeZone: x.timezone,
|
||||||
hour: 'numeric',
|
hour: 'numeric',
|
||||||
//minute: 'numeric',
|
//minute: 'numeric',
|
||||||
|
|||||||
Reference in New Issue
Block a user