mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-07 00:38:46 +00:00
Make ForwardPrivateMessageEventEncoder thread-safe; Rename method.
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user