diff --git a/server/src/main/java/dev/slimevr/protocol/pubsub/PubSubHandler.java b/server/src/main/java/dev/slimevr/protocol/pubsub/PubSubHandler.java index 9948f754e8..3684e98ccb 100644 --- a/server/src/main/java/dev/slimevr/protocol/pubsub/PubSubHandler.java +++ b/server/src/main/java/dev/slimevr/protocol/pubsub/PubSubHandler.java @@ -160,7 +160,7 @@ public void onTopicMessage(GenericConnection c, PubSubHeader messageHeader) { int outbound = createMessage( fbb, PubSubUnion.Message, - Message.createMessage(fbb, message) + createMessageMessageOffset(fbb, message) ); fbb.finish(outbound); conn.send(fbb.dataBuffer()); @@ -171,25 +171,36 @@ public void onTopicMessage(GenericConnection c, PubSubHeader messageHeader) { private int createMessageMessageOffset(FlatBufferBuilder fbb, Message msg) { int topicOffset = switch(msg.getTopicType()) { - case Topic.TopicHandle -> TopicHandle.createTopicHandle(fbb, ((TopicHandle) msg.topic(new TopicHandle())).getId()); - case Topic.TopicId -> createTopicIdOffset(fbb, (TopicId) msg.topic(new TopicId())); + case Topic.TopicHandle -> TopicHandle.createTopicHandle( + fbb, ((TopicHandle) msg.topic(new TopicHandle())).getId() + ); + case Topic.TopicId -> createTopicIdOffset( + fbb, (TopicId) msg.topic(new TopicId()) + ); default -> throw new RuntimeException("Unknown message type"); }; int payloadOffset = switch(msg.getPayloadType()) { - case Payload.solarxrProtocolDatatypesStringTable -> StringTable.createStringTable(fbb, fbb.createString(((StringTable) msg.payload(new StringTable())).getSAsByteBuffer())); - case Payload.solarxrProtocolDatatypesBytes -> Bytes.createBytes(fbb, fbb.createByteVector(((Bytes) msg.payload(new Bytes())).getBAsByteBuffer())); + case Payload.solarxrProtocolDatatypesStringTable -> + StringTable.createStringTable( + fbb, + fbb.createString(((StringTable) msg.payload(new StringTable())).getSAsByteBuffer()) + ); + case Payload.solarxrProtocolDatatypesBytes -> + Bytes.createBytes( + fbb, + fbb.createByteVector(((Bytes) msg.payload(new Bytes())).getBAsByteBuffer()) + ); case Payload.KeyValues -> { KeyValues keyValues = (KeyValues) msg.payload(new KeyValues()); - fbb. - KeyValues.createKeyValues(fbb, keyValues.getByteBuffer()) + keyValues.getByteBuffer() } - } + }; return Message.createMessage( fbb, msg.getTopicType(), topicOffset, msg.getPayloadType(), - + payloadOffset ); }