public static final Achievement getBacon = new Achievement(100, "getBacon", 6, 1, BaconRaw, AchievementList.buildSword).registerAchievement();
public static final Achievement cookBacon = new Achievement(101, "cookBacon", 8, 1, BaconCooked, getBacon).registerAchievement();
public static final Achievement craftGoldenBacon = new Achievement(102, "craftGoldenBacon", 10, 1, BaconGolden, cookBacon).setSpecial().registerAchievement();
to this
public static Achievement getBacon;
public static Achievement cookBacon;
public static Achievement craftGoldenBacon;
And this
final Achievement getBacon = new Achievement(100, "getBacon", 6, 1, BaconRaw, AchievementList.buildSword).registerAchievement();
final Achievement cookBacon = new Achievement(101, "cookBacon", 8, 1, BaconCooked, AchievementList.openInventory).registerAchievement();
final Achievement craftGoldenBacon = new Achievement(102, "craftGoldenBacon", 10, 1, BaconGolden, cookBacon).setSpecial().registerAchievement();
to this
getBacon = new Achievement(100, "getBacon", 6, 1, BaconRaw, AchievementList.buildSword).registerAchievement();
cookBacon = new Achievement(101, "cookBacon", 8, 1, BaconCooked, AchievementList.openInventory).registerAchievement();
craftGoldenBacon = new Achievement(102, "craftGoldenBacon", 10, 1, BaconGolden, cookBacon).setSpecial().registerAchievement();
public static final Achievement getBacon = new Achievement(100, "getBacon", 6, 1, BaconRaw, AchievementList.buildSword).registerAchievement();
public static final Achievement cookBacon = new Achievement(101, "cookBacon", 8, 1, BaconCooked, getBacon).registerAchievement();
public static final Achievement craftGoldenBacon = new Achievement(102, "craftGoldenBacon", 10, 1, BaconGolden, cookBacon).setSpecial().registerAchievement();
to this
public static Achievement getBacon;
public static Achievement cookBacon;
public static Achievement craftGoldenBacon;
And this
final Achievement getBacon = new Achievement(100, "getBacon", 6, 1, BaconRaw, AchievementList.buildSword).registerAchievement();
final Achievement cookBacon = new Achievement(101, "cookBacon", 8, 1, BaconCooked, AchievementList.openInventory).registerAchievement();
final Achievement craftGoldenBacon = new Achievement(102, "craftGoldenBacon", 10, 1, BaconGolden, cookBacon).setSpecial().registerAchievement();
to this
getBacon = new Achievement(100, "getBacon", 6, 1, BaconRaw, AchievementList.buildSword).registerAchievement();
cookBacon = new Achievement(101, "cookBacon", 8, 1, BaconCooked, AchievementList.openInventory).registerAchievement();
craftGoldenBacon = new Achievement(102, "craftGoldenBacon", 10, 1, BaconGolden, cookBacon).setSpecial().registerAchievement();
Thank you, it doesn't crash anymore! But when I try to trigger the achievement, nothing happens... My code:
ModPigmanVillages:
package pigmanvillages;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.renderer.entity.RenderBiped;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.potion.Potion;
import net.minecraft.stats.Achievement;
import net.minecraft.stats.AchievementList;
import net.minecraft.stats.StatBase;
import net.minecraft.world.World;
import net.minecraftforge.common.Configuration;
import net.minecraftforge.common.Property;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.IPickupNotifier;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Mod.PreInit;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
@Mod(modid = "Pigman Villages Mod", name = "Pigman Villages Mod", version = "2.1.0")
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
public class ModPigmanVillages {
public static Item BaconRaw;
public static Item BaconCooked;
public static Item BaconGolden;
public static Item MilkBottle;
public static Item EmptyBottle;
public static Achievement getBacon;
public static Achievement cookBacon;
public static Achievement craftGoldenBacon;
@PreInit()
public void PreInitTutorial(FMLPreInitializationEvent e){
PVMConfig cc = new PVMConfig();
PVMConfig.loadConfig(e);
BaconRaw = new ItemFood(cc.itemRawBaconID, 3, 0.3F, true).setCreativeTab(this.tabPVM).setUnlocalizedName("rawbacon");
BaconCooked = new ItemFood(cc.itemCookedBaconID, 6, 0.5F, true).setCreativeTab(this.tabPVM).setUnlocalizedName("cookedbacon");
BaconGolden = new ItemBaconGold(cc.itemGoldenBaconID, 16, 1.5F, true).setPotionEffect(Potion.waterBreathing.id, 600, 0, 1.0F).setAlwaysEdible().setCreativeTab(this.tabPVM).setUnlocalizedName("goldenbacon");;
EmptyBottle = new ItemBottle(cc.itemEmptyBottleID, 0).setCreativeTab(this.tabPVM).setUnlocalizedName("emptybottle");
MilkBottle = new ItemMilkBottle(cc.itemMilkBottleID, 2, 0.2F, false).setPotionEffect(Potion.moveSpeed.id, 30, 0, 0.5F).setCreativeTab(this.tabPVM).setUnlocalizedName("milkbottle");;
}
@Init
public void load(FMLInitializationEvent event)
{
EntityRegistry.registerGlobalEntityID(EntityPigman.class, "Miner Pigman", EntityRegistry.findGlobalUniqueEntityId(), 433534534, 768873);
EntityRegistry.registerGlobalEntityID(EntityPigmanA.class, "Farmer Pigman", EntityRegistry.findGlobalUniqueEntityId(), 633534534, 968873);
EntityRegistry.registerGlobalEntityID(EntityPigmanB.class, "Baby Pigman", EntityRegistry.findGlobalUniqueEntityId(), 133534534, 368873);
EntityRegistry.registerGlobalEntityID(EntityPigmanC.class, "Hunter Pigman", EntityRegistry.findGlobalUniqueEntityId(), 233534534, 568873);
EntityRegistry.registerGlobalEntityID(EntityPigmanD.class, "Mayor Pigman", EntityRegistry.findGlobalUniqueEntityId(), 833534534, 768873);
GameRegistry.registerItem(BaconRaw, "rawbacon");
LanguageRegistry.addName(BaconRaw, "Raw Bacon");
GameRegistry.registerItem(BaconCooked, "cookedbacon");
LanguageRegistry.addName(BaconCooked, "Cooked Bacon");
GameRegistry.registerItem(BaconGolden, "goldenbacon");
LanguageRegistry.addName(BaconGolden, "Golden Bacon");
GameRegistry.registerItem(MilkBottle, "milkbottle");
LanguageRegistry.addName(MilkBottle, "Milk Bottle");
GameRegistry.registerItem(EmptyBottle, "emptybottle");
LanguageRegistry.addName(EmptyBottle, "Empty Bottle");
//GameRegistry.registerPickupHandler(new PVMPickup());
LanguageRegistry.instance().addStringLocalization("achievement.getBacon", "en_US", "Mm, bacon!");
LanguageRegistry.instance().addStringLocalization("achievement.getBacon.desc", "en_US", "Kill a Pigman to get Raw Bacon");
LanguageRegistry.instance().addStringLocalization("achievement.cookBacon", "en_US", "Even more delicious!");
LanguageRegistry.instance().addStringLocalization("achievement.cookBacon.desc", "en_US", "Cook Raw Bacon to get Cooked Bacon");
LanguageRegistry.instance().addStringLocalization("achievement.craftGoldenBacon", "en_US", "Oh, shiny!");
LanguageRegistry.instance().addStringLocalization("achievement.craftGoldenBacon.desc", "en_US", "Craft a Golden Bacon by using some Golden Ingots, a Diamond and a Cooked Bacon");
LanguageRegistry.instance().addStringLocalization("itemGroup.tabPVM", "en_US", "Pigman Villages Mod");
LanguageRegistry.instance().addStringLocalization("entity.Miner Pigman.name", "Miner Pigman");
LanguageRegistry.instance().addStringLocalization("entity.Farmer Pigman.name", "Farmer Pigman");
LanguageRegistry.instance().addStringLocalization("entity.Baby Pigman.name", "Baby Pigman");
LanguageRegistry.instance().addStringLocalization("entity.Hunter Pigman.name", "Hunter Pigman");
LanguageRegistry.instance().addStringLocalization("entity.Mayor Pigman.name", "Mayor Pigman");
recipesInit();
getBacon = new Achievement(100, "getBacon", 6, 1, BaconRaw, AchievementList.openInventory).registerAchievement();
cookBacon = new Achievement(101, "cookBacon", 8, 1, BaconCooked, AchievementList.openInventory).registerAchievement();
craftGoldenBacon = new Achievement(102, "craftGoldenBacon", 10, 1, BaconGolden, AchievementList.openInventory).setSpecial().registerAchievement();
}
public static void recipesInit(){
GameRegistry.addRecipe(new ItemStack(ModPigmanVillages.BaconGolden, 1), new Object[]{
"XYX", "XZX", "XXX", Character.valueOf('X'),Item.ingotGold, Character.valueOf('Y'),Item.diamond, Character.valueOf('Z'), ModPigmanVillages.BaconCooked
});
GameRegistry.addRecipe(new ItemStack(ModPigmanVillages.EmptyBottle, 2), new Object[]{
"X X", "X X", " X ", Character.valueOf('X'), Block.glass
});
GameRegistry.addShapelessRecipe(new ItemStack(ModPigmanVillages.MilkBottle, 1), new Object[]{
new ItemStack(Item.bucketMilk.setContainerItem(Item.bucketEmpty)), new ItemStack(ModPigmanVillages.EmptyBottle)
});
FurnaceRecipes.smelting().addSmelting(ModPigmanVillages.BaconRaw.itemID, 0, new ItemStack(BaconCooked), 0.35F);
}
public static CreativeTabs tabPVM = new CreativeTabs("tabPVM") {
public ItemStack getIconItemStack() {
return new ItemStack(ModPigmanVillages.BaconRaw, 1, 0);
}
};
public void onItemPickup(EntityPlayer entityplayer, ItemStack itemstack)
{
if(itemstack.itemID == BaconRaw.itemID)
{
entityplayer.addStat(getBacon, 1);
}
}
public void registerRenderInformation(){
RenderingRegistry.registerEntityRenderingHandler(EntityPigman.class, new RenderBiped(new ModelBiped(), 1.0F));
RenderingRegistry.registerEntityRenderingHandler(EntityPigmanA.class, new RenderBiped(new ModelBiped(), 1.0F));
RenderingRegistry.registerEntityRenderingHandler(EntityPigmanB.class, new RenderBiped(new ModelBiped(), 1.0F));
RenderingRegistry.registerEntityRenderingHandler(EntityPigmanC.class, new RenderBiped(new ModelBiped(), 1.0F));
RenderingRegistry.registerEntityRenderingHandler(EntityPigmanD.class, new RenderBiped(new ModelBiped(), 1.0F));
}
}
PMVCraftingHandler:
package pigmanvillages;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.EntityItemPickupEvent;
import cpw.mods.fml.common.ICraftingHandler;
import cpw.mods.fml.common.IPickupNotifier;
public class PVMCraftingHandler implements ICraftingHandler{
@Override
public void onSmelting(EntityPlayer player, ItemStack item)
{
if (item.itemID == ModPigmanVillages.BaconCooked.itemID)
{
player.addStat(ModPigmanVillages.cookBacon, 1);
}
}
@Override
public void onCrafting(EntityPlayer player, ItemStack item, IInventory craftMatrix)
{
if (item.itemID == ModPigmanVillages.BaconGolden.itemID)
{
player.addStat(ModPigmanVillages.craftGoldenBacon, 1);
}
}
}
Thank you so much! Those parts of the achievement works now! But what about the pickup achievement? (public void onItemPickup) That still doesn't work.
When I start Minecraft, I get the following error (I mod with Forge):
2013-05-27 18:41:56 [INFO] [ForgeModLoader] Java is Java HotSpotâ„¢ 64-Bit Server VM, version 1.7.0_21, running on Windows 7:amd64:6.1, installed at C:\Program Files\Java\jre7
2013-05-27 18:41:56 [INFO] [ForgeModLoader] Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
2013-05-27 18:41:59 [INFO] [STDOUT] 229 recipes
2013-05-27 18:41:59 [INFO] [STDOUT] 27 achievements
2013-05-27 18:41:59 [INFO] [Minecraft-Client] Setting user: Player557
2013-05-27 18:41:59 [INFO] [STDOUT] (Session ID is -)
2013-05-27 18:41:59 [INFO] [STDERR] Client asked for parameter: server
2013-05-27 18:41:59 [INFO] [Minecraft-Client] LWJGL Version: 2.4.2
2013-05-27 18:41:59 [INFO] [MinecraftForge] Attempting early MinecraftForge initialization
2013-05-27 18:41:59 [INFO] [STDOUT] MinecraftForge v7.8.0.684 Initialized
2013-05-27 18:41:59 [INFO] [ForgeModLoader] MinecraftForge v7.8.0.684 Initialized
2013-05-27 18:42:00 [INFO] [STDOUT] Replaced 85 ore recipies
2013-05-27 18:42:00 [INFO] [MinecraftForge] Completed early MinecraftForge initialization
2013-05-27 18:42:00 [INFO] [ForgeModLoader] Reading custom logging properties from C:\Users\Pontus\Desktop\forge\mcp\jars\config\logging.properties
2013-05-27 18:42:00 [OFF] [ForgeModLoader] Logging level for ForgeModLoader logging is set to ALL
2013-05-27 18:42:00 [INFO] [ForgeModLoader] Searching C:\Users\Pontus\Desktop\forge\mcp\jars\mods for mods
2013-05-27 18:42:01 [INFO] [ForgeModLoader] Forge Mod Loader has identified 4 mods to load
2013-05-27 18:42:01 [INFO] [mcp] Activating mod mcp
2013-05-27 18:42:01 [INFO] [FML] Activating mod FML
2013-05-27 18:42:01 [INFO] [Forge] Activating mod Forge
2013-05-27 18:42:01 [INFO] [Pigman Villages Mod] Activating mod Pigman Villages Mod
2013-05-27 18:42:01 [INFO] [STDERR] Exception in thread "Minecraft main thread" java.lang.ExceptionInInitializerError
2013-05-27 18:42:01 [INFO] [STDERR] at java.lang.Class.forName0(Native Method)
2013-05-27 18:42:01 [INFO] [STDERR] at java.lang.Class.forName(Unknown Source)
2013-05-27 18:42:01 [INFO] [STDERR] at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:425)
2013-05-27 18:42:01 [INFO] [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2013-05-27 18:42:01 [INFO] [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
2013-05-27 18:42:01 [INFO] [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2013-05-27 18:42:01 [INFO] [STDERR] at java.lang.reflect.Method.invoke(Unknown Source)
2013-05-27 18:42:01 [INFO] [STDERR] at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
2013-05-27 18:42:01 [INFO] [STDERR] at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
2013-05-27 18:42:01 [INFO] [STDERR] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:314)
2013-05-27 18:42:01 [INFO] [STDERR] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
2013-05-27 18:42:01 [INFO] [STDERR] at com.google.common.eventbus.EventBus.post(EventBus.java:267)
2013-05-27 18:42:01 [INFO] [STDERR] at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:165)
2013-05-27 18:42:01 [INFO] [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2013-05-27 18:42:01 [INFO] [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
2013-05-27 18:42:01 [INFO] [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2013-05-27 18:42:01 [INFO] [STDERR] at java.lang.reflect.Method.invoke(Unknown Source)
2013-05-27 18:42:01 [INFO] [STDERR] at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
2013-05-27 18:42:01 [INFO] [STDERR] at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
2013-05-27 18:42:01 [INFO] [STDERR] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:314)
2013-05-27 18:42:01 [INFO] [STDERR] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
2013-05-27 18:42:01 [INFO] [STDERR] at com.google.common.eventbus.EventBus.post(EventBus.java:267)
2013-05-27 18:42:01 [INFO] [STDERR] at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:98)
2013-05-27 18:42:01 [INFO] [STDERR] at cpw.mods.fml.common.Loader.loadMods(Loader.java:503)
2013-05-27 18:42:01 [INFO] [STDERR] at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:160)
2013-05-27 18:42:01 [INFO] [STDERR] at net.minecraft.client.Minecraft.startGame(Minecraft.java:410)
2013-05-27 18:42:01 [INFO] [STDERR] at net.minecraft.client.MinecraftAppletImpl.startGame(MinecraftAppletImpl.java:44)
2013-05-27 18:42:01 [INFO] [STDERR] at net.minecraft.client.Minecraft.run(Minecraft.java:732)
2013-05-27 18:42:01 [INFO] [STDERR] at java.lang.Thread.run(Unknown Source)
2013-05-27 18:42:01 [INFO] [STDERR] Caused by: java.lang.NullPointerException
2013-05-27 18:42:01 [INFO] [STDERR] at net.minecraft.item.ItemStack.<init>(ItemStack.java:67)
2013-05-27 18:42:01 [INFO] [STDERR] at net.minecraft.stats.Achievement.<init>(Achievement.java:52)
2013-05-27 18:42:01 [INFO] [STDERR] at pigmanvillages.ModPigmanVillages.<clinit>(ModPigmanVillages.java:128)
2013-05-27 18:42:01 [INFO] [STDERR] ... 29 more
2013-05-27 18:43:09 [INFO] [STDERR] Someone is closing me!
ModPigmanVillages:
to this
And this
to this
Thank you, it doesn't crash anymore! But when I try to trigger the achievement, nothing happens... My code:
ModPigmanVillages:
Thank you so much! Those parts of the achievement works now! But what about the pickup achievement? (public void onItemPickup) That still doesn't work.
Then your notifyPickup method(in PVMPickup) would look like this
Still doesn't work, this is my pickup class:
PVMPickup:
EDIT: You edited your post while I posted this...
EDIT 2: Thank you!