Skip to content

Commit d34b5ce

Browse files
committedMay 7, 2024
Add get pet stats
1 parent abbcde6 commit d34b5ce

File tree

3 files changed

+69
-3
lines changed

3 files changed

+69
-3
lines changed
 

‎Kepler-Server/src/main/java/org/alexdev/kepler/messages/MessageHandler.java

+8-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.alexdev.kepler.game.player.Player;
44
import org.alexdev.kepler.game.room.RoomManager;
55
import org.alexdev.kepler.log.Log;
6+
import org.alexdev.kepler.messages.incoming.pets.GETPETSTAT;
67
import org.alexdev.kepler.messages.incoming.catalogue.GCAP;
78
import org.alexdev.kepler.messages.incoming.catalogue.GCIX;
89
import org.alexdev.kepler.messages.incoming.catalogue.GET_ALIAS_LIST;
@@ -41,10 +42,7 @@
4142
import org.alexdev.kepler.messages.incoming.rooms.moderation.*;
4243
import org.alexdev.kepler.messages.incoming.rooms.pool.*;
4344
import org.alexdev.kepler.messages.incoming.rooms.settings.*;
44-
import org.alexdev.kepler.messages.incoming.rooms.teleporter.DOORGOIN;
4545
import org.alexdev.kepler.messages.incoming.rooms.teleporter.GETDOORFLAT;
46-
import org.alexdev.kepler.messages.incoming.rooms.teleporter.GOVIADOOR;
47-
import org.alexdev.kepler.messages.incoming.rooms.teleporter.INTODOOR;
4846
import org.alexdev.kepler.messages.incoming.rooms.user.*;
4947
import org.alexdev.kepler.messages.incoming.songs.*;
5048
import org.alexdev.kepler.messages.incoming.trade.*;
@@ -84,6 +82,7 @@ private MessageHandler() {
8482
registerNavigatorPackets();
8583
registerRoomPackets();
8684
registerRoomUserPackets();
85+
registerPetPackets();
8786
registerRoomBadgesPackets();
8887
registerRoomPoolPackets();
8988
registerRoomSettingsPackets();
@@ -241,6 +240,12 @@ private void registerRoomUserPackets() {
241240
registerEvent(117, new IIM());
242241
}
243242

243+
/**
244+
* Register pet packets.
245+
*/
246+
private void registerPetPackets() {
247+
registerEvent(128, new GETPETSTAT());
248+
}
244249

245250
/**
246251
* Register room badges packets;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package org.alexdev.kepler.messages.incoming.pets;
2+
3+
import org.alexdev.kepler.game.entity.EntityType;
4+
import org.alexdev.kepler.game.pets.Pet;
5+
import org.alexdev.kepler.game.player.Player;
6+
import org.alexdev.kepler.game.room.Room;
7+
import org.alexdev.kepler.messages.outgoing.pets.PETSTAT;
8+
import org.alexdev.kepler.messages.types.MessageEvent;
9+
import org.alexdev.kepler.server.netty.streams.NettyRequest;
10+
11+
public class GETPETSTAT implements MessageEvent {
12+
@Override
13+
public void handle(Player player, NettyRequest reader) throws Exception {
14+
if (player.getRoomUser().getRoom() == null) {
15+
return;
16+
}
17+
18+
Room room = player.getRoomUser().getRoom();
19+
String[] petData = reader.readString().split(Character.toString((char)4));
20+
21+
int petId = Integer.parseInt(petData[0]);
22+
String petName = petData[1];
23+
24+
Pet pet = (Pet) room.getEntityManager().getByInstanceId(petId);
25+
26+
if (pet == null) {
27+
return;
28+
}
29+
30+
player.send(new PETSTAT(pet));
31+
}
32+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.alexdev.kepler.messages.outgoing.pets;
2+
3+
import org.alexdev.kepler.game.pets.Pet;
4+
import org.alexdev.kepler.messages.types.MessageComposer;
5+
import org.alexdev.kepler.server.netty.streams.NettyResponse;
6+
7+
public class PETSTAT extends MessageComposer {
8+
private final Pet pet;
9+
10+
public PETSTAT(Pet pet) {
11+
this.pet = pet;
12+
}
13+
14+
@Override
15+
public void compose(NettyResponse response) {
16+
response.writeInt(this.pet.getRoomUser().getInstanceId());
17+
response.writeInt(this.pet.getAge());
18+
response.writeInt(this.pet.getHunger());
19+
response.writeInt(this.pet.getThirst());
20+
response.writeInt(this.pet.getHappiness());
21+
response.writeInt(this.pet.getDetails().getNatureNegative());
22+
response.writeInt(this.pet.getDetails().getNaturePositive());
23+
}
24+
25+
@Override
26+
public short getHeader() {
27+
return 210; // "CR"
28+
}
29+
}

0 commit comments

Comments
 (0)