[CHORE] Backport from 1.20.3

This commit is contained in:
2024-01-02 00:14:41 +02:00
parent dfa8a3d55f
commit 556dd63c8f
20 changed files with 88 additions and 142 deletions

View File

@@ -19,15 +19,8 @@ public class CraterAdvancementEvent extends CraterEvent {
this.player = player;
this.advancement = advancement;
Optional<DisplayInfo> displayInfo = advancement.display();
if (displayInfo.isPresent()) {
this.title = displayInfo.get().getTitle();
this.description = displayInfo.get().getDescription();
} else {
this.title = Component.literal("Unknown");
this.description = Component.literal("Unknown");
}
this.title = advancement.getDisplay().getTitle();
this.description = advancement.getDisplay().getDescription();
}
public Advancement getAdvancement() {

View File

@@ -179,6 +179,7 @@ public class CraterConfigScreen extends Screen {
@Override
public void render(@NotNull GuiGraphics matrices, int mouseX, int mouseY, float delta) {
overlayBackground(matrices.pose(), TOP, height - BOTTOM, 32);
renderScrollBar();
matrices.pose().pushPose();
@@ -187,9 +188,8 @@ public class CraterConfigScreen extends Screen {
overlayBackground(matrices.pose(), height - BOTTOM, height, 64);
renderShadow(matrices.pose());
matrices.drawCenteredString(font, getTitle(), width / 2, 9, 0xFFFFFF);
matrices.pose().popPose();
super.render(matrices, mouseX, mouseY, delta);
matrices.pose().popPose();
int y = (int) (TOP + 4 - Math.round(scrollerAmount));
for (Option<?> option : options) {
@@ -266,11 +266,12 @@ public class CraterConfigScreen extends Screen {
}
protected void overlayBackground(Matrix4f matrix, int minX, int minY, int maxX, int maxY, int red, int green, int blue, int startAlpha, int endAlpha) {
Tesselator tesselator = Tesselator.getInstance();
BufferBuilder buffer = tesselator.getBuilder();
RenderSystem.setShader(GameRenderer::getPositionTexColorShader);
RenderSystem.setShaderTexture(0, Screen.BACKGROUND_LOCATION);
RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f);
RenderSystem.setShader(GameRenderer::getPositionTexColorShader);
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();
buffer.vertex(matrix, maxX, maxY, 0.0F).uv(maxX / 32.0F, maxY / 32.0F).color(red, green, blue, endAlpha).endVertex();
@@ -334,12 +335,12 @@ public class CraterConfigScreen extends Screen {
}
@Override
public boolean mouseScrolled(double d, double e, double f, double g) {
public boolean mouseScrolled(double d, double e, double f) {
if (e >= TOP && e <= height - BOTTOM) {
scrollerAmount = Mth.clamp(scrollerAmount - f * 16.0D, 0, scrollHeight());
return true;
}
return super.mouseScrolled(d, e, f, g);
return super.mouseScrolled(d, e, f);
}
@Override

View File

@@ -50,7 +50,7 @@ public class BaseWidget<T> extends Option<T> {
} else {
text.withStyle(ChatFormatting.GRAY);
}
matrices.drawString(font, text, x, y + font.lineHeight - 2, 0xFFFFFF);
matrices.drawString(font, text, x, y, 0xFFFFFF);
resetButton.setX(x + width - 46);
resetButton.setY(y + 1);
resetButton.active = isNotDefault();

View File

@@ -12,7 +12,7 @@ import java.util.function.Supplier;
*/
public interface CraterNetworkHandler {
<T extends CraterPacket<T>> void registerPacket(Class<T> clazz, Supplier<T> supplier, PacketDirection packetDirection);
<T extends CraterPacket<T>> void registerPacket(Class<? extends T> clazz, Supplier<T> supplier, PacketDirection packetDirection);
Packet<?> toServerBound(CraterPacket<?> packet);

View File

@@ -3,7 +3,6 @@ package com.hypherionmc.craterlib.mixin.events;
import com.hypherionmc.craterlib.api.event.server.CraterAdvancementEvent;
import com.hypherionmc.craterlib.core.event.CraterEventBus;
import net.minecraft.advancements.Advancement;
import net.minecraft.advancements.AdvancementHolder;
import net.minecraft.server.PlayerAdvancements;
import net.minecraft.server.level.ServerPlayer;
import org.spongepowered.asm.mixin.Mixin;
@@ -15,16 +14,13 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(PlayerAdvancements.class)
public class PlayerAdvancementsMixin {
@Shadow
private ServerPlayer player;
@Shadow private ServerPlayer player;
@Inject(method = "award", at = @At(value = "INVOKE", target = "Lnet/minecraft/advancements/AdvancementRewards;grant(Lnet/minecraft/server/level/ServerPlayer;)V", shift = At.Shift.AFTER))
private void injectAdvancementEvent(AdvancementHolder advancementHolder, String string, CallbackInfoReturnable<Boolean> cir) {
CraterAdvancementEvent event = new CraterAdvancementEvent(this.player, advancementHolder.value());
private void injectAdvancementEvent(Advancement advancement, String $$1, CallbackInfoReturnable<Boolean> cir) {
CraterAdvancementEvent event = new CraterAdvancementEvent(this.player, advancement);
Advancement advancement = advancementHolder.value();
if (advancement.display().isPresent() && advancement.display().get().shouldAnnounceChat()) {
if (advancement.getDisplay() != null && advancement.getDisplay().shouldAnnounceChat()) {
CraterEventBus.INSTANCE.postEvent(event);
}
}

View File

@@ -8,7 +8,6 @@ import com.mojang.authlib.GameProfile;
import net.minecraft.network.Connection;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.server.network.CommonListenerCookie;
import net.minecraft.server.players.PlayerList;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@@ -29,7 +28,7 @@ public class PlayerListMixin {
}
@Inject(method = "placeNewPlayer", at = @At("TAIL"))
private void injectPlayerLoginEvent(Connection connection, ServerPlayer serverPlayer, CommonListenerCookie commonListenerCookie, CallbackInfo ci) {
private void injectPlayerLoginEvent(Connection connection, ServerPlayer serverPlayer, CallbackInfo ci) {
CraterPlayerEvent.PlayerLoggedIn loggedIn = new CraterPlayerEvent.PlayerLoggedIn(serverPlayer);
CraterEventBus.INSTANCE.postEvent(loggedIn);
}

View File

@@ -3,8 +3,7 @@ package com.hypherionmc.craterlib.mixin.events.client;
import com.hypherionmc.craterlib.api.event.client.CraterSinglePlayerEvent;
import com.hypherionmc.craterlib.core.event.CraterEventBus;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.client.player.AbstractClientPlayer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
@@ -13,12 +12,10 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(ClientLevel.class)
public class ClientLevelMixin {
@Inject(method = "addEntity", at = @At("HEAD"))
private void injectSinglePlayerJoinEvent(Entity entity, CallbackInfo ci) {
if (entity instanceof Player player) {
CraterSinglePlayerEvent.PlayerLogin playerLogin = new CraterSinglePlayerEvent.PlayerLogin(player);
CraterEventBus.INSTANCE.postEvent(playerLogin);
}
@Inject(method = "addPlayer", at = @At("HEAD"))
private void injectSinglePlayerJoinEvent(int $$0, AbstractClientPlayer player, CallbackInfo ci) {
CraterSinglePlayerEvent.PlayerLogin playerLogin = new CraterSinglePlayerEvent.PlayerLogin(player);
CraterEventBus.INSTANCE.postEvent(playerLogin);
}
}

View File

@@ -14,8 +14,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(Minecraft.class)
public class MinecraftMixin {
@Shadow
@Nullable
@Shadow @Nullable
public Screen screen;
@Inject(method = "setScreen", at = @At(value = "TAIL"))

View File

@@ -14,7 +14,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
public class RealmsMainScreenMixin {
@Inject(at = @At("HEAD"), method = "play")
private static void play(RealmsServer serverData, Screen parent, CallbackInfo ci) {
private void play(RealmsServer serverData, Screen parent, CallbackInfo ci) {
PlayerJoinRealmEvent playerJoinRealm = new PlayerJoinRealmEvent(serverData);
CraterEventBus.INSTANCE.postEvent(playerJoinRealm);
}