Server/Management-Server/src/main/java/ms/net/event/RegistryWriteEvent.java
2021-03-07 20:37:32 -06:00

43 lines
No EOL
950 B
Java

package ms.net.event;
import java.nio.ByteBuffer;
import ms.net.EventProducer;
import ms.net.IoSession;
import ms.net.IoWriteEvent;
import ms.net.producer.PacketEventProducer;
/**
* Handles game world registry writing events.
* @author Emperor
*
*/
public final class RegistryWriteEvent extends IoWriteEvent {
/**
* The event producer.
*/
public static final EventProducer PRODUCER = new PacketEventProducer();
/**
* Constructs a new {@code RegistryWriteEvent} {@code Object}.
* @param session The I/O session.
* @param context The writing context.
*/
public RegistryWriteEvent(IoSession session, Object context) {
super(session, context);
}
@Override
public void write(IoSession session, Object context) {
ByteBuffer buffer = ByteBuffer.allocate(1);
int opcode = (int) context;
buffer.put((byte) opcode);
buffer.flip();
if (opcode == 1) {
session.setProducer(PRODUCER);
}
session.queue(buffer);
}
}