Skip to content

Commit dc7137b

Browse files
Migrate to hypixel-data and add player_info packet (HypixelDev#1)
1 parent 8b205e7 commit dc7137b

13 files changed

+141
-43
lines changed

pom.xml

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>net.hypixel</groupId>
88
<artifactId>mod-api</artifactId>
9-
<version>0.1.7</version>
9+
<version>dev-SNAPSHOT</version>
1010

1111
<properties>
1212
<maven.compiler.source>8</maven.compiler.source>
@@ -35,10 +35,9 @@
3535
<scope>provided</scope>
3636
</dependency>
3737
<dependency>
38-
<groupId>org.junit.jupiter</groupId>
39-
<artifactId>junit-jupiter-engine</artifactId>
40-
<version>5.9.2</version>
41-
<scope>test</scope>
38+
<groupId>net.hypixel</groupId>
39+
<artifactId>hypixel-data</artifactId>
40+
<version>0.1.2</version>
4241
</dependency>
4342
</dependencies>
4443

@@ -47,13 +46,26 @@
4746
<plugin>
4847
<groupId>org.apache.maven.plugins</groupId>
4948
<artifactId>maven-compiler-plugin</artifactId>
50-
<version>2.3.2</version>
49+
<version>3.13.0</version>
5150
<configuration>
5251
<encoding>UTF-8</encoding>
5352
<source>1.8</source>
5453
<target>1.8</target>
5554
</configuration>
5655
</plugin>
56+
<plugin>
57+
<groupId>org.apache.maven.plugins</groupId>
58+
<artifactId>maven-shade-plugin</artifactId>
59+
<version>3.2.0</version>
60+
<executions>
61+
<execution>
62+
<phase>package</phase>
63+
<goals>
64+
<goal>shade</goal>
65+
</goals>
66+
</execution>
67+
</executions>
68+
</plugin>
5769
</plugins>
5870
</build>
5971

src/main/java/net/hypixel/modapi/data/Environment.java

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/main/java/net/hypixel/modapi/packet/HypixelPacketType.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import net.hypixel.modapi.packet.impl.clientbound.ClientboundLocationPacket;
44
import net.hypixel.modapi.packet.impl.clientbound.ClientboundPartyInfoPacket;
55
import net.hypixel.modapi.packet.impl.clientbound.ClientboundPingPacket;
6+
import net.hypixel.modapi.packet.impl.clientbound.ClientboundPlayerInfoPacket;
67
import net.hypixel.modapi.serializer.PacketSerializer;
78
import org.jetbrains.annotations.Nullable;
89

@@ -15,6 +16,7 @@ public enum HypixelPacketType {
1516
PING(ClientboundPingPacket::new),
1617
LOCATION(ClientboundLocationPacket::new),
1718
PARTY_INFO(ClientboundPartyInfoPacket::new),
19+
PLAYER_INFO(ClientboundPlayerInfoPacket::new),
1820
;
1921
private static final String IDENTIFIER_PREFIX = "hypixel:";
2022
private static final Map<String, HypixelPacketType> BY_IDENTIFIER = Arrays.stream(values()).collect(HashMap::new, (map, type) -> map.put(type.getIdentifier(), type), HashMap::putAll);

src/main/java/net/hypixel/modapi/packet/impl/VersionedPacket.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,22 @@
44
import net.hypixel.modapi.serializer.PacketSerializer;
55

66
public abstract class VersionedPacket implements HypixelPacket {
7-
private final byte version;
7+
private final int version;
88

9-
public VersionedPacket(byte version) {
9+
public VersionedPacket(int version) {
1010
this.version = version;
1111
}
1212

1313
public VersionedPacket(PacketSerializer byteBuf) {
14-
this.version = byteBuf.readByte();
14+
this.version = byteBuf.readVarInt();
1515
}
1616

1717
@Override
1818
public void write(PacketSerializer serializer) {
19-
serializer.writeByte(version);
19+
serializer.writeVarInt(version);
2020
}
2121

22-
public byte getVersion() {
22+
public int getVersion() {
2323
return version;
2424
}
2525

src/main/java/net/hypixel/modapi/packet/impl/clientbound/ClientboundLocationPacket.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package net.hypixel.modapi.packet.impl.clientbound;
22

3-
import net.hypixel.modapi.data.Environment;
3+
import net.hypixel.data.region.Environment;
4+
import net.hypixel.data.type.ServerType;
45
import net.hypixel.modapi.packet.HypixelPacketType;
56
import net.hypixel.modapi.packet.impl.VersionedPacket;
67
import net.hypixel.modapi.serializer.PacketSerializer;
@@ -9,21 +10,21 @@
910
import java.util.Optional;
1011

1112
public class ClientboundLocationPacket extends VersionedPacket {
12-
private static final byte CURRENT_VERSION = 1;
13+
private static final int CURRENT_VERSION = 1;
1314

1415
private final Environment environment;
1516
private final String proxyName;
1617
private final String serverName;
1718
@Nullable
18-
private final String serverType;
19+
private final ServerType serverType;
1920
@Nullable
2021
private final String lobbyName;
2122
@Nullable
2223
private final String mode;
2324
@Nullable
2425
private final String map;
2526

26-
public ClientboundLocationPacket(Environment environment, String proxyName, String serverName, @Nullable String serverType, @Nullable String lobbyName, @Nullable String mode, @Nullable String map) {
27+
public ClientboundLocationPacket(Environment environment, String proxyName, String serverName, @Nullable ServerType serverType, @Nullable String lobbyName, @Nullable String mode, @Nullable String map) {
2728
super(CURRENT_VERSION);
2829
this.environment = environment;
2930
this.proxyName = proxyName;
@@ -36,10 +37,10 @@ public ClientboundLocationPacket(Environment environment, String proxyName, Stri
3637

3738
public ClientboundLocationPacket(PacketSerializer serializer) {
3839
super(serializer);
39-
this.environment = Environment.VALUES[serializer.readVarInt()];
40+
this.environment = Environment.getById(serializer.readVarInt()).orElseThrow(() -> new IllegalArgumentException("Invalid environment ID"));
4041
this.proxyName = serializer.readString();
4142
this.serverName = serializer.readString();
42-
this.serverType = serializer.readBoolean() ? serializer.readString() : null;
43+
this.serverType = serializer.readBoolean() ? ServerType.valueOf(serializer.readString()).orElse(null) : null;
4344
this.lobbyName = serializer.readBoolean() ? serializer.readString() : null;
4445
this.mode = serializer.readBoolean() ? serializer.readString() : null;
4546
this.map = serializer.readBoolean() ? serializer.readString() : null;
@@ -59,7 +60,7 @@ public void write(PacketSerializer serializer) {
5960

6061
serializer.writeBoolean(serverType != null);
6162
if (serverType != null) {
62-
serializer.writeString(serverType);
63+
serializer.writeString(serverType.name());
6364
}
6465

6566
serializer.writeBoolean(lobbyName != null);
@@ -90,7 +91,7 @@ public String getServerName() {
9091
return serverName;
9192
}
9293

93-
public Optional<String> getServerType() {
94+
public Optional<ServerType> getServerType() {
9495
return Optional.ofNullable(serverType);
9596
}
9697

src/main/java/net/hypixel/modapi/packet/impl/clientbound/ClientboundPartyInfoPacket.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import java.util.*;
99

1010
public class ClientboundPartyInfoPacket extends VersionedPacket {
11-
private static final byte CURRENT_VERSION = 1;
11+
private static final int CURRENT_VERSION = 1;
1212

1313
private final boolean inParty;
1414
private final UUID leader;

src/main/java/net/hypixel/modapi/packet/impl/clientbound/ClientboundPingPacket.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import net.hypixel.modapi.serializer.PacketSerializer;
66

77
public class ClientboundPingPacket extends VersionedPacket {
8-
private static final byte CURRENT_VERSION = 1;
8+
private static final int CURRENT_VERSION = 1;
99

1010
private final String response;
1111

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package net.hypixel.modapi.packet.impl.clientbound;
2+
3+
import net.hypixel.data.rank.MonthlyPackageRank;
4+
import net.hypixel.data.rank.PackageRank;
5+
import net.hypixel.data.rank.PlayerRank;
6+
import net.hypixel.modapi.packet.HypixelPacketType;
7+
import net.hypixel.modapi.packet.impl.VersionedPacket;
8+
import net.hypixel.modapi.serializer.PacketSerializer;
9+
import org.jetbrains.annotations.Nullable;
10+
11+
import java.util.Optional;
12+
13+
public class ClientboundPlayerInfoPacket extends VersionedPacket {
14+
private static final int CURRENT_VERSION = 1;
15+
16+
private final PlayerRank playerRank;
17+
private final PackageRank packageRank;
18+
private final MonthlyPackageRank monthlyPackageRank;
19+
@Nullable
20+
private final String prefix;
21+
22+
public ClientboundPlayerInfoPacket(PlayerRank playerRank, PackageRank packageRank, MonthlyPackageRank monthlyPackageRank, @Nullable String prefix) {
23+
super(CURRENT_VERSION);
24+
this.playerRank = playerRank;
25+
this.packageRank = packageRank;
26+
this.monthlyPackageRank = monthlyPackageRank;
27+
this.prefix = prefix;
28+
}
29+
30+
public ClientboundPlayerInfoPacket(PacketSerializer serializer) {
31+
super(serializer);
32+
this.playerRank = PlayerRank.getById(serializer.readVarInt()).orElseThrow(() -> new IllegalArgumentException("Invalid player rank ID"));
33+
this.packageRank = PackageRank.getById(serializer.readVarInt()).orElseThrow(() -> new IllegalArgumentException("Invalid package rank ID"));
34+
this.monthlyPackageRank = MonthlyPackageRank.getById(serializer.readVarInt()).orElseThrow(() -> new IllegalArgumentException("Invalid monthly package rank ID"));
35+
this.prefix = serializer.readBoolean() ? serializer.readString() : null;
36+
}
37+
38+
@Override
39+
public HypixelPacketType getType() {
40+
return HypixelPacketType.PLAYER_INFO;
41+
}
42+
43+
@Override
44+
public void write(PacketSerializer serializer) {
45+
super.write(serializer);
46+
serializer.writeVarInt(playerRank.getId());
47+
serializer.writeVarInt(packageRank.getId());
48+
serializer.writeVarInt(monthlyPackageRank.getId());
49+
serializer.writeBoolean(prefix != null);
50+
if (prefix != null) {
51+
serializer.writeString(prefix);
52+
}
53+
}
54+
55+
public PlayerRank getPlayerRank() {
56+
return playerRank;
57+
}
58+
59+
public PackageRank getPackageRank() {
60+
return packageRank;
61+
}
62+
63+
public MonthlyPackageRank getMonthlyPackageRank() {
64+
return monthlyPackageRank;
65+
}
66+
67+
public Optional<String> getPrefix() {
68+
return Optional.ofNullable(prefix);
69+
}
70+
71+
@Override
72+
public String toString() {
73+
return "ClientboundPlayerInfoPacket{" +
74+
"playerRank=" + playerRank +
75+
", packageRank=" + packageRank +
76+
", monthlyPackageRank=" + monthlyPackageRank +
77+
", prefix='" + prefix + '\'' +
78+
"} " + super.toString();
79+
}
80+
}

src/main/java/net/hypixel/modapi/packet/impl/serverbound/ServerboundLocationPacket.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import net.hypixel.modapi.serializer.PacketSerializer;
66

77
public class ServerboundLocationPacket extends VersionedPacket {
8-
private static final byte CURRENT_VERSION = 1;
8+
private static final int CURRENT_VERSION = 1;
99

1010
public ServerboundLocationPacket() {
1111
super(CURRENT_VERSION);

src/main/java/net/hypixel/modapi/packet/impl/serverbound/ServerboundPartyInfoPacket.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import net.hypixel.modapi.serializer.PacketSerializer;
66

77
public class ServerboundPartyInfoPacket extends VersionedPacket {
8-
private static final byte CURRENT_VERSION = 1;
8+
private static final int CURRENT_VERSION = 1;
99

1010
public ServerboundPartyInfoPacket() {
1111
super(CURRENT_VERSION);

0 commit comments

Comments
 (0)