35 lines
1.1 KiB
JavaScript
35 lines
1.1 KiB
JavaScript
/*
|
|
@Packet name GuildSearchResult
|
|
@Packet identifier 189
|
|
@Description Sends the
|
|
@Data Holds data of a single result of a guild when searching guilds
|
|
@Structure -
|
|
*/
|
|
|
|
const encoder = new TextEncoder();
|
|
|
|
module.exports = function (data) {
|
|
const tagBuffer = encoder.encode(data.tag);
|
|
const nameBuffer = encoder.encode(data.name);
|
|
|
|
const packetLength = 9 + 1 + tagBuffer.byteLength + nameBuffer.byteLength;
|
|
const buffer = new ArrayBuffer(packetLength);
|
|
const view = new DataView(buffer);
|
|
|
|
view.setUint8(0, 189);
|
|
view.setUint8(1, packetLength);
|
|
view.setUint16(2, data.id);
|
|
view.setUint8(4, data.size.current);
|
|
view.setUint8(5, data.size.maximum);
|
|
view.setUint8(6, data.hasApplied);
|
|
view.setUint8(7, data.isLastEntry);
|
|
|
|
view.setUint8(8, tagBuffer.byteLength);
|
|
new Uint8Array(buffer, 9).set(tagBuffer);
|
|
|
|
view.setUint8(7 + tagBuffer.byteLength + 1 + 1, nameBuffer.byteLength);
|
|
new Uint8Array(buffer, 7 + tagBuffer.byteLength + 1 + 1 + 1).set(nameBuffer);
|
|
|
|
return buffer;
|
|
};
|