Skip to content

Commit

Permalink
apparently the client tick event runs while the client player doesn't…
Browse files Browse the repository at this point in the history
… exist
  • Loading branch information
Mari023 committed Sep 30, 2024
1 parent 96933d2 commit e2f74b1
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 10 deletions.
5 changes: 4 additions & 1 deletion src/main/java/de/mari_023/ae2wtlib/AE2wtlibForge.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package de.mari_023.ae2wtlib;

import net.minecraft.client.Minecraft;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.RegistryFriendlyByteBuf;
import net.minecraft.network.codec.StreamCodec;
Expand Down Expand Up @@ -147,6 +148,8 @@ public static void handle(ArrowLooseEvent event) {

@SubscribeEvent
public static void handle(ClientTickEvent.Post event) {
ClientTerminalHandler.get().checkTerminal();
if (Minecraft.getInstance().player == null)
return;
ClientTerminalHandler.get(Minecraft.getInstance().player).checkTerminal();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public abstract class RestockRender {
public void renderGuiItemOverlay(Font font, ItemStack stack, int x, int y, CallbackInfo ci) {
if (Minecraft.getInstance().player == null || Minecraft.getInstance().player.isCreative())
return;
ClientTerminalHandler handler = ClientTerminalHandler.get();
ClientTerminalHandler handler = ClientTerminalHandler.get(Minecraft.getInstance().player);
if (!handler.isRestockEnabled() || stack.getCount() == 1 || !handler.isRestockAble(stack))
return;
renderItemDecorations(font, stack, x, y, ReadableNumberConverter.format(handler.getAccessibleAmount(stack), 3));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import com.google.common.collect.Maps;

import net.minecraft.client.player.LocalPlayer;
import net.minecraft.core.Holder;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.RegistryFriendlyByteBuf;
Expand All @@ -27,7 +28,9 @@ public record RestockAmountPacket(HashMap<Holder<Item>, Long> items) implements
public void processPacketData(Player player) {
HashMap<Item, Long> map = Maps.newHashMapWithExpectedSize(items().size());
items().forEach((item, count) -> map.put(item.value(), count));
ClientTerminalHandler.get().setRestockAbleItems(map);
if (!(player instanceof LocalPlayer localPlayer))
return;
ClientTerminalHandler.get(localPlayer).setRestockAbleItems(map);
}

@Override
Expand Down
18 changes: 11 additions & 7 deletions src/main/java/de/mari_023/ae2wtlib/wct/ClientTerminalHandler.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
package de.mari_023.ae2wtlib.wct;

import java.util.HashMap;
import java.util.Objects;

import org.jetbrains.annotations.Nullable;

import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
Expand All @@ -16,14 +15,19 @@ public class ClientTerminalHandler {
@Nullable
private static ClientTerminalHandler instance;

private final Player player = Objects.requireNonNull(Minecraft.getInstance().player);
private final CraftingTerminalHandler craftingHandler = CraftingTerminalHandler.getCraftingTerminalHandler(player);
private final Player player;
private final CraftingTerminalHandler craftingHandler;
private HashMap<Item, Long> restockAbleItems = new HashMap<>();
private boolean restockEnabled = false;

public static ClientTerminalHandler get() {
if (instance == null || instance.player != Minecraft.getInstance().player)
instance = new ClientTerminalHandler();
public ClientTerminalHandler(Player player) {
this.player = player;
craftingHandler = CraftingTerminalHandler.getCraftingTerminalHandler(player);
}

public static ClientTerminalHandler get(LocalPlayer player) {
if (instance == null || instance.player != player)
instance = new ClientTerminalHandler(player);

return instance;
}
Expand Down

0 comments on commit e2f74b1

Please sign in to comment.