A feature-rich Minecraft plugin which enhances gaming experience
git clone git://soophie.de/poppy
5
api-version: 1.166
commands:7
head:8
skull:9
usage: /skull <player>10
standby:11
usage: /standby <true, false>11
\ No newline at end of file
8
import org.bukkit.command.CommandSender;9
import org.bukkit.entity.Player;10
import org.bukkit.inventory.ItemStack;11
import org.bukkit.inventory.meta.SkullMeta;12
import org.bukkit.plugin.PluginManager;13
import org.bukkit.plugin.java.JavaPlugin;15
import de.typable.minecrafthub.constant.DefaultConstants;16
import de.typable.minecrafthub.event.ChairListener;17
import de.typable.minecrafthub.event.DoubleDoorListener;18
import de.typable.minecrafthub.event.EventListener;19
import de.typable.minecrafthub.event.StandbyListener;
24
private PluginManager pluginManager;25
private StandbyListener standbyListener;26
private DoubleDoorListener doubleDoorListener;27
private ChairListener chairListener;28
private EventListener eventListener;30
@Override
38
doubleDoorListener = new DoubleDoorListener();39
pluginManager.registerEvents(doubleDoorListener, this);41
chairListener = new ChairListener();42
pluginManager.registerEvents(chairListener, this);44
eventListener = new EventListener();45
pluginManager.registerEvents(eventListener, this);46
}48
@SuppressWarnings("deprecation")49
@Override50
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)51
{
57
{58
ItemStack handitem = player.getInventory().getItemInMainHand();59
ItemStack headitem = player.getInventory().getHelmet();61
player.getInventory().setHelmet(handitem);62
player.getInventory().setItemInMainHand((new ItemStack(Material.AIR)));
69
}70
}71
}73
if(label.equals("skull"))74
{75
if(args.length != 1)76
{77
return false;78
}80
ItemStack skull = new ItemStack(Material.PLAYER_HEAD);81
SkullMeta meta = (SkullMeta) skull.getItemMeta();82
meta.setOwner(args[0]);83
skull.setItemMeta(meta);85
player.getInventory().addItem(skull);86
}88
if(label.equals("standby"))89
{
1
package de.typable.minecrafthub.event;3
import org.bukkit.Location;4
import org.bukkit.Material;5
import org.bukkit.block.Block;6
import org.bukkit.block.data.type.Stairs;7
import org.bukkit.entity.AbstractArrow.PickupStatus;8
import org.bukkit.entity.Arrow;9
import org.bukkit.entity.Entity;10
import org.bukkit.entity.Player;11
import org.bukkit.event.EventHandler;12
import org.bukkit.event.Listener;13
import org.bukkit.event.block.Action;14
import org.bukkit.event.player.PlayerInteractEvent;15
import org.bukkit.util.Vector;16
import org.spigotmc.event.entity.EntityDismountEvent;19
public class ChairListener implements Listener20
{21
private static final Material[] CHAIR_TYPE = new Material[] {22
Material.OAK_STAIRS,23
Material.SPRUCE_STAIRS,24
Material.BIRCH_STAIRS,25
Material.JUNGLE_STAIRS,26
Material.ACACIA_STAIRS,27
Material.DARK_OAK_STAIRS,28
Material.ACACIA_STAIRS,29
Material.CRIMSON_STAIRS,30
Material.WARPED_STAIRS31
};33
@SuppressWarnings("deprecation")34
@EventHandler35
public void onPlayerInteract(PlayerInteractEvent event)36
{37
if(event.getAction() == Action.RIGHT_CLICK_BLOCK)38
{39
if(event.getClickedBlock() != null)40
{41
Block block = event.getClickedBlock();43
if(isChair(block.getType()))44
{45
Block upperBlock = block.getWorld().getBlockAt(block.getLocation().add(0, 1, 0));47
if(upperBlock != null && upperBlock.getType() == Material.AIR)48
{49
Stairs stairs = (Stairs) block.getState().getBlockData();51
if(isCompatible(stairs))52
{53
Location location = block.getLocation().add(0.5, 0, 0.5);54
Arrow arrow = (Arrow) block.getWorld().spawnArrow(location, new Vector(), 0F, 0F);55
arrow.setGravity(false);56
arrow.setInvulnerable(true);57
arrow.setPickupStatus(PickupStatus.DISALLOWED);58
arrow.setPassenger((Entity) event.getPlayer());59
}60
}61
}62
}63
}64
}66
@EventHandler67
public void onEntityDismount(EntityDismountEvent event)68
{69
if(event.getEntity() instanceof Player)70
{71
Entity entity = event.getDismounted();73
if(entity != null && entity instanceof Arrow)74
{75
entity.remove();76
}77
}78
}80
private boolean isChair(Material material)81
{82
for(Material chair : CHAIR_TYPE)83
{84
if(material == chair)85
{86
return true;87
}88
}90
return false;91
}93
private boolean isCompatible(Stairs stairs)94
{95
if(stairs.isWaterlogged())96
{97
return false;98
}100
if(stairs.getShape() != Stairs.Shape.STRAIGHT)101
{102
return false;103
}105
return true;106
}107
}