diff options
| author | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-05-01 21:37:34 +0100 |
|---|---|---|
| committer | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-05-01 21:37:34 +0100 |
| commit | 80417b99e10a462fd72b8f8fcd3b226c862534e4 (patch) | |
| tree | 4ee9262290ae8939abf16e8104ebd90a5cc4a744 /src | |
| parent | 1bdf66197e0c2547c32a64ae6dc17f5c2367cc49 (diff) | |
- Fixed villages crashing on a server
- Fixed item duplication glitch
Diffstat (limited to 'src')
9 files changed, 63 insertions, 43 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/client/gui/container/ContainerJewelryTab.java b/src/main/java/darkknight/jewelrycraft/client/gui/container/ContainerJewelryTab.java index 1b2ab60..3b323e6 100644 --- a/src/main/java/darkknight/jewelrycraft/client/gui/container/ContainerJewelryTab.java +++ b/src/main/java/darkknight/jewelrycraft/client/gui/container/ContainerJewelryTab.java @@ -16,7 +16,6 @@ import darkknight.jewelrycraft.item.ItemRing; public class ContainerJewelryTab extends Container { - /** * @param player * @param inv @@ -68,23 +67,45 @@ public class ContainerJewelryTab extends Container if (slot != null && slot.getHasStack()){ ItemStack itemstack1 = slot.getStack(); itemstack = itemstack1.copy(); - if (slotID < 18){ - if (!mergeItemStack(itemstack1, 18, 18 + 36, true)) return null; - slot.onSlotChange(itemstack1, itemstack); - }else if (itemstack1.getItem() instanceof ItemRing){ - if (!mergeItemStack(itemstack1, 0, 10, false)) return null; - }else if (itemstack1.getItem() instanceof ItemBracelet){ - if (!mergeItemStack(itemstack1, 10, 14, false)) return null; - }else if (itemstack1.getItem() instanceof ItemNecklace){ - if (!mergeItemStack(itemstack1, 14, 17, false)) return null; - }else if (itemstack1.getItem() instanceof ItemEarrings){ - if (!mergeItemStack(itemstack1, 17, 18, false)) return null; - }else{ - if (!mergeItemStack(itemstack1, 18, 54, true)) return null; - slot.onSlotChange(itemstack1, itemstack); - } - if (itemstack1.stackSize == 0) slot.putStack((ItemStack)null); + // if (slotID < 18){ + // if (!mergeItemStack(itemstack1, 18, 54, true)) return null; + // slot.onSlotChange(itemstack1, itemstack); + // }else if (itemstack1.getItem() instanceof ItemRing){ + // if (!mergeItemStack(itemstack1, 0, 10, false)) return null; + // }else if (itemstack1.getItem() instanceof ItemBracelet){ + // if (!mergeItemStack(itemstack1, 10, 14, false)) return null; + // }else if (itemstack1.getItem() instanceof ItemNecklace){ + // if (!mergeItemStack(itemstack1, 14, 17, false)) return null; + // }else if (itemstack1.getItem() instanceof ItemEarrings){ + // if (!mergeItemStack(itemstack1, 17, 18, false)) return null; + // }else{ + // if (!mergeItemStack(itemstack1, 18, 54, true)) return null; + // slot.onSlotChange(itemstack1, itemstack); + // } + if (slotID >= 18){ + if (itemstack.getItem() instanceof ItemRing){ + if (!mergeItemStack(itemstack, 0, 10, false) && !slot.getHasStack()) return null; + }else if (itemstack.getItem() instanceof ItemBracelet){ + if (!mergeItemStack(itemstack, 10, 14, false) && !slot.getHasStack()) return null; + }else if (itemstack.getItem() instanceof ItemNecklace ){ + if (!mergeItemStack(itemstack, 14, 17, false) && !slot.getHasStack()) return null; + }else if (itemstack.getItem() instanceof ItemEarrings){ + if (!mergeItemStack(itemstack, 17, 18, false) && !slot.getHasStack()) return null; + } + else{ + if (slotID < 27){ + if (!mergeItemStack(itemstack, 27, 36 + 18, false)) return null; + }else{ + if (!mergeItemStack(itemstack, 18, 27, false)) return null; + } + } + }else if (!mergeItemStack(itemstack, 18, inventorySlots.size(), false)) return null; + if (itemstack.stackSize == 0) slot.putStack(null); else slot.onSlotChanged(); + if (itemstack.stackSize != itemstack.stackSize) slot.onPickupFromSlot(player, itemstack); + else return null; + // if (itemstack1.stackSize == 0) slot.putStack((ItemStack)null); + // else slot.onSlotChanged(); } return itemstack; } diff --git a/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java b/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java index 34c9b7f..085cadd 100644 --- a/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java +++ b/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java @@ -118,7 +118,7 @@ public class EntityEventHandler if (playerInfo.hasKey("ext" + i)){ NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + if (item != null && item.getItem() instanceof ItemBaseJewelry) ((ItemBaseJewelry)item.getItem()).action(item, player); } if (!player.worldObj.isRemote){ if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ diff --git a/src/main/java/darkknight/jewelrycraft/events/EventList.java b/src/main/java/darkknight/jewelrycraft/events/EventList.java index 4515ee1..5520b87 100644 --- a/src/main/java/darkknight/jewelrycraft/events/EventList.java +++ b/src/main/java/darkknight/jewelrycraft/events/EventList.java @@ -47,5 +47,6 @@ public class EventList EffectsList.postInit(e); DamageSourceList.postInit(e); JewelrycraftMod.proxy.postInit(); + JewelrycraftUtil.addStuff(); } } diff --git a/src/main/java/darkknight/jewelrycraft/proxy/ClientProxy.java b/src/main/java/darkknight/jewelrycraft/proxy/ClientProxy.java index d0b2661..1b9ef1f 100644 --- a/src/main/java/darkknight/jewelrycraft/proxy/ClientProxy.java +++ b/src/main/java/darkknight/jewelrycraft/proxy/ClientProxy.java @@ -96,7 +96,6 @@ public class ClientProxy extends CommonProxy @Override public void postInit() - { - JewelrycraftUtil.addStuff(); + { } } diff --git a/src/main/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java b/src/main/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java index a9d0a13..430673c 100644 --- a/src/main/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java +++ b/src/main/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java @@ -5,19 +5,18 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Random; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.oredict.OreDictionary; +import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.registry.GameData; +import cpw.mods.fml.relauncher.Side; import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.events.EntityEventHandler; import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; public class JewelrycraftUtil { @@ -52,10 +51,10 @@ public class JewelrycraftUtil jewelry.add(new ItemStack(ItemList.bracelet)); jewelry.add(new ItemStack(ItemList.earrings)); for(Object item: GameData.getItemRegistry()){ - if (Loader.isModLoaded("Mantle") && ((Item)item).getUnlocalizedName().equals("Mantle:item.mantle.manual")) continue; + if (Loader.isModLoaded("Mantle") && ((Item)item).getUnlocalizedName().equals("Mantle:item.mantle.manual")) continue; try{ - if (item != null && (Item)item != null && ((Item)item).getHasSubtypes()){ - ((Item)item).getSubItems((Item)item, ((Item)item).getCreativeTab(), items); + if (item != null && (Item)item != null && ((Item)item).getHasSubtypes() && FMLCommonHandler.instance().getSide() == Side.CLIENT){ + ((Item)item).getSubItems((Item)item, null, items); }else objects.add(new ItemStack((Item)item)); if (!items.isEmpty()) objects.addAll(items); items.removeAll(items); diff --git a/src/main/java/darkknight/jewelrycraft/util/Variables.java b/src/main/java/darkknight/jewelrycraft/util/Variables.java index a019409..ca00e13 100644 --- a/src/main/java/darkknight/jewelrycraft/util/Variables.java +++ b/src/main/java/darkknight/jewelrycraft/util/Variables.java @@ -6,7 +6,7 @@ public class Variables { public static final String MODID = "jewelrycraft2"; public static final String MODNAME = "Jewelrycraft 2"; - public static final String VERSION = "1.0.6"; + public static final String VERSION = "1.0.7"; public static final String PACKET_CHANNEL = "jewelrycraft2"; public static final String CONFIG_GUI = "darkknight.jewelrycraft.config.ConfigGuiFactory"; diff --git a/src/main/java/darkknight/jewelrycraft/worldGen/village/ComponentJewelry.java b/src/main/java/darkknight/jewelrycraft/worldGen/village/ComponentJewelry.java index 2e8bbd1..275b522 100644 --- a/src/main/java/darkknight/jewelrycraft/worldGen/village/ComponentJewelry.java +++ b/src/main/java/darkknight/jewelrycraft/worldGen/village/ComponentJewelry.java @@ -222,7 +222,7 @@ public class ComponentJewelry extends StructureVillagePieces.House1 int t = random.nextInt(max - min + 1) + min; placeBlockAtCurrentPosition(world, Blocks.chest, metadata, i, j, k, sbb); TileEntityChest chest = (TileEntityChest)world.getTileEntity(i1, j1, k1); - while (chest != null && t > 0){ + while (chest != null && t > 0 && JewelrycraftUtil.gem.size() > 0){ ItemStack jewels = JewelrycraftUtil.gem.get(random.nextInt(JewelrycraftUtil.gem.size())); chest.func_145976_a("Jeweler's Chest"); if (jewels.getItem() == Items.nether_star && ConfigHandler.GENERATE_VILLAGE_NETHERSTAR) chest.setInventorySlotContents(random.nextInt(chest.getSizeInventory()), jewels); @@ -252,7 +252,7 @@ public class ComponentJewelry extends StructureVillagePieces.House1 int t = random.nextInt(max - min + 1) + min; placeBlockAtCurrentPosition(world, chestB, metadata, i, j, k, sbb); TileEntityChest chest = (TileEntityChest)world.getTileEntity(i1, j1, k1); - while (chest != null && t > 0){ + while (chest != null && t > 0 && JewelrycraftUtil.metal.size() > 0){ chest.func_145976_a("Ingot Chest"); int metalID = random.nextInt(JewelrycraftUtil.metal.size()); ItemStack metal = JewelrycraftUtil.metal.get(metalID).copy(); @@ -283,7 +283,7 @@ public class ComponentJewelry extends StructureVillagePieces.House1 int t = random.nextInt(max - min + 1) + min; placeBlockAtCurrentPosition(world, chestB, metadata, i, j, k, sbb); TileEntityChest chest = (TileEntityChest)world.getTileEntity(i1, j1, k1); - while (chest != null && t > 0){ + while (chest != null && t > 0 && JewelrycraftUtil.ores.size() > 0){ chest.func_145976_a("Ores Chest"); int oreID = random.nextInt(JewelrycraftUtil.ores.size()); ItemStack ores = JewelrycraftUtil.ores.get(oreID).copy(); @@ -312,9 +312,9 @@ public class ComponentJewelry extends StructureVillagePieces.House1 if (displayer != null){ Item[] jewels = {ItemList.ring, ItemList.necklace}; ItemStack jewel = new ItemStack(jewels[random.nextInt(jewels.length)]); - JewelryNBT.addMetal(jewel, JewelrycraftUtil.metal.get(random.nextInt(JewelrycraftUtil.metal.size()))); - JewelryNBT.addModifiers(jewel, JewelrycraftUtil.addRandomModifiers(random.nextInt(4))); - JewelryNBT.addGem(jewel, JewelrycraftUtil.gem.get(random.nextInt(JewelrycraftUtil.gem.size()))); + if (JewelrycraftUtil.metal.size() > 0) JewelryNBT.addMetal(jewel, JewelrycraftUtil.metal.get(random.nextInt(JewelrycraftUtil.metal.size()))); + if (JewelrycraftUtil.objects.size() > 0) JewelryNBT.addModifiers(jewel, JewelrycraftUtil.addRandomModifiers(random.nextInt(4))); + if (JewelrycraftUtil.gem.size() > 0) JewelryNBT.addGem(jewel, JewelrycraftUtil.gem.get(random.nextInt(JewelrycraftUtil.gem.size()))); displayer.object = jewel; displayer.quantity = 1; displayer.hasObject = true; @@ -338,7 +338,7 @@ public class ComponentJewelry extends StructureVillagePieces.House1 int k1 = getZWithOffset(i, k); placeBlockAtCurrentPosition(world, BlockList.smelter, metadata, i, j, k, sbb); TileEntitySmelter smelter = (TileEntitySmelter)world.getTileEntity(i1, j1, k1); - if (smelter != null && !isEmpty){ + if (smelter != null && !isEmpty && JewelrycraftUtil.metal.size() > 0){ int metal = random.nextInt(JewelrycraftUtil.metal.size()); smelter.moltenMetal = JewelrycraftUtil.metal.get(metal).copy(); smelter.hasMoltenMetal = true; @@ -391,7 +391,7 @@ public class ComponentJewelry extends StructureVillagePieces.House1 int meta = random.nextInt(ItemMolds.moldsItemNames.length); molder.mold = new ItemStack(ItemList.molds, 1, meta); molder.hasMold = true; - if (hasStuff){ + if (hasStuff && JewelrycraftUtil.metal.size() > 0){ ItemStack ring = new ItemStack(ItemList.ring); JewelryNBT.addMetal(ring, JewelrycraftUtil.metal.get(random.nextInt(JewelrycraftUtil.metal.size())).copy()); ItemStack necklace = new ItemStack(ItemList.necklace); @@ -431,7 +431,7 @@ public class ComponentJewelry extends StructureVillagePieces.House1 TileEntityFurnace furnace = (TileEntityFurnace)world.getTileEntity(i1, j1, k1); if (furnace != null){ if (random.nextBoolean()) furnace.setInventorySlotContents(1, new ItemStack(Items.coal, 1 + random.nextInt(16))); - if (hasMetal){ + if (hasMetal && JewelrycraftUtil.metal.size() > 0){ int metalID = random.nextInt(JewelrycraftUtil.metal.size()); ItemStack metal = JewelrycraftUtil.metal.get(metalID).copy(); metal.stackSize = random.nextInt(max - min + 1) + min; diff --git a/src/main/java/darkknight/jewelrycraft/worldGen/village/JCTrades.java b/src/main/java/darkknight/jewelrycraft/worldGen/village/JCTrades.java index a3f7158..015e939 100644 --- a/src/main/java/darkknight/jewelrycraft/worldGen/village/JCTrades.java +++ b/src/main/java/darkknight/jewelrycraft/worldGen/village/JCTrades.java @@ -40,7 +40,7 @@ public class JCTrades implements IVillageTradeHandler int type = random.nextInt(12); switch(type) { - case 0:{ + case 0:if(JewelrycraftUtil.metal.size() > 0){ result = JewelrycraftUtil.metal.get(random.nextInt(JewelrycraftUtil.metal.size())); result.stackSize = 5 + random.nextInt(5); ingredient = new ItemStack(Items.emerald, 2 + random.nextInt(7)); @@ -84,7 +84,7 @@ public class JCTrades implements IVillageTradeHandler if (random.nextBoolean()) ingredient2 = new ItemStack(Items.emerald, 1 + random.nextInt(2)); break; } - case 7:{ + case 7:if(JewelrycraftUtil.gem.size() > 0){ int end = random.nextInt(JewelrycraftUtil.gem.size()); result = JewelrycraftUtil.gem.get(end); result.stackSize = 1 + random.nextInt(JewelrycraftUtil.gem.size() - end); @@ -99,7 +99,7 @@ public class JCTrades implements IVillageTradeHandler } break; } - case 8:{ + case 8:if(JewelrycraftUtil.ores.size() > 0){ result = JewelrycraftUtil.ores.get(random.nextInt(JewelrycraftUtil.ores.size())); result.stackSize = 3 + random.nextInt(3); ingredient = new ItemStack(Items.emerald, 2 + random.nextInt(5)); @@ -114,9 +114,9 @@ public class JCTrades implements IVillageTradeHandler default:{ result = new ItemStack(ItemList.ring, 1, 0); int randValue = random.nextInt(4); - JewelryNBT.addMetal(result, JewelrycraftUtil.metal.get(random.nextInt(JewelrycraftUtil.metal.size()))); - JewelryNBT.addModifiers(result, JewelrycraftUtil.addRandomModifiers(randValue)); - JewelryNBT.addGem(result, JewelrycraftUtil.gem.get(random.nextInt(JewelrycraftUtil.gem.size()))); + if(JewelrycraftUtil.metal.size() > 0) JewelryNBT.addMetal(result, JewelrycraftUtil.metal.get(random.nextInt(JewelrycraftUtil.metal.size()))); + if(JewelrycraftUtil.objects.size() > 0) JewelryNBT.addModifiers(result, JewelrycraftUtil.addRandomModifiers(randValue)); + if(JewelrycraftUtil.gem.size() > 0) JewelryNBT.addGem(result, JewelrycraftUtil.gem.get(random.nextInt(JewelrycraftUtil.gem.size()))); ingredient = new ItemStack(Items.emerald, 16 + random.nextInt(20)); ingredient2 = new ItemStack(Blocks.emerald_block, 2 + randValue); } diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 7e7596f..3d97a82 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -4,7 +4,7 @@ "modid": "jewelrycraft2", "name": "Jewelrycraft 2", "description": "Jewelrycraft 2 is a mod about creating jewellery and imbuing them with mystical powers. However, they have both positives and negatives. There are also curses, some good, some bad. Maybe acquiring some wouldn't be that bad.", - "version": "1.0.6", + "version": "1.0.7", "mcversion": "1.7.10", "url": "http://www.minecraftforum.net/forums/topic/2414865", "updateUrl": "", |
