[PORT] 1.20.6 port

This commit is contained in:
2024-05-05 23:07:50 +02:00
parent 6dabc7e441
commit 6b6c53265b
29 changed files with 204 additions and 291 deletions

View File

@@ -0,0 +1,19 @@
package com.hypherionmc.craterlib.api.networking;
import com.hypherionmc.craterlib.core.networking.data.PacketHolder;
import com.hypherionmc.craterlib.nojang.network.BridgedFriendlyByteBuf;
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
public record CommonPacketWrapper<T>(PacketHolder<T> container, T packet) implements CustomPacketPayload
{
public void encode(BridgedFriendlyByteBuf buf)
{
container().encoder().accept(packet(), buf);
}
@Override
public Type<? extends CustomPacketPayload> type()
{
return container.type();
}
}

View File

@@ -269,7 +269,7 @@ public class CraterConfigScreen extends Screen {
Tesselator tesselator = Tesselator.getInstance();
BufferBuilder buffer = tesselator.getBuilder();
RenderSystem.setShader(GameRenderer::getPositionTexColorShader);
RenderSystem.setShaderTexture(0, Screen.BACKGROUND_LOCATION);
RenderSystem.setShaderTexture(0, Screen.MENU_BACKGROUND);
RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f);
buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR);
buffer.vertex(matrix, minX, maxY, 0.0F).uv(minX / 32.0F, maxY / 32.0F).color(red, green, blue, endAlpha).endVertex();

View File

@@ -1,5 +1,7 @@
package com.hypherionmc.craterlib.client.gui.config.widgets;
import lombok.Getter;
import lombok.Setter;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.GuiGraphics;
@@ -28,16 +30,10 @@ public abstract class Option<T> extends AbstractContainerEventHandler {
public T value;
public boolean hasErrors;
public List<? extends GuiEventListener> children = new ArrayList<>();
@Setter
@Getter
private List<String> langKeys = new ArrayList<>();
public List<String> getLangKeys() {
return langKeys;
}
public void setLangKeys(List<String> langKeys) {
this.langKeys = langKeys;
}
public abstract void render(Minecraft minecraft, Font font, int x, int y, int width, int height, GuiGraphics matrices, int mouseX, int mouseY, float delta);
public int height() {

View File

@@ -3,6 +3,7 @@ package com.hypherionmc.craterlib.core.networking;
import com.hypherionmc.craterlib.core.networking.data.PacketContext;
import com.hypherionmc.craterlib.nojang.network.BridgedFriendlyByteBuf;
import com.hypherionmc.craterlib.nojang.resources.ResourceIdentifier;
import lombok.Getter;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
@@ -11,6 +12,7 @@ import java.util.function.Function;
/**
* Based on https://github.com/mysticdrew/common-networking/tree/1.20.4
*/
@Getter
public class CraterPacketNetwork {
private final PacketRegistry packetRegistry;
@@ -38,7 +40,4 @@ public class CraterPacketNetwork {
}
}
public PacketRegistry getPacketRegistry() {
return packetRegistry;
}
}

View File

@@ -18,7 +18,7 @@ import java.util.function.Function;
*/
public abstract class PacketRegistry implements CraterNetworkHandler, PacketRegistrar {
final Map<Class<?>, PacketHolder<?>> PACKET_MAP = new HashMap<>();
protected final Map<Class<?>, PacketHolder<?>> PACKET_MAP = new HashMap<>();
protected final PacketSide side;

View File

@@ -1,7 +1,11 @@
package com.hypherionmc.craterlib.core.networking.data;
import com.hypherionmc.craterlib.api.networking.CommonPacketWrapper;
import com.hypherionmc.craterlib.nojang.network.BridgedFriendlyByteBuf;
import com.hypherionmc.craterlib.nojang.resources.ResourceIdentifier;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
@@ -10,9 +14,27 @@ import java.util.function.Function;
/**
* Based on https://github.com/mysticdrew/common-networking/tree/1.20.4
*/
public record PacketHolder<T>(ResourceIdentifier packetId,
public record PacketHolder<T>(CustomPacketPayload.Type<? extends CustomPacketPayload> type,
Class<T> messageType,
BiConsumer<T, BridgedFriendlyByteBuf> encoder,
Function<BridgedFriendlyByteBuf, T> decoder,
Consumer<PacketContext<T>> handler) {
public PacketHolder(ResourceIdentifier packetId, Class<T> messageType, BiConsumer<T, BridgedFriendlyByteBuf> encoder, Function<BridgedFriendlyByteBuf, T> decoder, Consumer<PacketContext<T>> handler) {
this(new CustomPacketPayload.Type<>(packetId.toMojang()), messageType, encoder, decoder, handler);
}
@SuppressWarnings("unchecked")
public <K extends CustomPacketPayload> CustomPacketPayload.Type<K> getType()
{
return (CustomPacketPayload.Type<K>) type();
}
public StreamCodec<FriendlyByteBuf, CommonPacketWrapper> getCodec()
{
return CustomPacketPayload.codec(
(packet, buf) -> this.encoder().accept((T)packet.packet(), BridgedFriendlyByteBuf.of(buf)),
(buf) -> new CommonPacketWrapper<>(this, this.decoder().apply(BridgedFriendlyByteBuf.of(buf))));
}
}

View File

@@ -24,9 +24,9 @@ public class BridgedServerData {
}
public int getMaxPlayers() {
if (!internal.pinged || internal.players == null) {
if (internal.players == null) {
try {
new ServerStatusPinger().pingServer(internal, () -> {});
new ServerStatusPinger().pingServer(internal, () -> {}, () -> {});
} catch (Exception ignored) {}
}

View File

@@ -7,6 +7,7 @@ import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
import net.minecraft.ChatFormatting;
import net.minecraft.Util;
import net.minecraft.core.RegistryAccess;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.Style;
@@ -14,11 +15,11 @@ public class ChatUtils {
public static Component adventureToMojang(net.kyori.adventure.text.Component inComponent) {
final String serialised = GsonComponentSerializer.gson().serialize(inComponent);
return Component.Serializer.fromJson(serialised);
return Component.Serializer.fromJson(serialised, RegistryAccess.EMPTY);
}
public static net.kyori.adventure.text.Component mojangToAdventure(Component inComponent) {
final String serialised = Component.Serializer.toJson(inComponent);
final String serialised = Component.Serializer.toJson(inComponent, RegistryAccess.EMPTY);
return GsonComponentSerializer.gson().deserialize(serialised);
}