Skip to content

Commit 5e3e7e4

Browse files
committed
disabled LevelChunkWithLight packet, added optional packet changeDifficulty
1 parent e4efd4b commit 5e3e7e4

File tree

3 files changed

+36
-10
lines changed

3 files changed

+36
-10
lines changed

include/network/networking.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,4 +156,7 @@ void serverboundKnownPacks(Packet& packet);
156156
void gameEventPacket(Packet& packet, Server& server);
157157
void levelChunkWithLight(Packet& packet, Server& server);
158158

159+
// Optional Packets
160+
void changeDifficulty(Packet& packet);
161+
159162
#endif

src/networking/networkPacketRouter.cpp

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ void handleStatusState(Packet* packet, Server& server) {
7878
} else if (packet->getId() == 0x01) {
7979
handlePingPacket(*packet, server);
8080
} else {
81-
g_logger->logNetwork(WARN, "Unknown packet ID in Status state: 0x" + std::to_string(packet->getId()), "PacketRouter");
81+
// g_logger->logNetwork(WARN, "Unknown packet ID in Status state: 0x" + std::to_string(packet->getId()), "PacketRouter");
8282
packet->getPlayer()->setPlayerState(PlayerState::None);
8383
packet->setReturnPacket(PACKET_DISCONNECT);
8484
}
@@ -117,7 +117,7 @@ void handleLoginState(Packet* packet, Server& server) {
117117
g_logger->logNetwork(INFO, "Received Login Cookie Response (0x04) - acknowledging", "PacketRouter");
118118
packet->setReturnPacket(PACKET_OK);
119119
} else {
120-
g_logger->logNetwork(WARN, "Unknown packet ID in Login state: 0x" + std::to_string(packet->getId()), "PacketRouter");
120+
// g_logger->logNetwork(WARN, "Unknown packet ID in Login state: 0x" + std::to_string(packet->getId()), "PacketRouter");
121121
packet->getPlayer()->setPlayerState(PlayerState::None);
122122
packet->setReturnPacket(PACKET_DISCONNECT);
123123
}
@@ -154,6 +154,12 @@ void handleConfigurationState(Packet* packet, Server& server) {
154154
writePlayPacket(*playPacket, server);
155155
server.getNetworkManager().getOutgoingQueue()->push(playPacket);
156156

157+
// 3. Send Change Difficulty - 0x42
158+
g_logger->logNetwork(INFO, "Sending Change Difficulty packet", "PacketRouter");
159+
Packet* difficultyPacket = new Packet(*packet);
160+
changeDifficulty(*difficultyPacket);
161+
server.getNetworkManager().getOutgoingQueue()->push(difficultyPacket);
162+
157163
// 2. Send player position and look - 0x41
158164
Packet* positionPacket = new Packet(*packet);
159165
sendPlayerPositionAndLook(*positionPacket, server); // rename packet
@@ -190,7 +196,7 @@ void handleConfigurationState(Packet* packet, Server& server) {
190196
packet->setReturnPacket(PACKET_OK);
191197

192198
} else {
193-
g_logger->logNetwork(WARN, "Unknown packet ID in Configuration state: 0x" + std::to_string(packet->getId()), "PacketRouter");
199+
// g_logger->logNetwork(WARN, "Unknown packet ID in Configuration state: 0x" + std::to_string(packet->getId()), "PacketRouter");
194200
sendDisconnectPacket(packet, "Unknown packet in Configuration state", server);
195201
packet->getPlayer()->setPlayerState(PlayerState::None);
196202
packet->setReturnPacket(PACKET_DISCONNECT);
@@ -213,15 +219,14 @@ void handlePlayState(Packet* packet, Server& server) {
213219
server.getNetworkManager().getOutgoingQueue()->push(gameEvent);
214220

215221
// 2. Send Set Center Chunk - 0x57
216-
Packet* setCenterPacket = new Packet(*packet);
217-
writeSetCenterPacket(*setCenterPacket, server);
218-
server.getNetworkManager().getOutgoingQueue()->push(setCenterPacket);
222+
// Packet* setCenterPacket = new Packet(*packet);
223+
// writeSetCenterPacket(*setCenterPacket, server);
224+
// server.getNetworkManager().getOutgoingQueue()->push(setCenterPacket);
219225

220226
// 3. Send Level Chunk With Light - 0x22
221-
Packet* levelChunkPacket = new Packet(*packet);
222-
levelChunkWithLight(*levelChunkPacket, server);
223-
server.getNetworkManager().getOutgoingQueue()->push(levelChunkPacket);
224-
227+
// Packet* levelChunkPacket = new Packet(*packet);
228+
// levelChunkWithLight(*levelChunkPacket, server);
229+
// server.getNetworkManager().getOutgoingQueue()->push(levelChunkPacket);
225230

226231
} else if (packet->getId() == 0x2B) {
227232
// Playere loaded
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#include "buffer.hpp"
2+
#include "packet.hpp"
3+
4+
void changeDifficulty(Packet& packet) {
5+
Buffer buff;
6+
7+
buff.writeByte(0x0A);
8+
buff.writeByte(2); // 0 Peaceful; 1 Easy; 2 Normal; 3 Hard
9+
buff.writeBool(true); // Is Difficulty locked ?
10+
11+
Buffer final;
12+
final.writeVarInt(buff.getData().size());
13+
final.writeBytes(buff.getData());
14+
15+
packet.getData() = final;
16+
packet.setPacketSize(final.getData().size());
17+
packet.setReturnPacket(PACKET_SEND);
18+
}

0 commit comments

Comments
 (0)