From 4e1579f2f0b8b184e1ab00498223ac02140208ee Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Tue, 9 May 2017 12:19:26 +0200 Subject: [PATCH] Cleanup writeItemStack code --- .../raoulvdberge/refinedstorage/RSUtils.java | 24 +++++++++++-------- .../storage/StorageCacheItemPortable.java | 22 +++-------------- .../network/MessageGridItemDelta.java | 19 +++++++-------- .../refinedstorage/proxy/ProxyCommon.java | 2 +- .../tile/grid/PortableGrid.java | 2 +- 5 files changed, 27 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java b/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java index 9bf951ee7..beade1ed1 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java @@ -126,20 +126,10 @@ public final class RSUtils { } public static void writeItemStack(ByteBuf buf, ItemStack stack) { - writeItemStack(buf, stack, null, false); - } - - public static void writeItemStack(ByteBuf buf, ItemStack stack, @Nullable INetworkMaster network, boolean displayCraftText) { buf.writeInt(Item.getIdFromItem(stack.getItem())); buf.writeInt(stack.getCount()); buf.writeInt(stack.getItemDamage()); ByteBufUtils.writeTag(buf, stack.getItem().getNBTShareTag(stack)); - - if (network != null) { - buf.writeInt(API.instance().getItemStackHashCode(stack)); - buf.writeBoolean(network.getCraftingManager().hasPattern(stack)); - buf.writeBoolean(displayCraftText); - } } public static ItemStack readItemStack(ByteBuf buf) { @@ -148,6 +138,20 @@ public final class RSUtils { return stack; } + public static void writeItemStack(ByteBuf buf, ItemStack stack, @Nullable INetworkMaster network, boolean displayCraftText) { + writeItemStack(buf, stack); + + buf.writeInt(API.instance().getItemStackHashCode(stack)); + + if (network != null) { + buf.writeBoolean(network.getCraftingManager().hasPattern(stack)); + buf.writeBoolean(displayCraftText); + } else { + buf.writeBoolean(false); + buf.writeBoolean(false); + } + } + public static void writeFluidStack(ByteBuf buf, FluidStack stack) { buf.writeInt(API.instance().getFluidStackHashCode(stack)); ByteBufUtils.writeUTF8String(buf, FluidRegistry.getFluidName(stack.getFluid())); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/StorageCacheItemPortable.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/StorageCacheItemPortable.java index 17389fd5f..ecb08ce24 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/StorageCacheItemPortable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/StorageCacheItemPortable.java @@ -9,14 +9,12 @@ import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.network.MessageGridItemDelta; import com.raoulvdberge.refinedstorage.network.MessageGridItemUpdate; import com.raoulvdberge.refinedstorage.tile.grid.PortableGrid; -import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import javax.annotation.Nonnull; import java.util.Collections; import java.util.List; -import java.util.function.Consumer; public class StorageCacheItemPortable implements IStorageCache { private PortableGrid portableGrid; @@ -34,15 +32,11 @@ public class StorageCacheItemPortable implements IStorageCache { portableGrid.getStorage().getStacks().forEach(list::add); } - RS.INSTANCE.network.sendTo(new MessageGridItemUpdate((buf) -> { + RS.INSTANCE.network.sendTo(new MessageGridItemUpdate(buf -> { buf.writeInt(list.getStacks().size()); for (ItemStack stack : list.getStacks()) { RSUtils.writeItemStack(buf, stack, null, false); - - buf.writeInt(API.instance().getItemStackHashCode(stack)); - buf.writeBoolean(false); - buf.writeBoolean(false); } }, false), (EntityPlayerMP) portableGrid.getPlayer()); } @@ -52,27 +46,17 @@ public class StorageCacheItemPortable implements IStorageCache { list.add(stack, size); if (!rebuilding) { - RS.INSTANCE.network.sendTo(new MessageGridItemDelta(getSendHandler(stack), size), (EntityPlayerMP) portableGrid.getPlayer()); + RS.INSTANCE.network.sendTo(new MessageGridItemDelta(null, stack, size), (EntityPlayerMP) portableGrid.getPlayer()); } } @Override public void remove(@Nonnull ItemStack stack, int size) { if (list.remove(stack, size)) { - RS.INSTANCE.network.sendTo(new MessageGridItemDelta(getSendHandler(stack), -size), (EntityPlayerMP) portableGrid.getPlayer()); + RS.INSTANCE.network.sendTo(new MessageGridItemDelta(null, stack, -size), (EntityPlayerMP) portableGrid.getPlayer()); } } - private Consumer getSendHandler(@Nonnull ItemStack stack) { - return buf -> { - RSUtils.writeItemStack(buf, stack, null, false); - - buf.writeInt(API.instance().getItemStackHashCode(stack)); - buf.writeBoolean(false); - buf.writeBoolean(false); - }; - } - @Override public void sort() { // NO OP diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemDelta.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemDelta.java index 8198672d9..85921223f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemDelta.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemDelta.java @@ -11,11 +11,12 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; -import java.util.function.Consumer; +import javax.annotation.Nullable; public class MessageGridItemDelta implements IMessage, IMessageHandler { - // @todo: we can remove sendHandler if we improve the network == null condition in RSUtils.writeItemStack - private Consumer sendHandler; + @Nullable + private INetworkMaster network; + private ItemStack stack; private int delta; private GridStackItem clientStack; @@ -23,13 +24,9 @@ public class MessageGridItemDelta implements IMessage, IMessageHandler RSUtils.writeItemStack(buf, stack, network, false); - this.delta = delta; - } - - public MessageGridItemDelta(Consumer sendHandler, int delta) { - this.sendHandler = sendHandler; + public MessageGridItemDelta(@Nullable INetworkMaster network, ItemStack stack, int delta) { + this.network = network; + this.stack = stack; this.delta = delta; } @@ -41,7 +38,7 @@ public class MessageGridItemDelta implements IMessage, IMessageHandler