Skip to content

Commit

Permalink
Merge pull request #126 from Mooselk/master
Browse files Browse the repository at this point in the history
Fix NPCState#CROUCHED for 1.14.x -> 1.16.x
  • Loading branch information
Jitse Boonstra committed Dec 27, 2020
2 parents 3e36451 + 6ef80e0 commit 49697b8
Show file tree
Hide file tree
Showing 22 changed files with 71 additions and 125 deletions.
2 changes: 1 addition & 1 deletion api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<artifactId>npclib</artifactId>
<groupId>net.jitse</groupId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-api</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_10_R1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_10_R1</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_11_R1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_11_R1</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_12_R1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_12_R1</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_13_R1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_13_R1</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_13_R2/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_13_R2</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_14_R1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_14_R1</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,37 +1,29 @@
package net.jitse.npclib.nms.v1_14_R1.packets;

import java.util.Collection;

import net.jitse.npclib.api.state.NPCState;
import net.minecraft.server.v1_14_R1.DataWatcher;
import net.minecraft.server.v1_14_R1.DataWatcherObject;
import net.minecraft.server.v1_14_R1.DataWatcherRegistry;
import net.minecraft.server.v1_14_R1.EntityPose;
import net.minecraft.server.v1_14_R1.PacketPlayOutEntityMetadata;

import java.util.Collection;

public class PacketPlayOutEntityMetadataWrapper {

public PacketPlayOutEntityMetadata create(Collection<NPCState> activateStates, int entityId) {
DataWatcher dataWatcher = new DataWatcher(null);
byte masked = NPCState.getMasked(activateStates);
// TODO: Find out why NPCState#CROUCHED doesn't work.

dataWatcher.register(new DataWatcherObject<EntityPose>(6, DataWatcherRegistry.s), getMaskedPose(activateStates));
dataWatcher.register(new DataWatcherObject<>(0, DataWatcherRegistry.a), masked);

// for (Player online : Bukkit.getOnlinePlayers()) {
// DataWatcher watcher = ((CraftPlayer) online).getHandle().getDataWatcher();
// try {
// Field entriesField = watcher.getClass().getDeclaredField("entries");
// entriesField.setAccessible(true);
//
// Int2ObjectOpenHashMap<DataWatcher.Item<?>> entries = (Int2ObjectOpenHashMap<DataWatcher.Item<?>>) entriesField.get(watcher);
// entries.forEach((integer, item) -> {
// if (item.b() instanceof Boolean || item.b() instanceof Byte)
// online.sendMessage(integer + ": " + item.b() + " type = " + item.b().getClass().toString());
// });
// } catch (NoSuchFieldException | IllegalAccessException e) {
// e.printStackTrace();
// }
// }


return new PacketPlayOutEntityMetadata(entityId, dataWatcher, true);
}

private EntityPose getMaskedPose(Collection<NPCState> states) {
if (states.contains(NPCState.CROUCHED))
return EntityPose.SNEAKING;
return EntityPose.STANDING;
}
}
2 changes: 1 addition & 1 deletion nms/v1_15_R1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_15_R1</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,39 +1,31 @@
package net.jitse.npclib.nms.v1_15_R1.packets;

import java.util.Collection;

import net.jitse.npclib.api.state.NPCState;
import net.minecraft.server.v1_15_R1.DataWatcher;
import net.minecraft.server.v1_15_R1.DataWatcherObject;
import net.minecraft.server.v1_15_R1.DataWatcherRegistry;
import net.minecraft.server.v1_15_R1.EntityPose;
import net.minecraft.server.v1_15_R1.PacketPlayOutEntityMetadata;

import java.util.Collection;

public class PacketPlayOutEntityMetadataWrapper {

public PacketPlayOutEntityMetadata create(Collection<NPCState> activateStates, int entityId) {
DataWatcher dataWatcher = new DataWatcher(null);
dataWatcher.register(new DataWatcherObject<>(16, DataWatcherRegistry.a), (byte) 127);

byte masked = NPCState.getMasked(activateStates);
// TODO: Find out why NPCState#CROUCHED doesn't work.

dataWatcher.register(new DataWatcherObject<EntityPose>(6, DataWatcherRegistry.s), getMaskedPose(activateStates));
dataWatcher.register(new DataWatcherObject<>(0, DataWatcherRegistry.a), masked);

// for (Player online : Bukkit.getOnlinePlayers()) {
// DataWatcher watcher = ((CraftPlayer) online).getHandle().getDataWatcher();
// try {
// Field entriesField = watcher.getClass().getDeclaredField("entries");
// entriesField.setAccessible(true);
//
// Int2ObjectOpenHashMap<DataWatcher.Item<?>> entries = (Int2ObjectOpenHashMap<DataWatcher.Item<?>>) entriesField.get(watcher);
// entries.forEach((integer, item) -> {
// if (item.b() instanceof Boolean || item.b() instanceof Byte)
// online.sendMessage(integer + ": " + item.b() + " type = " + item.b().getClass().toString());
// });
// } catch (NoSuchFieldException | IllegalAccessException e) {
// e.printStackTrace();
// }
// }


return new PacketPlayOutEntityMetadata(entityId, dataWatcher, true);
}

private EntityPose getMaskedPose(Collection<NPCState> states) {
if (states.contains(NPCState.CROUCHED))
return EntityPose.CROUCHING;
// if (states.contains(NPCState.SLEEPING))
// return EntityPose.SLEEPING;
return EntityPose.STANDING;
}
}
2 changes: 1 addition & 1 deletion nms/v1_16_R1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_16_R1</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,34 +6,24 @@
import net.minecraft.server.v1_16_R1.DataWatcher;
import net.minecraft.server.v1_16_R1.DataWatcherObject;
import net.minecraft.server.v1_16_R1.DataWatcherRegistry;
import net.minecraft.server.v1_16_R1.EntityPose;
import net.minecraft.server.v1_16_R1.PacketPlayOutEntityMetadata;

public class PacketPlayOutEntityMetadataWrapper {

public PacketPlayOutEntityMetadata create(Collection<NPCState> activateStates, int entityId) {
DataWatcher dataWatcher = new DataWatcher(null);
dataWatcher.register(new DataWatcherObject<>(16, DataWatcherRegistry.a), (byte) 127);

byte masked = NPCState.getMasked(activateStates);
// TODO: Find out why NPCState#CROUCHED doesn't work.

dataWatcher.register(new DataWatcherObject<EntityPose>(6, DataWatcherRegistry.s), getMaskedPose(activateStates));
dataWatcher.register(new DataWatcherObject<>(0, DataWatcherRegistry.a), masked);

// for (Player online : Bukkit.getOnlinePlayers()) {
// DataWatcher watcher = ((CraftPlayer) online).getHandle().getDataWatcher();
// try {
// Field entriesField = watcher.getClass().getDeclaredField("entries");
// entriesField.setAccessible(true);
//
// Int2ObjectOpenHashMap<DataWatcher.Item<?>> entries = (Int2ObjectOpenHashMap<DataWatcher.Item<?>>) entriesField.get(watcher);
// entries.forEach((integer, item) -> {
// if (item.b() instanceof Boolean || item.b() instanceof Byte)
// online.sendMessage(integer + ": " + item.b() + " type = " + item.b().getClass().toString());
// });
// } catch (NoSuchFieldException | IllegalAccessException e) {
// e.printStackTrace();
// }
// }


return new PacketPlayOutEntityMetadata(entityId, dataWatcher, true);
}

private EntityPose getMaskedPose(Collection<NPCState> states) {
if (states.contains(NPCState.CROUCHED))
return EntityPose.CROUCHING;
return EntityPose.STANDING;
}
}
2 changes: 1 addition & 1 deletion nms/v1_16_R2/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_16_R2</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,38 +6,24 @@
import net.minecraft.server.v1_16_R2.DataWatcher;
import net.minecraft.server.v1_16_R2.DataWatcherObject;
import net.minecraft.server.v1_16_R2.DataWatcherRegistry;
import net.minecraft.server.v1_16_R2.EntityPose;
import net.minecraft.server.v1_16_R2.PacketPlayOutEntityMetadata;

