From 1ed7801598b88ed96c5d3de7dda7be28e49ba892 Mon Sep 17 00:00:00 2001 From: Major- Date: Thu, 13 Feb 2014 14:42:31 +0000 Subject: [PATCH] Make ForwardPrivateMessageEventEncoder thread-safe; Rename method. --- .../game/event/impl/ForwardPrivateMessageEvent.java | 2 +- .../r317/ForwardPrivateMessageEventEncoder.java | 10 ++++++---- .../r377/ForwardPrivateMessageEventEncoder.java | 10 ++++++---- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/org/apollo/game/event/impl/ForwardPrivateMessageEvent.java b/src/org/apollo/game/event/impl/ForwardPrivateMessageEvent.java index 163238eb..312157ec 100644 --- a/src/org/apollo/game/event/impl/ForwardPrivateMessageEvent.java +++ b/src/org/apollo/game/event/impl/ForwardPrivateMessageEvent.java @@ -60,7 +60,7 @@ public final class ForwardPrivateMessageEvent extends Event { * * @return The message. */ - public byte[] getMessage() { + public byte[] getCompressedMessage() { return message; } diff --git a/src/org/apollo/net/release/r317/ForwardPrivateMessageEventEncoder.java b/src/org/apollo/net/release/r317/ForwardPrivateMessageEventEncoder.java index ec50a8ee..8464b2cb 100644 --- a/src/org/apollo/net/release/r317/ForwardPrivateMessageEventEncoder.java +++ b/src/org/apollo/net/release/r317/ForwardPrivateMessageEventEncoder.java @@ -1,5 +1,7 @@ package org.apollo.net.release.r317; +import java.util.concurrent.atomic.AtomicInteger; + import org.apollo.game.event.impl.ForwardPrivateMessageEvent; import org.apollo.net.codec.game.DataType; import org.apollo.net.codec.game.GamePacket; @@ -16,18 +18,18 @@ import org.apollo.util.NameUtil; public final class ForwardPrivateMessageEventEncoder extends EventEncoder { /** - * The amount of messages sent globally, offset by a random variable x, {@code 0 <= x < 100000000}. + * The amount of messages sent globally, offset by a random variable x, {@code 0 <= x < 100,000,000}. */ - private static int messageCount = (int) (Math.random() * 100000000); + private static AtomicInteger messageCounter = new AtomicInteger((int) (Math.random() * 100_000_000)); @Override public GamePacket encode(ForwardPrivateMessageEvent event) { GamePacketBuilder builder = new GamePacketBuilder(196, PacketType.VARIABLE_BYTE); builder.put(DataType.LONG, NameUtil.encodeBase37(event.getSenderUsername())); - builder.put(DataType.INT, messageCount++); + builder.put(DataType.INT, messageCounter.incrementAndGet()); builder.put(DataType.BYTE, event.getSenderPrivilege().toInteger()); - builder.putBytes(event.getMessage()); + builder.putBytes(event.getCompressedMessage()); return builder.toGamePacket(); } diff --git a/src/org/apollo/net/release/r377/ForwardPrivateMessageEventEncoder.java b/src/org/apollo/net/release/r377/ForwardPrivateMessageEventEncoder.java index 347d1441..3add324d 100644 --- a/src/org/apollo/net/release/r377/ForwardPrivateMessageEventEncoder.java +++ b/src/org/apollo/net/release/r377/ForwardPrivateMessageEventEncoder.java @@ -1,5 +1,7 @@ package org.apollo.net.release.r377; +import java.util.concurrent.atomic.AtomicInteger; + import org.apollo.game.event.impl.ForwardPrivateMessageEvent; import org.apollo.net.codec.game.DataType; import org.apollo.net.codec.game.GamePacket; @@ -16,18 +18,18 @@ import org.apollo.util.NameUtil; public final class ForwardPrivateMessageEventEncoder extends EventEncoder { /** - * The amount of messages sent globally, offset by a random variable x, {@code 0 <= x < 100000000}. + * The amount of messages sent globally, offset by a random variable x, {@code 0 <= x < 100,000,000}. */ - private static int messageCount = (int) (Math.random() * 100000000); + private static AtomicInteger messageCounter = new AtomicInteger((int) (Math.random() * 100_000_000)); @Override public GamePacket encode(ForwardPrivateMessageEvent event) { GamePacketBuilder builder = new GamePacketBuilder(135, PacketType.VARIABLE_BYTE); builder.put(DataType.LONG, NameUtil.encodeBase37(event.getSenderUsername())); - builder.put(DataType.INT, messageCount++); + builder.put(DataType.INT, messageCounter.incrementAndGet()); builder.put(DataType.BYTE, event.getSenderPrivilege().toInteger()); - builder.putBytes(event.getMessage()); + builder.putBytes(event.getCompressedMessage()); return builder.toGamePacket(); }