Binato/server/packets/UserPresenceBundle.ts

27 lines
643 B
TypeScript
Raw Normal View History

2023-09-10 12:59:22 +01:00
import osu from "../../osuTyping";
import Shared from "../objects/Shared";
import User from "../objects/User";
2022-11-19 01:06:03 +00:00
2023-09-10 12:59:22 +01:00
export default function UserPresenceBundle(arg0:User | Shared) : Buffer {
2023-08-20 13:03:01 +01:00
const osuPacketWriter = osu.Bancho.Writer();
let shared:Shared;
2022-11-21 23:26:20 +00:00
if (arg0 instanceof User) {
2023-08-20 13:03:01 +01:00
shared = arg0.shared;
2022-11-21 23:26:20 +00:00
} else {
2023-08-20 13:03:01 +01:00
shared = arg0;
2022-11-21 23:26:20 +00:00
}
2022-11-19 01:06:03 +00:00
let userIds:Array<number> = new Array<number>();
2023-08-20 13:03:01 +01:00
for (let userData of shared.users.getIterableItems()) {
2022-11-19 01:06:03 +00:00
userIds.push(userData.id);
}
osuPacketWriter.UserPresenceBundle(userIds);
2022-11-21 23:26:20 +00:00
if (arg0 instanceof User) {
arg0.addActionToQueue(osuPacketWriter.toBuffer);
}
return osuPacketWriter.toBuffer;
2022-11-19 01:06:03 +00:00
}