mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-23 17:09:19 +00:00
fix 1.21.5
This commit is contained in:
@@ -217,6 +217,20 @@ public class FriendlyByteBuf extends ByteBuf {
|
||||
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() {
|
||||
return this.readLongArray(null);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import net.momirealms.craftengine.core.plugin.CraftEngine;
|
||||
import net.momirealms.craftengine.core.util.FriendlyByteBuf;
|
||||
import net.momirealms.craftengine.core.util.IndexedIterable;
|
||||
import net.momirealms.craftengine.core.util.MCUtils;
|
||||
import net.momirealms.craftengine.core.util.VersionHelper;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
@@ -15,12 +16,14 @@ import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.locks.Lock;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.IntUnaryOperator;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.function.*;
|
||||
import java.util.stream.LongStream;
|
||||
|
||||
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 IndexedIterable<T> idList;
|
||||
private Data<T> data;
|
||||
@@ -78,7 +81,7 @@ public class PalettedContainer<T> implements PaletteResizeListener<T>, ReadableC
|
||||
int i = buf.readByte();
|
||||
Data<T> data = this.getCompatibleData(this.data, i);
|
||||
data.palette.readPacket(buf);
|
||||
buf.readLongArray(data.storage.getData());
|
||||
RAW_DATA_READER.accept(buf, data.storage.getData());
|
||||
this.data = data;
|
||||
} finally {
|
||||
this.unlock();
|
||||
@@ -303,7 +306,7 @@ public class PalettedContainer<T> implements PaletteResizeListener<T>, ReadableC
|
||||
public void writePacket(FriendlyByteBuf buf) {
|
||||
buf.writeByte(this.storage.getElementBits());
|
||||
this.palette.writePacket(buf);
|
||||
buf.writeLongArray(this.storage.getData());
|
||||
RAW_DATA_WRITER.accept(buf, this.storage.getData());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user