A feature-rich Minecraft plugin which enhances gaming experience
git clone git://soophie.de/poppy
blob: 1105a7a31f7d2ca1b3d687b0cef3df9a2ab29acd (5097 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
}101
@Override102
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {103
if (sender instanceof Player) {104
final Player player = (Player) sender;105
switch (label) {106
case "head":107
return setItemAsHead(player, args);108
case "skull":109
return getSkullForName(player, args);110
case "r":111
return reload(player, args);112
default:113
return false;114
}115
}116
return true;117
}119
private boolean setItemAsHead(final Player player, final String[] args) {120
final ItemStack item = player.getInventory().getItemInMainHand();121
final ItemStack head = player.getInventory().getHelmet();122
if (head != null && head.getType().equals(Material.SADDLE)) {123
player.eject();124
}125
player.getInventory().setHelmet(item);126
player.getInventory().setItemInMainHand((new ItemStack(Material.AIR)));127
if (player.getGameMode() == GameMode.SURVIVAL) {128
if (head != null) {129
player.getInventory().addItem(head);130
}131
}132
return true;133
}135
private boolean reload(final Player player, final String[] args) {136
if (!player.isOp()) {137
player.sendMessage(Constants.Messages.NOT_ENOUGH_PERMISSION);138
return true;139
}140
player.chat("/reload confirm");141
return true;142
}144
@SuppressWarnings("deprecation")145
private boolean getSkullForName(final Player player, final String[] args) {146
if (!player.isOp()) {147
player.sendMessage(Constants.Messages.NOT_ENOUGH_PERMISSION);148
return true;149
}150
if (args.length != 1) {151
return false;152
}153
final String name = args[0];154
final ItemStack skull = new ItemStack(Material.PLAYER_HEAD);155
final SkullMeta meta = (SkullMeta) skull.getItemMeta();156
meta.setOwner(name);157
skull.setItemMeta(meta);158
player.getInventory().addItem(skull);159
return true;160
}161
}