Commit 30261f750efdb8891d8295025ba5432170b356fb
1 parent
fb593da6
revert to old encoding style for custom payload REGISTER and UNREGISTER
Showing
1 changed file
with
17 additions
and
4 deletions
java/common/com/mumfrey/liteloader/core/PluginChannels.java
... | ... | @@ -13,8 +13,10 @@ import java.util.Set; |
13 | 13 | import net.minecraft.network.INetHandler; |
14 | 14 | import net.minecraft.network.PacketBuffer; |
15 | 15 | |
16 | +import com.google.common.base.Charsets; | |
16 | 17 | import com.mumfrey.liteloader.api.InterfaceProvider; |
17 | 18 | import com.mumfrey.liteloader.interfaces.FastIterableDeque; |
19 | +import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | |
18 | 20 | |
19 | 21 | /** |
20 | 22 | * Manages plugin channel connections and subscriptions for LiteLoader |
... | ... | @@ -117,10 +119,19 @@ public abstract class PluginChannels<L extends CommonPluginChannelListener> impl |
117 | 119 | */ |
118 | 120 | protected void onRegisterPacketReceived(PacketBuffer data) |
119 | 121 | { |
120 | - String channels = data.readStringFromBuffer(65535); | |
121 | - for (String channel : channels.split("\u0000")) | |
122 | + try | |
122 | 123 | { |
123 | - this.remotePluginChannels.add(channel); | |
124 | + byte[] bytes = new byte[data.readableBytes()]; | |
125 | + data.readBytes(bytes); | |
126 | + String channels = new String(bytes, Charsets.UTF_8); | |
127 | + for (String channel : channels.split("\u0000")) | |
128 | + { | |
129 | + this.remotePluginChannels.add(channel); | |
130 | + } | |
131 | + } | |
132 | + catch (Exception ex) | |
133 | + { | |
134 | + LiteLoaderLogger.warning(ex, "Error decoding REGISTER packet from remote host %s", ex.getClass().getSimpleName()); | |
124 | 135 | } |
125 | 136 | } |
126 | 137 | |
... | ... | @@ -143,7 +154,9 @@ public abstract class PluginChannels<L extends CommonPluginChannelListener> impl |
143 | 154 | separator = true; |
144 | 155 | } |
145 | 156 | |
146 | - return new PacketBuffer(Unpooled.buffer()).writeString(channelList.toString()); | |
157 | + PacketBuffer buffer = new PacketBuffer(Unpooled.buffer()); | |
158 | + buffer.writeBytes(channelList.toString().getBytes(Charsets.UTF_8)); | |
159 | + return buffer; | |
147 | 160 | } |
148 | 161 | |
149 | 162 | return null; | ... | ... |