Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1316460838 |
@@ -1,47 +1,6 @@
|
|||||||
var vrchat = require("vrchat");
|
|
||||||
var client = require("./client");
|
|
||||||
var config = require("./config");
|
|
||||||
var commands = require("./commands");
|
var commands = require("./commands");
|
||||||
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 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 {channel, userId} of vrcul) {
|
|
||||||
try {
|
|
||||||
channel = client.channels.resolve(channel);
|
|
||||||
let user = (await usersApi.getUser(userId)).data;
|
|
||||||
let status_icon = user.state == "online" ? status2icon(user.status) : '⚫';
|
|
||||||
let nn = `${status_icon} ${user.displayName}`;
|
|
||||||
if (nn != channel.name)
|
|
||||||
await channel.setName(nn);
|
|
||||||
} catch (error) {
|
|
||||||
console.error("vrcus", error.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports.interval = setInterval(updateUserStatuses, 1000*60*5);
|
|
||||||
|
|
||||||
commands.push({
|
commands.push({
|
||||||
name: "addvru",
|
name: "addvru",
|
||||||
description: "Add VRChat user to status monitor",
|
description: "Add VRChat user to status monitor",
|
||||||
@@ -52,20 +11,5 @@ commands.push({
|
|||||||
type: "STRING",
|
type: "STRING",
|
||||||
required: true
|
required: true
|
||||||
}
|
}
|
||||||
],
|
]
|
||||||
exec: async i => {
|
|
||||||
try {
|
|
||||||
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);
|
|
||||||
vrcul.push({channel: channel.id, userId: user.id});
|
|
||||||
fs.writeFileSync("data/vrcul.json", JSON.stringify(vrcul));
|
|
||||||
await i.reply(channel.toString());
|
|
||||||
} catch (error) {
|
|
||||||
i.reply(error.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user