diff --git a/vMinecraftChat.java b/vMinecraftChat.java index 235b60224..28c432d34 100644 --- a/vMinecraftChat.java +++ b/vMinecraftChat.java @@ -38,17 +38,18 @@ public class vMinecraftChat { for (Player receiver : etc.getServer().getPlayerList()) { - if (receiver == null) {return;} + if (receiver == null) return; - if(vMinecraftUsers.getProfile(receiver) == null) - return; + if(vMinecraftUsers.getProfile(receiver) == null) return; + //Check if the person has the sender ignored - if(!vMinecraftUsers.getProfile(receiver).isIgnored(sender)) - { - String[] message = applyColors(wordWrap(msg)); - for(String out : message) - receiver.sendMessage(out); - } + if(sender != null) + if(vMinecraftUsers.getProfile(receiver).isIgnored(sender)) + return; + + String[] message = applyColors(wordWrap(msg)); + for(String out : message) + receiver.sendMessage(out); } } @@ -75,15 +76,19 @@ public class vMinecraftChat { //Check if the receiver has the sender ignored if(vMinecraftUsers.getProfile(receiver) == null) return; - if(!vMinecraftUsers.getProfile(receiver).isIgnored(sender)) - { - String[] message = applyColors(wordWrap(msg)); - for(String out : message) - receiver.sendMessage(out); + + if(sender != null) + if(vMinecraftUsers.getProfile(receiver).isIgnored(sender)) + { + sendMessage(sender, sender, Colors.Rose + receiver.getName() + + " has you on their ignore list."); + return; + } + + String[] message = applyColors(wordWrap(msg)); + for(String out : message) + receiver.sendMessage(out); //Tell them if they are - } else - sendMessage(sender, sender, Colors.Rose + receiver.getName() - + " has you on their ignore list."); } //===================================================================== diff --git a/vMinecraftListener.java b/vMinecraftListener.java index 5a1ae76c7..303129baf 100644 --- a/vMinecraftListener.java +++ b/vMinecraftListener.java @@ -6,9 +6,6 @@ import java.util.logging.Logger; //Author: nossr50, TrapAlice, cerevisiae //===================================================================== public class vMinecraftListener extends PluginListener { - public int damagetype; - public String deadplayer; - public boolean senddeath; protected static final Logger log = Logger.getLogger("Minecraft"); //===================================================================== @@ -83,12 +80,8 @@ public class vMinecraftListener extends PluginListener { //Use: Checks for exploits and runs the commands //===================================================================== public boolean onHealthChange(Player player,int oldValue,int newValue){ - if (vMinecraftSettings.getInstance().isEzModo(player.getName())) { - return oldValue > newValue; - } - if (player.getHealth() < 1){ - senddeath = true; - deadplayer = player.getName(); + if (player.getHealth() > 1){ + vMinecraftUsers.getProfile(player).isDead(false); } return false; } @@ -113,27 +106,51 @@ public class vMinecraftListener extends PluginListener { } return false; } + public boolean onDamage(PluginLoader.DamageType type, BaseEntity attacker, BaseEntity defender, int amount) { - if (senddeath == true) { - if (type == type.CREEPER_EXPLOSION) { - vMinecraftChat.gmsg(deadplayer + Colors.Rose + " was blown to bits by a creeper"); - } else if(type == type.FALL){ - vMinecraftChat.gmsg(deadplayer + Colors.Rose + " fell to death!"); - } else if(type == type.FIRE){ - vMinecraftChat.gmsg(deadplayer + Colors.Rose + " was incinerated"); - } else if (type == type.FIRE_TICK){ - vMinecraftChat.gmsg(deadplayer + Colors.Rose + " Stop drop and roll, not scream, run, and burn "); - } else if (type == type.LAVA){ - vMinecraftChat.gmsg(deadplayer + Colors.Rose + " drowned in lava"); - } else if (type == type.WATER){ - vMinecraftChat.gmsg(deadplayer + Colors.Rose + " should've attended that swimming class"); - } else { - vMinecraftChat.gmsg(Colors.Gray + deadplayer + " " + vMinecraftSettings.randomDeathMsg()); - } - senddeath = false; - } - return true; + + Player defend = null; + if(defender != null && defender.isPlayer()) + { + defend = defender.getPlayer(); + if (vMinecraftSettings.getInstance().isEzModo(defend.getName())) { + return true; + } + + if (defend.getHealth() > 0) + return false; + if (vMinecraftUsers.getProfile(defend).isDead()) + return false; + + vMinecraftUsers.getProfile(defend).isDead(true); + + Player attack = null; + if(attacker != null && attacker.isPlayer()) + attack = attacker.getPlayer(); + if(attack != null) + { + + } + if (type == type.CREEPER_EXPLOSION) { + vMinecraftChat.gmsg(defend.getName() + Colors.Rose + " was blown to bits by a creeper"); + } else if(type == type.FALL){ + vMinecraftChat.gmsg(defend.getName() + Colors.Rose + " fell to death!"); + } else if(type == type.FIRE){ + vMinecraftChat.gmsg(defend.getName() + Colors.Rose + " was incinerated"); + } else if (type == type.FIRE_TICK){ + vMinecraftChat.gmsg(defend.getName() + Colors.Rose + " Stop drop and roll, not scream, run, and burn "); + } else if (type == type.LAVA){ + vMinecraftChat.gmsg(defend.getName() + Colors.Rose + " drowned in lava"); + } else if (type == type.WATER){ + log.log(Level.INFO, "Water"); + vMinecraftChat.gmsg(defend.getName() + Colors.Rose + " should've attended that swimming class"); + } else { + vMinecraftChat.gmsg(Colors.Gray + defend.getName() + " " + vMinecraftSettings.randomDeathMsg()); + } + + } + return false; } } \ No newline at end of file diff --git a/vMinecraftUsers.java b/vMinecraftUsers.java index 21394f3bd..b39e02fce 100644 --- a/vMinecraftUsers.java +++ b/vMinecraftUsers.java @@ -154,6 +154,8 @@ class PlayerList tag, suffix; + private boolean dead; + char defaultColor; String location = "vminecraft.users"; @@ -182,6 +184,7 @@ class PlayerList defaultColor = 'f'; ignoreList = new ArrayList(); aliasList = new commandList(); + dead = false; //Try to load the player and if they aren't found, append them if(!load()) @@ -544,6 +547,22 @@ class PlayerList return etc.getServer().matchPlayer(lastMessage); return null; } + + //===================================================================== + //Function: isDead + //Input: None + //Output: boolean: If the player is dead or not + //Use: Gets the player is dead or not. + //===================================================================== + public boolean isDead() {return dead;} + + //===================================================================== + //Function: isDead + //Input: boolean isded: if the player is dead or not. + //Output: None + //Use: Sets if the player is dead or not + //===================================================================== + public void isDead(boolean isded){dead = isded;} } }