mirror of
https://github.com/Quackster/Havana.git
synced 2025-07-02 04:37:47 +00:00
fix sendObject()
This commit is contained in:
parent
b64de80951
commit
42c811700b
1 changed files with 31 additions and 21 deletions
|
@ -13,6 +13,7 @@ import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE;
|
|||
import org.alexdev.havana.messages.types.MessageComposer;
|
||||
import org.alexdev.havana.messages.types.PlayerMessageComposer;
|
||||
import org.alexdev.havana.server.netty.streams.NettyResponse;
|
||||
import org.alexdev.havana.util.StringUtil;
|
||||
import org.alexdev.havana.util.config.ServerConfiguration;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -20,35 +21,44 @@ import org.slf4j.LoggerFactory;
|
|||
import java.nio.Buffer;
|
||||
import java.util.List;
|
||||
|
||||
public class NetworkEncoder extends MessageToMessageEncoder<MessageComposer> {
|
||||
public class NetworkEncoder extends MessageToMessageEncoder<Object> {
|
||||
final private static Logger log = LoggerFactory.getLogger(NetworkEncoder.class);
|
||||
|
||||
@Override
|
||||
protected void encode(ChannelHandlerContext ctx, MessageComposer msg, List<Object> out) throws Exception {
|
||||
protected void encode(ChannelHandlerContext ctx, Object outgoing, List<Object> out) throws Exception {
|
||||
Player player = ctx.channel().attr(Player.PLAYER_KEY).get();
|
||||
ByteBuf buffer = Unpooled.buffer();
|
||||
|
||||
if (msg instanceof PlayerMessageComposer) {
|
||||
PlayerMessageComposer playerMessageComposer = (PlayerMessageComposer) msg;
|
||||
playerMessageComposer.setPlayer(player);
|
||||
if (outgoing instanceof MessageComposer) {
|
||||
var msg = (MessageComposer) outgoing;
|
||||
|
||||
if (msg instanceof PlayerMessageComposer) {
|
||||
PlayerMessageComposer playerMessageComposer = (PlayerMessageComposer) msg;
|
||||
playerMessageComposer.setPlayer(player);
|
||||
}
|
||||
|
||||
NettyResponse response = new NettyResponse(msg.getHeader(), buffer);
|
||||
|
||||
try {
|
||||
msg.compose(response);
|
||||
} catch (Exception ex) {
|
||||
Log.getErrorLogger().error("Error occurred when composing (" + response.getHeader() + "):", ex);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!response.isFinalised()) {
|
||||
buffer.writeByte(1);
|
||||
response.setFinalised(true);
|
||||
}
|
||||
|
||||
if (ServerConfiguration.getBoolean("log.sent.packets")) {
|
||||
log.info("SENT 1: {} / {}", msg.getHeader(), response.getBodyString());
|
||||
}
|
||||
}
|
||||
|
||||
NettyResponse response = new NettyResponse(msg.getHeader(), buffer);
|
||||
|
||||
try {
|
||||
msg.compose(response);
|
||||
} catch (Exception ex) {
|
||||
Log.getErrorLogger().error("Error occurred when composing (" + response.getHeader() + "):", ex);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!response.isFinalised()) {
|
||||
buffer.writeByte(1);
|
||||
response.setFinalised(true);
|
||||
}
|
||||
|
||||
if (ServerConfiguration.getBoolean("log.sent.packets")) {
|
||||
log.info("SENT 1: {} / {}", msg.getHeader(), response.getBodyString());
|
||||
if (outgoing instanceof String) {
|
||||
var msgString = (String) outgoing;
|
||||
buffer.writeBytes(msgString.getBytes(StringUtil.getCharset()));
|
||||
}
|
||||
|
||||
out.add(buffer);
|
||||
|
|
Loading…
Add table
Reference in a new issue