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; | ... | ... |