Skip to content

Commit 11e39c7

Browse files
1.20.1
1 parent 7602edb commit 11e39c7

14 files changed

Lines changed: 274 additions & 281 deletions

File tree

build.gradle

Lines changed: 160 additions & 132 deletions
Large diffs are not rendered by default.

gradle.properties

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,22 @@ org.gradle.jvmargs=-Xmx1G
33
org.gradle.daemon=true
44
org.gradle.parallel=true
55
org.gradle.caching=true
6-
org.gradle.configuration-cache=true
6+
org.gradle.configuration-cache=false
77

8-
#read more on this at https://github.com/neoforged/ModDevGradle?tab=readme-ov-file#better-minecraft-parameter-names--javadoc-parchment
9-
# you can also find the latest versions at: https://parchmentmc.org/docs/getting-started
10-
parchment_minecraft_version=1.21.1
11-
parchment_mappings_version=2024.11.13
12-
jei_version=19.9.1.125
13-
guide_me_version=21.1.14
148
# Environment Properties
15-
# You can find the latest versions here: https://projects.neoforged.net/neoforged/neoforge
16-
# The Minecraft version must agree with the Neo version to get a valid artifact
17-
minecraft_version=1.21.1
9+
minecraft_version=1.20.1
1810
# The Minecraft version range can use any release version of Minecraft as bounds.
1911
# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly
2012
# as they do not follow standard versioning conventions.
21-
minecraft_version_range=[1.21.1, 1.22)
22-
# The Neo version must agree with the Minecraft version to get a valid artifact
23-
neo_version=21.1.113
24-
# The Neo version range can use any version of Neo as bounds
25-
neo_version_range=[21.1.0,)
13+
minecraft_version_range=[1.20.1, 1.21)
14+
forge_version=47.4.16
15+
forge_version_range=[47,)
2616
# The loader version range can only use the major version of FML as bounds
27-
loader_version_range=[4,)
17+
loader_version_range=[47,)
18+
mapping_channel=parchment
19+
# The mapping version to query from the mapping channel.
20+
# This must match the format required by the mapping channel.
21+
mapping_version=2023.09.03-1.20.1
2822

2923
## Mod Properties
3024

@@ -36,7 +30,7 @@ mod_name=Applied Infinity Pattern
3630
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
3731
mod_license=All Rights Reserved
3832
# The mod version. See https://semver.org/
39-
mod_version=1.0.0
33+
mod_version=1.0-Forge-1.20.1
4034
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
4135
# This should match the base package used for the mod sources.
4236
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html

settings.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ pluginManagement {
22
repositories {
33
mavenLocal()
44
gradlePluginPortal()
5-
maven { url = 'https://maven.neoforged.net/releases' }
5+
maven { url = 'https://maven.minecraftforge.net' }
6+
maven { url = 'https://maven.parchmentmc.org' }
67
}
78
}
89

src/main/java/com/neofastftl/infinitypattern/InfinityPattern.java

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,18 @@
11
package com.neofastftl.infinitypattern;
22

3-
import com.neofastftl.infinitypattern.registries.ModItems;
4-
import com.neofastftl.infinitypattern.registries.ModCreativeTabs;
53
import com.neofastftl.infinitypattern.guidebook.IFPATGuide;
6-
import org.slf4j.Logger;
7-
8-
import com.mojang.logging.LogUtils;
9-
10-
import net.minecraft.core.registries.Registries;
11-
import net.minecraft.network.chat.Component;
12-
import net.minecraft.world.item.CreativeModeTab;
13-
import net.minecraft.world.item.CreativeModeTabs;
14-
import net.minecraft.world.item.Item;
15-
import net.neoforged.bus.api.IEventBus;
16-
import net.neoforged.fml.common.Mod;
17-
import net.neoforged.neoforge.registries.DeferredHolder;
18-
import net.neoforged.neoforge.registries.DeferredItem;
19-
import net.neoforged.neoforge.registries.DeferredRegister;
4+
import com.neofastftl.infinitypattern.registries.ModCreativeTabs;
5+
import com.neofastftl.infinitypattern.registries.ModItems;
6+
import net.minecraftforge.eventbus.api.IEventBus;
7+
import net.minecraftforge.fml.common.Mod;
8+
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
209

