diff --git a/.gitignore b/.gitignore index bbaa6dc..3a271ad 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,6 @@ bin .classpath .project .settings + +# Ignore plugin build tools +spigot diff --git a/build.gradle b/build.gradle index 328c10c..4718dcc 100644 --- a/build.gradle +++ b/build.gradle @@ -39,5 +39,5 @@ dependencies { } jar { - archiveVersion = '1.0.2' + archiveVersion = '1.1.1' } \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 8f85d85..f302cb6 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,4 +7,4 @@ * in the user manual at https://docs.gradle.org/6.6.1/userguide/multi_project_builds.html */ -rootProject.name = 'torch-arrow' +rootProject.name = 'power-projectiles' diff --git a/src/main/java/io/github/jhale1805/PowerProjectilePlugin.java b/src/main/java/io/github/jhale1805/PowerProjectilePlugin.java new file mode 100644 index 0000000..457852a --- /dev/null +++ b/src/main/java/io/github/jhale1805/PowerProjectilePlugin.java @@ -0,0 +1,51 @@ +package io.github.jhale1805; + +import java.io.File; + +import org.bukkit.Bukkit; +import org.bukkit.plugin.PluginDescriptionFile; +import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.plugin.java.JavaPluginLoader; +import io.github.jhale1805.powerarrow.*; + +public class PowerProjectilePlugin extends JavaPlugin { + + public static PowerProjectilePlugin instance; + public final static String NAME = "PowerProjectile"; + + /** + * Default constructor. + * + *

