Skip to content

Commit

Permalink
Initial Beta release for MobHealth v8.0.0. Compatible with 1.7.x
Browse files Browse the repository at this point in the history
servers.
  • Loading branch information
Sablednah committed Mar 14, 2014
1 parent a138a6c commit 54e459e
Show file tree
Hide file tree
Showing 7 changed files with 69 additions and 112 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Expand Up @@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>MobHealth</groupId>
<artifactId>MobHealth</artifactId>
<version>7.9.0-DEV</version>
<version>v8.0.0-Beta</version>
<name>MobHealth</name>
<url>dev.bukkit.org/bukkit-plugins/mobhealth/</url>
<description>Minecraft Bukkit Sever Plugin to display Mobs health when damaged.</description>
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/me/sablednah/MobHealth/API/MobHealthAPI.java
Expand Up @@ -221,12 +221,14 @@ public void showNotification(Player player, String damageOutput, String mobtype,
ChatMessage = MobHealth.chatKilledMessage;
} else {
ChatMessage = MobHealth.heroesSkillChatKilledMessage;
ChatMessage = ChatMessage.replaceAll("%S", skillName);
}
} else {
if (skillName == null) {
ChatMessage = MobHealth.chatMessage;
} else {
ChatMessage = MobHealth.heroesSkillChatMessage;
ChatMessage = ChatMessage.replaceAll("%S", skillName);
}
if ((mobsHealth < 2) || (mobsHealth <= (mobsMaxHealth / 4))) {
ChatMessage = ChatMessage.replaceAll("%H", (ChatColor.DARK_RED) + Integer.toString(mobsHealth) + (ChatColor.WHITE));
Expand Down
131 changes: 50 additions & 81 deletions src/main/java/me/sablednah/MobHealth/HeroesEventListener.java
Expand Up @@ -18,94 +18,63 @@

package main.java.me.sablednah.MobHealth;

import main.java.me.sablednah.MobHealth.API.MobHealthAPI;

import org.bukkit.entity.ComplexEntityPart;
import org.bukkit.entity.ComplexLivingEntity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;

import org.bukkit.metadata.FixedMetadataValue;
import com.herocraftonline.heroes.api.events.*;

public class HeroesEventListener implements Listener {
public MobHealth plugin;

public HeroesEventListener(MobHealth instance) {
this.plugin = instance;
}


@EventHandler(priority = EventPriority.LOWEST)
public void SkillDamageEvent(SkillDamageEvent event) {

if (!event.isCancelled()) {

int targetHealth = 0;

if (MobHealth.debugMode) {
// event.setDamage(200);
System.out.print("----");
System.out.print("-Skillevent-");
System.out.print("Entity Damaged " + event.getEntity());
System.out.print("Entity getEventName " + event.getEventName());
System.out.print("Entity Damage class " + event.getClass());
System.out.print("Entity Damage " + event.getDamage());
if (event.getEntity() instanceof ComplexLivingEntity)
System.out.print("Entity Damaged is ComplexLivingEntity ");
}

Player playa = null;

if (event instanceof SkillDamageEvent) {
SkillDamageEvent damageEvent = event;

String skillName = damageEvent.getSkill().getName();

if (MobHealth.debugMode) {
System.out.print("--");
System.out.print("[MobHealth] " + skillName + " : skillName");
}

if (damageEvent.getDamager().getEntity() instanceof Player) {
playa = (Player) damageEvent.getDamager().getEntity();
}

if (MobHealth.debugMode) {
System.out.print("playa - " + playa);
}

if (playa != null) {
if (MobHealth.getPluginState(playa)) {
if ((playa.hasPermission("mobhealth.show") && MobHealth.usePermissions) || (!MobHealth.usePermissions)) {

LivingEntity targetMob = null;
if (event.getEntity() instanceof ComplexEntityPart) {
targetMob = ((ComplexEntityPart) event.getEntity()).getParent();
} else if (event.getEntity() instanceof LivingEntity) {
targetMob = (LivingEntity) event.getEntity();
}

if (targetMob != null) {
MobHealthAPI API = new MobHealthAPI(plugin);
targetHealth = API.getMobHealth(targetMob);
int thisdmg = (int)event.getDamage();
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new SkillMessageScheduler(playa, damageEvent, targetMob, targetHealth, thisdmg, plugin), 1L);
}
} else {
if (MobHealth.debugMode) {
System.out.print("Not allowed - mobhealth.show is " + playa.hasPermission("mobhealth.show") + " - usePermissions set to " + MobHealth.usePermissions);
}
}
}
}
}
if (MobHealth.debugMode) {
System.out.print("/----");
}
}
}


public MobHealth plugin;

public HeroesEventListener(MobHealth instance) {
this.plugin = instance;
}

@EventHandler(priority = EventPriority.LOWEST)
public void SkillDamageEvent(SkillDamageEvent event) {

if (!event.isCancelled()) {

Player playa = null;

if (event instanceof SkillDamageEvent) {
SkillDamageEvent damageEvent = event;

String skillName = damageEvent.getSkill().getName();

if (MobHealth.debugMode) {
System.out.print("[MobHealth] detected skillName: " + skillName);
}

if (damageEvent.getDamager().getEntity() instanceof Player) {
playa = (Player) damageEvent.getDamager().getEntity();
}

if (playa != null) {
if (MobHealth.getPluginState(playa)) {
if ((playa.hasPermission("mobhealth.show") && MobHealth.usePermissions) || (!MobHealth.usePermissions)) {
LivingEntity targetMob = null;
if (event.getEntity() instanceof ComplexEntityPart) {
targetMob = ((ComplexEntityPart) event.getEntity()).getParent();
} else if (event.getEntity() instanceof LivingEntity) {
targetMob = (LivingEntity) event.getEntity();
}
if (targetMob != null) {
targetMob.setMetadata("HeroesSkillDamaged", new FixedMetadataValue(plugin, skillName));
}
} else {
if (MobHealth.debugMode) {
System.out.print("Not allowed - mobhealth.show is " + playa.hasPermission("mobhealth.show") + " - usePermissions set to " + MobHealth.usePermissions);
}
}
}
}
}
}
}
}
16 changes: 0 additions & 16 deletions src/main/java/me/sablednah/MobHealth/HeroesUtils.java

This file was deleted.

8 changes: 7 additions & 1 deletion src/main/java/me/sablednah/MobHealth/MessageScheduler.java
Expand Up @@ -125,6 +125,12 @@ public void run() {
isMonster = true;
}
}
String skillname = null;

