~starkingdoms/starkingdoms

ref: 026450bb48c5ccc04f07b4dc6de2860a1c808085 starkingdoms/client/src/protocol/MessageC2S.ts -rw-r--r-- 1.4 KiB
026450bb — c0repwn3r add client code 2 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import {State} from "./State";
import {enum_GoodbyeReason_serialize, GoodbyeReason, GoodbyeReason_UnsupportedProtocol} from "./GoodbyeReason";

export class MessageC2S_Hello {
    version: number;
    requested_username: string;
    next_state: State;

    constructor(version: number, requested_username: string, next_state: State) {
        this.version = version;
        this.requested_username = requested_username;
        this.next_state = next_state;
    }

    to_object(): object {
        return { Hello: { version: this.version, requested_username: this.requested_username, next_state: this.next_state }}
    }
}

export class MessageC2S_Goodbye {
    reason: GoodbyeReason | GoodbyeReason_UnsupportedProtocol;

    constructor(reason: GoodbyeReason | GoodbyeReason_UnsupportedProtocol) {
        this.reason = reason;
    }

    to_object(): object {
        let reason;

        if (this.reason instanceof GoodbyeReason_UnsupportedProtocol) {
            reason = this.reason.to_object();
        } else {
            reason = enum_GoodbyeReason_serialize(this.reason);
        }

        return { Goodbye: { reason: reason } }
    }
}

export class MessageC2S_Chat {
    message: string;

    constructor(message: string) {
        this.message = message;
    }

    to_object(): object {
        return { Chat: { message: this.message }}
    }
}

export class MessageC2S_Ping {
    constructor() {}

    to_object(): object {
        return { Ping: {} }
    }
}