A feature-rich Minecraft plugin which enhances gaming experience
git clone git://soophie.de/poppy
blob: 941ce77555d49203b318ae3484551fa34704d8eb (5130 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;28
import poppy.modules.FastTravelModule;31
public class Main extends JavaPlugin {32
private Plugin plugin;33
private Config config;34
private PluginManager pluginManager;36
private CommonModule commonModule;37
private DoubleDoorModule doubleDoorModule;38
private ChairModule chairModule;39
private AutoWorkbenchModule autoWorkbenchModule;40
private LeavesDecayModule leavesDecayModule;41
private CauldronModule cauldronModule;42
private SpawnerModule spawnerModule;43
private HopperSorterModule hopperSorterModule;44
private AutoPlacerModule autoPlacerModule;45
private AutoBreakerModule autoBreakerModule;46
private PlayerMountModule playerMountModule;47
private BlockDetectorModule blockDetectorModule;48
private FastTravelModule fastTravelModule;50
@Override51
public void onEnable() {52
plugin = this;53
config = new Config("config/poppy.yml");54
pluginManager = Bukkit.getPluginManager();56
commonModule = new CommonModule();57
pluginManager.registerEvents(commonModule, this);59
doubleDoorModule = new DoubleDoorModule();60
pluginManager.registerEvents(doubleDoorModule, this);62
chairModule = new ChairModule();63
pluginManager.registerEvents(chairModule, this);65
autoWorkbenchModule = new AutoWorkbenchModule();66
pluginManager.registerEvents(autoWorkbenchModule, this);68
leavesDecayModule = new LeavesDecayModule(this);69
pluginManager.registerEvents(leavesDecayModule, this);71
cauldronModule = new CauldronModule(this);72
pluginManager.registerEvents(cauldronModule, this);74
spawnerModule = new SpawnerModule();75
pluginManager.registerEvents(spawnerModule, this);77
hopperSorterModule = new HopperSorterModule();78
pluginManager.registerEvents(hopperSorterModule, this);80
autoPlacerModule = new AutoPlacerModule(this);81
pluginManager.registerEvents(autoPlacerModule, this);83
autoBreakerModule = new AutoBreakerModule(this);84
pluginManager.registerEvents(autoBreakerModule, this);86
playerMountModule = new PlayerMountModule();87
pluginManager.registerEvents(playerMountModule, this);89
blockDetectorModule = new BlockDetectorModule();90
pluginManager.registerEvents(blockDetectorModule, this);92
fastTravelModule = new FastTravelModule(this);93
pluginManager.registerEvents(fastTravelModule, this);94
}96
@Override97
public void onDisable() {98
chairModule.onDisable();99
fastTravelModule.onDisable();100
}102
@Override103
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {104
if (sender instanceof Player) {105
final Player player = (Player) sender;106
switch (label) {107
case "head":108
return setItemAsHead(player, args);109
case "skull":110
return getSkullForName(player, args);111
case "r":112
return reload(player, args);113
default:114
return false;115
}116
}117
return true;118
}120
private boolean setItemAsHead(final Player player, final String[] args) {121
final ItemStack item = player.getInventory().getItemInMainHand();122
final ItemStack head = player.getInventory().getHelmet();123
if (head != null && head.getType().equals(Material.SADDLE)) {124
player.eject();125
}126
player.getInventory().setHelmet(item);127
player.getInventory().setItemInMainHand((new ItemStack(Material.AIR)));128
if (player.getGameMode() == GameMode.SURVIVAL) {129
if (head != null) {130
player.getInventory().addItem(head);131
}132
}133
return true;134
}136
private boolean reload(final Player player, final String[] args) {137
if (!player.isOp()) {138
player.sendMessage(Constants.Messages.NOT_ENOUGH_PERMISSION);139
return true;140
}141
player.chat("/reload confirm");142
return true;143
}145
@SuppressWarnings("deprecation")146
private boolean getSkullForName(final Player player, final String[] args) {147
if (!player.isOp()) {148
player.sendMessage(Constants.Messages.NOT_ENOUGH_PERMISSION);149
return true;150
}151
if (args.length != 1) {152
return false;153
}154
final String name = args[0];155
final ItemStack skull = new ItemStack(Material.PLAYER_HEAD);156
final SkullMeta meta = (SkullMeta) skull.getItemMeta();157
meta.setOwner(name);158
skull.setItemMeta(meta);159
player.getInventory().addItem(skull);160
return true;161
}162
}