2110
@Mod(InfinityPattern.MODID)
2211
public class InfinityPattern {
2312
public static final String MODID = "infinitypattern";
2413

25-
public InfinityPattern(IEventBus modEventBus) {
14+
public InfinityPattern() {
15+
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
2616
ModItems.ITEMS.register(modEventBus);
2717
ModCreativeTabs.CREATIVE_MODE_TABS.register(modEventBus);
2818
IFPATGuide.init();

src/main/java/com/neofastftl/infinitypattern/guidebook/IFPATGuide.java

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,51 @@
11
package com.neofastftl.infinitypattern.guidebook;
22

3+
import com.mojang.logging.LogUtils;
34
import com.neofastftl.infinitypattern.InfinityPattern;
4-
import guideme.Guide;
55
import net.minecraft.resources.ResourceLocation;
6+
import net.minecraft.world.item.ItemStack;
7+
import net.minecraftforge.fml.ModList;
8+
import org.slf4j.Logger;
69

710
public class IFPATGuide {
8-
public static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath(InfinityPattern.MODID, "book");
9-
private static Guide guide;
11+
private static final Logger LOGGER = LogUtils.getLogger();
12+
private static final ResourceLocation ID = new ResourceLocation(InfinityPattern.MODID, "book");
1013

1114
public static void init() {
12-
guide = Guide.builder(ID)
13-
.folder("ifpat_guidebook")
14-
.build();
15+
var modList = ModList.get();
16+
if (modList != null && !modList.isLoaded("guideme")) {
17+
return;
18+
}
19+
20+
try {
21+
Class<?> guideClass = Class.forName("guideme.Guide");
22+
Object guideBuilder = guideClass.getMethod("builder", ResourceLocation.class).invoke(null, ID);
23+
Class<?> guideBuilderClass = guideBuilder.getClass();
24+
guideBuilderClass.getMethod("folder", String.class).invoke(guideBuilder, "ifpat_guidebook");
25+
guideBuilderClass.getMethod("build").invoke(guideBuilder);
26+
LOGGER.info("Registered GuideME guide {}", ID);
27+
} catch (ReflectiveOperationException e) {
28+
LOGGER.warn("Failed to initialize GuideME integration.", e);
29+
}
30+
}
31+
32+
public static ItemStack createGuideItem() {
33+
var modList = ModList.get();
34+
if (modList != null && !modList.isLoaded("guideme")) {
35+
return ItemStack.EMPTY;
36+
}
37+
38+
try {
39+
Class<?> guidesClass = Class.forName("guideme.Guides");
40+
Object guideItem = guidesClass.getMethod("createGuideItem", ResourceLocation.class).invoke(null, ID);
41+
if (guideItem instanceof ItemStack stack) {
42+
return stack;
43+
}
44+
} catch (ReflectiveOperationException e) {
45+
LOGGER.warn("Failed to create GuideME item for {}.", ID, e);
46+
}
47+
48+
return ItemStack.EMPTY;
1549
}
1650

1751
private IFPATGuide() {}

src/main/java/com/neofastftl/infinitypattern/mixins/IFPATMixinPlugin.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
import it.unimi.dsi.fastutil.objects.Object2ObjectMap;
1111
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
1212

13-
import net.neoforged.fml.ModList;
14-
import net.neoforged.fml.loading.LoadingModList;
15-
import net.neoforged.fml.loading.moddiscovery.ModInfo;
13+
import net.minecraftforge.fml.ModList;
14+
import net.minecraftforge.fml.loading.LoadingModList;
15+
import net.minecraftforge.forgespi.language.IModInfo;
1616

1717
public class IFPATMixinPlugin implements IMixinConfigPlugin {
1818

@@ -55,10 +55,10 @@ public void postApply(String s, ClassNode classNode, String s1, IMixinInfo iMixi
5555
private static boolean isModLoaded(String modId) {
5656
if (ModList.get() == null) {
5757
return LoadingModList.get().getMods().stream()
58-
.map(ModInfo::getModId)
58+
.map(IModInfo::getModId)
5959
.anyMatch(modId::equals);
6060
} else {
6161
return ModList.get().isLoaded(modId);
6262
}
6363
}
64-
}
64+
}
Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
11
package com.neofastftl.infinitypattern.registries;
22

33
import com.neofastftl.infinitypattern.InfinityPattern;
4+
import com.neofastftl.infinitypattern.guidebook.IFPATGuide;
45
import net.minecraft.core.registries.Registries;
56
import net.minecraft.network.chat.Component;
67
import net.minecraft.world.item.CreativeModeTab;
7-
import net.minecraft.world.item.CreativeModeTabs;
8-
import net.neoforged.neoforge.registries.DeferredHolder;
9-
import net.neoforged.neoforge.registries.DeferredRegister;
8+
import net.minecraftforge.registries.DeferredRegister;
9+
import net.minecraftforge.registries.RegistryObject;
1010

1111
public class ModCreativeTabs {
1212
public static final DeferredRegister<CreativeModeTab> CREATIVE_MODE_TABS =
1313
DeferredRegister.create(Registries.CREATIVE_MODE_TAB, InfinityPattern.MODID);
1414

15-
public static final DeferredHolder<CreativeModeTab, CreativeModeTab> INFINITY_PATTERN =
15+
public static final RegistryObject<CreativeModeTab> INFINITY_PATTERN =
1616
CREATIVE_MODE_TABS.register("infinitypattern", () -> CreativeModeTab.builder()
1717
.title(Component.translatable("itemGroup.infinitypattern"))
18-
.withTabsBefore(CreativeModeTabs.COMBAT)
1918
.icon(() -> ModItems.ITEM_INFINITE_EMPTY_PATTERN.get().getDefaultInstance())
2019
.displayItems((parameters, output) -> {
2120
output.accept(ModItems.ITEM_INFINITE_EMPTY_PATTERN.get());
21+
var guideItem = IFPATGuide.createGuideItem();
22+
if (!guideItem.isEmpty()) {
23+
output.accept(guideItem);
24+
}
2225
}).build());
2326
}

src/main/java/com/neofastftl/infinitypattern/registries/ModItems.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
import com.neofastftl.infinitypattern.InfinityPattern;
44
import net.minecraft.world.item.Item;
5-
import net.neoforged.neoforge.registries.DeferredItem;
6-
import net.neoforged.neoforge.registries.DeferredRegister;
5+
import net.minecraftforge.registries.DeferredRegister;
6+
import net.minecraftforge.registries.ForgeRegistries;
7+
import net.minecraftforge.registries.RegistryObject;
78

89
public class ModItems {
9-
public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(InfinityPattern.MODID);
10+
public static final DeferredRegister<Item> ITEMS =
11+
DeferredRegister.create(ForgeRegistries.ITEMS, InfinityPattern.MODID);
1012

11-
public static final DeferredItem<Item> ITEM_INFINITE_EMPTY_PATTERN = ITEMS.register("infinite_empty_pattern",
13+
public static final RegistryObject<Item> ITEM_INFINITE_EMPTY_PATTERN = ITEMS.register("infinite_empty_pattern",
1214
() -> new Item(new Item.Properties().stacksTo(1)));
1315
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
modLoader="javafml"
2+
loaderVersion="${loader_version_range}"
3+
license="${mod_license}"
4+
5+
[[mods]]
6+
modId="${mod_id}"
7+
version="${mod_version}"
8+
displayName="${mod_name}"
9+
authors="${mod_authors}"
10+
description='''${mod_description}'''
11+
12+
[[mixins]]
13+
config="mixins.ifpat.json"
14+
15+
[[dependencies.${mod_id}]]
16+
modId="forge"
17+
mandatory=true
18+
versionRange="${forge_version_range}"
19+
ordering="NONE"
20+
side="BOTH"
21+
22+
[[dependencies.${mod_id}]]
23+
modId="minecraft"
24+
mandatory=true
25+
versionRange="${minecraft_version_range}"
26+
ordering="NONE"
27+
side="BOTH"

src/main/resources/assets/infinitypattern/ifpat_guidebook/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ allowing for unlimited pattern creation with a single item!
1414

1515
Found an issue? Missing a feature?
1616
Please report it here:
17-
[Infinity Pattern GitHub](https://github.com/NeofastFTL-Backup/AE2-InfinityPatternAddon)
17+
[Infinity Pattern GitHub](https://github.com/NeofastFTL-Dev/AE2-InfinityPatternAddon)

0 commit comments

Comments
 (0)