if(targetMob.hasMetadata("HeroesSkillDamaged")) {
skillname = targetMob.getMetadata("HeroesSkillDamaged").get(0).asString();
targetMob.removeMetadata("HeroesSkillDamaged", plugin);
}

switch (MobHealth.damageDisplayType) {
case 4: // # 4: display damage taken (+amount resisted)
Expand Down Expand Up @@ -179,7 +185,7 @@ public void run() {

if (((MobHealth.disablePlayers && !isPlayer) || !MobHealth.disablePlayers) && ((MobHealth.disableMonsters && !isMonster) || !MobHealth.disableMonsters)
&& ((MobHealth.disableAnimals && !isAnimal) || !MobHealth.disableAnimals) && (!checkForZeroDamageHide)) {
API.showNotification(player, damageOutput, mobtype, mobsHealth, mobsMaxHealth, damagerMob);
API.showNotification(player, damageOutput, mobtype, mobsHealth, mobsMaxHealth, skillname, damagerMob);
}

if (MobHealth.showPlayerHeadHealth || MobHealth.showMobHeadHealth) {
Expand Down
3 changes: 0 additions & 3 deletions src/main/java/me/sablednah/MobHealth/MobHealth.java
Expand Up @@ -625,9 +625,6 @@ public static <T> T[] concat(T[] first, T[] second) {

public static String barGraph(final int x, final int y, final int scale, final String prefix, final String suffix) {
final int percent = (int) ((x / (float) y) * scale);
if (MobHealth.debugMode) {
System.out.print("head percent: " + percent);
}
final StringBuilder mesage = new StringBuilder(12 + scale + prefix.length() + suffix.length());
mesage.append(ChatColor.WHITE);
mesage.append(prefix).append(": [");
Expand Down
Expand Up @@ -28,19 +28,18 @@
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
import org.bukkit.entity.Tameable;
import org.bukkit.event.Event;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.entity.EntityRegainHealthEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;


public class ServerDamageEntityListener implements Listener {

public MobHealth plugin;
Expand Down Expand Up @@ -91,14 +90,15 @@ public void onEntityRegenMonitor(EntityRegainHealthEvent event) {
@EventHandler(priority = EventPriority.LOWEST)
public void onEntityDamage(EntityDamageEvent event) {

if (MobHealth.hasHeroes && HeroesUtils.isHeroesEvent((Event)event)) { // skip heroes events.
if (MobHealth.debugMode) {
System.out.print("-cancelling EntityDamageEvent event as is Skill event-");
if (MobHealth.hasHeroes) { // skip weird custom heroes event
if (event.getDamage()==0.0D && event.getCause()==DamageCause.CUSTOM) {
if (MobHealth.debugMode) {
System.out.print("-cancelling EntityDamageEvent event as is ~probably~ a Skill event-");
}
return;
}
return;
}


if (!event.isCancelled()) {

int targetHealth = 0;
Expand All @@ -119,7 +119,7 @@ public void onEntityDamage(EntityDamageEvent event) {
LivingEntity tm = (LivingEntity) event.getEntity();
if (tm instanceof Horse) {
String horsename = MobHealth.cleanName(tm.getCustomName());
if(horsename != null) {
if (horsename != null) {
if (horsename.length() > 32) {
horsename = horsename.substring(0, 32);
}
Expand Down Expand Up @@ -154,7 +154,7 @@ public void onEntityDamage(EntityDamageEvent event) {
playa = (Player) damageEvent.getDamager();
}

if (playa != null) {
if (playa != null) {
if (MobHealth.debugMode) {
// event.setDamage(200);
System.out.print("----");
Expand All @@ -168,7 +168,6 @@ public void onEntityDamage(EntityDamageEvent event) {
if (event.getEntity() instanceof ComplexLivingEntity)
System.out.print("Entity Damaged is ComplexLivingEntity ");


}

LivingEntity targetMob = null; // (LivingEntity) event.getEntity();
Expand Down

0 comments on commit 54e459e

Please sign in to comment.