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/main/java/darkknight | |
| parent | 1bdf66197e0c2547c32a64ae6dc17f5c2367cc49 (diff) | |
- Fixed villages crashing on a server
- Fixed item duplication glitch
Diffstat (limited to 'src/main/java/darkknight')
8 files changed, 62 insertions, 42 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); } |
