Skip to content

Commit 794207b

Browse files
authored
feat: port to 26.1 (#10)
1 parent b75a53e commit 794207b

7 files changed

Lines changed: 56 additions & 51 deletions

File tree

build.gradle

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
plugins {
2-
id 'fabric-loom' version '1.10-SNAPSHOT'
2+
id 'net.fabricmc.fabric-loom' version '1.15-SNAPSHOT'
33
id 'maven-publish'
44
}
55

@@ -25,11 +25,10 @@ repositories {
2525
dependencies {
2626
// To change the versions see the gradle.properties file
2727
minecraft "com.mojang:minecraft:${project.minecraft_version}"
28-
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
29-
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
30-
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
28+
implementation "net.fabricmc:fabric-loader:${project.loader_version}"
29+
implementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
3130

32-
include modImplementation("net.hypixel:mod-api:${project.mod_api_version}")
31+
include implementation("net.hypixel:mod-api:${project.mod_api_version}")
3332
}
3433

3534
processResources {
@@ -45,7 +44,7 @@ processResources {
4544
}
4645
}
4746

48-
def targetJavaVersion = 17
47+
def targetJavaVersion = 25
4948
tasks.withType(JavaCompile).configureEach {
5049
// ensure that the encoding is set to UTF-8, no matter what the system default is
5150
// this fixes some edge cases with special characters not displaying correctly

gradle.properties

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@ org.gradle.jvmargs=-Xmx1G
33

44
# Fabric Properties
55
# check these on https://modmuss50.me/fabric.html
6-
minecraft_version=1.21
7-
yarn_mappings=1.21+build.9
8-
loader_version=0.16.10
6+
minecraft_version=26.1
7+
loader_version=0.18.4
98

109
# Mod Properties
1110
mod_version = 1.0.1+build.dev
@@ -15,4 +14,4 @@ org.gradle.jvmargs=-Xmx1G
1514

1615
# Dependencies
1716
# check this on https://modmuss50.me/fabric.html
18-
fabric_version=0.102.0+1.21
17+
fabric_version=0.143.14+26.1

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

src/main/java/net/hypixel/modapi/fabric/FabricModAPI.java

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package net.hypixel.modapi.fabric;
22

33
import com.mojang.logging.LogUtils;
4+
import io.netty.buffer.ByteBuf;
45
import net.fabricmc.api.ClientModInitializer;
56
import net.fabricmc.fabric.api.client.networking.v1.ClientConfigurationNetworking;
67
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
78
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
9+
import net.fabricmc.fabric.api.gametest.v1.GameTest;
810
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
911
import net.fabricmc.loader.api.FabricLoader;
1012
import net.hypixel.modapi.HypixelModAPI;
@@ -16,12 +18,10 @@
1618
import net.hypixel.modapi.packet.HypixelPacket;
1719
import net.hypixel.modapi.packet.impl.clientbound.ClientboundHelloPacket;
1820
import net.hypixel.modapi.packet.impl.clientbound.event.ClientboundLocationPacket;
19-
import net.minecraft.client.MinecraftClient;
20-
import net.minecraft.network.PacketByteBuf;
21-
import net.minecraft.network.codec.PacketCodec;
22-
import net.minecraft.network.packet.CustomPayload;
23-
import net.minecraft.test.GameTest;
24-
import net.minecraft.util.Identifier;
21+
import net.minecraft.client.Minecraft;
22+
import net.minecraft.network.codec.StreamCodec;
23+
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
24+
import net.minecraft.resources.Identifier;
2525
import org.jetbrains.annotations.ApiStatus;
2626
import org.slf4j.Logger;
2727

@@ -58,7 +58,7 @@ public boolean sendPacket(HypixelPacket packet) {
5858

5959
ServerboundHypixelPayload hypixelPayload = new ServerboundHypixelPayload(packet);
6060

61-
if (MinecraftClient.getInstance().getNetworkHandler() != null) {
61+
if (Minecraft.getInstance().getConnection() != null) {
6262
ClientPlayNetworking.send(hypixelPayload);
6363
return true;
6464
}
@@ -105,10 +105,12 @@ public static void reloadRegistrations() {
105105

106106
private static void registerClientbound(String identifier) {
107107
try {
108-
CustomPayload.Id<ClientboundHypixelPayload> clientboundId = new CustomPayload.Id<>(Identifier.of(identifier));
109-
PacketCodec<PacketByteBuf, ClientboundHypixelPayload> codec = ClientboundHypixelPayload.buildCodec(clientboundId);
110-
PayloadTypeRegistry.playS2C().register(clientboundId, codec);
111-
PayloadTypeRegistry.configurationS2C().register(clientboundId, codec);
108+
CustomPacketPayload.Type<ClientboundHypixelPayload> clientboundId = new CustomPacketPayload.Type<>(
109+
Identifier.parse(identifier)
110+
);
111+
StreamCodec<ByteBuf, ClientboundHypixelPayload> codec = ClientboundHypixelPayload.buildCodec(clientboundId);
112+
PayloadTypeRegistry.clientboundPlay().register(clientboundId, codec);
113+
PayloadTypeRegistry.clientboundConfiguration().register(clientboundId, codec);
112114

113115
// Also register the global receiver for handling incoming packets during PLAY and CONFIGURATION
114116
ClientPlayNetworking.registerGlobalReceiver(clientboundId, (payload, context) -> {
@@ -157,10 +159,12 @@ private static void handleIncomingPayload(String identifier, ClientboundHypixelP
157159

158160
private static void registerServerbound(String identifier) {
159161
try {
160-
CustomPayload.Id<ServerboundHypixelPayload> serverboundId = new CustomPayload.Id<>(Identifier.of(identifier));
161-
PacketCodec<PacketByteBuf, ServerboundHypixelPayload> codec = ServerboundHypixelPayload.buildCodec(serverboundId);
162-
PayloadTypeRegistry.playC2S().register(serverboundId, codec);
163-
PayloadTypeRegistry.configurationC2S().register(serverboundId, codec);
162+
CustomPacketPayload.Type<ServerboundHypixelPayload> serverboundId = new CustomPacketPayload.Type<>(
163+
Identifier.parse(identifier)
164+
);
165+
StreamCodec<ByteBuf, ServerboundHypixelPayload> codec = ServerboundHypixelPayload.buildCodec();
166+
PayloadTypeRegistry.serverboundPlay().register(serverboundId, codec);
167+
PayloadTypeRegistry.serverboundConfiguration().register(serverboundId, codec);
164168
} catch (IllegalArgumentException ignored) {
165169
// Ignored as this is fired when we reload the registrations and the packet is already registered
166170
}

src/main/java/net/hypixel/modapi/fabric/payload/ClientboundHypixelPayload.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
package net.hypixel.modapi.fabric.payload;
22

3+
import io.netty.buffer.ByteBuf;
34
import net.hypixel.modapi.HypixelModAPI;
45
import net.hypixel.modapi.error.ErrorReason;
56
import net.hypixel.modapi.packet.ClientboundHypixelPacket;
67
import net.hypixel.modapi.serializer.PacketSerializer;
7-
import net.minecraft.network.PacketByteBuf;
8-
import net.minecraft.network.codec.PacketCodec;
9-
import net.minecraft.network.packet.CustomPayload;
8+
import net.minecraft.network.codec.StreamCodec;
9+
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
10+
import org.jspecify.annotations.NonNull;
1011

11-
public class ClientboundHypixelPayload implements CustomPayload {
12-
private final Id<ClientboundHypixelPayload> id;
12+
public class ClientboundHypixelPayload implements CustomPacketPayload {
13+
private final Type<ClientboundHypixelPayload> type;
1314

1415
private ClientboundHypixelPacket packet;
1516
private ErrorReason errorReason;
1617

17-
private ClientboundHypixelPayload(Id<ClientboundHypixelPayload> id, PacketByteBuf buf) {
18-
this.id = id;
18+
private ClientboundHypixelPayload(Type<ClientboundHypixelPayload> type, ByteBuf buf) {
19+
this.type = type;
1920

2021
PacketSerializer serializer = new PacketSerializer(buf);
2122
boolean success = serializer.readBoolean();
@@ -24,12 +25,12 @@ private ClientboundHypixelPayload(Id<ClientboundHypixelPayload> id, PacketByteBu
2425
return;
2526
}
2627

27-
this.packet = HypixelModAPI.getInstance().getRegistry().createClientboundPacket(id.id().toString(), serializer);
28+
this.packet = HypixelModAPI.getInstance().getRegistry().createClientboundPacket(type.id().toString(), serializer);
2829
}
2930

3031
@Override
31-
public Id<? extends CustomPayload> getId() {
32-
return id;
32+
public @NonNull Type<? extends CustomPacketPayload> type() {
33+
return type;
3334
}
3435

3536
public boolean isSuccess() {
@@ -44,8 +45,8 @@ public ErrorReason getErrorReason() {
4445
return errorReason;
4546
}
4647

47-
public static PacketCodec<PacketByteBuf, ClientboundHypixelPayload> buildCodec(Id<ClientboundHypixelPayload> id) {
48-
return CustomPayload.codecOf((value, buf) -> {
48+
public static StreamCodec<ByteBuf, ClientboundHypixelPayload> buildCodec(Type<ClientboundHypixelPayload> id) {
49+
return CustomPacketPayload.codec((value, buf) -> {
4950
throw new UnsupportedOperationException("Cannot write ClientboundHypixelPayload");
5051
}, buf -> new ClientboundHypixelPayload(id, buf));
5152
}

src/main/java/net/hypixel/modapi/fabric/payload/ServerboundHypixelPayload.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,35 @@
11
package net.hypixel.modapi.fabric.payload;
22

3+
import io.netty.buffer.ByteBuf;
34
import net.hypixel.modapi.packet.HypixelPacket;
45
import net.hypixel.modapi.serializer.PacketSerializer;
5-
import net.minecraft.network.PacketByteBuf;
6-
import net.minecraft.network.codec.PacketCodec;
7-
import net.minecraft.network.packet.CustomPayload;
8-
import net.minecraft.util.Identifier;
6+
import net.minecraft.network.codec.StreamCodec;
7+
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
8+
import net.minecraft.resources.Identifier;
9+
import org.jspecify.annotations.NonNull;
910

10-
public class ServerboundHypixelPayload implements CustomPayload {
11-
private final Id<ServerboundHypixelPayload> id;
11+
public class ServerboundHypixelPayload implements CustomPacketPayload {
12+
private final Type<ServerboundHypixelPayload> type;
1213
private final HypixelPacket packet;
1314

1415
public ServerboundHypixelPayload(HypixelPacket packet) {
15-
this.id = new CustomPayload.Id<>(Identifier.of(packet.getIdentifier()));
16+
this.type = new CustomPacketPayload.Type<>(Identifier.parse(packet.getIdentifier()));
1617
this.packet = packet;
1718
}
1819

19-
private void write(PacketByteBuf buf) {
20+
private void write(ByteBuf buf) {
2021
PacketSerializer serializer = new PacketSerializer(buf);
2122
packet.write(serializer);
2223
}
2324

25+
2426
@Override
25-
public Id<? extends CustomPayload> getId() {
26-
return id;
27+
public @NonNull Type<? extends CustomPacketPayload> type() {
28+
return type;
2729
}
2830

29-
public static PacketCodec<PacketByteBuf, ServerboundHypixelPayload> buildCodec(Id<ServerboundHypixelPayload> id) {
30-
return CustomPayload.codecOf(ServerboundHypixelPayload::write, buf -> {
31+
public static StreamCodec<ByteBuf, ServerboundHypixelPayload> buildCodec() {
32+
return CustomPacketPayload.codec(ServerboundHypixelPayload::write, _ -> {
3133
throw new UnsupportedOperationException("Cannot read ServerboundHypixelPayload");
3234
});
3335
}

src/main/resources/fabric.mod.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
},
1919
"depends": {
2020
"fabricloader": ">=${loader_version}",
21-
"fabric": "*",
21+
"fabric-api": "*",
2222
"minecraft": ">=${minecraft_version}"
2323
}
2424
}

0 commit comments

Comments
 (0)