Used solely by MockBukkit during unit tests. + */ + public PowerProjectilePlugin() { + super(); + } + + /** + * Parameterized constructor. + * + *

Used solely by MockBukkit during unit tests. + */ + protected PowerProjectilePlugin(JavaPluginLoader loader, PluginDescriptionFile description, File dataFolder, File file) { + super(loader, description, dataFolder, file); + } + + @Override + public void onEnable() { + instance = this; + getLogger().info("Copyright 2021 by Joseph Hale (jhale1805). All Rights Reserved."); + getLogger().info("Report issues to https://github.com/jhale1805/power-projectiles"); + getLogger().info("Loading all Power Projectiles."); + for (PowerArrow powerArrow : PowerArrowRegistry.getPowerArrows()) { + getServer().getPluginManager().registerEvents(powerArrow, this); + Bukkit.addRecipe(powerArrow.getRecipe()); + } + getLogger().info("Ready!"); + } + + @Override + public void onDisable() { + getLogger().info("Thanks for using Power Projectiles!"); + } +} diff --git a/src/main/java/io/github/jhale1805/powerarrow/PowerArrow.java b/src/main/java/io/github/jhale1805/powerarrow/PowerArrow.java new file mode 100644 index 0000000..63df201 --- /dev/null +++ b/src/main/java/io/github/jhale1805/powerarrow/PowerArrow.java @@ -0,0 +1,137 @@ +package io.github.jhale1805.powerarrow; + +import java.util.Arrays; +import java.util.stream.Collectors; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.NamespacedKey; +import org.bukkit.advancement.Advancement; +import org.bukkit.entity.Arrow; +import org.bukkit.entity.Entity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityShootBowEvent; +import org.bukkit.event.player.PlayerAdvancementDoneEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.ShapedRecipe; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.metadata.FixedMetadataValue; +import org.bukkit.metadata.MetadataValue; + +import io.github.jhale1805.PowerProjectilePlugin; + +public abstract class PowerArrow extends ItemStack implements Listener { + + public PowerArrow() { + super(Material.ARROW); + this.setItemMeta(this.getItemMetadata()); + } + + public PowerArrow(int count) { + this(); + this.setAmount(count); + } + + /** + * @return the name of this PowerArrow in snake_case. + */ + public abstract String getName(); + + /** + * Each PowerArrow's usage instructions are shown in its lore. + * + * Instructions should be no more than 3 lines of 20 characters. + * @return the instructions for using this PowerArrow. + */ + public abstract String[] getUsageInstructions(); + + public abstract ShapedRecipe getRecipe(); + + public NamespacedKey getRecipeKey() { + return new NamespacedKey(PowerProjectilePlugin.instance, "recipe/" + this.getName()); + } + + public NamespacedKey getItemKey() { + return new NamespacedKey(PowerProjectilePlugin.instance, this.getName()); + } + + public ItemMeta getItemMetadata() { + ItemMeta itemMetadata = new ItemStack(Material.ARROW).getItemMeta(); + itemMetadata.setDisplayName(this.getDisplayName()); + itemMetadata.setLore(Arrays.asList(this.getUsageInstructions())); + return itemMetadata; + } + + protected String getDisplayName() { + String displayName = ChatColor.RED.toString(); + String[] nameParts = this.getName().split("_"); + for (String part : nameParts) { + displayName += Character.toUpperCase(part.charAt(0)) + + part.substring(1) + + " "; + } + return displayName; + } + + public MetadataValue getEntityMetadata() { + return new FixedMetadataValue(PowerProjectilePlugin.instance, this.getName()); + } + + @EventHandler + public void onEntityShootBow(EntityShootBowEvent event) { + if (event.getConsumable().getItemMeta().equals(this.getItemMetadata())) { + event.getProjectile().setMetadata("effect", this.getEntityMetadata()); + event.setConsumeItem(true); // Ignore the effects of Infinity + } + } + + @EventHandler + public void onPlayerAdvancementDone(PlayerAdvancementDoneEvent event) { + // Show the Torch Arrow in the recipe book upon completing the Enchanter advancement. + Advancement enchanter = Bukkit.getAdvancement(NamespacedKey.minecraft("story/enchant_item")); + if (event.getAdvancement().equals(enchanter)) { + event.getPlayer().discoverRecipe(this.getRecipeKey()); + } + } + + @EventHandler + public void onPlayerJoin(PlayerJoinEvent event) { + // Show the Torch Arrow in the recipe book to those that have completed the Enchanter advancement. + Advancement enchanter = Bukkit.getAdvancement(NamespacedKey.minecraft("story/enchant_item")); + if (event.getPlayer().getAdvancementProgress(enchanter).isDone()) { + event.getPlayer().discoverRecipe(this.getRecipeKey()); + } + } + + @Override + public boolean isSimilar(ItemStack stack) { + return stack.getItemMeta().equals(this.getItemMeta()); + } + + /** + * Determines if the given entity is a PowerArrow of this type. + * @param entity The entity to assess. + * @return true if the entity is a PowerArrow of this type. + */ + public boolean isSimilar(Entity entity) { + return entity instanceof Arrow + && entity.getMetadata("effect") + .stream() + .map(e -> e.asString()) + .collect(Collectors.toList()) + .contains(this.getEntityMetadata().asString()); + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof ItemStack)) { + return false; + } + ItemStack other = (ItemStack) obj; + return isSimilar(other) && other.getAmount() == this.getAmount(); + } + +} diff --git a/src/main/java/io/github/jhale1805/powerarrow/PowerArrowRegistry.java b/src/main/java/io/github/jhale1805/powerarrow/PowerArrowRegistry.java new file mode 100644 index 0000000..93c5b8e --- /dev/null +++ b/src/main/java/io/github/jhale1805/powerarrow/PowerArrowRegistry.java @@ -0,0 +1,15 @@ +package io.github.jhale1805.powerarrow; + +import java.util.Arrays; + +public class PowerArrowRegistry { + + private static PowerArrow[] powerArrows = { + new TorchArrow() + }; + + public static PowerArrow[] getPowerArrows() { + return Arrays.copyOf(powerArrows, powerArrows.length); + } + +} diff --git a/src/main/java/io/github/jhale1805/powerarrow/TorchArrow.java b/src/main/java/io/github/jhale1805/powerarrow/TorchArrow.java new file mode 100644 index 0000000..4266505 --- /dev/null +++ b/src/main/java/io/github/jhale1805/powerarrow/TorchArrow.java @@ -0,0 +1,82 @@ +package io.github.jhale1805.powerarrow; + +import org.bukkit.Material; +import org.bukkit.Tag; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.Directional; +import org.bukkit.event.EventHandler; +import org.bukkit.event.entity.ProjectileHitEvent; +import org.bukkit.inventory.RecipeChoice.MaterialChoice; +import org.bukkit.inventory.ShapedRecipe; + +public class TorchArrow extends PowerArrow { + + public TorchArrow() { + super(); + } + + public TorchArrow(int count) { + super(count); + } + + @Override + public String getName() { + return "torch_arrow"; + } + + @Override + public String[] getUsageInstructions() { + return new String[]{"Shoot with Flame to", "place a torch."}; + } + + @Override + public ShapedRecipe getRecipe() { + ShapedRecipe recipe = new ShapedRecipe( + this.getRecipeKey(), + new TorchArrow(4) + ); + recipe.shape(" A ", "ACA", " A "); + recipe.setIngredient('C', new MaterialChoice(Tag.ITEMS_COALS)); + recipe.setIngredient('A', Material.ARROW); + return recipe; + } + + @EventHandler + public void onProjectileHit(ProjectileHitEvent event) { + // Check preconditions for torch placement + if (!(this.isSimilar(event.getEntity()) + && event.getEntity().getFireTicks() > 0 + && event.getHitBlock() != null + && event.getHitBlockFace() != null)) + return; + // Drop the arrow if it can't place a torch at the impact site. + if (event.getHitBlockFace().equals(BlockFace.DOWN)) { + dropTorchArrow(event); + } else { + placeTorch(event); + } + event.getEntity().remove(); + } + + private void dropTorchArrow(ProjectileHitEvent event) { + event.getEntity().getWorld().dropItemNaturally( + event.getEntity().getLocation(), + new TorchArrow() + ); + } + + private void placeTorch(ProjectileHitEvent event) { + // Compute torch orientation + BlockData torch = Material.TORCH.createBlockData(); + if (!event.getHitBlockFace().equals(BlockFace.UP)) { + torch = Material.WALL_TORCH.createBlockData(); + ((Directional) torch).setFacing(event.getHitBlockFace()); + } + // Place the torch where the arrow landed + event.getHitBlock() + .getRelative(event.getHitBlockFace()) + .setBlockData(torch); + } + +} diff --git a/src/main/java/io/github/jhale1805/torcharrow/TorchArrowListener.java b/src/main/java/io/github/jhale1805/torcharrow/TorchArrowListener.java deleted file mode 100644 index b03ded8..0000000 --- a/src/main/java/io/github/jhale1805/torcharrow/TorchArrowListener.java +++ /dev/null @@ -1,81 +0,0 @@ -package io.github.jhale1805.torcharrow; - -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.NamespacedKey; -import org.bukkit.advancement.Advancement; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.BlockData; -import org.bukkit.block.data.Directional; -import org.bukkit.entity.Arrow; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.entity.EntityShootBowEvent; -import org.bukkit.event.entity.ProjectileHitEvent; -import org.bukkit.event.player.PlayerAdvancementDoneEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.metadata.FixedMetadataValue; -import org.bukkit.metadata.MetadataValue; -import org.bukkit.plugin.java.JavaPlugin; - -public class TorchArrowListener implements Listener { - - private JavaPlugin plugin; - final MetadataValue torchArrowMetadata; - - public TorchArrowListener(JavaPlugin plugin) { - this.plugin = plugin; - this.torchArrowMetadata = new FixedMetadataValue(plugin, "torch-arrow"); - } - - @EventHandler - public void onProjectileHit(ProjectileHitEvent event) { - // Check preconditions for torch placement - if (!(event.getEntity() instanceof Arrow - && event.getEntity().getFireTicks() > 0 - && event.getEntity().getMetadata("effect").contains(torchArrowMetadata) - && event.getHitBlock() != null - && event.getHitBlockFace() != null - && !event.getHitBlockFace().equals(BlockFace.DOWN))) - return; - - // Compute torch orientation - BlockData torch = Material.TORCH.createBlockData(); - if (!event.getHitBlockFace().equals(BlockFace.UP)) { - torch = Material.WALL_TORCH.createBlockData(); - ((Directional) torch).setFacing(event.getHitBlockFace()); - } - - // Place the torch where the arrow landed - event.getHitBlock().getRelative(event.getHitBlockFace()).setBlockData(torch); - event.getEntity().remove(); - - } - - @EventHandler - public void onEntityShootBow(EntityShootBowEvent event) { - if (event.getConsumable().getItemMeta().equals(new TorchArrowStack().getItemMeta())) { - event.getProjectile().setMetadata("effect", torchArrowMetadata); - event.setConsumeItem(true); // Ignore the effects of Infinity - } - } - - @EventHandler - public void onPlayerAdvancementDone(PlayerAdvancementDoneEvent event) { - // Show the Torch Arrow in the recipe book upon completing the Enchanter advancement. - Advancement enchanter = Bukkit.getAdvancement(NamespacedKey.minecraft("story/enchant_item")); - if (event.getAdvancement().equals(enchanter)) { - event.getPlayer().discoverRecipe(new TorchArrowRecipe(plugin).getKey()); - } - } - - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) { - // Show the Torch Arrow in the recipe book to those that have completed the Enchanter advancement. - Advancement enchanter = Bukkit.getAdvancement(NamespacedKey.minecraft("story/enchant_item")); - if (event.getPlayer().getAdvancementProgress(enchanter).isDone()) { - event.getPlayer().discoverRecipe(new TorchArrowRecipe(plugin).getKey()); - } - } - -} diff --git a/src/main/java/io/github/jhale1805/torcharrow/TorchArrowPlugin.java b/src/main/java/io/github/jhale1805/torcharrow/TorchArrowPlugin.java deleted file mode 100644 index f09fe9c..0000000 --- a/src/main/java/io/github/jhale1805/torcharrow/TorchArrowPlugin.java +++ /dev/null @@ -1,44 +0,0 @@ -package io.github.jhale1805.torcharrow; - -import java.io.File; - -import org.bukkit.Bukkit; -import org.bukkit.plugin.PluginDescriptionFile; -import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.plugin.java.JavaPluginLoader; - -public class TorchArrowPlugin extends JavaPlugin { - - /** - * Default constructor. - * - *

Used solely by MockBukkit during unit tests. - */ - public TorchArrowPlugin() { - super(); - } - - /** - * Parameterized constructor. - * - *

Used solely by MockBukkit during unit tests. - */ - protected TorchArrowPlugin(JavaPluginLoader loader, PluginDescriptionFile description, File dataFolder, File file) { - super(loader, description, dataFolder, file); - } - - @Override - public void onEnable() { - getLogger().info("Copyright 2021 by Joseph Hale (jhale1805). All Rights Reserved."); - getLogger().info("Report issues to https://github.com/jhale1805/torch-arrow"); - getLogger().info("Registering Torch Arrow event listeners."); - getServer().getPluginManager().registerEvents(new TorchArrowListener(this), this); - getLogger().info("Adding crafting recipe for Torch Arrows."); - Bukkit.addRecipe(new TorchArrowRecipe(this)); - } - - @Override - public void onDisable() { - getLogger().info("Thanks for using Torch Arrow!"); - } -} diff --git a/src/main/java/io/github/jhale1805/torcharrow/TorchArrowRecipe.java b/src/main/java/io/github/jhale1805/torcharrow/TorchArrowRecipe.java deleted file mode 100644 index b463aa1..0000000 --- a/src/main/java/io/github/jhale1805/torcharrow/TorchArrowRecipe.java +++ /dev/null @@ -1,44 +0,0 @@ -package io.github.jhale1805.torcharrow; - -import org.bukkit.Material; -import org.bukkit.NamespacedKey; -import org.bukkit.Tag; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.RecipeChoice.MaterialChoice; -import org.bukkit.inventory.ShapedRecipe; -import org.bukkit.plugin.Plugin; - -public class TorchArrowRecipe extends ShapedRecipe { - - public static final String NAMESPACED_KEY = "torch_arrow"; - - /** - * The recipe for crafting torch arrows. - * - * This recipe yields 4 torch arrows, enough to generate the same number - * of torches that the single piece of coal could be used to craft. - * - * ------------- - * | | A | | - * ------------- - * | A | C | A | - * ------------- - * | | A | | - * ------------- - * - * @param plugin The Torch Arrow plugin. Required for associating this - * recipe with the plugin. - */ - public TorchArrowRecipe(Plugin plugin) { - super(new NamespacedKey(plugin, NAMESPACED_KEY), new TorchArrowStack()); - shape(" A ", "ACA", " A "); - setIngredient('C', new MaterialChoice(Tag.ITEMS_COALS)); - setIngredient('A', Material.ARROW); - } - - @Override - public ItemStack getResult() { - return new TorchArrowStack(4); - } - -} diff --git a/src/main/java/io/github/jhale1805/torcharrow/TorchArrowStack.java b/src/main/java/io/github/jhale1805/torcharrow/TorchArrowStack.java deleted file mode 100644 index b9eacaa..0000000 --- a/src/main/java/io/github/jhale1805/torcharrow/TorchArrowStack.java +++ /dev/null @@ -1,54 +0,0 @@ -package io.github.jhale1805.torcharrow; - -import java.util.ArrayList; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -public class TorchArrowStack extends ItemStack { - - private final static String DISPLAY_NAME = ChatColor.RED + "Torch Arrow"; - - public TorchArrowStack() { - super(Material.ARROW); - setMetadata(); - } - - public TorchArrowStack(int count) { - this(); - this.setAmount(count); - } - - private void setMetadata() { - ItemMeta metadata = this.getItemMeta(); - metadata.setDisplayName(DISPLAY_NAME); - - var lore = new ArrayList(); - lore.add("Shoot with Flame to"); - lore.add("place a torch"); - metadata.setLore(lore); - - this.setItemMeta(metadata); - } - - @Override - public boolean isSimilar(ItemStack stack) { - return stack.getItemMeta().equals(this.getItemMeta()); - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof TorchArrowStack)) { - return false; - } - - if (((TorchArrowStack) obj).getAmount() == this.getAmount()) { - return true; - } else { - return false; - } - } - -} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 2c17348..1911a91 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,4 +1,4 @@ -name: TorchArrow -main: io.github.jhale1805.torcharrow.TorchArrowPlugin -version: 1.0 +name: PowerProjectile +main: io.github.jhale1805.PowerProjectilePlugin +version: 1.1.1 api-version: 1.16 \ No newline at end of file diff --git a/src/test/java/io/github/jhale1805/torcharrow/TorchArrowListenerTest.java b/src/test/java/io/github/jhale1805/torcharrow/TorchArrowListenerTest.java deleted file mode 100644 index 738085d..0000000 --- a/src/test/java/io/github/jhale1805/torcharrow/TorchArrowListenerTest.java +++ /dev/null @@ -1,105 +0,0 @@ -package io.github.jhale1805.torcharrow; - -import org.junit.*; - -import be.seeseemelk.mockbukkit.MockBukkit; -import be.seeseemelk.mockbukkit.ServerMock; -import be.seeseemelk.mockbukkit.WorldMock; - -import static org.junit.Assert.*; - -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.NamespacedKey; -import org.bukkit.World; -import org.bukkit.advancement.Advancement; -import org.bukkit.entity.Arrow; -import org.bukkit.entity.Entity; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityBreedEvent; -import org.bukkit.event.entity.EntityShootBowEvent; -import org.bukkit.event.entity.ProjectileHitEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.inventory.EquipmentSlot; -import org.bukkit.inventory.ItemStack; - -import static org.mockito.Mockito.*; - -public class TorchArrowListenerTest { - - private ServerMock server; - private World world; - private TorchArrowPlugin plugin; - private TorchArrowListener taListener; - - @BeforeClass - public static void setUpClass() { - - } - - @Before - public void setUp() { - server = MockBukkit.mock(); - plugin = MockBukkit.load(TorchArrowPlugin.class); - taListener = new TorchArrowListener(plugin); - world = new WorldMock(Material.DIRT, 3); - } - - @After - public void tearDown() { - MockBukkit.unmock(); - } - - @AfterClass - public static void tearDownClass() { - - } - - // @Test - // public void test_onProjectileHit() { - // // Arrow arrow = - - // } - - // // These tests are not supported by the current version of MockBukkit - // @Test - // public void test_onEntityShootBow() { - // Player player = server.addPlayer(); - // TorchArrowStack tArrows = new TorchArrowStack(4); - // Arrow arrow = mock(Arrow.class); - // EntityShootBowEvent event = new EntityShootBowEvent( - // player, - // new ItemStack(Material.BOW), - // tArrows, - // arrow, - // EquipmentSlot.HAND, - // 10.0f, - // false // Simulate the effect of an Infinity bow - // ); - // taListener.onEntityShootBow(event); - // verify(arrow).getMetadata("effect").contains(taListener.torchArrowMetadata); - // assertTrue(event.shouldConsumeItem()); - // } - - // @Test - // public void test_onPlayerJoin_newPlayer() { - // Player player = server.addPlayer(); - // PlayerJoinEvent event = new PlayerJoinEvent(player, ""); - // taListener.onPlayerJoin(event); - // assertFalse(player.getDiscoveredRecipes().contains(new TorchArrowRecipe(plugin).getKey())); - // } - - // @Test - // public void test_onPlayerJoin_experiencedPlayer() { - // Player player = server.addPlayer(); - // Advancement enchanter = Bukkit.getAdvancement(NamespacedKey.minecraft("story/enchant_item")); - // for (String criteria : enchanter.getCriteria()) - // player.getAdvancementProgress(enchanter).awardCriteria(criteria); - // PlayerJoinEvent event = new PlayerJoinEvent(player, ""); - // taListener.onPlayerJoin(event); - // assertTrue(player.getDiscoveredRecipes().contains(new TorchArrowRecipe(plugin).getKey())); - // } - -} \ No newline at end of file diff --git a/src/test/java/io/github/jhale1805/torcharrow/TorchArrowStackTest.java b/src/test/java/io/github/jhale1805/torcharrow/TorchArrowTest.java similarity index 71% rename from src/test/java/io/github/jhale1805/torcharrow/TorchArrowStackTest.java rename to src/test/java/io/github/jhale1805/torcharrow/TorchArrowTest.java index 76fb93a..f3f51e1 100644 --- a/src/test/java/io/github/jhale1805/torcharrow/TorchArrowStackTest.java +++ b/src/test/java/io/github/jhale1805/torcharrow/TorchArrowTest.java @@ -3,6 +3,8 @@ package io.github.jhale1805.torcharrow; import be.seeseemelk.mockbukkit.MockBukkit; import be.seeseemelk.mockbukkit.ServerMock; +import io.github.jhale1805.PowerProjectilePlugin; +import io.github.jhale1805.powerarrow.TorchArrow; import org.junit.*; import static org.junit.Assert.*; @@ -10,10 +12,10 @@ import static org.junit.Assert.*; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; -public class TorchArrowStackTest { +public class TorchArrowTest { private ServerMock server; - private TorchArrowPlugin plugin; + private PowerProjectilePlugin plugin; @BeforeClass public static void setUpClass() { @@ -23,7 +25,7 @@ public class TorchArrowStackTest { @Before public void setUp() { server = MockBukkit.mock(); - plugin = MockBukkit.load(TorchArrowPlugin.class); + plugin = MockBukkit.load(PowerProjectilePlugin.class); } @After @@ -38,8 +40,8 @@ public class TorchArrowStackTest { @Test public void test_isSimilar() { - TorchArrowStack test = new TorchArrowStack(4); - TorchArrowStack test2 = new TorchArrowStack(8); + TorchArrow test = new TorchArrow(4); + TorchArrow test2 = new TorchArrow(8); ItemStack arrow = new ItemStack(Material.ARROW, 4); assertTrue(test.isSimilar(test2)); @@ -48,8 +50,8 @@ public class TorchArrowStackTest { @Test public void test_equals() { - TorchArrowStack test = new TorchArrowStack(4); - TorchArrowStack test2 = new TorchArrowStack(8); + TorchArrow test = new TorchArrow(4); + TorchArrow test2 = new TorchArrow(8); ItemStack arrow = new ItemStack(Material.ARROW, 4); assertTrue(test.equals(test));