-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Complete Redesign of YABOB's Architecture #16
Comments
#19 See CLI details here |
Current interface designinterface IServerExtension {
onServerInitSuccess: (server: Readonly<AttendingServerV2>) => Promise<void>;
onAllQueueInit: (queues: ReadonlyArray<HelpQueueV2>) => Promise<void>;
onQueueDelete: (queue: Readonly<HelpQueueV2>) => Promise<void>;
onDequeueFirst: (dequeuedStudent: Readonly<Helpee>) => Promise<void>;
onHelperStartHelping: (helper: Readonly<Omit<Helper, 'helpEnd'>>) => Promise<void>;
onHelperStopHelping: (helper: Readonly<Required<Helper>>) => Promise<void>;
onServerPeriodicUpdate: (server: Readonly<AttendingServerV2>) => Promise<void>;
loadExternalServerData: (serverId: string) => Promise<ServerBackup | undefined>;
}
// Extensions for individual queues
interface IQueueExtension {
onQueueCreate: (queue: Readonly<HelpQueueV2>) => Promise<void>;
onQueueOpen: (queue: Readonly<HelpQueueV2>) => Promise<void>;
onQueueClose: (queue: Readonly<HelpQueueV2>) => Promise<void>;
onEnqueue: (student: Readonly<Helpee>) => Promise<void>;
onDequeue: (student: Readonly<Helpee>) => Promise<void>;
onStudentRemove: (student: Readonly<Helpee>) => Promise<void>;
onRemoveAllStudents: (students: ReadonlyArray<Helpee>) => Promise<void>;
onQueueRenderComplete: (
queue: Readonly<HelpQueueV2>,
display: Readonly<QueueDisplayV2>,
isClenupRender?: boolean
) => Promise<void>;
onQueuePeriodicUpdate: (queue: Readonly<HelpQueueV2>) => Promise<void>;
} |
The extension design is a simplified version of the Observer Pattern |
Currently Developed New Features
|
Naming SchemeRoles
MemberStatesOnly maintained by the queue. Attending server can only see the
|
I was thinking about combining replacing Admin with "Bot Admin", i.e. doesn't have to be Admin. This separate role can be given to both Admins and Officers |
Merged. |
Objective
Avoid bad JS practices and make YABOB more modular.
Allow developers to easily extend YABOB's functionality by providing them with proper interface.
Most up to date diagram
Current Features
Ongoing Design
Command Performance Issues
/stop
is really slow when using google sheets. This is likely a network issue.The text was updated successfully, but these errors were encountered: