mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-23 08:59:27 +00:00
refactor(bukkit): 优化反射代码
This commit is contained in:
@@ -3293,7 +3293,7 @@ public final class CoreReflections {
|
|||||||
.asType(MethodType.methodType(Object.class, Object.class))
|
.asType(MethodType.methodType(Object.class, Object.class))
|
||||||
);
|
);
|
||||||
} catch (IllegalAccessException e) {
|
} catch (IllegalAccessException e) {
|
||||||
throw new RuntimeException(e);
|
throw new ReflectionInitException("Failed to initialize reflection", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package net.momirealms.craftengine.bukkit.plugin.reflection.minecraft;
|
package net.momirealms.craftengine.bukkit.plugin.reflection.minecraft;
|
||||||
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import net.momirealms.craftengine.bukkit.plugin.reflection.ReflectionInitException;
|
||||||
import net.momirealms.craftengine.bukkit.util.BukkitReflectionUtils;
|
import net.momirealms.craftengine.bukkit.util.BukkitReflectionUtils;
|
||||||
import net.momirealms.craftengine.core.util.ReflectionUtils;
|
import net.momirealms.craftengine.core.util.ReflectionUtils;
|
||||||
import net.momirealms.craftengine.core.util.VersionHelper;
|
import net.momirealms.craftengine.core.util.VersionHelper;
|
||||||
@@ -1313,6 +1314,14 @@ public final class NetworkReflections {
|
|||||||
public static final MethodHandle handle$ClientboundEntityEventPacket$entityIdGetter;
|
public static final MethodHandle handle$ClientboundEntityEventPacket$entityIdGetter;
|
||||||
public static final MethodHandle handle$ClientboundEntityEventPacket$eventIdGetter;
|
public static final MethodHandle handle$ClientboundEntityEventPacket$eventIdGetter;
|
||||||
public static final MethodHandle handle$ClientIntentionPacket$protocolVersionGetter;
|
public static final MethodHandle handle$ClientIntentionPacket$protocolVersionGetter;
|
||||||
|
public static final MethodHandle handle$ClientboundRespawnPacket$dimensionGetter;
|
||||||
|
public static final MethodHandle handle$ClientboundRespawnPacket$commonPlayerSpawnInfoGetter;
|
||||||
|
public static final MethodHandle handle$CommonPlayerSpawnInfo$dimensionGetter;
|
||||||
|
public static final MethodHandle handle$ClientboundLoginPacket$dimensionGetter;
|
||||||
|
public static final MethodHandle handle$ClientboundLoginPacket$commonPlayerSpawnInfoGetter;
|
||||||
|
public static final MethodHandle handle$ServerboundPickItemFromBlockPacket$posGetter;
|
||||||
|
public static final MethodHandle handle$ServerboundPickItemFromEntityPacket$idGetter;
|
||||||
|
public static final MethodHandle handle$ServerboundCustomPayloadPacket$payloadGetter;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
try {
|
try {
|
||||||
@@ -1384,89 +1393,73 @@ public final class NetworkReflections {
|
|||||||
ReflectionUtils.unreflectGetter(field$ClientIntentionPacket$protocolVersion)
|
ReflectionUtils.unreflectGetter(field$ClientIntentionPacket$protocolVersion)
|
||||||
.asType(MethodType.methodType(int.class, Object.class))
|
.asType(MethodType.methodType(int.class, Object.class))
|
||||||
);
|
);
|
||||||
} catch (IllegalAccessException e) {
|
if (field$ServerboundCustomPayloadPacket$payload != null) {
|
||||||
throw new RuntimeException(e);
|
handle$ServerboundCustomPayloadPacket$payloadGetter = requireNonNull(
|
||||||
|
ReflectionUtils.unreflectGetter(field$ServerboundCustomPayloadPacket$payload)
|
||||||
|
.asType(MethodType.methodType(Object.class, Object.class))
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
handle$ServerboundCustomPayloadPacket$payloadGetter = null;
|
||||||
|
}
|
||||||
|
if (field$ServerboundPickItemFromEntityPacket$id != null) {
|
||||||
|
handle$ServerboundPickItemFromEntityPacket$idGetter = requireNonNull(
|
||||||
|
ReflectionUtils.unreflectGetter(field$ServerboundPickItemFromEntityPacket$id)
|
||||||
|
.asType(MethodType.methodType(int.class, Object.class))
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
handle$ServerboundPickItemFromEntityPacket$idGetter = null;
|
||||||
|
}
|
||||||
|
if (field$ServerboundPickItemFromBlockPacket$pos != null) {
|
||||||
|
handle$ServerboundPickItemFromBlockPacket$posGetter = requireNonNull(
|
||||||
|
ReflectionUtils.unreflectGetter(field$ServerboundPickItemFromBlockPacket$pos)
|
||||||
|
.asType(MethodType.methodType(Object.class, Object.class))
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
handle$ServerboundPickItemFromBlockPacket$posGetter = null;
|
||||||
|
}
|
||||||
|
if (field$ClientboundLoginPacket$commonPlayerSpawnInfo != null) {
|
||||||
|
handle$ClientboundLoginPacket$commonPlayerSpawnInfoGetter = requireNonNull(
|
||||||
|
ReflectionUtils.unreflectGetter(field$ClientboundLoginPacket$commonPlayerSpawnInfo)
|
||||||
|
.asType(MethodType.methodType(Object.class, Object.class))
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
handle$ClientboundLoginPacket$commonPlayerSpawnInfoGetter = null;
|
||||||
|
}
|
||||||
|
if (field$ClientboundLoginPacket$dimension != null) {
|
||||||
|
handle$ClientboundLoginPacket$dimensionGetter = requireNonNull(
|
||||||
|
ReflectionUtils.unreflectGetter(field$ClientboundLoginPacket$dimension)
|
||||||
|
.asType(MethodType.methodType(Object.class, Object.class))
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
handle$ClientboundLoginPacket$dimensionGetter = null;
|
||||||
|
}
|
||||||
|
if (field$CommonPlayerSpawnInfo$dimension != null) {
|
||||||
|
handle$CommonPlayerSpawnInfo$dimensionGetter = requireNonNull(
|
||||||
|
ReflectionUtils.unreflectGetter(field$CommonPlayerSpawnInfo$dimension)
|
||||||
|
.asType(MethodType.methodType(Object.class, Object.class))
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
handle$CommonPlayerSpawnInfo$dimensionGetter = null;
|
||||||
|
}
|
||||||
|
if (field$ClientboundRespawnPacket$commonPlayerSpawnInfo != null) {
|
||||||
|
handle$ClientboundRespawnPacket$commonPlayerSpawnInfoGetter = requireNonNull(
|
||||||
|
ReflectionUtils.unreflectGetter(field$ClientboundRespawnPacket$commonPlayerSpawnInfo)
|
||||||
|
.asType(MethodType.methodType(Object.class, Object.class))
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
handle$ClientboundRespawnPacket$commonPlayerSpawnInfoGetter = null;
|
||||||
|
}
|
||||||
|
if (field$ClientboundRespawnPacket$dimension != null) {
|
||||||
|
handle$ClientboundRespawnPacket$dimensionGetter = requireNonNull(
|
||||||
|
ReflectionUtils.unreflectGetter(field$ClientboundRespawnPacket$dimension)
|
||||||
|
.asType(MethodType.methodType(Object.class, Object.class))
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
handle$ClientboundRespawnPacket$dimensionGetter = null;
|
||||||
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
throw new ReflectionInitException("Failed to initialize reflection", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final MethodHandle handle$ClientboundRespawnPacket$dimensionGetter = Optional.ofNullable(field$ClientboundRespawnPacket$dimension)
|
|
||||||
.map(it -> {
|
|
||||||
try {
|
|
||||||
return ReflectionUtils.unreflectGetter(it).asType(MethodType.methodType(Object.class, Object.class));
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.orElse(null);
|
|
||||||
|
|
||||||
public static final MethodHandle handle$ClientboundRespawnPacket$commonPlayerSpawnInfoGetter = Optional.ofNullable(field$ClientboundRespawnPacket$commonPlayerSpawnInfo)
|
|
||||||
.map(it -> {
|
|
||||||
try {
|
|
||||||
return ReflectionUtils.unreflectGetter(it).asType(MethodType.methodType(Object.class, Object.class));
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.orElse(null);
|
|
||||||
|
|
||||||
public static final MethodHandle handle$CommonPlayerSpawnInfo$dimensionGetter = Optional.ofNullable(field$CommonPlayerSpawnInfo$dimension)
|
|
||||||
.map(it -> {
|
|
||||||
try {
|
|
||||||
return ReflectionUtils.unreflectGetter(it).asType(MethodType.methodType(Object.class, Object.class));
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.orElse(null);
|
|
||||||
|
|
||||||
public static final MethodHandle handle$ClientboundLoginPacket$dimensionGetter = Optional.ofNullable(field$ClientboundLoginPacket$dimension)
|
|
||||||
.map(it -> {
|
|
||||||
try {
|
|
||||||
return ReflectionUtils.unreflectGetter(it).asType(MethodType.methodType(Object.class, Object.class));
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.orElse(null);
|
|
||||||
|
|
||||||
public static final MethodHandle handle$ClientboundLoginPacket$commonPlayerSpawnInfoGetter = Optional.ofNullable(field$ClientboundLoginPacket$commonPlayerSpawnInfo)
|
|
||||||
.map(it -> {
|
|
||||||
try {
|
|
||||||
return ReflectionUtils.unreflectGetter(it).asType(MethodType.methodType(Object.class, Object.class));
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.orElse(null);
|
|
||||||
|
|
||||||
public static final MethodHandle handle$ServerboundPickItemFromBlockPacket$posGetter = Optional.ofNullable(field$ServerboundPickItemFromBlockPacket$pos)
|
|
||||||
.map(it -> {
|
|
||||||
try {
|
|
||||||
return ReflectionUtils.unreflectGetter(it).asType(MethodType.methodType(Object.class, Object.class));
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.orElse(null);
|
|
||||||
|
|
||||||
public static final MethodHandle handle$ServerboundPickItemFromEntityPacket$idGetter = Optional.ofNullable(field$ServerboundPickItemFromEntityPacket$id)
|
|
||||||
.map(it -> {
|
|
||||||
try {
|
|
||||||
return ReflectionUtils.unreflectGetter(it).asType(MethodType.methodType(int.class, Object.class));
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.orElse(null);
|
|
||||||
|
|
||||||
public static final MethodHandle handle$ServerboundCustomPayloadPacket$payloadGetter = Optional.ofNullable(field$ServerboundCustomPayloadPacket$payload)
|
|
||||||
.map(it -> {
|
|
||||||
try {
|
|
||||||
return ReflectionUtils.unreflectGetter(it).asType(MethodType.methodType(Object.class, Object.class));
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.orElse(null);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user