diff --git a/src/main/java/kamkeel/npcs/network/packets/data/large/ScrollGroupPacket.java b/src/main/java/kamkeel/npcs/network/packets/data/large/ScrollGroupPacket.java index 129035824..376d8be5e 100644 --- a/src/main/java/kamkeel/npcs/network/packets/data/large/ScrollGroupPacket.java +++ b/src/main/java/kamkeel/npcs/network/packets/data/large/ScrollGroupPacket.java @@ -56,6 +56,6 @@ public final class ScrollGroupPacket extends LargeAbstractPacket { @Override protected void handleCompleteData(ByteBuf data, EntityPlayer player) throws IOException { - NoppesUtil.setScrollData(data); + NoppesUtil.setScrollGroup(data); } } diff --git a/src/main/java/kamkeel/npcs/network/packets/data/large/SyncPacket.java b/src/main/java/kamkeel/npcs/network/packets/data/large/SyncPacket.java index 048d5be17..db7722ecb 100644 --- a/src/main/java/kamkeel/npcs/network/packets/data/large/SyncPacket.java +++ b/src/main/java/kamkeel/npcs/network/packets/data/large/SyncPacket.java @@ -14,6 +14,7 @@ import kamkeel.npcs.util.ByteBufUtils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import noppes.npcs.CustomNpcs; +import noppes.npcs.LogWriter; import java.io.IOException; @@ -81,10 +82,14 @@ public final class SyncPacket extends LargeAbstractPacket { EnumSyncType type = EnumSyncType.values()[syncTypeOrdinal]; EnumSyncAction action = EnumSyncAction.values()[syncActionOrdinal]; - NBTTagCompound tag = ByteBufUtils.readBigNBT(data); - - // Now do your client-side logic (similar to your old clientSync() or clientSyncUpdate() approach) - handleSyncPacketClient(type, action, categoryID, tag); + try { + NBTTagCompound tag = ByteBufUtils.readBigNBT(data); + // Now do your client-side logic (similar to your old clientSync() or clientSyncUpdate() approach) + handleSyncPacketClient(type, action, categoryID, tag); + } + catch (RuntimeException e){ + LogWriter.error(String.format("Attempted to Sync %s but it was too big", type.toString())); + } } private void handleSyncPacketClient(EnumSyncType enumSyncType, EnumSyncAction enumSyncAction, int id, NBTTagCompound data) { diff --git a/src/main/java/kamkeel/npcs/network/packets/request/GuiRequestPacket.java b/src/main/java/kamkeel/npcs/network/packets/request/GuiRequestPacket.java index 7e9c9b68e..7a8f7af06 100644 --- a/src/main/java/kamkeel/npcs/network/packets/request/GuiRequestPacket.java +++ b/src/main/java/kamkeel/npcs/network/packets/request/GuiRequestPacket.java @@ -42,7 +42,7 @@ public final class GuiRequestPacket extends AbstractPacket { @Override public boolean needsNPC() { - return true; + return false; } @SideOnly(Side.CLIENT) diff --git a/src/main/java/kamkeel/npcs/util/ByteBufUtils.java b/src/main/java/kamkeel/npcs/util/ByteBufUtils.java index 225327935..f470e17c0 100644 --- a/src/main/java/kamkeel/npcs/util/ByteBufUtils.java +++ b/src/main/java/kamkeel/npcs/util/ByteBufUtils.java @@ -102,7 +102,7 @@ public class ByteBufUtils extends cpw.mods.fml.common.network.ByteBufUtils { int length = buffer.readInt(); byte[] bytes = new byte[length]; buffer.readBytes(bytes); - return CompressedStreamTools.func_152457_a(bytes, new NBTSizeTracker(31457280L)); + return CompressedStreamTools.func_152457_a(bytes, new NBTSizeTracker(15728640L)); } public static void writeString(ByteBuf buffer, String s){ diff --git a/src/main/java/noppes/npcs/client/NoppesUtil.java b/src/main/java/noppes/npcs/client/NoppesUtil.java index e9f9fce0c..2de2178d7 100644 --- a/src/main/java/noppes/npcs/client/NoppesUtil.java +++ b/src/main/java/noppes/npcs/client/NoppesUtil.java @@ -191,18 +191,6 @@ public class NoppesUtil { group = new HashMap(); } - public static void addScrollData(ByteBuf buffer) { - try { - int size = buffer.readInt(); - for(int i = 0; i < size; i++){ - int id = buffer.readInt(); - String name = ByteBufUtils.readString(buffer); - data.put(name, id); - } - } catch (Exception e) { - } - } - public static void setScrollData(ByteBuf buffer) { GuiScreen gui = Minecraft.getMinecraft().currentScreen; if(gui == null) diff --git a/src/main/java/noppes/npcs/controllers/DialogController.java b/src/main/java/noppes/npcs/controllers/DialogController.java index f87c0fe5a..a892f934c 100644 --- a/src/main/java/noppes/npcs/controllers/DialogController.java +++ b/src/main/java/noppes/npcs/controllers/DialogController.java @@ -91,6 +91,7 @@ public class DialogController implements IDialogHandler { } } } + private DialogCategory loadCategoryDir(File dir) { DialogCategory category = new DialogCategory(); category.title = dir.getName(); @@ -103,6 +104,11 @@ public class DialogController implements IDialogHandler { dialog.readNBTPartial(NBTJsonUtil.LoadFile(file)); category.dialogs.put(dialog.id, dialog); dialog.category = category; + + if (dialog.text != null && dialog.text.length() > 15000) { + LogWriter.error("Extremely big dialog loaded: [ID: " + dialog.id + "] Title: " + + dialog.title + " (Length: " + dialog.text.length() + " chars)"); + } } catch(Exception e){ LogWriter.error("Error loading: " + file.getAbsolutePath(), e);