so://phie

poppy

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

blob: 874706b3003bafebdd966381e9923fc7d887b81c (7095 bytes)[doc][blame][raw]

1package poppy;

2

3import org.bukkit.Bukkit;

4import org.bukkit.ChatColor;

5import org.bukkit.GameMode;

6import org.bukkit.Location;

7import org.bukkit.Material;

8import org.bukkit.command.Command;

9import org.bukkit.command.CommandSender;

10import org.bukkit.entity.Player;

11import org.bukkit.inventory.ItemStack;

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

13import org.bukkit.inventory.meta.BookMeta;

14import org.bukkit.plugin.Plugin;

15import org.bukkit.plugin.PluginManager;

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

17

18import poppy.modules.AutoWorkbenchModule;

19import poppy.modules.CauldronModule;

20import poppy.modules.ChairModule;

21import poppy.modules.DoubleDoorModule;

22import poppy.modules.CommonModule;

23import poppy.modules.LeavesDecayModule;

24

25

26public class Main extends JavaPlugin

27{

28 private Plugin plugin;

29 private Config config;

30 private PluginManager pluginManager;

31

32 private CommonModule commonModule;

33 private DoubleDoorModule doubleDoorModule;

34 private ChairModule chairModule;

35 private AutoWorkbenchModule autoWorkbenchModule;

36 private LeavesDecayModule leavesDecayModule;

37 private CauldronModule cauldronModule;

38

39 @Override

40 public void onEnable()

41 {

42 plugin = this;

43 config = new Config("config/minecraft-hub.yml");

44

45 pluginManager = Bukkit.getPluginManager();

46

47 commonModule = new CommonModule();

48 pluginManager.registerEvents(commonModule, this);

49

50 doubleDoorModule = new DoubleDoorModule();

51 pluginManager.registerEvents(doubleDoorModule, this);

52

53 chairModule = new ChairModule();

54 pluginManager.registerEvents(chairModule, this);

55

56 autoWorkbenchModule = new AutoWorkbenchModule();

57 pluginManager.registerEvents(autoWorkbenchModule, this);

58

59 leavesDecayModule = new LeavesDecayModule(this);

60 pluginManager.registerEvents(leavesDecayModule, this);

61

62 cauldronModule = new CauldronModule(this);

63 pluginManager.registerEvents(cauldronModule, this);

64 }

65

66 @Override

67 public void onDisable()

68 {

69 chairModule.onDisable();

70 }

71

72 @Override

73 public boolean onCommand(CommandSender sender, Command command, String label, String[] args)

74 {

75 if(sender instanceof Player)

76 {

77 Player player = (Player) sender;

78

79 switch(label)

80 {

81 case "head":

82 return setItemAsHead(player, args);

83 case "skull":

84 return getSkullForName(player, args);

85 case "invsee":

86 return openInventoryForPlayer(player, args);

87 case "info":

88 return openInfoBook(player, args);

89 case "spawn":

90 return teleportToSpawn(player, args);

91 case "home":

92 return teleportToHome(player, args);

93 case "warp":

94 return teleportToWarppoint(player, args);

95 case "sethome":

96 return setHome(player, args);

97 case "setwarp":

98 return addWarppoint(player, args);

99 default:

100 return false;

101 }

102 }

103

104 return true;

105 }

106

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

108 {

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

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

111

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

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

114

115 if(player.getGameMode() == GameMode.SURVIVAL)

116 {

117 if(head != null)

118 {

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

120 }

121 }

122

123 return true;

124 }

125

126 @SuppressWarnings("deprecation")

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

128 {

129 if(!player.isOp())

130 {

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

132 return true;

133 }

134

135 if(args.length != 1)

136 {

137 return false;

138 }

139

140 final String name = args[0];

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

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

143 meta.setOwner(name);

144 skull.setItemMeta(meta);

145

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

147

148 return true;

149 }

150

151 private boolean openInventoryForPlayer(final Player player, final String[] args)

152 {

153 if(args.length == 0)

154 {

155 return false;

156 }

157

158 if(!player.isOp())

159 {

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

161 return true;

162 }

163

164 final Player target = Bukkit.getPlayer(args[0]);

165

166 if(target == null)

167 {

168 player.sendMessage(ChatColor.RED + "Player not found!");

169 return true;

170 }

171

172 player.openInventory(target.getInventory());

173

174 return true;

175 }

176

177 private boolean openInfoBook(final Player player, final String[] args)

178 {

179 final ItemStack book = new ItemStack(Material.WRITTEN_BOOK);

180 final BookMeta meta = (BookMeta) book.getItemMeta();

181 meta.setTitle("Info");

182 meta.setAuthor("Server");

183 meta.setPages(config.getInfoPages());

184 book.setItemMeta(meta);

185

186 player.openBook(book);

187

188 return true;

189 }

190

191 private boolean teleportToSpawn(final Player player, final String[] args)

192 {

193 final Location location = Bukkit.getWorld("world").getSpawnLocation();

194

195 if(Utils.travelTo(plugin, player, location))

196 {

197 player.sendMessage(ChatColor.GRAY + "You've been teleported to spawn.");

198 }

199

200 return true;

201 }

202

203 private boolean teleportToHome(final Player player, final String[] args)

204 {

205 final Location location = config.getHome(player);

206

207 if(location == null)

208 {

209 player.sendMessage(ChatColor.RED + "You've don't have a home point.");

210 return true;

211 }

212

213 if(Utils.travelTo(plugin, player, location))

214 {

215 player.sendMessage(ChatColor.GRAY + "You've been teleported to your home.");

216 }

217

218 return true;

219 }

220

221 private boolean teleportToWarppoint(final Player player, final String[] args)

222 {

223 if(args.length != 1)

224 {

225 return false;

226 }

227

228 final String name = args[0];

229 final Location location = config.getWarp(name);

230

231 if(location == null)

232 {

233 player.sendMessage(ChatColor.RED + "Warp point " + name + " doesn't exist!");

234 return true;

235 }

236

237 if(Utils.travelTo(plugin, player, location))

238 {

239 player.sendMessage(ChatColor.GRAY + "You've been teleported to warp point " + name + ".");

240 }

241

242 return true;

243 }

244

245 private boolean setHome(final Player player, final String[] args)

246 {

247 try

248 {

249 config.setHome(player);

250 player.sendMessage(ChatColor.YELLOW + "Home point set.");

251 }

252 catch(Exception ex)

253 {

254 player.sendMessage(Constants.Messages.FAILED_TO_SAVE_CONFIG_FILE);

255 }

256

257 return true;

258 }

259

260 private boolean addWarppoint(final Player player, final String[] args)

261 {

262 if(args.length != 1)

263 {

264 return false;

265 }

266

267 final String name = args[0];

268

269 if(!Utils.payFee(player, Material.COMPASS, 1))

270 {

271 player.sendMessage(ChatColor.RED + "The fee for creating a warp point is 1 compass!");

272 return true;

273 }

274

275 try

276 {

277 if(!config.setWarp(name, player.getLocation()))

278 {

279 player.sendMessage(ChatColor.RED + "Warp point " + name + " already exists!");

280 return true;

281 }

282

283 player.sendMessage(ChatColor.YELLOW + "Warp point " + name + " set.");

284 }

285 catch(Exception ex)

286 {

287 player.sendMessage(Constants.Messages.FAILED_TO_SAVE_CONFIG_FILE);

288 }

289

290 return true;

291 }

292

293}