UNPKG

transformice.js

Version:

Node.js client for Transformice with full Typescript support.

120 lines (119 loc) 6.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var structures_1 = require("../structures"); var enums_1 = require("../enums"); /** * @hidden */ var TribullePacketHandler = /** @class */ (function () { function TribullePacketHandler() { } /* -------------------------------------------------------------------------- */ /* General */ /* -------------------------------------------------------------------------- */ TribullePacketHandler[enums_1.tribulle.connect] = function () { this.emit("ready"); }; /* -------------------------------------------------------------------------- */ /* Whisper */ /* -------------------------------------------------------------------------- */ TribullePacketHandler[enums_1.tribulle.whisperReceive] = function (packet) { var author = packet.readUTF(); var community = packet.readUnsignedInt(); var sentTo = packet.readUTF(); var content = packet.readUTF(); var message = new structures_1.WhisperMessage(this, new structures_1.Player(this, author), community, sentTo, content); this.emit("whisper", message); }; /* -------------------------------------------------------------------------- */ /* Friend */ /* -------------------------------------------------------------------------- */ TribullePacketHandler[enums_1.tribulle.friendList] = function (packet) { var friends = []; var soulmate = new structures_1.Friend(this).read(packet, true); // soulmate var hasSoulmate = !(soulmate.id == 0 && soulmate.name == ""); if (hasSoulmate) friends.push(soulmate); var totalFriends = packet.readUnsignedShort(); while (totalFriends--) { friends.push(new structures_1.Friend(this).read(packet, false)); } this.emit("friendList", friends); }; TribullePacketHandler[enums_1.tribulle.friendAdd] = function (packet) { this.emit("friendAdd", new structures_1.Player(this, packet.readUTF())); }; TribullePacketHandler[enums_1.tribulle.friendRemove] = function (packet) { this.emit("friendRemove", new structures_1.Player(this, packet.readUTF())); }; TribullePacketHandler[enums_1.tribulle.friendConnect] = function (packet) { this.emit("friendConnect", packet.readUTF()); }; TribullePacketHandler[enums_1.tribulle.friendDisconnect] = function (packet) { this.emit("friendDisconnect", packet.readUTF()); }; TribullePacketHandler[enums_1.tribulle.friendUpdate] = function (packet) { this.emit("friendUpdate", new structures_1.Friend(this).read(packet, false)); }; /* -------------------------------------------------------------------------- */ /* Chat Channel */ /* -------------------------------------------------------------------------- */ TribullePacketHandler[enums_1.tribulle.channelWho] = function (packet) { var fingerprint = packet.readUnsignedInt(); packet.readUnsignedByte(); var playerCount = packet.readUnsignedShort(); var players = []; for (var i = 0; i < playerCount; i++) { players.push(new structures_1.Player(this, packet.readUTF())); } this.emit("channelWho", this.whoList[fingerprint], players, fingerprint); }; TribullePacketHandler[enums_1.tribulle.channelLeave] = function (packet) { var channelName = packet.readUTF(); var index = this.channels.findIndex(function (c) { return c === channelName; }); if (index >= 0) this.channels.splice(index, 1); this.emit("channelLeave", channelName); }; TribullePacketHandler[enums_1.tribulle.channelJoin] = function (packet) { var channelName = packet.readUTF(); this.channels.push(channelName); this.emit("channelJoin", channelName); }; TribullePacketHandler[enums_1.tribulle.channelMessage] = function (packet) { var author = new structures_1.Player(this, packet.readUTF()); var community = packet.readUnsignedInt(); var channelName = packet.readUTF(); var content = packet.readUTF(); var message = new structures_1.ChannelMessage(this, author, content, community, new structures_1.Channel(this, channelName)); this.emit("channelMessage", message); }; /* -------------------------------------------------------------------------- */ /* Tribe */ /* -------------------------------------------------------------------------- */ TribullePacketHandler[enums_1.tribulle.tribeMessage] = function (packet) { var author = new structures_1.Player(this, packet.readUTF()); var message = new structures_1.Message(this, author, packet.readUTF()); this.emit("tribeMessage", message); }; TribullePacketHandler[enums_1.tribulle.tribeMemberUpdate] = function (packet) { this.emit("tribeMemberUpdate", new structures_1.Member(this).read(packet)); }; TribullePacketHandler[enums_1.tribulle.tribeMemberConnect] = function (packet) { this.emit("tribeMemberConnect", packet.readUTF()); }; TribullePacketHandler[enums_1.tribulle.tribeMemberDisconnect] = function (packet) { this.emit("tribeMemberDisconnect", packet.readUTF()); }; TribullePacketHandler[enums_1.tribulle.tribeInitialReceive] = function (packet) { var result = packet.readByte(); if (result == 17) { this.emit("tribe", null); } }; TribullePacketHandler[enums_1.tribulle.tribeReceive] = function (packet) { this.emit("tribe", new structures_1.Tribe(this).read(packet)); }; return TribullePacketHandler; }()); exports.default = TribullePacketHandler;