vMinecraftListener.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. import java.util.logging.Level;
  2. import java.util.logging.Logger;
  3. //=====================================================================
  4. //Class: vMinecraftListener
  5. //Use: The listener to catch incoming chat and commands
  6. //Author: nossr50, TrapAlice, cerevisiae
  7. //=====================================================================
  8. public class vMinecraftListener extends PluginListener {
  9. protected static final Logger log = Logger.getLogger("Minecraft");
  10. //=====================================================================
  11. //Function: disable
  12. //Input: None
  13. //Output: None
  14. //Use: Disables vMinecraft, but why would you want to do that? ;)
  15. //=====================================================================
  16. public void disable() {
  17. log.log(Level.INFO, "vMinecraft disabled");
  18. }
  19. //=====================================================================
  20. //Function: onChat
  21. //Input: Player player: The player calling the command
  22. // String message: The message to color
  23. //Output: boolean: If the user has access to the command
  24. // and it is enabled
  25. //Use: Checks for quote, rage, and colors
  26. //=====================================================================
  27. public boolean onChat(Player player, String message){
  28. //Quote (Greentext)
  29. if (message.startsWith("@") ||
  30. vMinecraftSettings.getInstance().isAdminToggled(player.getName()))
  31. return vMinecraftChat.adminChat(player, message);
  32. else if (message.startsWith(">"))
  33. return vMinecraftChat.quote(player, message);
  34. //Rage (FFF)
  35. else if (message.startsWith("FFF"))
  36. return vMinecraftChat.rage(player, message);
  37. //Send through quakeColors otherwise
  38. else
  39. return vMinecraftChat.quakeColors(player, message);
  40. }
  41. //=====================================================================
  42. //Function: onCommand
  43. //Input: Player player: The player calling the command
  44. // String[] split: The arguments
  45. //Output: boolean: If the user has access to the command
  46. // and it is enabled
  47. //Use: Checks for exploits and runs the commands
  48. //=====================================================================
  49. public boolean onCommand(Player player, String[] split) {
  50. //Copy the arguments into their own array.
  51. String[] args = new String[split.length - 1];
  52. System.arraycopy(split, 1, args, 0, args.length);
  53. //Return the results of the command
  54. int exitCode = vMinecraftCommands.cl.call(split[0], player, args);
  55. if(exitCode == 0)
  56. return false;
  57. else if(exitCode == 1)
  58. return true;
  59. else
  60. return false;
  61. }
  62. //=====================================================================
  63. //Function: onHealthChange
  64. //Input: Player player: The player calling the command
  65. // int oldValue: The old health value;
  66. // int newValue: The new health value
  67. //Output: boolean: If the user has access to the command
  68. // and it is enabled
  69. //Use: Checks for exploits and runs the commands
  70. //=====================================================================
  71. public boolean onHealthChange(Player player,int oldValue,int newValue){
  72. if (vMinecraftSettings.getInstance().isEzModo(player.getName())) {
  73. return oldValue > newValue;
  74. }
  75. return false;
  76. }
  77. public void onLogin(Player player){
  78. vMinecraftUsers.addUser(player);
  79. }
  80. public boolean onDamage(PluginLoader.DamageType type, BaseEntity attacker, BaseEntity defender, int amount) {
  81. if(defender.isPlayer()){
  82. int damagetype = 0; //Set to 0 to begin with
  83. Player player = (Player)defender;
  84. if(defender.isPlayer() && player.getHealth() < 1 && !attacker.isPlayer())
  85. {
  86. if (type == type.CREEPER_EXPLOSION) {
  87. damagetype = 1; //Creeper
  88. } else if(type == type.FALL){
  89. damagetype = 2; //Fall
  90. } else if(type == type.FIRE){
  91. damagetype = 3; //Fire going to make it share with firetick since its similar
  92. } else if (type == type.FIRE_TICK){
  93. damagetype = 4; //Firetick
  94. } else if (type == type.LAVA){
  95. damagetype = 5; //Lava
  96. } else if (type == type.WATER){
  97. damagetype = 6; //Water
  98. }
  99. }
  100. if (defender.isPlayer() && attacker.isPlayer()) {
  101. Player pAttacker = (Player)attacker;
  102. Player pDefender = (Player)defender;
  103. if(pDefender.getHealth() < 1){
  104. damagetype =0; //Reset damagetype to 0
  105. vMinecraftChat.gmsg(player, pAttacker.getName() + " has murdered " + pDefender.getName());
  106. }
  107. }
  108. if (player.getHealth() < 1 && !attacker.isPlayer()) {
  109. if (damagetype == 1){
  110. vMinecraftChat.gmsg(player,player.getName() + Colors.Red + " was blown to bits by a creeper");
  111. } else if (damagetype == 2) {
  112. vMinecraftChat.gmsg(player,player.getName() + Colors.Red + " fell to death!");
  113. } else if (damagetype ==3){
  114. vMinecraftChat.gmsg(player, player.getName() + Colors.Red + " was incinerated");
  115. } else if (damagetype == 4){
  116. vMinecraftChat.gmsg(player, Colors.Red + " Stop drop and roll, not scream, run, and burn " + player.getName());
  117. } else if (damagetype == 5){
  118. vMinecraftChat.gmsg(player, Colors.Red + player.getName() + " drowned in lava");
  119. } else if (damagetype == 6){
  120. vMinecraftChat.gmsg(player, Colors.Blue + player.getName() + " should've attended that swimming class");
  121. } else {
  122. vMinecraftChat.gmsg(player, Colors.Gray + player.getName() + " " + vMinecraftSettings.randomDeathMsg());
  123. }
  124. }
  125. }
  126. return false;
  127. }
  128. }