summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-05-01 21:37:34 +0100
committerOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-05-01 21:37:34 +0100
commit80417b99e10a462fd72b8f8fcd3b226c862534e4 (patch)
tree4ee9262290ae8939abf16e8104ebd90a5cc4a744 /src
parent1bdf66197e0c2547c32a64ae6dc17f5c2367cc49 (diff)
- Fixed villages crashing on a server
- Fixed item duplication glitch
Diffstat (limited to 'src')
-rw-r--r--src/main/java/darkknight/jewelrycraft/client/gui/container/ContainerJewelryTab.java55
-rw-r--r--src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java2
-rw-r--r--src/main/java/darkknight/jewelrycraft/events/EventList.java1
-rw-r--r--src/main/java/darkknight/jewelrycraft/proxy/ClientProxy.java3
-rw-r--r--src/main/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java11
-rw-r--r--src/main/java/darkknight/jewelrycraft/util/Variables.java2
-rw-r--r--src/main/java/darkknight/jewelrycraft/worldGen/village/ComponentJewelry.java18
-rw-r--r--src/main/java/darkknight/jewelrycraft/worldGen/village/JCTrades.java12
-rw-r--r--src/main/resources/mcmod.info2
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": "",