so://phie

poppy

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

blob: 91c948d440f9413d06fda47b326032d67976bf36 (4903 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 case "r":

106 return reload(player, args);

107 default:

108 return false;

109 }

110 }

111 return true;

112 }

113

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 }

129

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 }

138

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}