This repository has been archived by the owner on Dec 15, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
bb2b325
commit bc605ec
Showing
12 changed files
with
267 additions
and
312 deletions.
There are no files selected for viewing
160 changes: 115 additions & 45 deletions
160
src/main/java/io/wispforest/gadget/dump/read/handler/FapiSupport.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,64 +1,134 @@ | ||
package io.wispforest.gadget.dump.read.handler; | ||
|
||
import io.wispforest.gadget.dump.read.unwrapped.FieldsUnwrappedPacket; | ||
import io.wispforest.gadget.dump.read.unwrapped.LinesUnwrappedPacket; | ||
import io.wispforest.gadget.util.ErrorSink; | ||
import net.minecraft.network.PacketByteBuf; | ||
import io.wispforest.gadget.util.NetworkUtil; | ||
import net.fabricmc.fabric.impl.networking.CommonRegisterPayload; | ||
import net.fabricmc.fabric.impl.networking.CommonVersionPayload; | ||
import net.fabricmc.fabric.impl.networking.RegistrationPayload; | ||
import net.fabricmc.fabric.impl.recipe.ingredient.CustomIngredientPayloadC2S; | ||
import net.fabricmc.fabric.impl.recipe.ingredient.CustomIngredientPayloadS2C; | ||
import net.minecraft.text.Text; | ||
import net.minecraft.util.Formatting; | ||
import net.minecraft.util.Identifier; | ||
import org.jetbrains.annotations.Nullable; | ||
|
||
import java.util.List; | ||
import java.util.Objects; | ||
import java.util.Arrays; | ||
import java.util.function.Consumer; | ||
import java.util.stream.Collectors; | ||
|
||
@SuppressWarnings("UnstableApiUsage") | ||
public final class FapiSupport { | ||
// public static final Identifier EARLY_REGISTRATION_CHANNEL = new Identifier("fabric-networking-api-v1", "early_registration"); | ||
|
||
private FapiSupport() { | ||
|
||
} | ||
|
||
public static void init() { | ||
// PacketUnwrapper.EVENT.register((packet, errSink) -> { | ||
// PacketType<?> type = FabricPacketHacks.getForId(packet.channelId()); | ||
// | ||
// if (type == null) return null; | ||
// | ||
// PacketByteBuf buf = packet.wrappedBuf(); | ||
// Object unwrapped = type.read(buf); | ||
// | ||
// return new FabricObjectPacket(unwrapped); | ||
// }); | ||
// | ||
// PacketUnwrapper.EVENT.register((packet, errSink) -> { | ||
// if (!Objects.equals(packet.channelId(), EARLY_REGISTRATION_CHANNEL)) return null; | ||
// | ||
// PacketByteBuf buf = packet.wrappedBuf(); | ||
// List<Identifier> channels = buf.readList(PacketByteBuf::readIdentifier); | ||
// | ||
// return new EarlyRegisterPacket(channels); | ||
// }); | ||
PacketUnwrapper.EVENT.register((packet, errSink) -> { | ||
if (!(NetworkUtil.unwrapCustom(packet.packet()) instanceof RegistrationPayload payload)) return null; | ||
|
||
return new MinecraftRegisterPacket(payload); | ||
}); | ||
|
||
PacketUnwrapper.EVENT.register((packet, errSink) -> { | ||
if (!(NetworkUtil.unwrapCustom(packet.packet()) instanceof CommonVersionPayload payload)) return null; | ||
|
||
return new CommonVersionPacket(payload); | ||
}); | ||
|
||
PacketUnwrapper.EVENT.register((packet, errSink) -> { | ||
if (!(NetworkUtil.unwrapCustom(packet.packet()) instanceof CommonRegisterPayload payload)) return null; | ||
|
||
return new CommonRegisterPacket(payload); | ||
}); | ||
|
||
PacketUnwrapper.EVENT.register((packet, errSink) -> { | ||
if (!(NetworkUtil.unwrapCustom(packet.packet()) instanceof CustomIngredientPayloadS2C payload)) return null; | ||
|
||
return new CustomIngredientS2CPacket(payload); | ||
}); | ||
|
||
PacketUnwrapper.EVENT.register((packet, errSink) -> { | ||
if (!(NetworkUtil.unwrapCustom(packet.packet()) instanceof CustomIngredientPayloadC2S payload)) return null; | ||
|
||
return new CustomIngredientC2SPacket(payload); | ||
}); | ||
} | ||
|
||
// public record FabricObjectPacket(Object unwrapped) implements FieldsUnwrappedPacket { | ||
// @Override | ||
// public @Nullable Object rawFieldsObject() { | ||
// return unwrapped; | ||
// } | ||
// } | ||
// | ||
// public record EarlyRegisterPacket(List<Identifier> channels) implements LinesUnwrappedPacket { | ||
// @Override | ||
// public void render(Consumer<Text> out, ErrorSink errSink) { | ||
// for (Identifier channel : channels) { | ||
// out.accept( | ||
// Text.literal("+ ") | ||
// .formatted(Formatting.GREEN) | ||
// .append(Text.literal(channel.toString()) | ||
// .formatted(Formatting.GRAY))); | ||
// } | ||
// } | ||
// } | ||
public record MinecraftRegisterPacket(RegistrationPayload payload) implements LinesUnwrappedPacket { | ||
@Override | ||
public void render(Consumer<Text> out, ErrorSink errSink) { | ||
Text header = !(payload.id() == RegistrationPayload.UNREGISTER) | ||
? Text.literal("+ ") | ||
.formatted(Formatting.GREEN) | ||
: Text.literal("- ") | ||
.formatted(Formatting.RED); | ||
|
||
for (Identifier channel : payload.channels()) { | ||
out.accept( | ||
Text.literal("") | ||
.append(header) | ||
.append(Text.literal(channel.toString()) | ||
.formatted(Formatting.GRAY))); | ||
} | ||
} | ||
} | ||
|
||
public record CommonVersionPacket(CommonVersionPayload payload) implements LinesUnwrappedPacket { | ||
@Override | ||
public void render(Consumer<Text> out, ErrorSink errSink) { | ||
out.accept( | ||
Text.literal("versions") | ||
.append(Text.literal(" = " + Arrays.stream(payload.versions()) | ||
.mapToObj(Integer::toString) | ||
.collect(Collectors.joining(", "))) | ||
.formatted(Formatting.GRAY))); | ||
} | ||
} | ||
|
||
public record CommonRegisterPacket(CommonRegisterPayload payload) implements LinesUnwrappedPacket { | ||
@Override | ||
public void render(Consumer<Text> out, ErrorSink errSink) { | ||
out.accept(Text.literal("version") | ||
.append(Text.literal(" = " + payload.version()) | ||
.formatted(Formatting.GRAY))); | ||
|
||
out.accept(Text.literal("phase") | ||
.append(Text.literal(" = " + payload.phase()) | ||
.formatted(Formatting.GRAY))); | ||
|
||
for (Identifier channel : payload.channels()) { | ||
out.accept( | ||
Text.literal("+ ") | ||
.formatted(Formatting.GREEN) | ||
.append(Text.literal(channel.toString()) | ||
.formatted(Formatting.GRAY))); | ||
} | ||
} | ||
} | ||
|
||
public record CustomIngredientS2CPacket(CustomIngredientPayloadS2C payload) implements LinesUnwrappedPacket { | ||
@Override | ||
public void render(Consumer<Text> out, ErrorSink errSink) { | ||
out.accept(Text.literal("protocolVersion") | ||
.append(Text.literal(" = " + payload.protocolVersion()) | ||
.formatted(Formatting.GRAY))); | ||
} | ||
} | ||
|
||
public record CustomIngredientC2SPacket(CustomIngredientPayloadC2S payload) implements LinesUnwrappedPacket { | ||
@Override | ||
public void render(Consumer<Text> out, ErrorSink errSink) { | ||
out.accept(Text.literal("protocolVersion") | ||
.append(Text.literal(" = " + payload.protocolVersion()) | ||
.formatted(Formatting.GRAY))); | ||
|
||
for (Identifier serializer : payload.registeredSerializers()) { | ||
out.accept( | ||
Text.literal("+ ") | ||
.formatted(Formatting.GREEN) | ||
.append(Text.literal(serializer.toString()) | ||
.formatted(Formatting.GRAY))); | ||
} | ||
} | ||
} | ||
} |
94 changes: 0 additions & 94 deletions
94
src/main/java/io/wispforest/gadget/dump/read/handler/MinecraftSupport.java
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.