You can also handle this with objecthandler.java
Code:
} else if (itemId == 11286 && object.getId() == 2783) {
if (player.getSkills().getLevel(Skills.SMITHING) > 90) {
if (player.getInventory().containsItem(11286, 1)
&& player.getInventory().containsItem(1540, 1) && player.getInventory().containsItem(2347, 1)) {
player.setNextAnimation(new Animation(898));
player.getInventory().deleteItem(11286, 1);
player.getInventory().deleteItem(1540, 1);
player.getInventory().addItem(11283, 1);
player.getSkills().addXp(Skills.SMITHING, 90);
player.getPackets().sendGameMessage("You create a Dragonfire Shield.");
} else
player.getPackets().sendGameMessage("You need a hammer, draconic visage and an anti-dragon shield.");
} else
player.getPackets().sendGameMessage("You need at least a level of 90 in Smithing to create this.");