A feature-rich Minecraft plugin which enhances gaming experience
git clone git://soophie.de/poppy
26
import poppy.modules.CommonModule;27
import poppy.modules.LeavesDecayModule;28
import poppy.modules.SpawnerModule;29
import poppy.modules.PlayerMountModule;32
public class Main extends JavaPlugin
45
private HopperSorterModule hopperSorterModule;46
private AutoPlacerModule autoPlacerModule;47
private AutoBreakerModule autoBreakerModule;48
private PlayerMountModule playerMountModule;50
@Override51
public void onEnable()
85
autoBreakerModule = new AutoBreakerModule(this);86
pluginManager.registerEvents(autoBreakerModule, this);88
playerMountModule = new PlayerMountModule();89
pluginManager.registerEvents(playerMountModule, this);90
}92
@Override
123
case "setwarp":124
return setWarppoint(player, args);125
case "slime":121
return ifSlimeChunk(player, args);126
return isSlimeChunk(player, args);127
case "r":123
return reload(player, args);128
return doReload(player, args);129
case "up":125
return blockBelow(player, args);130
return placeBlockBelow(player, args);131
default:132
return false;133
}
141
final ItemStack item = player.getInventory().getItemInMainHand();142
final ItemStack head = player.getInventory().getHelmet();144
if(head != null && head.getType().equals(Material.SADDLE))145
{146
player.eject();147
}149
player.getInventory().setHelmet(item);150
player.getInventory().setItemInMainHand((new ItemStack(Material.AIR)));
327
return true;328
}320
private boolean ifSlimeChunk(final Player player, final String[] args)330
private boolean isSlimeChunk(final Player player, final String[] args)331
{332
boolean isSlimeChunk = player.getLocation().getChunk().isSlimeChunk();
343
}344
}336
private boolean reload(final Player player, final String[] args)346
private boolean doReload(final Player player, final String[] args)347
{348
player.chat("/reload confirm");349
return true;350
}342
private boolean blockBelow(final Player player, final String[] args)352
private boolean placeBlockBelow(final Player player, final String[] args)353
{354
Location playerLocation = player.getLocation().clone();355
Block blockBelow = playerLocation.add(0, -1, 0).getBlock();
169
event.setCancelled(true);170
}171
}173
if(event.getRightClicked().getType().equals(EntityType.PLAYER))174
{175
final Player clickedPlayer = (Player) event.getRightClicked();177
if(clickedPlayer.getInventory().getHelmet().getType().equals(Material.SADDLE) && player.getPassengers().size() <= 0)178
{179
clickedPlayer.addPassenger(player);180
}181
}172
}174
@EventHandler
1
package poppy.modules;3
import org.bukkit.Material;4
import org.bukkit.entity.Entity;5
import org.bukkit.entity.Player;6
import org.bukkit.entity.HumanEntity;7
import org.bukkit.event.Listener;8
import org.bukkit.event.EventHandler;9
import org.bukkit.event.player.PlayerInteractAtEntityEvent;10
import org.bukkit.event.inventory.InventoryClickEvent;11
import org.bukkit.event.inventory.InventoryType.SlotType;12
import org.bukkit.event.inventory.ClickType;13
import org.bukkit.inventory.ItemStack;15
public class PlayerMountModule implements Listener16
{17
@EventHandler18
public void onPlayerInteractAtEntity(PlayerInteractAtEntityEvent event)19
{20
final Player player = event.getPlayer();21
final Entity entity = event.getRightClicked();23
if(entity instanceof Player)24
{25
final Player mountablePlayer = (Player) entity;26
final Material helmet = mountablePlayer.getInventory().getHelmet().getType();28
if(helmet.equals(Material.SADDLE) && mountablePlayer.getPassengers().size() == 0)29
{30
mountablePlayer.addPassenger(player);31
}32
}33
}35
@EventHandler36
public void onInventoryClick(InventoryClickEvent event)37
{38
final HumanEntity entity = event.getWhoClicked();40
if(entity instanceof Player)41
{42
final Player player = (Player) entity;43
final SlotType slotType = event.getSlotType();45
if(slotType != SlotType.ARMOR)46
{47
return;48
}50
final ClickType clickType = event.getClick();52
if(!(clickType == ClickType.LEFT || clickType == ClickType.RIGHT))53
{54
return;55
}57
final ItemStack head = event.getCurrentItem();59
if(head == null || head.getType() != Material.SADDLE)60
{61
return;62
}64
player.eject();65
}66
}67
}