From 29533d8affeeb3c6fe8e506ca853b329b93c85b3 Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 4 Feb 2024 17:01:17 -0300 Subject: [PATCH] adding a cmd --- src/channel/Channel.ts | 16 ++++++++++++++++ src/util/readline/commands.ts | 32 ++++++++++++++++++++++++++++++-- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/src/channel/Channel.ts b/src/channel/Channel.ts index 7b44eba..8a53856 100644 --- a/src/channel/Channel.ts +++ b/src/channel/Channel.ts @@ -247,6 +247,22 @@ export class Channel extends EventEmitter { return this.settings[setting]; } + /** + * Updapte a User. + * @param id Socket that is getting + * @returns undefined + */ + public updateUser(id: string): void { + for (const socket of socketsBySocketID.values()) { + if(this.hasUser(id)) { + if (socket.getParticipantID() == id) { + socket.userset(socket.getParticipant()?.name, socket.getParticipant()?.color, socket.getParticipant()?.rank == "admin") + } + } + } + } + + /** * Make a socket join this channel * @param socket Socket that is joining diff --git a/src/util/readline/commands.ts b/src/util/readline/commands.ts index 52dd4c7..2871cc6 100644 --- a/src/util/readline/commands.ts +++ b/src/util/readline/commands.ts @@ -1,7 +1,7 @@ import { create } from "domain"; import { ChannelList } from "../../channel/ChannelList"; import { prisma } from "../../data/prisma"; -import { deleteUser, getUsers, createUser } from "../../data/user"; +import { deleteUser, getUsers, createUser, updateUser } from "../../data/user"; import { config } from "../../ws/usersConfig"; import Command from "./Command"; @@ -40,6 +40,34 @@ Command.addCommand( }) ); + +Command.addCommand( + new Command(["set", "userset"], "set ", async msg => { + if(msg.args.length !> 4) return "set <_id> "; + var set = msg.args[3] + var property = msg.args[2] + var id = msg.args[1] + if(property == "tag" || property == "color" || property == "name") { + var part = await prisma.user.findFirst({where:{ id:id }}) + if(!part) return "invalid user id."; + updateUser(id, { + [property]: set + }) + ChannelList.getList().forEach(async ch => { + if (ch.hasUser(id)) { + var part = await prisma.user.findFirst({where:{ id:id }}) + if(part) { + ch.updateUser(id) + } + } + }) + return "Updated user, maybe sucessfully"; + } else { + return "set <_id> - Especify what you're setting" + } + }) +); + Command.addCommand( new Command(["stop", "exit"], "stop", msg => { process.exit(); @@ -71,7 +99,7 @@ Command.addCommand( return("User Created. : "+JSON.stringify(checkCreated)); } } else { - return("Usage: createuser ") + return("Usage: createuser ") } }) );