9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-24 01:19:24 +00:00

fix 1.21.5

This commit is contained in:
XiaoMoMi
2025-04-05 02:45:21 +08:00
parent 063948feac
commit b8081176d0
2 changed files with 22 additions and 5 deletions

View File

@@ -217,6 +217,20 @@ public class FriendlyByteBuf extends ByteBuf {
return this; return this;
} }
public FriendlyByteBuf writeFixedSizeLongArray(long[] array) {
for (long value : array) {
this.writeLong(value);
}
return this;
}
public long[] readFixedSizeLongArray(long[] output) {
for(int i = 0; i < output.length; ++i) {
output[i] = this.readLong();
}
return output;
}
public long[] readLongArray() { public long[] readLongArray() {
return this.readLongArray(null); return this.readLongArray(null);
} }

View File

@@ -8,6 +8,7 @@ import net.momirealms.craftengine.core.plugin.CraftEngine;
import net.momirealms.craftengine.core.util.FriendlyByteBuf; import net.momirealms.craftengine.core.util.FriendlyByteBuf;
import net.momirealms.craftengine.core.util.IndexedIterable; import net.momirealms.craftengine.core.util.IndexedIterable;
import net.momirealms.craftengine.core.util.MCUtils; import net.momirealms.craftengine.core.util.MCUtils;
import net.momirealms.craftengine.core.util.VersionHelper;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.Arrays; import java.util.Arrays;
@@ -15,12 +16,14 @@ import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Consumer; import java.util.function.*;
import java.util.function.IntUnaryOperator;
import java.util.function.Predicate;
import java.util.stream.LongStream; import java.util.stream.LongStream;
public class PalettedContainer<T> implements PaletteResizeListener<T>, ReadableContainer<T> { public class PalettedContainer<T> implements PaletteResizeListener<T>, ReadableContainer<T> {
private static final BiConsumer<FriendlyByteBuf, long[]> RAW_DATA_WRITER = VersionHelper.isVersionNewerThan1_21_5() ?
(FriendlyByteBuf::writeFixedSizeLongArray) : (FriendlyByteBuf::writeLongArray);
private static final BiConsumer<FriendlyByteBuf, long[]> RAW_DATA_READER = VersionHelper.isVersionNewerThan1_21_5() ?
(FriendlyByteBuf::readFixedSizeLongArray) : (FriendlyByteBuf::readLongArray);
private final PaletteResizeListener<T> dummyListener = (newSize, added) -> 0; private final PaletteResizeListener<T> dummyListener = (newSize, added) -> 0;
private final IndexedIterable<T> idList; private final IndexedIterable<T> idList;
private Data<T> data; private Data<T> data;
@@ -78,7 +81,7 @@ public class PalettedContainer<T> implements PaletteResizeListener<T>, ReadableC
int i = buf.readByte(); int i = buf.readByte();
Data<T> data = this.getCompatibleData(this.data, i); Data<T> data = this.getCompatibleData(this.data, i);
data.palette.readPacket(buf); data.palette.readPacket(buf);
buf.readLongArray(data.storage.getData()); RAW_DATA_READER.accept(buf, data.storage.getData());
this.data = data; this.data = data;
} finally { } finally {
this.unlock(); this.unlock();
@@ -303,7 +306,7 @@ public class PalettedContainer<T> implements PaletteResizeListener<T>, ReadableC
public void writePacket(FriendlyByteBuf buf) { public void writePacket(FriendlyByteBuf buf) {
buf.writeByte(this.storage.getElementBits()); buf.writeByte(this.storage.getElementBits());
this.palette.writePacket(buf); this.palette.writePacket(buf);
buf.writeLongArray(this.storage.getData()); RAW_DATA_WRITER.accept(buf, this.storage.getData());
} }
} }