Make ForwardPrivateMessageEventEncoder thread-safe; Rename method.

This commit is contained in:
Major-
2014-02-13 14:42:31 +00:00
parent 5ba056bb9f
commit 1ed7801598
3 changed files with 13 additions and 9 deletions
@@ -60,7 +60,7 @@ public final class ForwardPrivateMessageEvent extends Event {
* *
* @return The message. * @return The message.
*/ */
public byte[] getMessage() { public byte[] getCompressedMessage() {
return message; return message;
} }
@@ -1,5 +1,7 @@
package org.apollo.net.release.r317; package org.apollo.net.release.r317;
import java.util.concurrent.atomic.AtomicInteger;
import org.apollo.game.event.impl.ForwardPrivateMessageEvent; import org.apollo.game.event.impl.ForwardPrivateMessageEvent;
import org.apollo.net.codec.game.DataType; import org.apollo.net.codec.game.DataType;
import org.apollo.net.codec.game.GamePacket; import org.apollo.net.codec.game.GamePacket;
@@ -16,18 +18,18 @@ import org.apollo.util.NameUtil;
public final class ForwardPrivateMessageEventEncoder extends EventEncoder<ForwardPrivateMessageEvent> { public final class ForwardPrivateMessageEventEncoder extends EventEncoder<ForwardPrivateMessageEvent> {
/** /**
* 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 @Override
public GamePacket encode(ForwardPrivateMessageEvent event) { public GamePacket encode(ForwardPrivateMessageEvent event) {
GamePacketBuilder builder = new GamePacketBuilder(196, PacketType.VARIABLE_BYTE); GamePacketBuilder builder = new GamePacketBuilder(196, PacketType.VARIABLE_BYTE);
builder.put(DataType.LONG, NameUtil.encodeBase37(event.getSenderUsername())); 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.put(DataType.BYTE, event.getSenderPrivilege().toInteger());
builder.putBytes(event.getMessage()); builder.putBytes(event.getCompressedMessage());
return builder.toGamePacket(); return builder.toGamePacket();
} }
@@ -1,5 +1,7 @@
package org.apollo.net.release.r377; package org.apollo.net.release.r377;
import java.util.concurrent.atomic.AtomicInteger;
import org.apollo.game.event.impl.ForwardPrivateMessageEvent; import org.apollo.game.event.impl.ForwardPrivateMessageEvent;
import org.apollo.net.codec.game.DataType; import org.apollo.net.codec.game.DataType;
import org.apollo.net.codec.game.GamePacket; import org.apollo.net.codec.game.GamePacket;
@@ -16,18 +18,18 @@ import org.apollo.util.NameUtil;
public final class ForwardPrivateMessageEventEncoder extends EventEncoder<ForwardPrivateMessageEvent> { public final class ForwardPrivateMessageEventEncoder extends EventEncoder<ForwardPrivateMessageEvent> {
/** /**
* 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 @Override
public GamePacket encode(ForwardPrivateMessageEvent event) { public GamePacket encode(ForwardPrivateMessageEvent event) {
GamePacketBuilder builder = new GamePacketBuilder(135, PacketType.VARIABLE_BYTE); GamePacketBuilder builder = new GamePacketBuilder(135, PacketType.VARIABLE_BYTE);
builder.put(DataType.LONG, NameUtil.encodeBase37(event.getSenderUsername())); 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.put(DataType.BYTE, event.getSenderPrivilege().toInteger());
builder.putBytes(event.getMessage()); builder.putBytes(event.getCompressedMessage());
return builder.toGamePacket(); return builder.toGamePacket();
} }