Fixed achievement saving and a crash due to positioning

This commit is contained in:
Adubbz 2016-01-18 21:01:37 +11:00
parent 7a4043a4aa
commit ea575db71c
2 changed files with 59 additions and 55 deletions

View file

@ -40,67 +40,71 @@ public class AchievementEventHandler
@SubscribeEvent @SubscribeEvent
public void onItemPickup(PlayerEvent.ItemPickupEvent event) public void onItemPickup(PlayerEvent.ItemPickupEvent event)
{ {
//Only add achievements on the server
if (event.player.worldObj.isRemote)
return;
Item item = event.pickedUp.getEntityItem().getItem(); Item item = event.pickedUp.getEntityItem().getItem();
Block block = Block.getBlockFromItem(item); Block block = Block.getBlockFromItem(item);
EntityPlayer player = event.player; EntityPlayer player = event.player;
if (block != null && block instanceof BlockBOPLog) if (block != null && block instanceof BlockBOPLog)
{ {
event.player.addStat(AchievementList.mineWood, 1); player.triggerAchievement(AchievementList.mineWood);
} }
//Flower Child Achievement //Flower Child Achievement
if (block != null && block instanceof BlockBOPFlower) if (block != null && block instanceof BlockBOPFlower)
{ {
player.addStat(BOPAchievements.obtain_flowers, 1); player.triggerAchievement(BOPAchievements.obtain_flowers);
} }
//Berry Good Achievement //Berry Good Achievement
if (item != null && item == BOPItems.berries) if (item != null && item == BOPItems.berries)
{ {
player.addStat(BOPAchievements.obtain_berry, 1); player.triggerAchievement(BOPAchievements.obtain_berry);
} }
//Totally Coral Achievement //Totally Coral Achievement
if (block != null && block == BOPBlocks.coral) if (block != null && block == BOPBlocks.coral)
{ {
player.addStat(BOPAchievements.obtain_coral, 1); player.triggerAchievement(BOPAchievements.obtain_coral);
} }
//Rather Thorny Achievement //Rather Thorny Achievement
if (block != null && block == BlockBOPPlant.paging.getBlock(BOPPlants.THORN)) if (block != null && block == BlockBOPPlant.paging.getBlock(BOPPlants.THORN))
{ {
player.addStat(BOPAchievements.obtain_thorn, 1); player.triggerAchievement(BOPAchievements.obtain_thorn);
} }
//Pick Your Poison Achievement //Pick Your Poison Achievement
if (block != null && block == BlockBOPPlant.paging.getBlock(BOPPlants.POISONIVY)) if (block != null && block == BlockBOPPlant.paging.getBlock(BOPPlants.POISONIVY))
{ {
player.addStat(BOPAchievements.obtain_poison_ivy, 1); player.triggerAchievement(BOPAchievements.obtain_poison_ivy);
} }
//Stalk Market Achievement //Stalk Market Achievement
if (item != null && item == BOPItems.turnip) if (item != null && item == BOPItems.turnip)
{ {
player.addStat(BOPAchievements.obtain_turnip, 1); player.triggerAchievement(BOPAchievements.obtain_turnip);
} }
//Honeycomb Crunch Achievement //Honeycomb Crunch Achievement
if (item != null && item == BOPItems.honeycomb) if (item != null && item == BOPItems.honeycomb)
{ {
player.addStat(BOPAchievements.obtain_honeycomb, 1); player.triggerAchievement(BOPAchievements.obtain_honeycomb);
} }
//Don't Breathe This Achievement //Don't Breathe This Achievement
if (item != null && item == BOPItems.pixie_dust) if (item != null && item == BOPItems.pixie_dust)
{ {
player.addStat(BOPAchievements.obtain_pixie_dust, 1); player.triggerAchievement(BOPAchievements.obtain_pixie_dust);
} }
//Far Out Achievement //Far Out Achievement
if (item != null && item == BOPItems.crystal_shard) if (item != null && item == BOPItems.crystal_shard)
{ {
player.addStat(BOPAchievements.obtain_celestial_crystal, 1); player.triggerAchievement(BOPAchievements.obtain_celestial_crystal);
} }
} }

View file

@ -24,7 +24,6 @@ import net.minecraft.stats.Achievement;
import net.minecraftforge.common.AchievementPage; import net.minecraftforge.common.AchievementPage;
import biomesoplenty.api.block.BOPBlocks; import biomesoplenty.api.block.BOPBlocks;
import biomesoplenty.api.item.BOPItems; import biomesoplenty.api.item.BOPItems;
import biomesoplenty.common.block.BlockBOPGrass;
import biomesoplenty.common.block.BlockBOPPlant; import biomesoplenty.common.block.BlockBOPPlant;
import biomesoplenty.common.enums.BOPPlants; import biomesoplenty.common.enums.BOPPlants;
@ -50,13 +49,14 @@ public class ModAchievements
obtain_honeycomb = addAchievement("achievement.obtain_honeycomb", "obtain_honeycomb", 3, -3, new ItemStack(BOPItems.honeycomb), obtain_coral); obtain_honeycomb = addAchievement("achievement.obtain_honeycomb", "obtain_honeycomb", 3, -3, new ItemStack(BOPItems.honeycomb), obtain_coral);
obtain_pixie_dust = addAchievement("achievement.obtain_pixie_dust", "obtain_pixie_dust", 5, -4, new ItemStack(BOPItems.pixie_dust), obtain_honeycomb); obtain_pixie_dust = addAchievement("achievement.obtain_pixie_dust", "obtain_pixie_dust", 5, -4, new ItemStack(BOPItems.pixie_dust), obtain_honeycomb);
obtain_celestial_crystal = addAchievement("achievement.obtain_celestial_crystal", "obtain_celestial_crystal", 7, -1, new ItemStack(BOPItems.crystal_shard), obtain_pixie_dust); obtain_celestial_crystal = addAchievement("achievement.obtain_celestial_crystal", "obtain_celestial_crystal", 7, -1, new ItemStack(BOPItems.crystal_shard), obtain_pixie_dust);
craft_ornamental_artifact = addAchievement("achievement.craft_ornamental_artifact", "craft_ornamental_artifact", 3, -8, new ItemStack(BOPItems.gem), obtain_pixie_dust); craft_ornamental_artifact = addAchievement("achievement.craft_ornamental_artifact", "craft_ornamental_artifact", 3, -6, new ItemStack(BOPItems.gem), obtain_pixie_dust);
explore_all_biomes = addAchievement("achievement.explore_all_biomes", "explore_all_biomes", 0, -8, new ItemStack(BOPItems.earth), craft_ornamental_artifact).setSpecial(); explore_all_biomes = addAchievement("achievement.explore_all_biomes", "explore_all_biomes", 0, -7, new ItemStack(BOPItems.earth), craft_ornamental_artifact).setSpecial();
} }
private static Achievement addAchievement(String unlocalizedName, String identifier, int column, int row, ItemStack iconStack, Achievement parent) private static Achievement addAchievement(String unlocalizedName, String identifier, int column, int row, ItemStack iconStack, Achievement parent)
{ {
Achievement achievement = new Achievement(unlocalizedName, identifier, column, row, iconStack, parent); Achievement achievement = new Achievement(unlocalizedName, identifier, column, row, iconStack, parent);
achievement.registerStat();
achievementPage.getAchievements().add(achievement); achievementPage.getAchievements().add(achievement);
return achievement; return achievement;
} }