@@ -27,9 +27,10 @@ public final class NmsBookHelper {
2727
2828 private static final Class <?> craftMetaBookClass ;
2929 private static final Field craftMetaBookField ;
30+ // Converts JSON string to IChatBaseComponent
3031 private static final Method chatSerializerA ;
3132
32- //nullable
33+ // Only present in versions >= 1.16.4 (otherwise null)
3334 private static final Method craftMetaBookInternalAddPageMethod ;
3435
3536 private static final Method craftPlayerGetHandle ;
@@ -40,15 +41,6 @@ public final class NmsBookHelper {
4041 // only version >= 1.9
4142 private static final Object [] hands ;
4243
43- // Older versions
44- /*
45- * private static final Field entityHumanPlayerConnection; private static final
46- * Method playerConnectionSendPacket;
47- *
48- * private static final Constructor<?> packetPlayOutCustomPayloadConstructor;
49- * private static final Constructor<?> packetDataSerializerConstructor;
50- */
51-
5244 private static final Method nmsItemStackSave ;
5345 private static final Constructor <?> nbtTagCompoundConstructor ;
5446
@@ -79,9 +71,9 @@ public final class NmsBookHelper {
7971 cmbInternalAddMethod = craftMetaBookClass .getDeclaredMethod ("internalAddPage" , String .class );
8072 cmbInternalAddMethod .setAccessible (true );
8173 } catch (NoSuchMethodException e ) {
82- //Internal data change in 1.16.4
83- //To detect if the server is using the new internal format we check if the internalAddPageMethod exists
84- //see https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/commits/560b65c4f8a15619aaa4a1737c7040f21e725cce
74+ // Internal data change in 1.16.4
75+ // To detect if the server is using the new internal format we check if the internalAddPageMethod exists
76+ // see https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/commits/560b65c4f8a15619aaa4a1737c7040f21e725cce
8577 }
8678 craftMetaBookInternalAddPageMethod = cmbInternalAddMethod ;
8779
@@ -90,6 +82,8 @@ public final class NmsBookHelper {
9082 chatSerializer = getNmsClass ("ChatSerializer" );
9183 }
9284
85+ // On versions < 1.16.4 the CraftMetaBook accepted IChatBaseComponent
86+ // This method converts JSON strings to its IChatBaseComponent equivalent
9387 chatSerializerA = chatSerializer .getDeclaredMethod ("a" , String .class );
9488
9589 final Class <?> craftPlayerClass = getCraftClass ("entity.CraftPlayer" );
@@ -117,27 +111,13 @@ public final class NmsBookHelper {
117111 entityPlayerOpenBook = entityPlayerClass .getMethod ("openBook" , itemStackClass );
118112 hands = null ;
119113 }
120- // Older versions
121- /*
122- * entityHumanPlayerConnection = entityPlayerClass.getField("playerConnection");
123- * final Class<?> playerConnectionClass = getNmsClass("PlayerConnection");
124- * playerConnectionSendPacket = playerConnectionClass.getMethod("sendPacket",
125- * getNmsClass("Packet"));
126- *
127- * final Class<?> packetDataSerializerClasss =
128- * getNmsClass("PacketDataSerializer"); packetPlayOutCustomPayloadConstructor =
129- * getNmsClass("PacketPlayOutCustomPayload").getConstructor(String.class,
130- * packetDataSerializerClasss); packetDataSerializerConstructor =
131- * packetDataSerializerClasss.getConstructor(ByteBuf.class);
132- */
133114
134115 final Class <?> craftItemStackClass = getCraftClass ("inventory.CraftItemStack" );
135116 craftItemStackAsNMSCopy = craftItemStackClass .getMethod ("asNMSCopy" , ItemStack .class );
136117 Class <?> nmsItemStackClazz = getNmsClass ("ItemStack" );
137118 Class <?> nbtTagCompoundClazz = getNmsClass ("NBTTagCompound" );
138119 nmsItemStackSave = nmsItemStackClazz .getMethod ("save" , nbtTagCompoundClazz );
139120 nbtTagCompoundConstructor = nbtTagCompoundClazz .getConstructor ();
140-
141121 } catch (Exception e ) {
142122 throw new IllegalStateException ("Cannot initiate reflections for " + version , e );
143123 }
@@ -161,8 +141,7 @@ public static void setPages(BookMeta meta, BaseComponent[][] components) {
161141 if (craftMetaBookInternalAddPageMethod != null ) {
162142 json = c != null ? ComponentSerializer .toString (c ) : "" ;
163143 craftMetaBookInternalAddPageMethod .invoke (meta , json );
164- }
165- else {
144+ } else {
166145 BaseComponent [] nonNullC = c != null ? c : jsonToComponents ("" );
167146 json = ComponentSerializer .toString (nonNullC );
168147 pages .add (chatSerializerA .invoke (null , json ));
@@ -184,11 +163,6 @@ public static void setPages(BookMeta meta, BaseComponent[][] components) {
184163 public static void openBook (Player player , ItemStack book , boolean offHand ) {
185164 // nms(player).openBook(nms(player), nms(book), hand);
186165 try {
187- // Older versions:
188- /*
189- * playerConnectionSendPacket.invoke(
190- * entityHumanPlayerConnection.get(toNms(player)), createBookOpenPacket() );
191- */
192166 if (doubleHands ) {
193167 entityPlayerOpenBook .invoke (toNms (player ), nmsCopy (book ), hands [offHand ? 1 : 0 ]);
194168 } else {
@@ -199,16 +173,6 @@ public static void openBook(Player player, ItemStack book, boolean offHand) {
199173 }
200174 }
201175
202- // Older versions
203- /*
204- * public static Object createBookOpenPacket() { //new
205- * PacketPlayOutCustomPayload("MC|BOpen", new
206- * PacketDataSerializer(Unpooled.buffer()))); try { return
207- * packetPlayOutCustomPayloadConstructor.newInstance( "MC|BOpen",
208- * packetDataSerializerConstructor.newInstance(Unpooled.buffer()) ); } catch
209- * (Exception e) { throw new UnsupportedVersionException(e); } }
210- */
211-
212176 /**
213177 * Translates an ItemStack to his Chat-Component equivalent
214178 *
0 commit comments