-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
featureNew feature or requestNew feature or request
Description
Would be nice if there was a way to send and receive cross-server events.
Thinking of an API like this:
interface GlobalDefinition<F extends Callback> {
Connect(callback: F): RBXScriptConnection;
BroadcastAsync(...args: Parameters<F>): Promise<void>;
UnicastAsync(jobId: string, ...args: Parameters<F>): Promise<void>;
MulticastAsync(jobIds: ReadonlyArray<string>, ...args: Parameters<F>): Promise<void>;
ClientBroadcastAsync(...args: Parameters<F>): Promise<void>;
ClientUnicastAsync(userId: number, ...args: Parameters<F>): Promise<void>;
ClientMulticastAsync(userIds: ReadonlyArray<number>, ...args: Parameters<F>): Promise<void>;
}Where you would declare it like:
new NetBuilder()
.BindNamespace(
"Announcement",
new NetBuilder()
.BindDefinition(
new GlobalDefinitionBuilder("Shutdown").SetArguments(t.string).Broadcast().Build()
)
.AsNamespace()
)
.Build();And would use it like:
Definitions.CrossServer.Shutdown.Connect((message) => {
for (const player of Players.GetPlayers()) {
player.Kick(message);
}
});
Definitions.CrossServer.Shutdown("hey");Metadata
Metadata
Assignees
Labels
featureNew feature or requestNew feature or request