Advertisement
drazisil

Untitled

Dec 20th, 2014
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.71 KB | None | 0 0
  1. package com.drazisil.petguard;
  2.  
  3. import org.spongepowered.api.entity.EntityType;
  4. import org.spongepowered.api.entity.living.Living;
  5. import org.spongepowered.api.event.cause.CauseTracked;
  6. import org.spongepowered.api.event.entity.EntityChangeHealthEvent;
  7. import org.spongepowered.api.event.player.PlayerInteractEvent;
  8. import org.spongepowered.api.text.message.Messages;
  9. import org.spongepowered.api.util.event.Subscribe;
  10. import org.spongepowered.api.world.Location;
  11.  
  12. import java.util.UUID;
  13.  
  14. /**
  15.  * Created by joseph on 12/20/2014.
  16.  */
  17. public class PetGuardListener {
  18.  
  19.     private PetGuard plugin;
  20.  
  21.     public PetGuardListener(PetGuard plugin) {
  22.  
  23.         this.plugin = plugin;
  24.     }
  25.  
  26.     /**
  27.      *
  28.      * @param event
  29.      */
  30.     @Subscribe
  31.     public void onEntityEvent(EntityChangeHealthEvent event) {
  32.  
  33.         if (event.getEntity() instanceof Living) {
  34.  
  35.             /*
  36.              The entity taking the damage
  37.              */
  38.             Living damagee;
  39.             damagee = (Living) event.getEntity();
  40.  
  41.             /*
  42.              the type of entity the damagee is
  43.              */
  44.             EntityType damageeType;
  45.             damageeType = damagee.getType();
  46.  
  47.             /*
  48.              The ID of the damagee
  49.              */
  50.             UUID uuid;
  51.             uuid = damagee.getUniqueId();
  52.  
  53.             /*
  54.              The location damage occurs
  55.              */
  56.             Location location;
  57.             location = damagee.getLocation();
  58.  
  59.             /*
  60.              The world name where the damagee is
  61.              */
  62.             String worldName;
  63.             worldName = damagee.getWorld().getName();
  64.  
  65.             /*
  66.              http://jd.bukkit.org/beta/apidocs/org/bukkit/event/entity/EntityDamageEvent.DamageCause.html
  67.              Damage cause types to check for:
  68.              * BLOCK_EXPLOSION
  69.              * CONTACT
  70.              * CUSTOM
  71.              * DROWNING
  72.              * ENTITY_ATTACK
  73.              * ENTITY_EXPLOSION
  74.              * FALL
  75.              * FALLING_BLOCK
  76.              * FIRE
  77.              * FIRE_TICK
  78.              * LAVA
  79.              * LIGHTNING
  80.              * MAGIC
  81.              * MELTING
  82.              * POISON
  83.              * PROJECTILE
  84.              * STARVATION
  85.              * SUFFOCATION
  86.              * SUICIDE
  87.              * THORNS
  88.              * VOID
  89.              * WITHER
  90.              */
  91.             CauseTracked cause;
  92.             cause = (CauseTracked) event.getCause();
  93.             plugin.game.broadcastMessage(Messages.of(worldName + " Ouch: " + damageeType.toString() + " by " + cause.toString()+""));
  94.  
  95.         }
  96.  
  97.     }
  98.  
  99.     @Subscribe
  100.     public void onPlayerInteractEntity(PlayerInteractEvent event) {
  101. /*
  102.         if (!this.plugin.isEntityPet(event.getRightClicked())) {
  103.             this.plugin.debug("Not a horse: " + event.getRightClicked().getClass());
  104.             if ((event.getRightClicked() instanceof Hanging)) {
  105.                 this.plugin.debug("hanging");
  106.                 Hanging h = (Hanging) event.getRightClicked();
  107.                 if ((h.getType() == EntityType.PAINTING) || (h.getType() == EntityType.ITEM_FRAME)) {
  108.                     return;
  109.                 }
  110.                 this.plugin.debug(h.getUniqueId());
  111.                 return;
  112.             }
  113.             return;
  114.         }
  115.         String owner = "";
  116.         boolean owned = false;
  117.         LivingEntity entityRightClicked = (LivingEntity) event.getRightClicked();
  118.         Player player = event.getPlayer();
  119.         ItemStack itemInHand = player.getItemInHand();
  120.         this.plugin.debug("Horse being right clicked: " + this.plugin.getHorseName(null, entityRightClicked));
  121.         if ((!player.hasPermission("PetGuard.admin")) && (player.hasPermission("PetGuard.punish.breed")) && ((event.getPlayer().getItemInHand().getType() == Material.GOLDEN_APPLE) || (event.getPlayer().getItemInHand().getType() == Material.GOLDEN_CARROT))) {
  122.             this.plugin.local(player, "PUNISH_BREED");
  123.             event.setCancelled(true);
  124.             return;
  125.         }
  126.         owner = this.plugin.getPetOwner(entityRightClicked.getUniqueId().toString());
  127.         if (owner != null) {
  128.             owned = true;
  129.         }
  130.         if ((owned) && (itemInHand.getType() != Material.NAME_TAG) && (!owner.equals(player.getName())) && (!this.plugin.canRide(entityRightClicked, player))) {
  131.             event.getPlayer().sendMessage(owner + " " + this.plugin.getLang("NOT_RIDER"));
  132.             event.setCancelled(true);
  133.             return;
  134.         }
  135.         if ((owned) && (itemInHand.getType() == Material.NAME_TAG) && (!itemInHand.getItemMeta().hasDisplayName())) {
  136.             if (!owner.equals(player.getName())) {
  137.                 this.plugin.local(player, "NOT_OWNER");
  138.                 event.setCancelled(true);
  139.                 return;
  140.             }
  141.             this.plugin.local(player, "SET_FREE");
  142.             this.plugin.removePet(entityRightClicked.getUniqueId().toString());
  143.             entityRightClicked.setCustomName(null);
  144.             event.setCancelled(true);
  145.             return;
  146.         }
  147.         if ((owned) && (itemInHand.getType() == Material.NAME_TAG) && (itemInHand.getItemMeta().hasDisplayName()) && (!owner.equals(player.getName()))) {
  148.             this.plugin.local(player, "NOT_OWNER");
  149.             event.setCancelled(true);
  150.             return;
  151.         }
  152.         if ((owned) && (itemInHand.getType() == Material.NAME_TAG) && (itemInHand.getItemMeta().hasDisplayName()) && (owner.equals(player.getName()))) {
  153.             String horseName = itemInHand.getItemMeta().getDisplayName().replace("'", "`");
  154.  
  155.             this.plugin.nameHorse(event.getRightClicked().getUniqueId().toString(), horseName);
  156.             return;
  157.         }
  158.         if ((!owned) && (itemInHand.getType() == Material.NAME_TAG) && (itemInHand.getItemMeta().hasDisplayName())) {
  159.             String name = itemInHand.getItemMeta().getDisplayName();
  160.             if ((name.contains(";")) || (name.contains("\\"))) {
  161.                 player.sendMessage("That is an invalid name tag. Please rename the tag before trying to claim this horse.");
  162.                 event.setCancelled(true);
  163.                 return;
  164.             }
  165.             if ((player.hasPermission("PetGuard.punish.name")) && (!player.hasPermission("PetGuard.admin"))) {
  166.                 this.plugin.local(player, "PUNISH_NAME");
  167.                 event.setCancelled(true);
  168.                 return;
  169.             }
  170.             if (event.isCancelled()) {
  171.                 this.plugin.debug("Event cancelled outside of PetGuard .. Cancelling here.");
  172.                 return;
  173.             }
  174.             if (!this.plugin.addPetToDatabase(player, event.getRightClicked(), false)) {
  175.                 event.setCancelled(true);
  176.             }
  177.         }
  178.  
  179. */
  180.     }
  181.  
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement