so://phie

poppy

A feature-rich Minecraft plugin which enhances gaming experience
git clone git://soophie.de/poppy

blob: 2ef02d1b38d053030f60dd6e06de0668bb41f692 (4614 bytes)[doc][blame][raw]

1package poppy;

2

3import org.bukkit.Bukkit;

4import org.bukkit.GameMode;

5import org.bukkit.Material;

6import org.bukkit.command.Command;

7import org.bukkit.command.CommandSender;

8import org.bukkit.entity.Player;

9import org.bukkit.event.EventHandler;

10import org.bukkit.inventory.ItemStack;

11import org.bukkit.inventory.meta.SkullMeta;

12import org.bukkit.plugin.Plugin;

13import org.bukkit.plugin.PluginManager;

14import org.bukkit.plugin.java.JavaPlugin;

15

16import poppy.modules.AutoBreakerModule;

17import poppy.modules.AutoPlacerModule;

18import poppy.modules.AutoWorkbenchModule;

19import poppy.modules.BlockDetectorModule;

20import poppy.modules.CauldronModule;

21import poppy.modules.ChairModule;

22import poppy.modules.DoubleDoorModule;

23import poppy.modules.HopperSorterModule;

24import poppy.modules.CommonModule;

25import poppy.modules.LeavesDecayModule;

26import poppy.modules.SpawnerModule;

27import poppy.modules.PlayerMountModule;

28

29

30public class Main extends JavaPlugin {

31 private Plugin plugin;

32 private Config config;

33 private PluginManager pluginManager;

34

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;

47

48 @Override

49 public void onEnable() {

50 plugin = this;

51 config = new Config("config/poppy.yml");

52 pluginManager = Bukkit.getPluginManager();

53

54 commonModule = new CommonModule();

55 pluginManager.registerEvents(commonModule, this);

56

57 doubleDoorModule = new DoubleDoorModule();

58 pluginManager.registerEvents(doubleDoorModule, this);

59

60 chairModule = new ChairModule();

61 pluginManager.registerEvents(chairModule, this);

62

63 autoWorkbenchModule = new AutoWorkbenchModule();

64 pluginManager.registerEvents(autoWorkbenchModule, this);

65

66 leavesDecayModule = new LeavesDecayModule(this);

67 pluginManager.registerEvents(leavesDecayModule, this);

68

69 cauldronModule = new CauldronModule(this);

70 pluginManager.registerEvents(cauldronModule, this);

71

72 spawnerModule = new SpawnerModule();

73 pluginManager.registerEvents(spawnerModule, this);

74

75 hopperSorterModule = new HopperSorterModule();

76 pluginManager.registerEvents(hopperSorterModule, this);

77

78 autoPlacerModule = new AutoPlacerModule(this);

79 pluginManager.registerEvents(autoPlacerModule, this);

80

81 autoBreakerModule = new AutoBreakerModule(this);

82 pluginManager.registerEvents(autoBreakerModule, this);

83

84 playerMountModule = new PlayerMountModule();

85 pluginManager.registerEvents(playerMountModule, this);

86

87 blockDetectorModule = new BlockDetectorModule();

88 pluginManager.registerEvents(blockDetectorModule, this);

89 }

90

91 @Override

92 public void onDisable() {

93 chairModule.onDisable();

94 }

95

96 @Override

97 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 default:

106 return false;

107 }

108 }

109 return true;

110 }

111

112 private boolean setItemAsHead(final Player player, final String[] args) {

113 final ItemStack item = player.getInventory().getItemInMainHand();

114 final ItemStack head = player.getInventory().getHelmet();

115 if (head != null && head.getType().equals(Material.SADDLE)) {

116 player.eject();

117 }

118 player.getInventory().setHelmet(item);

119 player.getInventory().setItemInMainHand((new ItemStack(Material.AIR)));

120 if (player.getGameMode() == GameMode.SURVIVAL) {

121 if (head != null) {

122 player.getInventory().addItem(head);

123 }

124 }

125 return true;

126 }

127

128 @SuppressWarnings("deprecation")

129 private boolean getSkullForName(final Player player, final String[] args) {

130 if (!player.isOp()) {

131 player.sendMessage(Constants.Messages.NOT_ENOUGH_PERMISSION);

132 return true;

133 }

134 if (args.length != 1) {

135 return false;

136 }

137 final String name = args[0];

138 final ItemStack skull = new ItemStack(Material.PLAYER_HEAD);

139 final SkullMeta meta = (SkullMeta) skull.getItemMeta();

140 meta.setOwner(name);

141 skull.setItemMeta(meta);

142 player.getInventory().addItem(skull);

143 return true;

144 }

145}