so://phie

poppy

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

blob: 1105a7a31f7d2ca1b3d687b0cef3df9a2ab29acd (5097 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;

28import poppy.modules.FastTravelModule;

29

30

31public class Main extends JavaPlugin {

32 private Plugin plugin;

33 private Config config;

34 private PluginManager pluginManager;

35

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;

49

50 @Override

51 public void onEnable() {

52 plugin = this;

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

54 pluginManager = Bukkit.getPluginManager();

55

56 commonModule = new CommonModule();

57 pluginManager.registerEvents(commonModule, this);

58

59 doubleDoorModule = new DoubleDoorModule();

60 pluginManager.registerEvents(doubleDoorModule, this);

61

62 chairModule = new ChairModule();

63 pluginManager.registerEvents(chairModule, this);

64

65 autoWorkbenchModule = new AutoWorkbenchModule();

66 pluginManager.registerEvents(autoWorkbenchModule, this);

67

68 leavesDecayModule = new LeavesDecayModule(this);

69 pluginManager.registerEvents(leavesDecayModule, this);

70

71 cauldronModule = new CauldronModule(this);

72 pluginManager.registerEvents(cauldronModule, this);

73

74 spawnerModule = new SpawnerModule();

75 pluginManager.registerEvents(spawnerModule, this);

76

77 hopperSorterModule = new HopperSorterModule();

78 pluginManager.registerEvents(hopperSorterModule, this);

79

80 autoPlacerModule = new AutoPlacerModule(this);

81 pluginManager.registerEvents(autoPlacerModule, this);

82

83 autoBreakerModule = new AutoBreakerModule(this);

84 pluginManager.registerEvents(autoBreakerModule, this);

85

86 playerMountModule = new PlayerMountModule();

87 pluginManager.registerEvents(playerMountModule, this);

88

89 blockDetectorModule = new BlockDetectorModule();

90 pluginManager.registerEvents(blockDetectorModule, this);

91

92 fastTravelModule = new FastTravelModule(this);

93 pluginManager.registerEvents(fastTravelModule, this);

94 }

95

96 @Override

97 public void onDisable() {

98 chairModule.onDisable();

99 }

100

101 @Override

102 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 }

118

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 }

134

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 }

143

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}