break;
}
+ Field damageSourceField = null;
+ try {
+ damageSourceField = customNPCsPlayerHurtEvent.getField("damageSource");
+ } catch (NoSuchFieldException e) {
+ TurnBasedMinecraftMod.logger.error("CustomNPCs PlayerHurtEvent does not have \".damageSource\"!");
+ }
+ if (damageSourceField == null) {
+ break;
+ }
+
Class<?> customNPCsIDamageSource = null;
try {
customNPCsIDamageSource = Class.forName("noppes.npcs.api.IDamageSource");
break;
}
+ Method trueSourceMethod = null;
+ try {
+ trueSourceMethod = customNPCsIDamageSource.getMethod("getTrueSource");
+ } catch (NoSuchMethodException e) {
+ TurnBasedMinecraftMod.logger.error("CustomNPCs IDamageSource does not have \".getTrueSource()\"!");
+ }
+ if (trueSourceMethod == null) {
+ break;
+ }
+
Class<?> customNPCsIEntity = null;
try {
customNPCsIEntity = Class.forName("noppes.npcs.api.entity.IEntity");
break;
}
+ Method getEntityUUIDMethod = null;
+ try {
+ getEntityUUIDMethod = customNPCsIEntity.getMethod("getUUID");
+ } catch (NoSuchMethodException e) {
+ TurnBasedMinecraftMod.logger.error("Failed to get CustomNPCs \".getEntityId()\"!");
+ }
+ if (getEntityUUIDMethod == null) {
+ break;
+ }
+
+ Method getCanceledMethod = null;
+ try {
+ getCanceledMethod = customNPCsPlayerHurtEvent.getMethod("setCanceled", boolean.class);
+ } catch (NoSuchMethodException e) {
+ TurnBasedMinecraftMod.logger.error("CustomNPCs PlayerHurtEvent does not have setCanceled(...)!");
+ }
+ if (getCanceledMethod == null) {
+ break;
+ }
+
// Check if available
Object instance = null;
try {
}
final Class<?> finalCustomNPCsPlayerHurtEvent = customNPCsPlayerHurtEvent;
+ final Field finalDamageSourceField = damageSourceField;
final Class<?> finalCustomNPCsIDamageSource = customNPCsIDamageSource;
+ final Method finalTrueSourceMethod = trueSourceMethod;
final Class<?> finalCustomNPCsIEntity = customNPCsIEntity;
+ final Method finalGetEntityUUIDMethod = getEntityUUIDMethod;
+ final Method finalGetCanceledMethod = getCanceledMethod;
customNPCsEventBus.addListener(EventPriority.LOWEST, true, (event) -> {
if (finalCustomNPCsPlayerHurtEvent.isInstance(event)
&& TurnBasedMinecraftMod.proxy.getAttackingEntity() != null) {
- Field damageSourceField;
- try {
- damageSourceField = finalCustomNPCsPlayerHurtEvent.getField("damageSource");
- } catch (NoSuchFieldException e) {
- TurnBasedMinecraftMod.logger.error("CustomNPCs PlayerHurtEvent does not have \".damageSource\"!");
- return;
- }
-
Object damageSourceObject;
try {
- damageSourceObject = damageSourceField.get(event);
+ damageSourceObject = finalDamageSourceField.get(event);
} catch (IllegalAccessException e) {
TurnBasedMinecraftMod.logger.error("CustomNPCs PlayerHurtEvent failed to get \".damageSource\"!");
return;
return;
}
- Method trueSourceMethod;
- try {
- trueSourceMethod = finalCustomNPCsIDamageSource.getMethod("getTrueSource");
- } catch (NoSuchMethodException e) {
- TurnBasedMinecraftMod.logger.error("CustomNPCs IDamageSource does not have \".getTrueSource()\"!");
- return;
- }
-
Object iEntityObject;
try {
- iEntityObject = trueSourceMethod.invoke(damageSourceObject);
+ iEntityObject = finalTrueSourceMethod.invoke(damageSourceObject);
} catch (IllegalAccessException e) {
TurnBasedMinecraftMod.logger.error("Failed to get CustomNPCs IEntity from IDamageSource, IllegalAccessException!");
return;
return;
}
- Method getEntityUUIDMethod;
- try {
- getEntityUUIDMethod = finalCustomNPCsIEntity.getMethod("getUUID");
- } catch (NoSuchMethodException e) {
- TurnBasedMinecraftMod.logger.error("Failed to get CustomNPCs \".getEntityId()\"!");
- return;
- }
-
String entityUUID;
try {
- entityUUID = (String)getEntityUUIDMethod.invoke(iEntityObject);
+ entityUUID = (String)finalGetEntityUUIDMethod.invoke(iEntityObject);
} catch (InvocationTargetException e) {
TurnBasedMinecraftMod.logger.error("Failed to get CustomNPCs IEntity ID, InvocationTargetException!");
return;
return;
}
- Method getCanceledMethod;
- try {
- getCanceledMethod = finalCustomNPCsPlayerHurtEvent.getMethod("setCanceled", boolean.class);
- } catch (NoSuchMethodException e) {
- TurnBasedMinecraftMod.logger.error("CustomNPCs PlayerHurtEvent does not have setCanceled(...)!");
- return;
- }
-
try {
- getCanceledMethod.invoke(event, false);
+ finalGetCanceledMethod.invoke(event, false);
} catch (IllegalAccessException e) {
TurnBasedMinecraftMod.logger.error("Failed to un-cancel Player hurt event, IllegalAccessException!");
} catch (InvocationTargetException e) {