diff --git a/TwosideKeeper.jar b/TwosideKeeper.jar index 9a4b24c..658bd5f 100644 Binary files a/TwosideKeeper.jar and b/TwosideKeeper.jar differ diff --git a/src/sig/plugin/TwosideKeeper/CustomDamage.java b/src/sig/plugin/TwosideKeeper/CustomDamage.java index b306cc1..218ed34 100644 --- a/src/sig/plugin/TwosideKeeper/CustomDamage.java +++ b/src/sig/plugin/TwosideKeeper/CustomDamage.java @@ -896,7 +896,8 @@ public class CustomDamage { if (!Dummy.isDummy(target)) { increaseArtifactArmorXP(p,(int)(ratio*10)+1); } - hitlist = getAOEList(weapon,target); + hitlist = getAOEList(weapon,target,p); + //TwosideKeeper.log("AOE List: "+hitlist, 0); } boolean applyDeathMark=false; @@ -904,6 +905,7 @@ public class CustomDamage { if (ArtifactAbility.getEnchantmentLevel(ArtifactAbility.DEATHMARK, p.getEquipment().getItemInMainHand())>0 && pd.last_deathmark+GenericFunctions.GetModifiedCooldown(TwosideKeeper.DEATHMARK_COOLDOWN,p) getAOEList(ItemStack weapon, LivingEntity target) { + static List getAOEList(ItemStack weapon, LivingEntity target, Player p) { List list = new ArrayList(); - if (target instanceof Player) { - if (ArtifactAbility.containsEnchantment(ArtifactAbility.AOE, weapon)) { - double aoerange = 1+GenericFunctions.getAbilityValue(ArtifactAbility.AOE, weapon, (Player)target); - if (target!=null) { - List nearbylist=target.getNearbyEntities(aoerange,aoerange,aoerange); - list = trimNonLivingEntities(nearbylist); - //list.remove(target); - } + if (ArtifactAbility.containsEnchantment(ArtifactAbility.AOE, weapon)) { + //TwosideKeeper.log("Weapon contains AOE", 0); + double aoerange = 1+GenericFunctions.getAbilityValue(ArtifactAbility.AOE, weapon, p); + //TwosideKeeper.log("AOE Range: "+aoerange, 0); + if (target!=null) { + List nearbylist=target.getNearbyEntities(aoerange,aoerange,aoerange); + list = trimNonLivingEntities(nearbylist); + //list.remove(target); } } list.add(target); diff --git a/src/sig/plugin/TwosideKeeper/HelperStructures/ArtifactAbility.java b/src/sig/plugin/TwosideKeeper/HelperStructures/ArtifactAbility.java index 5c6d85f..93f2995 100644 --- a/src/sig/plugin/TwosideKeeper/HelperStructures/ArtifactAbility.java +++ b/src/sig/plugin/TwosideKeeper/HelperStructures/ArtifactAbility.java @@ -264,7 +264,6 @@ public enum ArtifactAbility { newstring+=" "+splitstring[j]; } } - TwosideKeeper.log(newstring,5); //This is the name of the enchantment. Now connect it with the name map we made. abilities.put(AwakenedArtifact.name_map.get(ChatColor.stripColor(newstring)),Integer.parseInt(splitstring[splitstring.length-1])); } @@ -363,6 +362,7 @@ public enum ArtifactAbility { } public static boolean containsEnchantment(ArtifactAbility ability, ItemStack item) { + //TwosideKeeper.log("Enchantment list: "+getEnchantments(item), 0); return getEnchantments(item).containsKey(ability); } diff --git a/src/sig/plugin/TwosideKeeper/Monster/SniperSkeleton.java b/src/sig/plugin/TwosideKeeper/Monster/SniperSkeleton.java index 17ba5aa..1ef20a2 100644 --- a/src/sig/plugin/TwosideKeeper/Monster/SniperSkeleton.java +++ b/src/sig/plugin/TwosideKeeper/Monster/SniperSkeleton.java @@ -167,7 +167,7 @@ public class SniperSkeleton extends GenericBoss{ Projectile arrow = m.launchProjectile(Arrow.class); arrow.setCustomName("MIRRORED"); //arrow.setMetadata("SNIPER_"+mode.name(), new FixedMetadataValue(TwosideKeeper.plugin,false)); - TwosideKeeper.log(TwosideKeeper.getServerTickTime()+": Shooting arrow", 0); + //TwosideKeeper.log(TwosideKeeper.getServerTickTime()+": Shooting arrow", 0); } }, 20); } diff --git a/src/sig/plugin/TwosideKeeper/TwosideKeeper.java b/src/sig/plugin/TwosideKeeper/TwosideKeeper.java index 0220d61..edbaaed 100644 --- a/src/sig/plugin/TwosideKeeper/TwosideKeeper.java +++ b/src/sig/plugin/TwosideKeeper/TwosideKeeper.java @@ -303,7 +303,7 @@ import sig.plugin.TwosideKeeper.Rooms.ParkourChallengeRoom; import sig.plugin.TwosideKeeper.Rooms.TankChallengeRoom; -public class TwosideKeeper extends JavaPlugin implements Listener { +public class TwosideKeeper extends JavaPlugin implements Listener { public final static int CUSTOM_DAMAGE_IDENTIFIER = 500000; @@ -4643,7 +4643,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener { } //Check for Earth Wave attack. - if ((ev.getAction()==Action.RIGHT_CLICK_AIR || ev.getAction()==Action.RIGHT_CLICK_BLOCK) && !p.isOnGround()) { + if ((ev.getAction()==Action.RIGHT_CLICK_AIR || ev.getAction()==Action.RIGHT_CLICK_BLOCK) && !p.isOnGround() && !p.isInsideVehicle()) { ItemStack weapon = p.getEquipment().getItemInMainHand(); //PlayerStructure pd = PlayerStructure.GetPlayerStructure(p); double dmg = 0; @@ -4770,7 +4770,9 @@ public class TwosideKeeper extends JavaPlugin implements Listener { //TwosideKeeper.log(ev.useInteractedBlock().toString(), 0); if ((ev.getAction()==Action.RIGHT_CLICK_AIR || ev.getAction()==Action.RIGHT_CLICK_BLOCK) && (ev.getClickedBlock()==null || !BlockUtils.isInteractable(ev.getClickedBlock()))) { - aggroMonsters(p, pd, 1000, 16); + if (PlayerMode.getPlayerMode(p)==PlayerMode.DEFENDER) { + aggroMonsters(p, pd, 1000, 16); + } //See if this player is blocking. If so, give them absorption. //Player p = ev.getPlayer(); /*Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() { diff --git a/src/sig/plugin/TwosideKeeper/runServerHeartbeat.java b/src/sig/plugin/TwosideKeeper/runServerHeartbeat.java index 0e67690..ef10306 100644 --- a/src/sig/plugin/TwosideKeeper/runServerHeartbeat.java +++ b/src/sig/plugin/TwosideKeeper/runServerHeartbeat.java @@ -1422,7 +1422,7 @@ final public class runServerHeartbeat implements Runnable { } public void AddEliteStructureIfOneDoesNotExist(LivingEntityStructure ms) { - if (ms.isElite || (ms.m instanceof Monster && MonsterController.getMonsterDifficulty((Monster)(ms.m))==MonsterDifficulty.ELITE)) { + if ((ms.isElite && ms.m instanceof Monster) || (ms.m instanceof Monster && MonsterController.getMonsterDifficulty((Monster)(ms.m))==MonsterDifficulty.ELITE)) { //Make it glow dark purple. //GenericFunctions.setGlowing(m, GlowAPI.Color.DARK_PURPLE); boolean hasstruct = false;