Skip to content

Commit

Permalink
fixed some issues with remapping
Browse files Browse the repository at this point in the history
  • Loading branch information
MehVahdJukaar committed Aug 3, 2024
1 parent 1c078bd commit 195ee93
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 7 deletions.
2 changes: 1 addition & 1 deletion build.properties
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ mod_name=Zeta
mc_version=1.20.1
mapping_channel=official
mod_id=zeta
build_number=20-event27
build_number=20-event29
dir_output=../Build Output/Zeta/
6 changes: 6 additions & 0 deletions src/main/java/org/violetmoon/zeta/client/ClientTicker.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import net.minecraft.client.Minecraft;
import org.jetbrains.annotations.ApiStatus;
import org.violetmoon.zeta.client.event.play.ZClientTick;
import org.violetmoon.zeta.client.event.play.ZRenderGuiOverlay;
import org.violetmoon.zeta.client.event.play.ZRenderTick;
import org.violetmoon.zeta.event.bus.PlayEvent;

Expand Down Expand Up @@ -37,4 +38,9 @@ public void onEndClientTick(ZClientTick.End event) {
ticksInGame++;
}
}

@PlayEvent
public void pre(ZRenderGuiOverlay.ChatPanel.Pre event) {
int aa = 1;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.apache.commons.lang3.text.WordUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.violetmoon.zeta.client.event.play.ZRenderGuiOverlay;

import java.lang.invoke.MethodHandle;
import java.lang.reflect.Constructor;
Expand All @@ -20,6 +21,7 @@
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.regex.Pattern;

//@SuppressWarnings({"unchecked","rawtypes"})
public class ForgeEventsRemapper<Z, F extends Event> {
Expand Down Expand Up @@ -94,7 +96,7 @@ private <F2 extends F, Z2 extends Z> Consumer<F2> createForgeConsumer(
//special cases fo forge events that are to be sub divided into phases

// for gui overlay event
VanillaGuiOverlay overlay = guessGuiOverlayFromClassName(zetaEventBaseClass, forgeEventClass.getSuperclass());
VanillaGuiOverlay overlay = guessGuiOverlayFromClassName(zetaEventBaseClass, forgeEventClass);
if (overlay != null) {
//here we know that phase must not be null
return event -> {
Expand Down Expand Up @@ -382,7 +384,7 @@ private enum Phase {
NONE, START, END;

private static Phase guessFromClassName(Class<?> zetaEventClass, Class<?> forgeClass) {
if (forgeClass.isAssignableFrom(TickEvent.class)) return NONE;
if (!TickEvent.class.isAssignableFrom(forgeClass)) return NONE;
String simpleName = zetaEventClass.getSimpleName();
if (simpleName.equals("Start")) {
return START;
Expand All @@ -395,12 +397,15 @@ private static Phase guessFromClassName(Class<?> zetaEventClass, Class<?> forgeC
}

private static final Map<Class<?>, VanillaGuiOverlay> GUI_OVERLAY_CACHE = new ConcurrentHashMap<>();
private static final Pattern INNER_CLASS_PATTERN = Pattern.compile("\\$([^$]+)\\$");

@Nullable
private static VanillaGuiOverlay guessGuiOverlayFromClassName(Class<?> zetaEventClass, Class<?> forgeClass) {
if (forgeClass.isAssignableFrom(RenderGuiOverlayEvent.class)) return null;
private static VanillaGuiOverlay guessGuiOverlayFromClassName(Class<?> zetaEventClass, Class<?> forgeEventClass) {
if (!RenderGuiOverlayEvent.class.isAssignableFrom(forgeEventClass)) return null;
return GUI_OVERLAY_CACHE.computeIfAbsent(zetaEventClass, zec -> {
String simpleName = zec.getSimpleName();
var match = INNER_CLASS_PATTERN.matcher(zetaEventClass.getName());
if (!match.find()) return null;
String simpleName = match.group(1);
for (VanillaGuiOverlay overlay : VanillaGuiOverlay.values()) {
if (simpleName.toUpperCase().equals(overlay.name().replace("_", ""))) {

Check warning on line 410 in src/main/java/org/violetmoon/zetaimplforge/event/ForgeEventsRemapper.java

View workflow job for this annotation

GitHub Actions / PMD

Error Prone UnnecessaryCaseChange

Using equalsIgnoreCase() is cleaner than using toUpperCase/toLowerCase().equals().
return overlay;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ public <ZF extends Z, ZB extends Z> void registerWrapper(Class<ZB> baseZetaEvent

// zeta specific ones

r.registerWrapper(ZRecipeCrawl.class, ForgeZRecipeCrawl.Digest.class,
r.registerWrapper(ZRecipeCrawl.Digest.class, ForgeZRecipeCrawl.Digest.class,
ForgeZRecipeCrawl::get, ForgeZRecipeCrawl.Digest::new);
r.registerWrapper(ZRecipeCrawl.Reset.class, ForgeZRecipeCrawl.Reset.class,
ForgeZRecipeCrawl::get, ForgeZRecipeCrawl.Reset::new);
Expand Down

0 comments on commit 195ee93

Please sign in to comment.