Skip to content

Commit

Permalink
Type out sever types
Browse files Browse the repository at this point in the history
  • Loading branch information
grilme99 committed May 13, 2022
1 parent 4d5ebac commit 14d11dc
Show file tree
Hide file tree
Showing 5 changed files with 79 additions and 6 deletions.
27 changes: 21 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,8 @@
"eslint-plugin-roblox-ts": "^0.0.32",
"prettier": "^2.4.1",
"roblox-ts": "^1.3.3"
},
"dependencies": {
"@rbxts/signal": "^1.0.3"
}
}
25 changes: 25 additions & 0 deletions types/Server/PlayerRecord.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import Signal from "@rbxts/signal";
import ServerChickynoid from "./ServerChickynoid";

interface PlayerRecord {
userId: number;
player: Player;

chickynoid: ServerChickynoid;

OnBeforePlayerSpawn: Signal<() => void>;

Despawn(): void;
Spawn(): void;
}

interface PlayerRecordConstructor {
/**
* Constructed internally. Do not use directly.
* @private
*/
new (): PlayerRecord;
}

declare const PlayerRecord: PlayerRecordConstructor;
export = PlayerRecord;
21 changes: 21 additions & 0 deletions types/Server/ServerChickynoid.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { ChickynoidServer } from ".";

interface ServerChickynoid {
playerRecord: ChickynoidServer.PlayerRecord;

SetPosition(position: Vector3): void;
GetPosition(): Vector3;

Destroy(): void;
}

interface ServerChickynoidConstructor {
/**
* Constructed internally. Do not use directly.
* @private
*/
new (): ServerChickynoid;
}

declare const ServerChickynoid: ServerChickynoidConstructor;
export = ServerChickynoid;
9 changes: 9 additions & 0 deletions types/Server/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import Signal from "@rbxts/signal";
import PlayerRecord from "./PlayerRecord";

/** @server */
export namespace ChickynoidServer {
export interface ServerConfig {
Expand All @@ -14,6 +17,12 @@ export namespace ChickynoidServer {
}

export let config: ServerConfig;
export const playerRecords: Map<number, PlayerRecord>;

export const OnPlayerSpawn: Signal<(playerRecord: PlayerRecord) => void>;
export const OnPlayerDespawn: Signal<(playerRecord: PlayerRecord) => void>;
export const OnBeforePlayerSpawn: Signal<(playerRecord: PlayerRecord) => void>;
export const OnPlayerConnected: Signal<(server: typeof ChickynoidServer, playerRecord: PlayerRecord) => void>; // FIXME: This type is cursed

/** Creates connections so that Chickynoid can run on the server. */
export function Setup(this: typeof ChickynoidServer): void;
Expand Down

0 comments on commit 14d11dc

Please sign in to comment.