Skip to content

Commit 925f472

Browse files
committed
Merge branch 'master' of https://github.com/NukkitX/Nukkit into redstone
2 parents 066244e + 0ae6d9b commit 925f472

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

src/main/java/cn/nukkit/network/protocol/CraftingEventPacket.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ public void decode() {
3838
this.type = (int) this.getUnsignedVarInt();
3939
this.id = this.getUUID();
4040

41-
this.input = this.getArray(BinaryStream::getSlot);
42-
this.output = this.getArray(BinaryStream::getSlot);
41+
this.input = this.getArray(Item.class, BinaryStream::getSlot);
42+
this.output = this.getArray(Item.class, BinaryStream::getSlot);
4343
}
4444

4545
@Override

src/main/java/cn/nukkit/network/protocol/TextPacket.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public void decode() {
5959
case TYPE_POPUP:
6060
case TYPE_JUKEBOX_POPUP:
6161
this.message = this.getString();
62-
this.parameters = this.getArray(BinaryStream::getString);
62+
this.parameters = this.getArray(String.class, BinaryStream::getString);
6363
}
6464
this.xboxUserId = this.getString();
6565
this.platformChatId = this.getString();

src/main/java/cn/nukkit/utils/BinaryStream.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414
import cn.nukkit.nbt.tag.ListTag;
1515
import cn.nukkit.nbt.tag.StringTag;
1616
import cn.nukkit.network.protocol.types.EntityLink;
17+
import com.google.common.collect.Iterables;
1718
import it.unimi.dsi.fastutil.io.FastByteArrayInputStream;
1819

1920
import java.io.IOException;
21+
import java.lang.reflect.Array;
2022
import java.nio.ByteOrder;
2123
import java.nio.charset.StandardCharsets;
2224
import java.util.*;
@@ -669,13 +671,13 @@ public EntityLink getEntityLink() {
669671
}
670672

671673
@SuppressWarnings("unchecked")
672-
public <T> T[] getArray(Function<BinaryStream, T> function) {
673-
ArrayDeque<T> array = new ArrayDeque<>();
674+
public <T> T[] getArray(Class<T> clazz, Function<BinaryStream, T> function) {
675+
ArrayDeque<T> deque = new ArrayDeque<>();
674676
int count = (int) getUnsignedVarInt();
675677
for (int i = 0; i < count; i++) {
676-
array.add(function.apply(this));
678+
deque.add(function.apply(this));
677679
}
678-
return (T[]) array.toArray();
680+
return deque.toArray((T[]) Array.newInstance(clazz, 0));
679681
}
680682

681683
public boolean feof() {

0 commit comments

Comments
 (0)