@cryptovoxels/messages
Advanced tools
Comparing version 2.0.0-7 to 2.0.0-8
@@ -102,2 +102,18 @@ "use strict"; | ||
exports.TypingMessageEncoder = exports.encoderCreator(); | ||
extensionCodec.register({ | ||
type: MessageType.typing, | ||
encode: (input) => { | ||
if (input.type != MessageType.typing) { | ||
return null; | ||
} | ||
return msgpack_1.encode([encodeUUID(input.uuid)]); | ||
}, | ||
decode: (data) => { | ||
const res = msgpack_1.decode(data); | ||
return { | ||
type: MessageType.typing, | ||
uuid: decodeUUID(res[0]), | ||
}; | ||
}, | ||
}); | ||
// 64 | ||
@@ -112,2 +128,19 @@ var AvatarVoiceState; | ||
exports.VoiceStateMessageEncoder = exports.encoderCreator(); | ||
extensionCodec.register({ | ||
type: MessageType.voiceStateAvatar, | ||
encode: (input) => { | ||
if (input.type != MessageType.voiceStateAvatar) { | ||
return null; | ||
} | ||
return msgpack_1.encode([input.state, encodeUUID(input.uuid)]); | ||
}, | ||
decode: (data) => { | ||
const res = msgpack_1.decode(data); | ||
return { | ||
type: MessageType.voiceStateAvatar, | ||
state: res[0], | ||
uuid: decodeUUID(res[1]), | ||
}; | ||
}, | ||
}); | ||
exports.WompMessageEncoder = exports.encoderCreator(); | ||
@@ -173,2 +206,18 @@ exports.UpdateAvatarEncoder = exports.encoderCreator(); | ||
exports.DestroyAvatarEncoder = exports.encoderCreator(); | ||
extensionCodec.register({ | ||
type: MessageType.destroyAvatar, | ||
encode: (input) => { | ||
if (input.type != MessageType.destroyAvatar) { | ||
return null; | ||
} | ||
return msgpack_1.encode([encodeUUID(input.uuid)], { extensionCodec: extensionCodec }); | ||
}, | ||
decode: (data) => { | ||
const res = msgpack_1.decode(data, { extensionCodec: extensionCodec }); | ||
return { | ||
type: MessageType.destroyAvatar, | ||
uuid: decodeUUID(res[0]), | ||
}; | ||
}, | ||
}); | ||
/** Utility functions from here on **/ | ||
@@ -209,3 +258,3 @@ function uint8ToFloat32(data) { | ||
catch { } | ||
return []; | ||
return uuid_1.parse('00000000-0000-0000-0000-000000000000'); | ||
} | ||
@@ -212,0 +261,0 @@ function decodeUUID(buf) { |
{ | ||
"name": "@cryptovoxels/messages", | ||
"version": "2.0.0-7", | ||
"version": "2.0.0-8", | ||
"description": "common protocol for multiplayer messages", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -198,2 +198,18 @@ import { Decoder, Encoder, decode as decodeAlias, encode, ExtensionCodec } from '@msgpack/msgpack' | ||
export const TypingMessageEncoder = encoderCreator<TypingMessage>() | ||
extensionCodec.register({ | ||
type: MessageType.typing, | ||
encode: (input: TypingMessage) => { | ||
if (input.type != MessageType.typing) { | ||
return null | ||
} | ||
return encode([encodeUUID(input.uuid)]) | ||
}, | ||
decode: (data): TypingMessage => { | ||
const res = decodeAlias(data) as any[] | ||
return { | ||
type: MessageType.typing, | ||
uuid: decodeUUID(res[0]), | ||
} | ||
}, | ||
}) | ||
@@ -214,2 +230,19 @@ // 64 | ||
export const VoiceStateMessageEncoder = encoderCreator<VoiceStateMessage>() | ||
extensionCodec.register({ | ||
type: MessageType.voiceStateAvatar, | ||
encode: (input: VoiceStateMessage) => { | ||
if (input.type != MessageType.voiceStateAvatar) { | ||
return null | ||
} | ||
return encode([input.state, encodeUUID(input.uuid)]) | ||
}, | ||
decode: (data): VoiceStateMessage => { | ||
const res = decodeAlias(data) as any[] | ||
return { | ||
type: MessageType.voiceStateAvatar, | ||
state: res[0], | ||
uuid: decodeUUID(res[1]), | ||
} | ||
}, | ||
}) | ||
@@ -311,2 +344,18 @@ // 65 | ||
export const DestroyAvatarEncoder = encoderCreator<DestroyAvatarMessage>() | ||
extensionCodec.register({ | ||
type: MessageType.destroyAvatar, | ||
encode: (input: DestroyAvatarMessage) => { | ||
if (input.type != MessageType.destroyAvatar) { | ||
return null | ||
} | ||
return encode([encodeUUID(input.uuid)], { extensionCodec: extensionCodec }) | ||
}, | ||
decode: (data): DestroyAvatarMessage => { | ||
const res: any[] = decodeAlias(data, { extensionCodec: extensionCodec }) as any[] | ||
return { | ||
type: MessageType.destroyAvatar, | ||
uuid: decodeUUID(res[0]), | ||
} | ||
}, | ||
}) | ||
@@ -373,3 +422,3 @@ /** Utility functions from here on **/ | ||
} catch {} | ||
return [] | ||
return parse('00000000-0000-0000-0000-000000000000') | ||
} | ||
@@ -376,0 +425,0 @@ |
@@ -1,4 +0,4 @@ | ||
import test, { Test } from 'tape' | ||
import test from 'tape' | ||
import * as msg from '../src/index' | ||
import { JoinEncoder, JoinMessage, WorldStateEncoder, WorldStateMessage } from '../src' | ||
import { AvatarVoiceState, JoinEncoder, JoinMessage, WorldStateEncoder, WorldStateMessage } from '../src' | ||
import { equalF32Array, equalQuaternion } from './test-helpers' | ||
@@ -35,9 +35,9 @@ | ||
createTestCase(msg.MemeCubeEncoder, 91, { type: msg.MessageType.memecube, uuid: uuid, url: 'https://www.giphy.com/whateveer.gif' }), | ||
createTestCase(msg.VoiceStateMessageEncoder, 57, { type: msg.MessageType.voiceStateAvatar, uuid: uuid, state: 0 }), | ||
createTestCase(msg.VoiceStateMessageEncoder, 23, { type: msg.MessageType.voiceStateAvatar, uuid: uuid, state: AvatarVoiceState.Listening }), | ||
createTestCase(msg.AvatarChangedEncoder, 70, { type: msg.MessageType.avatarChanged, wallet: wallet, cacheKey: 5000 }), | ||
createTestCase(msg.NewCostumeEncoder, 62, { type: msg.MessageType.newCostume, uuid: uuid, cacheKey: 5000 }), | ||
createTestCase(msg.WompMessageEncoder, 54, { type: msg.MessageType.womp, uuid: uuid, id: 5 }), | ||
createTestCase(msg.TypingMessageEncoder, 50, { type: msg.MessageType.typing, uuid: uuid }), | ||
createTestCase(msg.TypingMessageEncoder, 22, { type: msg.MessageType.typing, uuid: uuid }), | ||
createTestCase(msg.CreateAvatarEncoder, 60, { type: msg.MessageType.createAvatar, uuid: uuid, description: { name: 'a', wallet: wallet } }), | ||
createTestCase(msg.DestroyAvatarEncoder, 50, { type: msg.MessageType.destroyAvatar, uuid: uuid }), | ||
createTestCase(msg.DestroyAvatarEncoder, 22, { type: msg.MessageType.destroyAvatar, uuid: uuid }), | ||
] | ||
@@ -44,0 +44,0 @@ |
Sorry, the diff of this file is not supported yet
76984
1636