Navigation

    • Register
    • Login
    • Search
    • Categories
    • Popular
    • Users
    1. Home
    2. dawickizer
    • Continue chat with dawickizer
    • Start new chat with dawickizer
    • Flag Profile
    • block_user
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups
    Save
    Saving

    dawickizer

    @dawickizer

    0
    Reputation
    3
    Posts
    9
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    dawickizer Follow

    Posts made by dawickizer

    • RE: ArraySchema with Schema Objects?

      @endel figured it out. I was just being dumb lol.
      import { Player } from './Player'; in MyRoomState.ts
      and
      import { Player } from './schema/player'; in MyRoom.ts

      Accidentally capitalized one of the imports

      posted in Questions & Help
      dawickizer
    • ArraySchema with Schema Objects?

      Hello All,

      I am getting an error trying to implement ArraySchema. Any help would be appreciated :)

      I have this Player Schema:

      import { Schema, type } from '@colyseus/schema';
      
      export class Player extends Schema {
      
        @type('string')
        username: string;
      
        @type('string')
        sessionId: string;
      
      }
      

      And this MyRoomState Schema which has an ArraySchema<Player>:

      import { Schema, ArraySchema, type } from '@colyseus/schema';
      import { Player } from './Player';
      
      export class MyRoomState extends Schema {
      
        @type([Player])
        players = new ArraySchema<Player>();
      
      }
      

      And this is the MyRoom code that tries to push to the array of players:

      import { Room, Client } from "colyseus";
      import { MyRoomState } from "./schema/MyRoomState";
      import { Player } from './schema/player';
      
      export class MyRoom extends Room {
      ...
        onJoin(client: Client, options: any) {
          let player: Player = new Player();
          player.username = options.username;
          player.sessionId = client.sessionId;
          this.state.players.push(player);
          this.broadcast('user-joined', `${player.username} joined room: ${this.roomId} with session: ${player.sessionId}`);
        }
      ...
      }
      

      But I am getting this error on the server:

      Error: a 'Player' was expected, but 'Player' was provided in ArraySchema#0
          at new EncodeSchemaError (C:\Users\dawic\Desktop\FullStack\mean\colyseus-server\node_modules\@colyseus\schema\lib\Schema.js:48:42)
          at assertInstanceType (C:\Users\dawic\Desktop\FullStack\mean\colyseus-server\node_modules\@colyseus\schema\src\Schema.ts:84:15)
          at MyRoomState.Schema.encode (C:\Users\dawic\Desktop\FullStack\mean\colyseus-server\node_modules\@colyseus\schema\src\Schema.ts:598:21)
          at MyRoomState.Schema.encodeAll (C:\Users\dawic\Desktop\FullStack\mean\colyseus-server\node_modules\@colyseus\schema\src\Schema.ts:650:21)
          at SchemaSerializer.getFullState (C:\Users\dawic\Desktop\FullStack\mean\colyseus-server\node_modules\colyseus\src\serializer\SchemaSerializer.ts:25:41)
          at MyRoom.sendFullState (C:\Users\dawic\Desktop\FullStack\mean\colyseus-server\node_modules\colyseus\src\Room.ts:468:77)
          at MyRoom._onMessage (C:\Users\dawic\Desktop\FullStack\mean\colyseus-server\node_modules\colyseus\src\Room.ts:593:14)
          at WebSocket.emit (events.js:315:20)
          at Receiver.receiverOnMessage (C:\Users\dawic\Desktop\FullStack\mean\colyseus-server\node_modules\ws\lib\websocket.js:825:20)
          at Receiver.emit (events.js:315:20)
      [ERROR] 19:52:16 Error: a 'Player' was expected, but 'Player' was provided in ArraySchema#0
      Error: a 'Player' was expected, but 'Player' was provided in ArraySchema#0
          at new EncodeSchemaError (C:\Users\dawic\Desktop\FullStack\mean\colyseus-server\node_modules\@colyseus\schema\lib\Schema.js:48:42)
          at assertInstanceType (C:\Users\dawic\Desktop\FullStack\mean\colyseus-server\node_modules\@colyseus\schema\src\Schema.ts:84:15)
          at MyRoomState.Schema.encode (C:\Users\dawic\Desktop\FullStack\mean\colyseus-server\node_modules\@colyseus\schema\src\Schema.ts:598:21)
          at SchemaSerializer.applyPatches (C:\Users\dawic\Desktop\FullStack\mean\colyseus-server\node_modules\colyseus\src\serializer\SchemaSerializer.ts:47:34)
          at MyRoom.broadcastPatch (C:\Users\dawic\Desktop\FullStack\mean\colyseus-server\node_modules\colyseus\src\Room.ts:433:41)
          at Timeout._onTimeout (C:\Users\dawic\Desktop\FullStack\mean\colyseus-server\node_modules\colyseus\src\Room.ts:156:52)
          at listOnTimeout (internal/timers.js:549:17)
          at processTimers (internal/timers.js:492:7)
      
      posted in Questions & Help
      dawickizer