Fixed not sanitizing stack when handling knowledge, fixes #1450
This commit is contained in:
@@ -68,9 +68,7 @@ public class StorageItemTransmutationTable extends StorageItemExternal {
|
|||||||
if (!simulate) {
|
if (!simulate) {
|
||||||
provider.setEmc(provider.getEmc() + emc);
|
provider.setEmc(provider.getEmc() + emc);
|
||||||
|
|
||||||
if (!provider.hasKnowledge(stack)) {
|
handleKnowledge(provider, stack.copy());
|
||||||
provider.addKnowledge(stack);
|
|
||||||
}
|
|
||||||
|
|
||||||
EntityPlayer player = externalStorage.getWorld().getPlayerEntityByUUID(externalStorage.getOwner());
|
EntityPlayer player = externalStorage.getWorld().getPlayerEntityByUUID(externalStorage.getOwner());
|
||||||
|
|
||||||
@@ -86,6 +84,23 @@ public class StorageItemTransmutationTable extends StorageItemExternal {
|
|||||||
return actualStack;
|
return actualStack;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @todo: https://github.com/sinkillerj/ProjectE/issues/1592
|
||||||
|
private void handleKnowledge(IKnowledgeProvider provider, ItemStack stack) {
|
||||||
|
if (stack.getCount() > 1) {
|
||||||
|
stack.setCount(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!stack.getHasSubtypes() && stack.getMaxDamage() != 0) {
|
||||||
|
stack.setItemDamage(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!provider.hasKnowledge(stack)) {
|
||||||
|
stack.setTagCompound(null);
|
||||||
|
|
||||||
|
provider.addKnowledge(stack);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public ItemStack extract(@Nonnull ItemStack stack, int size, int flags, boolean simulate) {
|
public ItemStack extract(@Nonnull ItemStack stack, int size, int flags, boolean simulate) {
|
||||||
|
|||||||
Reference in New Issue
Block a user