so://phie

poppy

A feature-rich Minecraft plugin which enhances gaming experience
git clone git://soophie.de/poppy

blob: b4febcd9035da6ecdf5464e83c94aba4e6c310e7 (1732 bytes)[doc][blame][raw]

1package poppy.modules;

2

3import org.bukkit.Material;

4import org.bukkit.entity.Entity;

5import org.bukkit.entity.Player;

6import org.bukkit.entity.HumanEntity;

7import org.bukkit.event.Listener;

8import org.bukkit.event.EventHandler;

9import org.bukkit.event.player.PlayerInteractAtEntityEvent;

10import org.bukkit.event.inventory.InventoryClickEvent;

11import org.bukkit.event.inventory.InventoryType.SlotType;

12import org.bukkit.event.inventory.ClickType;

13import org.bukkit.inventory.ItemStack;

14

15public class PlayerMountModule implements Listener

16{

17 @EventHandler

18 public void onPlayerInteractAtEntity(PlayerInteractAtEntityEvent event)

19 {

20 final Player player = event.getPlayer();

21 final Entity entity = event.getRightClicked();

22

23 if(entity instanceof Player)

24 {

25 final Player mountablePlayer = (Player) entity;

26 final Material helmet = mountablePlayer.getInventory().getHelmet().getType();

27

28 if(helmet.equals(Material.SADDLE) && mountablePlayer.getPassengers().size() == 0)

29 {

30 mountablePlayer.addPassenger(player);

31 }

32 }

33 }

34

35 @EventHandler

36 public void onInventoryClick(InventoryClickEvent event)

37 {

38 final HumanEntity entity = event.getWhoClicked();

39

40 if(entity instanceof Player)

41 {

42 final Player player = (Player) entity;

43 final SlotType slotType = event.getSlotType();

44

45 if(slotType != SlotType.ARMOR)

46 {

47 return;

48 }

49

50 final ClickType clickType = event.getClick();

51

52 if(!(clickType == ClickType.LEFT || clickType == ClickType.RIGHT))

53 {

54 return;

55 }

56

57 final ItemStack head = event.getCurrentItem();

58

59 if(head == null || head.getType() != Material.SADDLE)

60 {

61 return;

62 }

63

64 player.eject();

65 }

66 }

67}