Skip to content

Commit 5afc423

Browse files
committed
Cleanup nms helper
1 parent 56aaf8a commit 5afc423

File tree

1 file changed

+8
-44
lines changed

1 file changed

+8
-44
lines changed

src/main/java/xyz/upperlevel/spigot/book/NmsBookHelper.java

Lines changed: 8 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)