summaryrefslogtreecommitdiff
path: root/src/main/java
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/main/java
parent1bdf66197e0c2547c32a64ae6dc17f5c2367cc49 (diff)
- Fixed villages crashing on a server
- Fixed item duplication glitch
Diffstat (limited to 'src/main/java')
-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
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);
}