Skip to content

Commit cdb66d9

Browse files
committed
Fix legacy ids
1 parent 6d130d3 commit cdb66d9

File tree

10 files changed

+78
-59
lines changed

10 files changed

+78
-59
lines changed

common/src/main/java/com/evandev/fieldguide/client/gui/screens/FieldGuideEntryScreen.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.evandev.fieldguide.config.ModConfig;
2020
import com.evandev.fieldguide.network.RipOutPacket;
2121
import com.evandev.fieldguide.platform.Services;
22+
import com.evandev.fieldguide.util.EntryResolver;
2223
import com.evandev.fieldguide.util.FieldGuideVariantManager;
2324
import com.mojang.blaze3d.systems.RenderSystem;
2425
import net.minecraft.ChatFormatting;
@@ -384,7 +385,7 @@ private void setupDropWidget(boolean unlocked) {
384385
for (String addition : categoryManager.getLootAdditions()) {
385386
String[] parts = addition.split("\\|", 2);
386387
if (parts.length == 2 && categoryManager.isLootMatch(entry, new ResourceLocation(parts[1]))) {
387-
ResourceLocation itemId = new ResourceLocation(parts[1]);
388+
ResourceLocation itemId = EntryResolver.getRawId(new ResourceLocation(parts[1]));
388389
ItemStack stack = new ItemStack(net.minecraft.core.registries.BuiltInRegistries.ITEM.get(itemId));
389390
if (!stack.isEmpty()) {
390391
stack.getOrCreateTag().putFloat("FieldGuideDropChance", 100.0f);

common/src/main/java/com/evandev/fieldguide/client/gui/widget/TabButton.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.evandev.fieldguide.api.Category;
55
import com.evandev.fieldguide.client.ClientFieldGuideManager;
66
import com.evandev.fieldguide.client.gui.screens.BookScreen;
7+
import com.evandev.fieldguide.util.EntryResolver;
78
import net.minecraft.client.gui.GuiGraphics;
89
import net.minecraft.client.gui.components.ImageButton;
910
import net.minecraft.client.gui.components.Tooltip;
@@ -44,7 +45,7 @@ public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float
4445
if (isSelected) iconX = iconX + 1;
4546

4647
ResourceLocation icon = category.getIcon();
47-
Item item = BuiltInRegistries.ITEM.get(icon);
48+
Item item = BuiltInRegistries.ITEM.get(EntryResolver.getRawId(icon));
4849
if (item != BuiltInRegistries.ITEM.get(BuiltInRegistries.ITEM.getDefaultKey())) {
4950
guiGraphics.renderItem(new ItemStack(item), iconX, iconY);
5051
} else {

common/src/main/java/com/evandev/fieldguide/client/scanning/manager/FieldGuideRaytracer.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.evandev.fieldguide.compat.cobblemon.FieldGuideCobblemonCompat;
99
import com.evandev.fieldguide.config.ModConfig;
1010
import com.evandev.fieldguide.platform.Services;
11+
import com.evandev.fieldguide.util.EntryResolver;
1112
import com.evandev.fieldguide.util.FieldGuideVariantManager;
1213
import net.minecraft.client.Minecraft;
1314
import net.minecraft.core.BlockPos;
@@ -87,10 +88,11 @@ public void processScanning(Minecraft minecraft) {
8788
} else if (Services.PLATFORM.isModLoaded("cobblemon") && FieldGuideCobblemonCompat.isPokemon(hitEntity)) {
8889
actualTargetKey = FieldGuideCobblemonCompat.getPokemonEntryId(hitEntity);
8990
} else if (redirectId != null) {
90-
Optional<EntityType<?>> opt = BuiltInRegistries.ENTITY_TYPE.getOptional(redirectId);
91+
ResourceLocation rawRedirectId = EntryResolver.getRawId(redirectId);
92+
Optional<EntityType<?>> opt = BuiltInRegistries.ENTITY_TYPE.getOptional(rawRedirectId);
9193
if (opt.isPresent()) actualTargetKey = opt.get();
9294
else {
93-
Optional<Block> optBlock = BuiltInRegistries.BLOCK.getOptional(redirectId);
95+
Optional<Block> optBlock = BuiltInRegistries.BLOCK.getOptional(rawRedirectId);
9496
if (optBlock.isPresent()) actualTargetKey = optBlock.get();
9597
}
9698
}
@@ -147,10 +149,11 @@ public void processScanning(Minecraft minecraft) {
147149

148150
Object actualTargetKey = block;
149151
if (redirectId != null) {
150-
Optional<Block> opt = BuiltInRegistries.BLOCK.getOptional(redirectId);
152+
ResourceLocation rawRedirectId = EntryResolver.getRawId(redirectId);
153+
Optional<Block> opt = BuiltInRegistries.BLOCK.getOptional(rawRedirectId);
151154
if (opt.isPresent()) actualTargetKey = opt.get();
152155
else {
153-
Optional<EntityType<?>> optEntity = BuiltInRegistries.ENTITY_TYPE.getOptional(redirectId);
156+
Optional<EntityType<?>> optEntity = BuiltInRegistries.ENTITY_TYPE.getOptional(rawRedirectId);
154157
if (optEntity.isPresent()) actualTargetKey = optEntity.get();
155158
}
156159
}
@@ -171,10 +174,11 @@ public void processScanning(Minecraft minecraft) {
171174

172175
Object actualTargetKey = block;
173176
if (redirectId != null) {
174-
Optional<Block> opt = BuiltInRegistries.BLOCK.getOptional(redirectId);
177+
ResourceLocation rawRedirectId = EntryResolver.getRawId(redirectId);
178+
Optional<Block> opt = BuiltInRegistries.BLOCK.getOptional(rawRedirectId);
175179
if (opt.isPresent()) actualTargetKey = opt.get();
176180
else {
177-
Optional<EntityType<?>> optEntity = BuiltInRegistries.ENTITY_TYPE.getOptional(redirectId);
181+
Optional<EntityType<?>> optEntity = BuiltInRegistries.ENTITY_TYPE.getOptional(rawRedirectId);
178182
if (optEntity.isPresent()) actualTargetKey = optEntity.get();
179183
}
180184
}

common/src/main/java/com/evandev/fieldguide/client/scanning/manager/FieldGuideScanManager.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.evandev.fieldguide.config.ModConfig;
77
import com.evandev.fieldguide.network.ScanUnlockPacket;
88
import com.evandev.fieldguide.platform.Services;
9+
import com.evandev.fieldguide.util.EntryResolver;
910
import com.evandev.fieldguide.util.FieldGuideVariantManager;
1011
import com.evandev.fieldguide.util.ModTags;
1112
import net.minecraft.client.Minecraft;
@@ -158,11 +159,12 @@ public void completeScan(Minecraft minecraft, Object targetKey, Object foundTarg
158159
if (targetId != null) {
159160
ResourceLocation redirectId = ClientFieldGuideManager.getInstance().getRedirect(targetId);
160161
if (redirectId != null) {
161-
Optional<EntityType<?>> entityType = BuiltInRegistries.ENTITY_TYPE.getOptional(redirectId);
162+
ResourceLocation rawRedirectId = EntryResolver.getRawId(redirectId);
163+
Optional<EntityType<?>> entityType = BuiltInRegistries.ENTITY_TYPE.getOptional(rawRedirectId);
162164
if (entityType.isPresent()) {
163165
targetKey = entityType.get();
164166
} else {
165-
Optional<Block> block = BuiltInRegistries.BLOCK.getOptional(redirectId);
167+
Optional<Block> block = BuiltInRegistries.BLOCK.getOptional(rawRedirectId);
166168
if (block.isPresent()) targetKey = block.get();
167169
}
168170

common/src/main/java/com/evandev/fieldguide/compat/cobblemon/FieldGuideCobblemonCompat.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.evandev.fieldguide.api.*;
1111
import com.evandev.fieldguide.client.ClientFieldGuideManager;
1212
import com.evandev.fieldguide.platform.Services;
13+
import com.evandev.fieldguide.util.EntryResolver;
1314
import com.evandev.fieldguide.util.FieldGuideVariantManager;
1415
import com.google.gson.JsonElement;
1516
import com.google.gson.JsonObject;
@@ -272,7 +273,7 @@ public static void injectCategory(Map<ResourceLocation, Category> categories, Re
272273
float chance = dropJson.has("percentage") ? dropJson.get("percentage").getAsFloat() : 100f;
273274
int quantity = dropJson.has("quantity") ? dropJson.get("quantity").getAsInt() : 1;
274275

275-
Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(itemStr));
276+
Item item = BuiltInRegistries.ITEM.get(EntryResolver.getRawId(new ResourceLocation(itemStr)));
276277
if (item != Items.AIR) {
277278
ItemStack stack = new ItemStack(item, quantity);
278279
stack.getOrCreateTag().putFloat("FieldGuideDropChance", chance);

common/src/main/java/com/evandev/fieldguide/compat/exposure/ExposureCompat.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.evandev.fieldguide.compat.exposure;
22

3-
import com.evandev.fieldguide.api.VariantProvider;
4-
import com.evandev.fieldguide.config.ModConfig;
53
import com.evandev.fieldguide.api.CompositeFieldGuideEntry;
64
import com.evandev.fieldguide.api.VariantDef;
5+
import com.evandev.fieldguide.api.VariantProvider;
6+
import com.evandev.fieldguide.config.ModConfig;
77
import com.evandev.fieldguide.server.ServerFieldGuideManager;
88
import com.evandev.fieldguide.server.progress.FieldGuideProgressManager;
99
import com.evandev.fieldguide.server.progress.PlayerFieldGuideProgress;
@@ -45,7 +45,7 @@ private static void unlockContentInFrame(Player player, Frame frame) {
4545
for (EntityInFrame entityInFrame : frame.entitiesInFrame()) {
4646
ResourceLocation entityId = entityInFrame.id();
4747
if (entityId != null) {
48-
BuiltInRegistries.ENTITY_TYPE.getOptional(entityId).ifPresent(type -> hitTargets.put(type, null));
48+
BuiltInRegistries.ENTITY_TYPE.getOptional(EntryResolver.getRawId(entityId)).ifPresent(type -> hitTargets.put(type, null));
4949
}
5050
}
5151
}

common/src/main/java/com/evandev/fieldguide/server/LootTableHelper.java

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
import com.evandev.fieldguide.Constants;
44
import com.evandev.fieldguide.api.AutoPopulateRegistry;
5+
import com.evandev.fieldguide.api.CompositeFieldGuideEntry;
56
import com.evandev.fieldguide.server.loot.ParsedDrop;
67
import com.evandev.fieldguide.server.loot.StaticLootParser;
78
import com.evandev.fieldguide.util.EntryResolver;
9+
import com.evandev.fieldguide.util.entry.EntryResolutionHelper;
810
import net.minecraft.core.registries.BuiltInRegistries;
911
import net.minecraft.core.registries.Registries;
1012
import net.minecraft.nbt.CompoundTag;
@@ -24,15 +26,20 @@ public class LootTableHelper {
2426

2527
public static Map<ResourceLocation, List<ItemStack>> generateLootMap(ServerLevel level) {
2628
Map<ResourceLocation, List<ItemStack>> lootMap = new HashMap<>();
27-
for (EntityType<?> type : BuiltInRegistries.ENTITY_TYPE) {
28-
ResourceLocation tableId = type.getDefaultLootTable();
29-
processEntry(level, type, tableId, lootMap);
30-
}
31-
for (Block block : BuiltInRegistries.BLOCK) {
32-
processEntry(level, block, block.getLootTable(), lootMap);
33-
}
34-
for (Item item : BuiltInRegistries.ITEM) {
35-
processEntry(level, item, null, lootMap);
29+
Set<ResourceLocation> allEntryIds = ServerFieldGuideManager.getInstance().getAllEntryIds();
30+
31+
for (ResourceLocation entryId : allEntryIds) {
32+
EntryResolutionHelper.resolveSingleEntry(entryId, null, null).ifPresent(entry -> {
33+
ResourceLocation tableId = null;
34+
if (entry instanceof EntityType<?> type) tableId = type.getDefaultLootTable();
35+
else if (entry instanceof Block block) tableId = block.getLootTable();
36+
else if (entry instanceof CompositeFieldGuideEntry composite) {
37+
Object display = composite.displayEntry();
38+
if (display instanceof EntityType<?> type) tableId = type.getDefaultLootTable();
39+
else if (display instanceof Block block) tableId = block.getLootTable();
40+
}
41+
processEntry(level, entry, tableId, lootMap);
42+
});
3643
}
3744
return lootMap;
3845
}
@@ -83,7 +90,9 @@ private static boolean matchesTarget(Object entry, String targetStr) {
8390
}
8491
return false;
8592
}
86-
return entryId.toString().equals(targetStr);
93+
94+
ResourceLocation targetId = EntryResolver.getRawId(new ResourceLocation(targetStr));
95+
return entryId.equals(targetId);
8796
}
8897

8998
public static void applyConfigModifications(Object entry, List<ItemStack> distinctDrops) {
@@ -130,7 +139,7 @@ public static void applyConfigModifications(Object entry, List<ItemStack> distin
130139
} catch (Exception ignored) {
131140
}
132141
} else {
133-
Item i = BuiltInRegistries.ITEM.get(new ResourceLocation(target));
142+
Item i = BuiltInRegistries.ITEM.get(EntryResolver.getRawId(new ResourceLocation(target)));
134143
if (i != Items.AIR) {
135144
ItemStack s = new ItemStack(i);
136145
s.getOrCreateTag().putFloat("FieldGuideDropChance", 100.0f);

common/src/main/java/com/evandev/fieldguide/server/ServerFieldGuideManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public boolean isKillToUnlock(ResourceLocation entryId) {
9191
TagKey<EntityType<?>> killToUnlockTag = TagKey.create(Registries.ENTITY_TYPE, new ResourceLocation(Constants.MOD_ID, "kill_to_unlock"));
9292
TagKey<EntityType<?>> bossesTag = TagKey.create(Registries.ENTITY_TYPE, new ResourceLocation(Constants.MOD_ID, "bosses"));
9393

94-
return BuiltInRegistries.ENTITY_TYPE.getOptional(entryId)
94+
return BuiltInRegistries.ENTITY_TYPE.getOptional(EntryResolver.getRawId(entryId))
9595
.flatMap(BuiltInRegistries.ENTITY_TYPE::getResourceKey)
9696
.flatMap(BuiltInRegistries.ENTITY_TYPE::getHolder)
9797
.map(h -> h.is(killToUnlockTag) || h.is(bossesTag))

0 commit comments

Comments
 (0)