From 3882b9b82caf648df51f45f1023d5600b7692255 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Wed, 8 Jan 2025 08:20:49 -0600 Subject: [PATCH 1/4] Fix #1. Fix custom machine crashing clients/invalidating packets due to buffer underflow. --- .../com/hbm/tileentity/machine/TileEntityCustomMachine.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java index 4ea41461d..38c584d9d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -231,6 +231,8 @@ public class TileEntityCustomMachine extends TileEntityMachinePolluting implemen public void serialize(ByteBuf buf) { super.serialize(buf); + BufferUtil.writeString(buf, this.machineType); + buf.writeLong(power); buf.writeInt(progress); buf.writeInt(flux); @@ -596,13 +598,13 @@ public class TileEntityCustomMachine extends TileEntityMachinePolluting implemen return 0; } - + @Override public long getReceiverSpeed() { if(this.config != null && !this.config.generatorMode) return this.getMaxPower(); return 0; } - + @Override public long getProviderSpeed() { if(this.config != null && this.config.generatorMode) return this.getMaxPower(); From be01e9efd0b5fe2653377e74b80911738e9408f0 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Wed, 8 Jan 2025 08:31:51 -0600 Subject: [PATCH 2/4] Fix #2. Packets decaying way too quickly with large bases, remove total time counter. --- src/main/java/com/hbm/handler/threading/PacketThreading.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/handler/threading/PacketThreading.java b/src/main/java/com/hbm/handler/threading/PacketThreading.java index 18c5fda01..1111d0ae6 100644 --- a/src/main/java/com/hbm/handler/threading/PacketThreading.java +++ b/src/main/java/com/hbm/handler/threading/PacketThreading.java @@ -132,7 +132,8 @@ public class PacketThreading { for (Future future : futureList) { nanoTimeWaited = System.nanoTime() - startTime; future.get(50, TimeUnit.MILLISECONDS); // I HATE EVERYTHING - if(TimeUnit.MILLISECONDS.convert(nanoTimeWaited, TimeUnit.NANOSECONDS) > 50) throw new TimeoutException(); // >50ms total time? timeout? yes sir, ooh rah! + // if(TimeUnit.MILLISECONDS.convert(nanoTimeWaited, TimeUnit.NANOSECONDS) > 50) throw new TimeoutException(); // >50ms total time? timeout? yes sir, ooh rah! + // this seems to cause big problems with large worlds, never mind... } } } catch (ExecutionException ignored) { From 6d06227922827de2a961dcdce22ff59703a1e841 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Wed, 8 Jan 2025 20:31:33 -0600 Subject: [PATCH 3/4] Fix #3. Fix corrupted broadcaster playing inversely. --- .../tileentity/machine/TileEntityBroadcaster.java | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java index e1b261544..9a3e16a0d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java @@ -12,7 +12,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntity; @@ -52,18 +51,6 @@ public class TileEntityBroadcaster extends TileEntityLoadedBase { audio = rebootAudio(audio); } - int intendedVolume = 25; - - EntityPlayer player = MainRegistry.proxy.me(); - float volume; - if(player != null) { - float f = (float)Math.sqrt(Math.pow(xCoord - player.posX, 2) + Math.pow(yCoord - player.posY, 2) + Math.pow(zCoord - player.posZ, 2)); - volume = (f / intendedVolume) * -2 + 2; - } else { - volume = intendedVolume; - } - - audio.updateVolume(getVolume(volume)); audio.keepAlive(); } } @@ -89,7 +76,7 @@ public class TileEntityBroadcaster extends TileEntityLoadedBase { @Override public AudioWrapper createAudioLoop() { Random rand = new Random(xCoord + yCoord + zCoord); - return MainRegistry.proxy.getLoopedSound("hbm:block.broadcast" + (rand.nextInt(3) + 1), xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:block.broadcast" + (rand.nextInt(3) + 1), xCoord, yCoord, zCoord, 25F, 25F, 1.0F); } @Override From 19af9d769d6610bdc723209baed79c82adbaca9f Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Wed, 8 Jan 2025 20:48:53 -0600 Subject: [PATCH 4/4] Fix #4. Fix timed bombs not showing a time. --- src/main/java/com/hbm/tileentity/bomb/TileEntityCharge.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCharge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCharge.java index 18a08483e..81017a41a 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCharge.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCharge.java @@ -32,7 +32,7 @@ public class TileEntityCharge extends TileEntityLoadedBase { @Override public void serialize(ByteBuf buf) { - buf.writeLong(this.timer); + buf.writeInt(this.timer); buf.writeBoolean(this.started); }