Skip to content

Commit

Permalink
Fix and optimise the sending of open chest states on login
Browse files Browse the repository at this point in the history
  • Loading branch information
Chicken-Bones committed Aug 24, 2015
1 parent 12ad77b commit aea1567
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 31 deletions.
1 change: 0 additions & 1 deletion src/codechicken/enderstorage/api/EnderStorageManager.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package codechicken.enderstorage.api;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
Expand Down
38 changes: 17 additions & 21 deletions src/codechicken/enderstorage/internal/EnderStorageCPH.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,46 +17,42 @@ public class EnderStorageCPH implements IClientPacketHandler
{
public static final String channel = "ES";


@Override
public void handlePacket(PacketCustom packet, Minecraft mc, INetHandlerPlayClient handler) {
switch(packet.getType())
{
switch (packet.getType()) {
case 1:
handleTilePacket(mc.theWorld, packet, packet.readCoord());
break;
break;
case 2:
int windowID = packet.readUByte();

((EnderItemStorage) EnderStorageManager.instance(true).getStorage(packet.readString(), packet.readUShort(), "item"))
.openClientGui(windowID, mc.thePlayer.inventory, packet.readString(), packet.readUByte());
break;
break;
case 3:
((EnderItemStorage)EnderStorageManager.instance(true).getStorage(packet.readString(), packet.readUShort(), "item"))
.setClientOpen(packet.readBoolean() ? 1 : 0);
break;
((EnderItemStorage) EnderStorageManager.instance(true).getStorage(packet.readString(), packet.readUShort(), "item"))
.setClientOpen(packet.readBoolean() ? 1 : 0);
break;
case 4:
TankSynchroniser.syncClient(packet.readUShort(), packet.readString(), packet.readFluidStack());
break;
break;
case 5:
case 6:
handleTankTilePacket(mc.theWorld, packet.readCoord(), packet);
break;
break;
}
}

private void handleTankTilePacket(WorldClient world, BlockCoord pos, PacketCustom packet)
{
private void handleTankTilePacket(WorldClient world, BlockCoord pos, PacketCustom packet) {
TileEntity tile = world.getTileEntity(pos.x, pos.y, pos.z);
if(tile instanceof TileEnderTank)
((TileEnderTank)tile).sync(packet);
if (tile instanceof TileEnderTank)
((TileEnderTank) tile).sync(packet);
}

private void handleTilePacket(WorldClient world, PacketCustom packet, BlockCoord pos)
{
TileEntity tile = world.getTileEntity(pos.x, pos.y, pos.z);

if(tile instanceof TileFrequencyOwner)
((TileFrequencyOwner)tile).handleDescriptionPacket(packet);
private void handleTilePacket(WorldClient world, PacketCustom packet, BlockCoord pos) {
TileEntity tile = world.getTileEntity(pos.x, pos.y, pos.z);

if (tile instanceof TileFrequencyOwner)
((TileFrequencyOwner) tile).handleDescriptionPacket(packet);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public void init()
public void preInit()
{
MinecraftForge.EVENT_BUS.register(new EnderStorageRecipe());
FMLCommonHandler.instance().bus().register(new EnderStorageSaveHandler());
MinecraftForge.EVENT_BUS.register(new EnderStorageSaveHandler());
FMLCommonHandler.instance().bus().register(new TankSynchroniser());
MinecraftForge.EVENT_BUS.register(new TankSynchroniser());
Expand Down
13 changes: 5 additions & 8 deletions src/codechicken/enderstorage/internal/EnderStorageSPH.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,20 @@ public class EnderStorageSPH implements IServerPacketHandler
public static final String channel = "ES";

@Override
public void handlePacket(PacketCustom packet, EntityPlayerMP sender, INetHandlerPlayServer handler)
{
switch(packet.getType())
{
public void handlePacket(PacketCustom packet, EntityPlayerMP sender, INetHandlerPlayServer handler) {
switch (packet.getType()) {
case 1:
TankSynchroniser.handleVisiblityPacket(sender, packet);
break;
break;
}
}

public static void sendOpenUpdateTo(EntityPlayer player, String owner, int freq, boolean open)
{
public static void sendOpenUpdateTo(EntityPlayer player, String owner, int freq, boolean open) {
PacketCustom packet = new PacketCustom(channel, 3);
packet.writeString(owner);
packet.writeShort(freq);
packet.writeBoolean(open);

packet.sendToPlayer(player);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public void loadConfig(ConfigTag config)
public void sendClientInfo(EntityPlayer player, List<AbstractEnderStorage> list)
{
for(AbstractEnderStorage inv : list)
EnderStorageSPH.sendOpenUpdateTo(player, inv.owner, inv.freq, ((EnderItemStorage)inv).openCount() > 0);
if(((EnderItemStorage)inv).openCount() > 0)
EnderStorageSPH.sendOpenUpdateTo(player, inv.owner, inv.freq, true);
}
}

0 comments on commit aea1567

Please sign in to comment.