A feature-rich Minecraft plugin which enhances gaming experience
git clone git://soophie.de/poppy
blob: 91c948d440f9413d06fda47b326032d67976bf36 (4903 bytes)[doc][blame][raw]
1
package poppy;3
import org.bukkit.Bukkit;4
import org.bukkit.GameMode;5
import org.bukkit.Material;6
import org.bukkit.command.Command;7
import org.bukkit.command.CommandSender;8
import org.bukkit.entity.Player;9
import org.bukkit.event.EventHandler;10
import org.bukkit.inventory.ItemStack;11
import org.bukkit.inventory.meta.SkullMeta;12
import org.bukkit.plugin.Plugin;13
import org.bukkit.plugin.PluginManager;14
import org.bukkit.plugin.java.JavaPlugin;16
import poppy.modules.AutoBreakerModule;17
import poppy.modules.AutoPlacerModule;18
import poppy.modules.AutoWorkbenchModule;19
import poppy.modules.BlockDetectorModule;20
import poppy.modules.CauldronModule;21
import poppy.modules.ChairModule;22
import poppy.modules.DoubleDoorModule;23
import poppy.modules.HopperSorterModule;24
import poppy.modules.CommonModule;25
import poppy.modules.LeavesDecayModule;26
import poppy.modules.SpawnerModule;27
import poppy.modules.PlayerMountModule;30
public class Main extends JavaPlugin {31
private Plugin plugin;32
private Config config;33
private PluginManager pluginManager;35
private CommonModule commonModule;36
private DoubleDoorModule doubleDoorModule;37
private ChairModule chairModule;38
private AutoWorkbenchModule autoWorkbenchModule;39
private LeavesDecayModule leavesDecayModule;40
private CauldronModule cauldronModule;41
private SpawnerModule spawnerModule;42
private HopperSorterModule hopperSorterModule;43
private AutoPlacerModule autoPlacerModule;44
private AutoBreakerModule autoBreakerModule;45
private PlayerMountModule playerMountModule;46
private BlockDetectorModule blockDetectorModule;48
@Override49
public void onEnable() {50
plugin = this;51
config = new Config("config/poppy.yml");52
pluginManager = Bukkit.getPluginManager();54
commonModule = new CommonModule();55
pluginManager.registerEvents(commonModule, this);57
doubleDoorModule = new DoubleDoorModule();58
pluginManager.registerEvents(doubleDoorModule, this);60
chairModule = new ChairModule();61
pluginManager.registerEvents(chairModule, this);63
autoWorkbenchModule = new AutoWorkbenchModule();64
pluginManager.registerEvents(autoWorkbenchModule, this);66
leavesDecayModule = new LeavesDecayModule(this);67
pluginManager.registerEvents(leavesDecayModule, this);69
cauldronModule = new CauldronModule(this);70
pluginManager.registerEvents(cauldronModule, this);72
spawnerModule = new SpawnerModule();73
pluginManager.registerEvents(spawnerModule, this);75
hopperSorterModule = new HopperSorterModule();76
pluginManager.registerEvents(hopperSorterModule, this);78
autoPlacerModule = new AutoPlacerModule(this);79
pluginManager.registerEvents(autoPlacerModule, this);81
autoBreakerModule = new AutoBreakerModule(this);82
pluginManager.registerEvents(autoBreakerModule, this);84
playerMountModule = new PlayerMountModule();85
pluginManager.registerEvents(playerMountModule, this);87
blockDetectorModule = new BlockDetectorModule();88
pluginManager.registerEvents(blockDetectorModule, this);89
}91
@Override92
public void onDisable() {93
chairModule.onDisable();94
}96
@Override97
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {98
if (sender instanceof Player) {99
final Player player = (Player) sender;100
switch (label) {101
case "head":102
return setItemAsHead(player, args);103
case "skull":104
return getSkullForName(player, args);105
case "r":106
return reload(player, args);107
default:108
return false;109
}110
}111
return true;112
}114
private boolean setItemAsHead(final Player player, final String[] args) {115
final ItemStack item = player.getInventory().getItemInMainHand();116
final ItemStack head = player.getInventory().getHelmet();117
if (head != null && head.getType().equals(Material.SADDLE)) {118
player.eject();119
}120
player.getInventory().setHelmet(item);121
player.getInventory().setItemInMainHand((new ItemStack(Material.AIR)));122
if (player.getGameMode() == GameMode.SURVIVAL) {123
if (head != null) {124
player.getInventory().addItem(head);125
}126
}127
return true;128
}130
private boolean reload(final Player player, final String[] args) {131
if (!player.isOp()) {132
player.sendMessage(Constants.Messages.NOT_ENOUGH_PERMISSION);133
return true;134
}135
player.chat("/reload confirm");136
return true;137
}139
@SuppressWarnings("deprecation")140
private boolean getSkullForName(final Player player, final String[] args) {141
if (!player.isOp()) {142
player.sendMessage(Constants.Messages.NOT_ENOUGH_PERMISSION);143
return true;144
}145
if (args.length != 1) {146
return false;147
}148
final String name = args[0];149
final ItemStack skull = new ItemStack(Material.PLAYER_HEAD);150
final SkullMeta meta = (SkullMeta) skull.getItemMeta();151
meta.setOwner(name);152
skull.setItemMeta(meta);153
player.getInventory().addItem(skull);154
return true;155
}156
}