Skip to content

Commit 4168fc7

Browse files
committed
Merge pull request #97 from intangir/exultant
workaround fix for 1.4.6, it doesnt remove the placed item if its already removed
2 parents 9360bd5 + 2461dee commit 4168fc7

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/com/untamedears/citadel/Utility.java

+14-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,20 @@ public static IReinforcement createPlayerReinforcement(Player player, Block bloc
101101
sendMessage(player, ChatColor.RED, "You don't seem to have a personal group. Try logging out and back in first");
102102
}
103103
}
104-
player.getInventory().removeItem(material.getRequiredMaterials());
104+
105+
// workaround fix for 1.4.6, it doesnt remove the placed item if its already removed for some reason?
106+
if ((state.getMode() == PlacementMode.FORTIFICATION) && (blockTypeId == material.getMaterialId())) {
107+
ItemStack stack = player.getItemInHand();
108+
if (stack.getAmount() < material.getRequirements() + 1) {
109+
sendMessage(player, ChatColor.RED, "Not enough material in hand to place and fortify this block");
110+
return null;
111+
}
112+
stack.setAmount(stack.getAmount() - (material.getRequirements() + 1));
113+
player.setItemInHand(stack);
114+
}
115+
else {
116+
player.getInventory().removeItem(material.getRequiredMaterials());
117+
}
105118
//TODO: there will eventually be a better way to flush inventory changes to the client
106119
player.updateInventory();
107120
PlayerReinforcement reinforcement = new PlayerReinforcement(block, material, group, state.getSecurityLevel());

0 commit comments

Comments
 (0)