Skip to content

Commit ab40d0f

Browse files
committed
Added playerAbilities packet, currently set to Creative Mode, default speed, no fov modifier
1 parent e0afc33 commit ab40d0f

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

include/network/networking.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,5 +158,6 @@ void levelChunkWithLight(Packet& packet, Server& server);
158158

159159
// Optional Packets
160160
void changeDifficulty(Packet& packet);
161+
void playerAbilities(Packet& packet);
161162

162163
#endif

src/networking/networkPacketRouter.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,12 @@ void handleConfigurationState(Packet* packet, Server& server) {
160160
changeDifficulty(*difficultyPacket);
161161
server.getNetworkManager().getOutgoingQueue()->push(difficultyPacket);
162162

163+
// 4. Send Player Abilities - 0x39
164+
g_logger->logNetwork(INFO, "Sending Player Abilities packet", "PacketRouter");
165+
Packet* abilitiesPacket = new Packet(*packet);
166+
playerAbilities(*abilitiesPacket);
167+
server.getNetworkManager().getOutgoingQueue()->push(abilitiesPacket);
168+
163169
// 2. Send player position and look - 0x41
164170
Packet* positionPacket = new Packet(*packet);
165171
sendPlayerPositionAndLook(*positionPacket, server); // rename packet
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#include "buffer.hpp"
2+
#include "packet.hpp"
3+
4+
void playerAbilities(Packet& packet) {
5+
Buffer buff;
6+
7+
buff.writeByte(0x39);
8+
buff.writeByte(0x08); // Invulnerable 0x01; Flying 0x02; Allow Flying 0x04; Creative Mode 0x08;
9+
buff.writeFloat(0.05); // Flight speed
10+
buff.writeFloat(1); // Fov modifier
11+
12+
Buffer final;
13+
final.writeVarInt(buff.getData().size());
14+
final.writeBytes(buff.getData());
15+
16+
packet.getData() = final;
17+
packet.setPacketSize(final.getData().size());
18+
packet.setReturnPacket(PACKET_SEND);
19+
}

0 commit comments

Comments
 (0)