diff --git a/src/main/java/tconstruct/weaponry/WeaponryHandler.java b/src/main/java/tconstruct/weaponry/WeaponryHandler.java index f8fafe30f73..7238594c6a5 100644 --- a/src/main/java/tconstruct/weaponry/WeaponryHandler.java +++ b/src/main/java/tconstruct/weaponry/WeaponryHandler.java @@ -163,6 +163,13 @@ public void onProjectileWeaponCrafted(ToolCraftEvent.NormalTool event) bottom = TConstructRegistry.getBowMaterial(tags.getInteger("Accessory")); string = (BowstringMaterial) TConstructRegistry.getCustomMaterial(tags.getInteger("Handle"), BowstringMaterial.class); + // some materials seem to be incompatible + if(top == null || bottom == null || string == null) + { + event.setResult(Event.Result.DENY); + return; + } + drawSpeed = (int) ((top.drawspeed + bottom.drawspeed) / 2f * string.drawspeedModifier); flightSpeed = (top.flightSpeedMax + bottom.flightSpeedMax)/2 * string.flightSpeedModifier; @@ -184,6 +191,13 @@ else if(event.tool instanceof Crossbow) top = TConstructRegistry.getBowMaterial(tags.getInteger("Head")); string = (BowstringMaterial) TConstructRegistry.getCustomMaterial(tags.getInteger("Accessory"), BowstringMaterial.class); + // some materials seem to be incompatible + if(top == null || string == null) + { + event.setResult(Event.Result.DENY); + return; + } + drawSpeed = (int) ((float)top.drawspeed * string.drawspeedModifier); flightSpeed = (top.flightSpeedMax * string.flightSpeedModifier);