public class PacketPlayOutEntityMetadataWrapper {

public PacketPlayOutEntityMetadata create(Collection<NPCState> activateStates, int entityId) {
DataWatcher dataWatcher = new DataWatcher(null);
dataWatcher.register(new DataWatcherObject<>(16, DataWatcherRegistry.a), (byte) 127);

byte masked = NPCState.getMasked(activateStates);
// TODO: Find out why NPCState#CROUCHED doesn't work.
dataWatcher.register(new DataWatcherObject<>(0, DataWatcherRegistry.a), masked);

// for (Player online : Bukkit.getOnlinePlayers()) {
// DataWatcher watcher = ((CraftPlayer) online).getHandle().getDataWatcher();
// try {
// Field entriesField = watcher.getClass().getDeclaredField("entries");
// entriesField.setAccessible(true);
//
// Int2ObjectOpenHashMap<DataWatcher.Item<?>> entries = (Int2ObjectOpenHashMap<DataWatcher.Item<?>>) entriesField.get(watcher);
// entries.forEach((integer, item) -> {
// if (item.b() instanceof Boolean || item.b() instanceof Byte)
// online.sendMessage(integer + ": " + item.b() + " type = " + item.b().getClass().toString());
// });
// } catch (NoSuchFieldException | IllegalAccessException e) {
// e.printStackTrace();
// }
// }

// Pose pose = Pose.SNEAKING;
dataWatcher.register(new DataWatcherObject<EntityPose>(6, DataWatcherRegistry.s), getMaskedPose(activateStates));
dataWatcher.register(new DataWatcherObject<>(0, DataWatcherRegistry.a), masked);

// dataWatcher.set(DataWatcherRegistry.s.a(6), EntityPose.values()[pose.ordinal()]);

return new PacketPlayOutEntityMetadata(entityId, dataWatcher, true);
}

private EntityPose getMaskedPose(Collection<NPCState> states) {
if (states.contains(NPCState.CROUCHED))
return EntityPose.CROUCHING;
return EntityPose.STANDING;
}
}
2 changes: 1 addition & 1 deletion nms/v1_16_R3/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_16_R3</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,38 +6,24 @@
import net.minecraft.server.v1_16_R3.DataWatcher;
import net.minecraft.server.v1_16_R3.DataWatcherObject;
import net.minecraft.server.v1_16_R3.DataWatcherRegistry;
import net.minecraft.server.v1_16_R3.EntityPose;
import net.minecraft.server.v1_16_R3.PacketPlayOutEntityMetadata;

public class PacketPlayOutEntityMetadataWrapper {

public PacketPlayOutEntityMetadata create(Collection<NPCState> activateStates, int entityId) {
DataWatcher dataWatcher = new DataWatcher(null);
dataWatcher.register(new DataWatcherObject<>(16, DataWatcherRegistry.a), (byte) 127);

byte masked = NPCState.getMasked(activateStates);
// TODO: Find out why NPCState#CROUCHED doesn't work.
dataWatcher.register(new DataWatcherObject<>(0, DataWatcherRegistry.a), masked);

// for (Player online : Bukkit.getOnlinePlayers()) {
// DataWatcher watcher = ((CraftPlayer) online).getHandle().getDataWatcher();
// try {
// Field entriesField = watcher.getClass().getDeclaredField("entries");
// entriesField.setAccessible(true);
//
// Int2ObjectOpenHashMap<DataWatcher.Item<?>> entries = (Int2ObjectOpenHashMap<DataWatcher.Item<?>>) entriesField.get(watcher);
// entries.forEach((integer, item) -> {
// if (item.b() instanceof Boolean || item.b() instanceof Byte)
// online.sendMessage(integer + ": " + item.b() + " type = " + item.b().getClass().toString());
// });
// } catch (NoSuchFieldException | IllegalAccessException e) {
// e.printStackTrace();
// }
// }

// Pose pose = Pose.SNEAKING;
dataWatcher.register(new DataWatcherObject<EntityPose>(6, DataWatcherRegistry.s), getMaskedPose(activateStates));
dataWatcher.register(new DataWatcherObject<>(0, DataWatcherRegistry.a), masked);

// dataWatcher.set(DataWatcherRegistry.s.a(6), EntityPose.values()[pose.ordinal()]);

return new PacketPlayOutEntityMetadata(entityId, dataWatcher, true);
}

private EntityPose getMaskedPose(Collection<NPCState> states) {
if (states.contains(NPCState.CROUCHED))
return EntityPose.CROUCHING;
return EntityPose.STANDING;
}
}
2 changes: 1 addition & 1 deletion nms/v1_8_R3/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_8_R3</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_9_R1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_9_R1</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_9_R2/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_9_R2</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-plugin</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

<groupId>net.jitse</groupId>
<artifactId>npclib</artifactId>
<version>2.11-SNAPSHOT</version>
<version>2.11.1-SNAPSHOT</version>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Expand Down

0 comments on commit 49697b8

Please sign in to comment.