From e2bae68db1cca88b8534d44b78f64f9bbd306c1e Mon Sep 17 00:00:00 2001 From: garbagemule Date: Tue, 25 Jun 2013 01:53:45 +0200 Subject: [PATCH] Ability cleanup. - All the core abilities have been moved into the project folders such that they no longer require any extraction. As such, all servers should have the abilities already installed and ready to use, regardless of setup-retardation. - An attempt at fixing the "invisible bosses" issue; a call to removeBoss was replaced with getBoss - hopefully this fixes all the issues. --- .../garbagemule/MobArena/ArenaListener.java | 2 +- src/com/garbagemule/MobArena/MobArena.java | 5 +- .../MobArena/waves/WaveParser.java | 2 +- .../waves/ability/AbilityManager.java | 92 ++++++++++++------- .../waves/ability/core}/ChainLightning.java | 15 +-- .../waves/ability/core}/DisorientDistant.java | 9 +- .../waves/ability/core}/DisorientNearby.java | 11 ++- .../waves/ability/core}/DisorientTarget.java | 9 +- .../waves/ability/core}/FetchDistant.java | 9 +- .../waves/ability/core}/FetchNearby.java | 9 +- .../waves/ability/core}/FetchTarget.java | 7 +- .../waves/ability/core}/FireAura.java | 7 +- .../MobArena/waves/ability/core}/Flood.java | 9 +- .../waves/ability/core}/LightningAura.java | 9 +- .../waves/ability/core}/LivingBomb.java | 9 +- .../waves/ability/core}/ObsidianBomb.java | 11 ++- .../waves/ability/core}/PullDistant.java | 11 ++- .../waves/ability/core}/PullNearby.java | 11 ++- .../waves/ability/core}/PullTarget.java | 11 ++- .../waves/ability/core}/RootTarget.java | 11 ++- .../waves/ability/core}/ShootArrow.java | 6 +- .../waves/ability/core}/ShootFireball.java | 6 +- .../waves/ability/core}/ShufflePositions.java | 16 ++-- .../waves/ability/core}/ThrowDistant.java | 11 ++- .../waves/ability/core}/ThrowNearby.java | 11 ++- .../waves/ability/core}/ThrowTarget.java | 11 ++- .../waves/ability/core}/WarpToPlayer.java | 7 +- 27 files changed, 210 insertions(+), 117 deletions(-) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/ChainLightning.java (89%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/DisorientDistant.java (76%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/DisorientNearby.java (79%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/DisorientTarget.java (77%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/FetchDistant.java (74%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/FetchNearby.java (74%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/FetchTarget.java (73%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/FireAura.java (75%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/Flood.java (71%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/LightningAura.java (75%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/LivingBomb.java (88%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/ObsidianBomb.java (84%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/PullDistant.java (82%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/PullNearby.java (82%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/PullTarget.java (82%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/RootTarget.java (90%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/ShootArrow.java (69%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/ShootFireball.java (70%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/ShufflePositions.java (88%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/ThrowDistant.java (79%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/ThrowNearby.java (79%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/ThrowTarget.java (79%) rename {abilities => src/com/garbagemule/MobArena/waves/ability/core}/WarpToPlayer.java (64%) diff --git a/src/com/garbagemule/MobArena/ArenaListener.java b/src/com/garbagemule/MobArena/ArenaListener.java index 6206da7..4df6256 100644 --- a/src/com/garbagemule/MobArena/ArenaListener.java +++ b/src/com/garbagemule/MobArena/ArenaListener.java @@ -469,7 +469,7 @@ public class ArenaListener ap.getStats().inc("kills"); arena.getScoreboard().addKill(p); } - MABoss boss = monsters.removeBoss(event.getEntity()); + MABoss boss = monsters.getBoss(event.getEntity()); if (boss != null) { ItemStack reward = boss.getReward(); if (reward != null) { diff --git a/src/com/garbagemule/MobArena/MobArena.java b/src/com/garbagemule/MobArena/MobArena.java index 077d716..14ac110 100644 --- a/src/com/garbagemule/MobArena/MobArena.java +++ b/src/com/garbagemule/MobArena/MobArena.java @@ -202,8 +202,9 @@ public class MobArena extends JavaPlugin private void loadAbilities() { File dir = new File(this.getDataFolder(), "abilities"); if (!dir.exists()) dir.mkdir(); - - AbilityManager.loadAbilities(dir, getClass()); + + AbilityManager.loadCoreAbilities(); + AbilityManager.loadAbilities(dir); } private void startMetrics() { diff --git a/src/com/garbagemule/MobArena/waves/WaveParser.java b/src/com/garbagemule/MobArena/waves/WaveParser.java index ee85cfd..03c9a0c 100644 --- a/src/com/garbagemule/MobArena/waves/WaveParser.java +++ b/src/com/garbagemule/MobArena/waves/WaveParser.java @@ -279,7 +279,7 @@ public class WaveParser if (ablts != null) { String[] parts = ablts.split(","); for (String ability : parts) { - Ability a = AbilityManager.fromString(ability.trim()); + Ability a = AbilityManager.getAbility(ability.trim()); if (a == null) { Messenger.warning(WaveError.BOSS_ABILITY.format(ability.trim(), name, arena.configName())); continue; diff --git a/src/com/garbagemule/MobArena/waves/ability/AbilityManager.java b/src/com/garbagemule/MobArena/waves/ability/AbilityManager.java index 2d75e9b..41a4e45 100644 --- a/src/com/garbagemule/MobArena/waves/ability/AbilityManager.java +++ b/src/com/garbagemule/MobArena/waves/ability/AbilityManager.java @@ -16,6 +16,7 @@ import javax.tools.ToolProvider; import com.garbagemule.MobArena.Messenger; import com.garbagemule.MobArena.util.FileUtils; +import com.garbagemule.MobArena.waves.ability.core.*; public class AbilityManager { @@ -23,22 +24,58 @@ public class AbilityManager private static final String classpath = jarpath + ";" + System.getProperty("java.class.path"); private static Map abilities; - + private static Map> abs; + /** - * Get an Ability by one of its aliases. - * @param name an Ability alias - * @return an Ability, if one exists with the given alias, false otherwise + * Get an instance of an ability by alias + * @param alias the alias of an ability + * @return a new Ability object, or null */ - public static Ability fromString(String name) { - return abilities.get(name.toLowerCase().replaceAll("[-_.]", "")); + public static Ability getAbility(String alias) { + try { + Class cls = abs.get(alias.toLowerCase().replaceAll("[-_.]", "")); + return cls.newInstance(); + } catch (Exception e) { + return null; + } + } + + /** + * Load all the core abilities included in MobArena + */ + public static void loadCoreAbilities() { + if (abs == null) abs = new HashMap>(); + + register(ChainLightning.class); + register(DisorientDistant.class); + register(DisorientNearby.class); + register(DisorientTarget.class); + register(FetchDistant.class); + register(FetchNearby.class); + register(FetchTarget.class); + register(FireAura.class); + register(Flood.class); + register(LightningAura.class); + register(LivingBomb.class); + register(ObsidianBomb.class); + register(PullDistant.class); + register(PullNearby.class); + register(PullTarget.class); + register(RootTarget.class); + register(ShootArrow.class); + register(ShootFireball.class); + register(ShufflePositions.class); + register(ThrowDistant.class); + register(ThrowNearby.class); + register(ThrowTarget.class); + register(WarpToPlayer.class); } /** - * Load the known abilities as well as all custom abilities from - * the specified directory. - * @param dir a directory of .class (and/or .java) files + * Load the custom abilities from the specified directory. + * @param classDir a directory of .class (and/or .java) files */ - public static void loadAbilities(File classDir, Class cls) { + public static void loadAbilities(File classDir) { abilities = new HashMap(); // Grab the source directory. @@ -56,32 +93,21 @@ public class AbilityManager } } - /* If there is only one file in the directory, make sure it isn't the - * src/ folder, in which case there will be no .class files to load. - * In the case of no .class files, extract the defaults. */ - String[] files = classDir.list(); - if (files.length == 0 || (files.length == 1 && files[0].equals("src"))) { - Messenger.info("No boss abilities found. Extracting defaults..."); - extractDefaultAbilities(classDir, cls); - } - // Load all the custom abilities. loadClasses(classDir); } - - private static void extractDefaultAbilities(File classDir, Class cls) { - // Grab a list of all the class files. - List resources = FileUtils.listFilesOnPath("res/abilities/", ".class"); - - // Check that there is stuff to extract. - if (resources == null || resources.isEmpty()) { - Messenger.severe("Couldn't extract the default boss abilities!"); - return; + + /** + * Register an ability by its class object + * @param cls the ability class + */ + private static void register(Class cls) { + AbilityInfo info = cls.getAnnotation(AbilityInfo.class); + if (info == null) return; + + for (String alias : info.aliases()) { + abs.put(alias, cls); } - - // Extract everything. - List files = FileUtils.extractResources(classDir, "abilities/", resources, cls); - Messenger.info("Extracted abilities: " + fileListToString(files, "$")); } private static void compileAbilities(File javaDir, File classDir) { @@ -175,7 +201,7 @@ public class AbilityManager /** * (Compiles and) loads all custom abilities in the given directory. - * @param dir a directory + * @param classDir a directory */ private static void loadClasses(File classDir) { // Grab the class loader diff --git a/abilities/ChainLightning.java b/src/com/garbagemule/MobArena/waves/ability/core/ChainLightning.java similarity index 89% rename from abilities/ChainLightning.java rename to src/com/garbagemule/MobArena/waves/ability/core/ChainLightning.java index 4f3884b..32dbd3a 100644 --- a/abilities/ChainLightning.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/ChainLightning.java @@ -1,12 +1,15 @@ -import java.util.ArrayList; -import java.util.List; - -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; @AbilityInfo( name = "Chain Lightning", diff --git a/abilities/DisorientDistant.java b/src/com/garbagemule/MobArena/waves/ability/core/DisorientDistant.java similarity index 76% rename from abilities/DisorientDistant.java rename to src/com/garbagemule/MobArena/waves/ability/core/DisorientDistant.java index 3def274..10f4ab1 100644 --- a/abilities/DisorientDistant.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/DisorientDistant.java @@ -1,9 +1,12 @@ -import org.bukkit.Location; -import org.bukkit.entity.Player; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.Location; +import org.bukkit.entity.Player; @AbilityInfo( name = "Disorient Distant", diff --git a/abilities/DisorientNearby.java b/src/com/garbagemule/MobArena/waves/ability/core/DisorientNearby.java similarity index 79% rename from abilities/DisorientNearby.java rename to src/com/garbagemule/MobArena/waves/ability/core/DisorientNearby.java index 9167c92..7ef806a 100644 --- a/abilities/DisorientNearby.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/DisorientNearby.java @@ -1,10 +1,13 @@ -import org.bukkit.Location; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.Location; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; @AbilityInfo( name = "Disorient Nearby", diff --git a/abilities/DisorientTarget.java b/src/com/garbagemule/MobArena/waves/ability/core/DisorientTarget.java similarity index 77% rename from abilities/DisorientTarget.java rename to src/com/garbagemule/MobArena/waves/ability/core/DisorientTarget.java index 582687e..c256d4f 100644 --- a/abilities/DisorientTarget.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/DisorientTarget.java @@ -1,9 +1,12 @@ -import org.bukkit.Location; -import org.bukkit.entity.LivingEntity; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.Location; +import org.bukkit.entity.LivingEntity; @AbilityInfo( name = "Disorient Target", diff --git a/abilities/FetchDistant.java b/src/com/garbagemule/MobArena/waves/ability/core/FetchDistant.java similarity index 74% rename from abilities/FetchDistant.java rename to src/com/garbagemule/MobArena/waves/ability/core/FetchDistant.java index 8e0a750..2d520dd 100644 --- a/abilities/FetchDistant.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/FetchDistant.java @@ -1,9 +1,12 @@ -import org.bukkit.Location; -import org.bukkit.entity.Player; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.Location; +import org.bukkit.entity.Player; @AbilityInfo( name = "Fetch Distant", diff --git a/abilities/FetchNearby.java b/src/com/garbagemule/MobArena/waves/ability/core/FetchNearby.java similarity index 74% rename from abilities/FetchNearby.java rename to src/com/garbagemule/MobArena/waves/ability/core/FetchNearby.java index a5367c0..3a70e02 100644 --- a/abilities/FetchNearby.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/FetchNearby.java @@ -1,9 +1,12 @@ -import org.bukkit.Location; -import org.bukkit.entity.Player; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.Location; +import org.bukkit.entity.Player; @AbilityInfo( name = "Fetch Nearby", diff --git a/abilities/FetchTarget.java b/src/com/garbagemule/MobArena/waves/ability/core/FetchTarget.java similarity index 73% rename from abilities/FetchTarget.java rename to src/com/garbagemule/MobArena/waves/ability/core/FetchTarget.java index 03aec40..7f8f86c 100644 --- a/abilities/FetchTarget.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/FetchTarget.java @@ -1,8 +1,11 @@ -import org.bukkit.entity.LivingEntity; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.entity.LivingEntity; @AbilityInfo( name = "Fetch Target", diff --git a/abilities/FireAura.java b/src/com/garbagemule/MobArena/waves/ability/core/FireAura.java similarity index 75% rename from abilities/FireAura.java rename to src/com/garbagemule/MobArena/waves/ability/core/FireAura.java index 8a90f21..ac5e70c 100644 --- a/abilities/FireAura.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/FireAura.java @@ -1,8 +1,11 @@ -import org.bukkit.entity.Player; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.entity.Player; @AbilityInfo( name = "Fire Aura", diff --git a/abilities/Flood.java b/src/com/garbagemule/MobArena/waves/ability/core/Flood.java similarity index 71% rename from abilities/Flood.java rename to src/com/garbagemule/MobArena/waves/ability/core/Flood.java index d026ef8..6e13eea 100644 --- a/abilities/Flood.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/Flood.java @@ -1,9 +1,12 @@ -import org.bukkit.block.Block; -import org.bukkit.entity.Player; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; @AbilityInfo( name = "Flood", diff --git a/abilities/LightningAura.java b/src/com/garbagemule/MobArena/waves/ability/core/LightningAura.java similarity index 75% rename from abilities/LightningAura.java rename to src/com/garbagemule/MobArena/waves/ability/core/LightningAura.java index 5c6c29a..ae76c92 100644 --- a/abilities/LightningAura.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/LightningAura.java @@ -1,9 +1,12 @@ -import org.bukkit.World; -import org.bukkit.entity.Player; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.World; +import org.bukkit.entity.Player; @AbilityInfo( name = "Lightning Aura", diff --git a/abilities/LivingBomb.java b/src/com/garbagemule/MobArena/waves/ability/core/LivingBomb.java similarity index 88% rename from abilities/LivingBomb.java rename to src/com/garbagemule/MobArena/waves/ability/core/LivingBomb.java index fe51b85..7279773 100644 --- a/abilities/LivingBomb.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/LivingBomb.java @@ -1,9 +1,12 @@ -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; @AbilityInfo( name = "Living Bomb", diff --git a/abilities/ObsidianBomb.java b/src/com/garbagemule/MobArena/waves/ability/core/ObsidianBomb.java similarity index 84% rename from abilities/ObsidianBomb.java rename to src/com/garbagemule/MobArena/waves/ability/core/ObsidianBomb.java index 943c79e..4b59c48 100644 --- a/abilities/ObsidianBomb.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/ObsidianBomb.java @@ -1,13 +1,16 @@ +package com.garbagemule.MobArena.waves.ability.core; + +import com.garbagemule.MobArena.framework.Arena; +import com.garbagemule.MobArena.waves.MABoss; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.entity.LivingEntity; -import com.garbagemule.MobArena.framework.Arena; -import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; - @AbilityInfo( name = "Obsidian Bomb", aliases = {"obsidianbomb"} diff --git a/abilities/PullDistant.java b/src/com/garbagemule/MobArena/waves/ability/core/PullDistant.java similarity index 82% rename from abilities/PullDistant.java rename to src/com/garbagemule/MobArena/waves/ability/core/PullDistant.java index fb6ce03..8cfa269 100644 --- a/abilities/PullDistant.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/PullDistant.java @@ -1,10 +1,13 @@ -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.util.Vector; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; @AbilityInfo( name = "Pull Distant", diff --git a/abilities/PullNearby.java b/src/com/garbagemule/MobArena/waves/ability/core/PullNearby.java similarity index 82% rename from abilities/PullNearby.java rename to src/com/garbagemule/MobArena/waves/ability/core/PullNearby.java index e35be4f..5d9eea0 100644 --- a/abilities/PullNearby.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/PullNearby.java @@ -1,10 +1,13 @@ -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.util.Vector; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; @AbilityInfo( name = "Pull Nearby", diff --git a/abilities/PullTarget.java b/src/com/garbagemule/MobArena/waves/ability/core/PullTarget.java similarity index 82% rename from abilities/PullTarget.java rename to src/com/garbagemule/MobArena/waves/ability/core/PullTarget.java index 5105428..7fc60fb 100644 --- a/abilities/PullTarget.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/PullTarget.java @@ -1,10 +1,13 @@ -import org.bukkit.Location; -import org.bukkit.entity.LivingEntity; -import org.bukkit.util.Vector; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.Location; +import org.bukkit.entity.LivingEntity; +import org.bukkit.util.Vector; @AbilityInfo( name = "Pull Target", diff --git a/abilities/RootTarget.java b/src/com/garbagemule/MobArena/waves/ability/core/RootTarget.java similarity index 90% rename from abilities/RootTarget.java rename to src/com/garbagemule/MobArena/waves/ability/core/RootTarget.java index 0c42d32..dcc9fcc 100644 --- a/abilities/RootTarget.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/RootTarget.java @@ -1,10 +1,13 @@ -import org.bukkit.Location; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.Location; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; /** * DISCLAIMER: The Ability source code is provided as-is, and the creator(s) of diff --git a/abilities/ShootArrow.java b/src/com/garbagemule/MobArena/waves/ability/core/ShootArrow.java similarity index 69% rename from abilities/ShootArrow.java rename to src/com/garbagemule/MobArena/waves/ability/core/ShootArrow.java index a338b60..4078799 100644 --- a/abilities/ShootArrow.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/ShootArrow.java @@ -1,8 +1,10 @@ -import org.bukkit.entity.Arrow; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import org.bukkit.entity.Arrow; @AbilityInfo( name = "Shoot Arrow", diff --git a/abilities/ShootFireball.java b/src/com/garbagemule/MobArena/waves/ability/core/ShootFireball.java similarity index 70% rename from abilities/ShootFireball.java rename to src/com/garbagemule/MobArena/waves/ability/core/ShootFireball.java index 530f526..01fdea6 100644 --- a/abilities/ShootFireball.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/ShootFireball.java @@ -1,8 +1,10 @@ -import org.bukkit.entity.Fireball; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import org.bukkit.entity.Fireball; @AbilityInfo( name = "Shoot Fireball", diff --git a/abilities/ShufflePositions.java b/src/com/garbagemule/MobArena/waves/ability/core/ShufflePositions.java similarity index 88% rename from abilities/ShufflePositions.java rename to src/com/garbagemule/MobArena/waves/ability/core/ShufflePositions.java index c46ce89..08b4eac 100644 --- a/abilities/ShufflePositions.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/ShufflePositions.java @@ -1,15 +1,17 @@ +package com.garbagemule.MobArena.waves.ability.core; + +import com.garbagemule.MobArena.framework.Arena; +import com.garbagemule.MobArena.waves.MABoss; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import org.bukkit.Location; +import org.bukkit.entity.LivingEntity; + import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; import java.util.List; -import org.bukkit.Location; -import org.bukkit.entity.LivingEntity; - -import com.garbagemule.MobArena.framework.Arena; -import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; - @AbilityInfo( name = "Shuffle Positions", aliases = {"shuffle","shufflepositions"} diff --git a/abilities/ThrowDistant.java b/src/com/garbagemule/MobArena/waves/ability/core/ThrowDistant.java similarity index 79% rename from abilities/ThrowDistant.java rename to src/com/garbagemule/MobArena/waves/ability/core/ThrowDistant.java index f919436..16d0692 100644 --- a/abilities/ThrowDistant.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/ThrowDistant.java @@ -1,10 +1,13 @@ -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.util.Vector; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; @AbilityInfo( name = "Throw Distant", diff --git a/abilities/ThrowNearby.java b/src/com/garbagemule/MobArena/waves/ability/core/ThrowNearby.java similarity index 79% rename from abilities/ThrowNearby.java rename to src/com/garbagemule/MobArena/waves/ability/core/ThrowNearby.java index 00dc2bf..a8401cf 100644 --- a/abilities/ThrowNearby.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/ThrowNearby.java @@ -1,10 +1,13 @@ -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.util.Vector; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; @AbilityInfo( name = "Throw Nearby", diff --git a/abilities/ThrowTarget.java b/src/com/garbagemule/MobArena/waves/ability/core/ThrowTarget.java similarity index 79% rename from abilities/ThrowTarget.java rename to src/com/garbagemule/MobArena/waves/ability/core/ThrowTarget.java index bc08234..005b064 100644 --- a/abilities/ThrowTarget.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/ThrowTarget.java @@ -1,10 +1,13 @@ -import org.bukkit.Location; -import org.bukkit.entity.LivingEntity; -import org.bukkit.util.Vector; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.Location; +import org.bukkit.entity.LivingEntity; +import org.bukkit.util.Vector; @AbilityInfo( name = "Throw Target", diff --git a/abilities/WarpToPlayer.java b/src/com/garbagemule/MobArena/waves/ability/core/WarpToPlayer.java similarity index 64% rename from abilities/WarpToPlayer.java rename to src/com/garbagemule/MobArena/waves/ability/core/WarpToPlayer.java index 7c555d6..4e70a46 100644 --- a/abilities/WarpToPlayer.java +++ b/src/com/garbagemule/MobArena/waves/ability/core/WarpToPlayer.java @@ -1,8 +1,11 @@ -import org.bukkit.entity.Player; +package com.garbagemule.MobArena.waves.ability.core; import com.garbagemule.MobArena.framework.Arena; import com.garbagemule.MobArena.waves.MABoss; -import com.garbagemule.MobArena.waves.ability.*; +import com.garbagemule.MobArena.waves.ability.Ability; +import com.garbagemule.MobArena.waves.ability.AbilityInfo; +import com.garbagemule.MobArena.waves.ability.AbilityUtils; +import org.bukkit.entity.Player; @AbilityInfo( name = "Warp",