3
0
Mirror von https://github.com/Moulberry/AxiomPaperPlugin.git synchronisiert 2024-09-29 07:50:05 +02:00

Fix payload handling

Dieser Commit ist enthalten in:
Moulberry 2023-09-06 12:01:07 +08:00
Ursprung 40493b997e
Commit 6acfa7cf2b
2 geänderte Dateien mit 9 neuen und 7 gelöschten Zeilen

Datei anzeigen

@ -26,8 +26,8 @@ public class AxiomBigPayloadHandler extends ByteToMessageDecoder {
@Override
protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception {
int readerIndex = in.readerIndex();
try {
int readerIndex = in.readerIndex();
int i = in.readableBytes();
if (i != 0) {
FriendlyByteBuf buf = new FriendlyByteBuf(in);
@ -38,15 +38,15 @@ public class AxiomBigPayloadHandler extends ByteToMessageDecoder {
if (identifier.equals(SET_BUFFER)) {
ServerPlayer player = connection.getPlayer();
if (player != null && player.getBukkitEntity().hasPermission("axiom.*")) {
listener.onReceive(player, buf);
in.readerIndex(in.writerIndex());
if (listener.onReceive(player, buf)) {
return;
}
}
}
}
} catch (Exception e) {
}
in.readerIndex(readerIndex);
} catch (Exception e) {
e.printStackTrace();
}

Datei anzeigen

@ -66,9 +66,9 @@ public class SetBlockBufferPacketListener {
}
}
public void onReceive(ServerPlayer player, FriendlyByteBuf friendlyByteBuf) {
public boolean onReceive(ServerPlayer player, FriendlyByteBuf friendlyByteBuf) {
MinecraftServer server = player.getServer();
if (server == null) return;
if (server == null) return false;
ResourceKey<Level> worldKey = friendlyByteBuf.readResourceKey(Registries.DIMENSION);
friendlyByteBuf.readUUID(); // Discard, we don't need to associate buffers
@ -88,6 +88,8 @@ public class SetBlockBufferPacketListener {
} else {
throw new RuntimeException("Unknown buffer type: " + type);
}
return true;
}
private void applyBlockBuffer(ServerPlayer player, MinecraftServer server, BlockBuffer buffer, ResourceKey<Level> worldKey) {