|
17 | 17 | import java.nio.charset.StandardCharsets; |
18 | 18 | import java.nio.file.*; |
19 | 19 | import java.util.Comparator; |
20 | | -import java.util.List; |
21 | 20 | import java.util.function.Predicate; |
| 21 | +import java.util.stream.Collectors; |
22 | 22 |
|
23 | 23 | public final class PacketUtilsUtil { |
24 | 24 | private PacketUtilsUtil() { |
@@ -114,34 +114,27 @@ public static Set<Class<? extends Packet<?>>> getC2SPackets() { |
114 | 114 | } |
115 | 115 |
|
116 | 116 | private static String processPackets(String packageName, String packetMapName, String reverseMapName, Predicate<Class<?>> exclusionFilter) { |
117 | | - Comparator<Class<?>> packetsComparator = Comparator |
118 | | - .comparing((Class<?> cls) -> cls.getName().substring(cls.getName().lastIndexOf('.') + 1)) |
119 | | - .thenComparing(Class::getName); |
120 | | - |
121 | | - StringBuilder mappings = new StringBuilder(8192); |
122 | | - |
123 | 117 | try (ScanResult scanResult = new ClassGraph() |
124 | 118 | .acceptPackages(packageName) |
125 | 119 | .enableClassInfo() |
126 | 120 | .ignoreClassVisibility() |
127 | 121 | .scan()) { |
128 | 122 |
|
129 | | - var packets = scanResult.getClassesImplementing(Packet.class).stream() |
| 123 | + return scanResult.getClassesImplementing(Packet.class).stream() |
130 | 124 | .map(ClassInfo::loadClass) |
131 | 125 | .filter(exclusionFilter.negate()) |
132 | | - .sorted(packetsComparator) |
133 | | - .toList(); |
134 | | - |
135 | | - for (Class<?> packet : packets) { |
136 | | - String name = packet.getName(); |
137 | | - String className = name.substring(name.lastIndexOf('.') + 1).replace('$', '.'); |
138 | | - String fullName = name.replace('$', '.'); |
139 | | - |
140 | | - mappings.append("%s.put(%s.class, \"%s\");%n".formatted(packetMapName, fullName, className)); |
141 | | - mappings.append("%s.put(\"%s\", %s.class);%n".formatted(reverseMapName, className, fullName)); |
142 | | - } |
| 126 | + .sorted(Comparator |
| 127 | + .comparing((Class<?> cls) -> cls.getName().substring(cls.getName().lastIndexOf('.') + 1)) |
| 128 | + .thenComparing(Class::getName) |
| 129 | + ) |
| 130 | + .map(packet -> { |
| 131 | + String name = packet.getName(); |
| 132 | + String className = name.substring(name.lastIndexOf('.') + 1).replace('$', '.'); |
| 133 | + String fullName = name.replace('$', '.'); |
| 134 | + return "%s.put(%s.class, \"%s\");%n%s.put(\"%s\", %s.class);" |
| 135 | + .formatted(packetMapName, fullName, className, reverseMapName, className, fullName); |
| 136 | + }) |
| 137 | + .collect(Collectors.joining("\n")); |
143 | 138 | } |
144 | | - |
145 | | - return mappings.toString(); |
146 | 139 | } |
147 | 140 | } |
0 commit comments