Initial commit

This commit is contained in:
Connor Colenso committed 2023-10-21 19:28:34 +01:00
1 parent c6c34b08bb
commit 796d6b2d87
7 files changed
+151 -2

No files matched your search

@@ -0,0 +1,41 @@
package com.myname.mymodid;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.item.ItemStack;
import java.util.Objects;
public class ItemStackKey {
private final String modId;
private final String itemName;
private final int meta;
public ItemStackKey(String modId, String itemName, int meta) {
this.modId = modId;
this.itemName = itemName;
this.meta = meta;
}
public ItemStackKey(ItemStack stack) {
this(stack.getItem().getUnlocalizedName().substring(4),
GameRegistry.findUniqueIdentifierFor(stack.getItem()).modId,
stack.getItemDamage());
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ItemStackKey that = (ItemStackKey) o;
return meta == that.meta &&
Objects.equals(modId, that.modId) &&
Objects.equals(itemName, that.itemName);
}
@Override
public int hashCode() {
return Objects.hash(modId, itemName, meta);
}
}
@@ -0,0 +1,19 @@
package com.myname.mymodid;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(ItemStack.class)
public abstract class MixinItemStack{
@Inject(method = "<init>(Lnet/minecraft/item/Item;II)V", at = @At("HEAD"))
private void onConstructorHead(Item item, int stackSize, int metadata, CallbackInfo ci) {
System.out.println(item.getUnlocalizedName() + " " + metadata + " " + stackSize);
}
}
+6 -2
View File
@@ -9,6 +9,8 @@ import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import org.spongepowered.asm.launch.MixinBootstrap;
import org.spongepowered.asm.mixin.Mixins;
@Mod(modid = Tags.MODID, version = Tags.VERSION, name = Tags.MODNAME, acceptedMinecraftVersions = "[1.7.10]")
public class MyMod {
@@ -19,9 +21,10 @@ public class MyMod {
public static CommonProxy proxy;
@Mod.EventHandler
// preInit "Run before anything else. Read your config, create blocks, items, etc, and register them with the
// GameRegistry." (Remove if not needed)
public void preInit(FMLPreInitializationEvent event) {
MixinBootstrap.init();
Mixins.addConfiguration("mixins.json");
proxy.preInit(event);
}
@@ -43,3 +46,4 @@ public class MyMod {
proxy.serverStarting(event);
}
}
@@ -0,0 +1,57 @@
package com.myname.mymodid;
import com.falsepattern.gasstation.IEarlyMixinLoader;
import cpw.mods.fml.relauncher.FMLLaunchHandler;
import cpw.mods.fml.relauncher.IFMLLoadingPlugin;
import jdk.jfr.Name;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
@IFMLLoadingPlugin.TransformerExclusions({ "mods.mymod" })
@Name("mymod")
@IFMLLoadingPlugin.SortingIndex(1500)
@IFMLLoadingPlugin.MCVersion("1.7.10")
public final class PosteaLoadingPlugin implements IEarlyMixinLoader, IFMLLoadingPlugin {
public static final String ItemStackTransformer = "mods.battlegear2.coremod.transformers.EntityPlayerTransformer";
public static File debugOutputLocation;
public static final String[] transformers = new String[] { ItemStackTransformer };
@Override
public String[] getASMTransformerClass() {
return transformers;
}
@Override
public String getAccessTransformerClass() {
return null;
}
@Override
public String getModContainerClass() {
return null;
}
@Override
public String getSetupClass() {
return null;
}
@Override
public void injectData(Map<String, Object> data) {
debugOutputLocation = new File(data.get("mcLocation").toString(), "ItemStack edited classes");
}
@Override
public List<String> getMixinConfigs() {
List<String> list = new ArrayList<>();
list.add("mixins.json" );
return list;
}
}
@@ -0,0 +1,20 @@
package com.myname.mymodid;
import net.minecraft.item.ItemStack;
import java.util.HashMap;
import java.util.Map;
public class ReplacementManager {
private static final Map<ItemStackKey, ItemStack> replacementMap = new HashMap<>();
public static void addReplacement(String modId, String itemName, int meta, ItemStack replacement) {
replacementMap.put(new ItemStackKey(modId, itemName, meta), replacement);
}
public static ItemStack getReplacement(ItemStack original) {
return replacementMap.getOrDefault(new ItemStackKey(original), original);
}
}