diff --git a/pom.xml b/pom.xml
index bacd9a4945..70bbb84d8f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
io.github.retrooper
packetevents
- 1.7.4
+ 1.7.5
diff --git a/src/main/java/io/github/retrooper/packetevents/PacketEvents.java b/src/main/java/io/github/retrooper/packetevents/PacketEvents.java
index a79d8f9b05..bb56fd6ab8 100644
--- a/src/main/java/io/github/retrooper/packetevents/PacketEvents.java
+++ b/src/main/java/io/github/retrooper/packetevents/PacketEvents.java
@@ -57,7 +57,7 @@ public final class PacketEvents implements Listener {
private static final PacketEvents instance = new PacketEvents();
private static final ArrayList plugins = new ArrayList<>(1);
private static boolean loaded, initialized;
- private static final PEVersion version = new PEVersion(1, 7, 4);
+ private static final PEVersion version = new PEVersion(1, 7, 5);
private static PacketEventsSettings settings = new PacketEventsSettings();
/** General executor service, basically for anything that the packet executor service doesn't do.
diff --git a/src/main/java/io/github/retrooper/packetevents/packetwrappers/WrappedPacket.java b/src/main/java/io/github/retrooper/packetevents/packetwrappers/WrappedPacket.java
index 3523278954..75e246b32c 100644
--- a/src/main/java/io/github/retrooper/packetevents/packetwrappers/WrappedPacket.java
+++ b/src/main/java/io/github/retrooper/packetevents/packetwrappers/WrappedPacket.java
@@ -491,7 +491,8 @@ public Object readAnyObject(int index) {
public Object readObject(int index, Class> type) {
Map, Field[]> cached = fieldCache.get(packetClass);
if (cached != null) {
- if (!cached.containsKey(type)) {
+ Field[] cachedFields = cached.get(type);
+ if (cachedFields == null) {
List typeFields = new ArrayList<>();
for (Field f : packetClass.getDeclaredFields()) {
f.setAccessible(true);
@@ -501,10 +502,14 @@ public Object readObject(int index, Class> type) {
}
if (!typeFields.isEmpty()) {
cached.put(type, typeFields.toArray(new Field[0]));
+ cachedFields = cached.get(type);
+ }
+ else {
+ throw new WrapperFieldNotFoundException("The class you are trying to read fields from does not contain any fields!");
}
}
try {
- return cached.get(type)[index].get(packet);
+ return cachedFields[index].get(packet);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
@@ -601,12 +606,9 @@ private Field getField(Class> type, int index) {
}
private List getFields(Class> type, Field[] fields) {
- List ret = null;
+ List ret = new ArrayList<>();
for (Field field : fields) {
if (field.getType() == type) {
- if (ret == null) {
- ret = new ArrayList<>();
- }
ret.add(field);
}
}
diff --git a/src/main/java/io/github/retrooper/packetevents/packetwrappers/in/blockplace/WrappedPacketInBlockPlace.java b/src/main/java/io/github/retrooper/packetevents/packetwrappers/in/blockplace/WrappedPacketInBlockPlace.java
index 55c928d6ec..65edf8b246 100644
--- a/src/main/java/io/github/retrooper/packetevents/packetwrappers/in/blockplace/WrappedPacketInBlockPlace.java
+++ b/src/main/java/io/github/retrooper/packetevents/packetwrappers/in/blockplace/WrappedPacketInBlockPlace.java
@@ -27,8 +27,6 @@
import io.github.retrooper.packetevents.enums.Direction;
import io.github.retrooper.packetevents.packetwrappers.WrappedPacket;
import io.github.retrooper.packetevents.utils.server.ServerVersion;
-import org.bukkit.entity.Player;
-import org.bukkit.inventory.ItemStack;
public final class WrappedPacketInBlockPlace extends WrappedPacket {
@@ -41,21 +39,17 @@ public WrappedPacketInBlockPlace(final Object packet) {
public static void load() {
isHigherThan_v_1_8_8 = version.isHigherThan(ServerVersion.v_1_8_8);
isHigherThan_v_1_7_10 = version.isHigherThan(ServerVersion.v_1_7_10);
- if (isHigherThan_v_1_8_8) {
- WrappedPacketInBlockPlace_1_9.load();
- }
+ WrappedPacketInBlockPlace_1_9.load();
}
public Direction getDirection() {
- if(isHigherThan_v_1_8_8) {
+ if (isHigherThan_v_1_8_8) {
WrappedPacketInBlockPlace_1_9 blockPlace_1_9 = new WrappedPacketInBlockPlace_1_9(packet);
- return Direction.valueOf(((Enum)blockPlace_1_9.getEnumDirectionObject()).name());
- }
- else if(isHigherThan_v_1_7_10) {
+ return Direction.valueOf(((Enum) blockPlace_1_9.getEnumDirectionObject()).name());
+ } else if (isHigherThan_v_1_7_10) {
WrappedPacketInBlockPlace_1_8 blockPlace_1_8 = new WrappedPacketInBlockPlace_1_8(packet);
return Direction.values()[blockPlace_1_8.getFace()];
- }
- else {
+ } else {
WrappedPacketInBlockPlace_1_7_10 blockPlace_1_7_10 = new WrappedPacketInBlockPlace_1_7_10(packet);
return Direction.values()[blockPlace_1_7_10.face];
}
diff --git a/src/main/java/io/github/retrooper/packetevents/packetwrappers/in/blockplace/WrappedPacketInBlockPlace_1_8.java b/src/main/java/io/github/retrooper/packetevents/packetwrappers/in/blockplace/WrappedPacketInBlockPlace_1_8.java
index 2156ee3601..bc88d6d071 100644
--- a/src/main/java/io/github/retrooper/packetevents/packetwrappers/in/blockplace/WrappedPacketInBlockPlace_1_8.java
+++ b/src/main/java/io/github/retrooper/packetevents/packetwrappers/in/blockplace/WrappedPacketInBlockPlace_1_8.java
@@ -40,7 +40,7 @@ final class WrappedPacketInBlockPlace_1_8 extends WrappedPacket {
public int getX() {
if(blockPosObj == null) {
- blockPosObj = readObject(0, NMSUtils.blockPosClass);
+ blockPosObj = readObject(1, NMSUtils.blockPosClass);
}
try {
return (int) Reflection.getMethod(blockPosObj.getClass().getSuperclass(), "getX", 0).invoke(blockPosObj);
@@ -49,10 +49,11 @@ public int getX() {
}
return -1;
}
+
public int getY() {
if(blockPosObj == null) {
- blockPosObj = readObject(0, NMSUtils.blockPosClass);
+ blockPosObj = readObject(1, NMSUtils.blockPosClass);
}
try {
return (int) Reflection.getMethod(blockPosObj.getClass().getSuperclass(), "getY", 0).invoke(blockPosObj);
@@ -64,7 +65,7 @@ public int getY() {
public int getZ() {
if(blockPosObj == null) {
- blockPosObj = readObject(0, NMSUtils.blockPosClass);
+ blockPosObj = readObject(1, NMSUtils.blockPosClass);
}
try {
return (int) Reflection.getMethod(blockPosObj.getClass().getSuperclass(), "getZ", 0).invoke(blockPosObj);