From 644b6a4e5fa4fe2a0ae6a19e3a53b0965b2d483a Mon Sep 17 00:00:00 2001
From: Pyrbu <pyrmcserver@gmail.com>
Date: Fri, 17 May 2024 04:55:06 +0200
Subject: [PATCH] fix reflection initializer error

---
 .../pyr/znpcsplus/reflection/ReflectionPackage.java    | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionPackage.java b/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionPackage.java
index c58b4c3..2c8e046 100644
--- a/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionPackage.java
+++ b/plugin/src/main/java/lol/pyr/znpcsplus/reflection/ReflectionPackage.java
@@ -14,7 +14,7 @@ import java.util.stream.Collectors;
  * pre-1.17 had all of their classes "flattened" into one package.
  */
 public class ReflectionPackage {
-    private static final String VERSION = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3];
+    private static final String VERSION = generateVersion();
     public static final String BUKKIT = "org.bukkit.craftbukkit." + VERSION;
     private static final boolean flattened = !PacketEvents.getAPI().getServerManager().getVersion().isNewerThanOrEquals(ServerVersion.V_1_17);
 
@@ -28,7 +28,13 @@ public class ReflectionPackage {
     public static String joinWithDot(String... parts) {
         return Arrays.stream(parts)
                 .filter(Objects::nonNull)
-                .filter(p -> p.length() != 0)
+                .filter(p -> !p.isEmpty())
                 .collect(Collectors.joining("."));
     }
+
+    private static String generateVersion() {
+        String[] parts = Bukkit.getServer().getClass().getPackage().getName().split("\\.");
+        if (parts.length > 3) return parts[3];
+        return "";
+    }
 }