Add color changing
This commit is contained in:
parent
ca434a4ca5
commit
78fb73a25a
|
@ -1,3 +1,4 @@
|
||||||
defaultName: "Anonymous"
|
defaultName: "Anonymous"
|
||||||
defaultFlags:
|
defaultFlags:
|
||||||
volume: 100
|
volume: 100
|
||||||
|
enableColorChanging: false
|
||||||
|
|
|
@ -38,7 +38,7 @@ export async function readUser(_id: string) {
|
||||||
|
|
||||||
export async function updateUser(
|
export async function updateUser(
|
||||||
_id: string,
|
_id: string,
|
||||||
data: Omit<User, "id"> & { _id: string }
|
data: Partial<Omit<User, "id"> & { _id: string }>
|
||||||
) {
|
) {
|
||||||
return await prisma.user.update({
|
return await prisma.user.update({
|
||||||
where: { id: _id },
|
where: { id: _id },
|
||||||
|
|
|
@ -9,7 +9,7 @@ import {
|
||||||
UserFlags
|
UserFlags
|
||||||
} from "../util/types";
|
} from "../util/types";
|
||||||
import { User } from "@prisma/client";
|
import { User } from "@prisma/client";
|
||||||
import { createUser, readUser } from "../data/user";
|
import { createUser, readUser, updateUser } from "../data/user";
|
||||||
import { eventGroups } from "./events";
|
import { eventGroups } from "./events";
|
||||||
import { loadConfig } from "../util/config";
|
import { loadConfig } from "../util/config";
|
||||||
import { Gateway } from "./Gateway";
|
import { Gateway } from "./Gateway";
|
||||||
|
@ -21,13 +21,15 @@ import { Logger } from "../util/Logger";
|
||||||
interface UsersConfig {
|
interface UsersConfig {
|
||||||
defaultName: string;
|
defaultName: string;
|
||||||
defaultFlags: UserFlags;
|
defaultFlags: UserFlags;
|
||||||
|
enableColorChanging: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
const usersConfig = loadConfig<UsersConfig>("config/users.yml", {
|
const usersConfig = loadConfig<UsersConfig>("config/users.yml", {
|
||||||
defaultName: "Anonymous",
|
defaultName: "Anonymous",
|
||||||
defaultFlags: {
|
defaultFlags: {
|
||||||
volume: 100
|
volume: 100
|
||||||
}
|
},
|
||||||
|
enableColorChanging: false
|
||||||
});
|
});
|
||||||
|
|
||||||
const logger = new Logger("Sockets");
|
const logger = new Logger("Sockets");
|
||||||
|
@ -114,7 +116,7 @@ export class Socket extends EventEmitter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug("Found channel:", channel);
|
// logger.debug("Found channel:", channel);
|
||||||
|
|
||||||
// Does channel exist?
|
// Does channel exist?
|
||||||
if (channel) {
|
if (channel) {
|
||||||
|
@ -293,4 +295,39 @@ export class Socket extends EventEmitter {
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async userset(name?: string, color?: string) {
|
||||||
|
let isColor = false;
|
||||||
|
|
||||||
|
if (color && usersConfig.enableColorChanging) {
|
||||||
|
isColor =
|
||||||
|
typeof color === "string" && !!color.match(/^#[0-9a-f]{6}$/i);
|
||||||
|
}
|
||||||
|
|
||||||
|
await updateUser(this._id, {
|
||||||
|
name: typeof name == "string" ? name : undefined,
|
||||||
|
color: color ? (isColor ? color : undefined) : undefined
|
||||||
|
});
|
||||||
|
|
||||||
|
await this.loadUser();
|
||||||
|
|
||||||
|
const ch = this.getCurrentChannel();
|
||||||
|
|
||||||
|
if (ch) {
|
||||||
|
let part = this.getParticipant() as Participant;
|
||||||
|
let cursorPos = this.getCursorPos();
|
||||||
|
|
||||||
|
ch.sendArray([
|
||||||
|
{
|
||||||
|
m: "p",
|
||||||
|
_id: part._id,
|
||||||
|
color: part.color,
|
||||||
|
id: part.id,
|
||||||
|
name: part.name,
|
||||||
|
x: cursorPos.x,
|
||||||
|
y: cursorPos.y
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
import { ServerEventListener } from "../../../../util/types";
|
||||||
|
|
||||||
|
export const userset: ServerEventListener<"userset"> = {
|
||||||
|
id: "userset",
|
||||||
|
callback: (msg, socket) => {
|
||||||
|
// Change username/color
|
||||||
|
socket.userset(msg.set.name, msg.set.color);
|
||||||
|
}
|
||||||
|
};
|
|
@ -7,11 +7,13 @@ import { devices } from "./handlers/devices";
|
||||||
import { ch } from "./handlers/ch";
|
import { ch } from "./handlers/ch";
|
||||||
import { m } from "./handlers/m";
|
import { m } from "./handlers/m";
|
||||||
import { a } from "./handlers/a";
|
import { a } from "./handlers/a";
|
||||||
|
import { userset } from "./handlers/userset";
|
||||||
|
|
||||||
EVENTGROUP_USER.add(hi);
|
EVENTGROUP_USER.add(hi);
|
||||||
EVENTGROUP_USER.add(devices);
|
EVENTGROUP_USER.add(devices);
|
||||||
EVENTGROUP_USER.add(ch);
|
EVENTGROUP_USER.add(ch);
|
||||||
EVENTGROUP_USER.add(m);
|
EVENTGROUP_USER.add(m);
|
||||||
EVENTGROUP_USER.add(a);
|
EVENTGROUP_USER.add(a);
|
||||||
|
EVENTGROUP_USER.add(userset);
|
||||||
|
|
||||||
eventGroups.push(EVENTGROUP_USER);
|
eventGroups.push(EVENTGROUP_USER);
|
||||||
|
|
Loading…
Reference in New Issue