A feature-rich Minecraft plugin which enhances gaming experience
git clone git://soophie.de/poppy
blob: 7128ed7342e725e894fe713fb498b5f5eea638bd (2789 bytes)[doc][blame][raw]
1
package de.typable.minecrafthub.event;3
import org.bukkit.ChatColor;4
import org.bukkit.Material;5
import org.bukkit.entity.ArmorStand;6
import org.bukkit.entity.EntityType;7
import org.bukkit.entity.Player;8
import org.bukkit.entity.Snowball;9
import org.bukkit.event.EventHandler;10
import org.bukkit.event.Listener;11
import org.bukkit.event.block.Action;12
import org.bukkit.event.entity.EntityDamageByEntityEvent;13
import org.bukkit.event.entity.EntityDeathEvent;14
import org.bukkit.event.entity.EntityExplodeEvent;15
import org.bukkit.event.player.AsyncPlayerChatEvent;16
import org.bukkit.event.player.PlayerInteractAtEntityEvent;17
import org.bukkit.event.player.PlayerInteractEvent;18
import org.bukkit.inventory.ItemStack;19
import org.bukkit.potion.PotionEffect;20
import org.bukkit.potion.PotionEffectType;23
public class EventListener implements Listener24
{25
@EventHandler26
public void onPlayerInteract(PlayerInteractEvent event)27
{28
if(event.getAction() == Action.PHYSICAL)29
{30
if(event.getClickedBlock() != null)31
{32
if(event.getClickedBlock().getType() == Material.FARMLAND)33
{34
event.setCancelled(true);35
}36
}37
}38
}40
@EventHandler41
public void onEntityExplode(EntityExplodeEvent event)42
{43
if(event.getEntityType() == EntityType.CREEPER)44
{45
event.blockList().clear();46
}47
}49
@EventHandler50
public void onChat(AsyncPlayerChatEvent event)51
{52
// FIXME Conversion Exception on '%54
String format = ChatColor.WHITE + event.getPlayer().getName() + ": " + ChatColor.GRAY + event.getMessage();55
event.setFormat(format);56
}58
@EventHandler59
public void onEntityHit(EntityDamageByEntityEvent event)60
{61
if(event.getDamager() instanceof Snowball)62
{63
Snowball snowball = (Snowball) event.getDamager();65
if(snowball.getShooter() instanceof Player)66
{67
Player player = (Player) event.getEntity();69
player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 20 * 2, 1));70
event.setDamage(1);71
}72
}73
}75
@EventHandler76
public void onPlayerInteractAtEntity(PlayerInteractAtEntityEvent event)77
{78
Player player = event.getPlayer();80
if(event.getRightClicked().getType().equals(EntityType.ARMOR_STAND))81
{82
ItemStack item = player.getInventory().getItemInMainHand();84
if(item.getType() == Material.STICK && item.getAmount() > 1 && player.isSneaking())85
{86
ArmorStand armorstand = (ArmorStand) event.getRightClicked();88
armorstand.setArms(true);89
event.setCancelled(true);91
item.setAmount(item.getAmount() - 2);92
}93
}94
}96
@EventHandler97
public void onArmorStandDestroy(EntityDeathEvent event)98
{99
if(event.getEntity() instanceof ArmorStand)100
{101
ArmorStand armorstand = (ArmorStand) event.getEntity();103
if(armorstand.hasArms())104
{105
event.getDrops().add(new ItemStack(Material.STICK, 2));106
}107
}108
}