Posted February 23, 201411 yr So i tried some things and sometimes i dont know what to do or i dont know whats wrong! So can someone figure out what i did wrong or why they give error messages? Im modding in Forge 1.7.2 Main class called Achievements package com.mart.achievements; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.stats.Achievement; import net.minecraft.stats.AchievementList; import net.minecraftforge.common.AchievementPage; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; 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.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid = Achievements.modid, version = Achievements.version) public class Achievements { public static final String modid = "More Achievements!"; public static final String version = "Version 1.0"; @EventHandler public void config(FMLPreInitializationEvent event) { } //everything public static Achievement Tutorial; @EventHandler public void load(FMLInitializationEvent event) { System.out.println("Loaded!"); AchievementPage.registerAchievementPage(page1); //Error with registerPickupHandler: The method registerPickupHandler(PickupHandler) is undefined for the type GameRegistry GameRegistry.registerPickupHandler(new PickupHandler()); } @EventHandler public void modsLoaded(FMLPostInitializationEvent event) { //Error with this line: The constructor Achievement(int, String, int, int, Block, null) is undefined Tutorial = new Achievement(27, "Dirt", 0, 0, Blocks.dirt, null).registerAchievement(); this.addAchievementName("Dirt", "Dirt.. Really?"); this.addAchievementDesc("Dirt", "You just found a piece of dirt.."); } private void addAchievementName(String ach, String name) { LanguageRegistry.instance().addStringLocalization("achievement." + ach, "en_US", name); } private void addAchievementDesc(String ach, String desc) { LanguageRegistry.instance().addStringLocalization("achievement." + ach + ".desc", "en_US", desc); } public static AchievementPage page1 = new AchievementPage("More Achievements!"); } package com.mart.achievements; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; //Error with IPickupNotifier says: Cannot be resolved to a type public class PickupHandler implements IPickupNotifier { public void notifyPickup(EntityItem item, EntityPlayer player) { //I dont know what to write in this line. I tried some things but it doesnt work if(Blocks.getEntityItem().Blocks == Blocks.dirt) { player.addStat(Achievements.Dirt, 1); } } }
February 23, 201411 yr Author IPickupHandler is an event now: PlayerEvent.ItemPickupEvent. Thx! But im not that good at modding and i dont know how to implement this.
February 24, 201411 yr Author Okay now i got that i still dont really know hot to do the rest. Since i cant find anything decent or i dont know what to do.
February 25, 201411 yr Author Well if you look at my code sometimes is says //Error I cant fix these or dont know what to put there
February 25, 201411 yr Author Blocks.getEntityItem().BlocksWhat on earth. What is this? I tried some things. But now i got everything exept the achievement showing up at my achievement page or the normal one. Can you help me? I This is the new code: package com.mart.achievements; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.stats.Achievement; import net.minecraft.stats.AchievementList; import net.minecraftforge.common.AchievementPage; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; 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.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid = Achievements.modid, version = Achievements.version) public class Achievements { public static final String modid = "More Achievements!"; public static final String version = "Version 1.0"; @EventHandler public void config(FMLPreInitializationEvent event) { } //everything public static Achievement Dirt; @EventHandler public void load(FMLInitializationEvent event) { System.out.println("Loaded!"); AchievementPage.registerAchievementPage(page1); MinecraftForge.EVENT_BUS.register(new PickupHandler()); } @EventHandler public void modsLoaded(FMLPostInitializationEvent event) { //I NEED THIS LINE CORRECTED. Dirt = new Achievement("Dirt", "Dirt", 0, 0, Blocks.dirt, null); this.addAchievementName("Dirt", "Dirt.. Really?"); this.addAchievementDesc("Dirt", "You just found a piece of dirt.."); } private void addAchievementName(String ach, String name) { LanguageRegistry.instance().addStringLocalization("achievement." + ach, "en_US", name); } private void addAchievementDesc(String ach, String desc) { LanguageRegistry.instance().addStringLocalization("achievement." + ach + ".desc", "en_US", desc); } public static AchievementPage page1 = new AchievementPage("More Achievements!"); } package com.mart.achievements; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent; import cpw.mods.fml.common.gameevent.PlayerEvent.ItemPickupEvent; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class PickupHandler { private ItemStack MyBlockStack = new ItemStack(Blocks.dirt); @SubscribeEvent public void SomethingPickedup(ItemPickupEvent event) { if (event.pickedUp.getEntityItem() == MyBlockStack) { event.player.addStat(Achievements.Dirt, 1); } } }
February 25, 201411 yr One thing is, use your resources... (don't double post either) By resources I mean the MinecraftForge Wiki, tons of tutorials help out there. I don't even think you have to put it in post init. (correct me if I'm wrong someone) I mean take a look at your code, you aren't even applying any achievements to your AchievementPage. public static AchievementPage page1 = new AchievementPage("More Achievements!", paramAchievement //add more if u want); If you want to add more, I believe you need to just plainly add more. Don't over look the obvious... Another thing you need to keep in mind is that if you have less than 2 achievements the AchievementPage will break.
February 26, 201411 yr Author One thing is, use your resources... (don't double post either) By resources I mean the MinecraftForge Wiki, tons of tutorials help out there. I don't even think you have to put it in post init. (correct me if I'm wrong someone) I mean take a look at your code, you aren't even applying any achievements to your AchievementPage. public static AchievementPage page1 = new AchievementPage("More Achievements!", paramAchievement //add more if u want); If you want to add more, I believe you need to just plainly add more. Don't over look the obvious... Another thing you need to keep in mind is that if you have less than 2 achievements the AchievementPage will break. Okay thx! But now why cant i put this after my achievement: .registerAchievement() and if so. is there a other method for the achievment registering?
February 27, 201411 yr Author And does somebody know a way to look into source files? Then i could see it for myself
February 28, 201411 yr Dirt = new Achievement("Dirt", "Dirt", 0, 0, Blocks.dirt, null).registerAchievement(); Source files as in Vanilla Minecraft run: gradlew.bat setupDevWorkspace
March 1, 201411 yr To register an achievement public static Achievement achievementName; in your FMLInitializationEvent func new Achievement(unLocalizedName, achievement name(used when adding an achievement on to it) , x, y, ItemStack(icon), (Achievement)parent(group)) achievementName = new Achievement("achievement.achievementName", "achievementName", 0, 0, Blocks.stone, (Achievement)null).registerStat(); then in your PickupHandler if(event.pickedUp.getEntityItem().isItemEqual(new ItemStack(Your item or block))){ System.out.println("Aquired. ..."); event.player.addStat(ModClass.achievementName , 1); }
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.