so://phie

poppy

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

blob: 3a604fe9740a6b9ffda3c55dbfc34e687b715029 (7469 bytes)[doc][blame][raw]

1package de.typable.minecrafthub;

2

3import java.io.File;

4import java.io.IOException;

5import java.net.BindException;

6import java.net.ServerSocket;

7import java.net.Socket;

8

9import org.bukkit.Bukkit;

10import org.bukkit.ChatColor;

11import org.bukkit.GameMode;

12import org.bukkit.Location;

13import org.bukkit.Material;

14import org.bukkit.World;

15import org.bukkit.WorldCreator;

16import org.bukkit.WorldType;

17import org.bukkit.command.Command;

18import org.bukkit.command.CommandSender;

19import org.bukkit.entity.Player;

20import org.bukkit.inventory.ItemStack;

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

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

23import org.bukkit.material.Tree;

24import org.bukkit.plugin.Plugin;

25import org.bukkit.plugin.PluginManager;

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

27

28import de.typable.minecrafthub.constant.Constants;

29import de.typable.minecrafthub.event.AutoWorkbenchListener;

30import de.typable.minecrafthub.event.ChairListener;

31import de.typable.minecrafthub.event.DoubleDoorListener;

32import de.typable.minecrafthub.event.EventListener;

33import de.typable.minecrafthub.event.LeavesDecayListener;

34import de.typable.minecrafthub.util.Util;

35import de.typable.minecrafthub.config.Config;

36

37

38public class Main extends JavaPlugin

39{

40 private PluginManager pluginManager;

41 private DoubleDoorListener doubleDoorListener;

42 private ChairListener chairListener;

43 private AutoWorkbenchListener autoWorkbenchListener;

44 private LeavesDecayListener leavesDecayListener;

45 private EventListener eventListener;

46

47 private Plugin plugin;

48 private Config config;

49

50 @Override

51 public void onEnable()

52 {

53 plugin = this;

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

55

56 pluginManager = Bukkit.getPluginManager();

57

58 doubleDoorListener = new DoubleDoorListener();

59 pluginManager.registerEvents(doubleDoorListener, this);

60

61 chairListener = new ChairListener();

62 pluginManager.registerEvents(chairListener, this);

63

64 autoWorkbenchListener = new AutoWorkbenchListener();

65 pluginManager.registerEvents(autoWorkbenchListener, this);

66

67 leavesDecayListener = new LeavesDecayListener(this);

68 pluginManager.registerEvents(leavesDecayListener, this);

69

70 eventListener = new EventListener();

71 pluginManager.registerEvents(eventListener, this);

72 }

73

74 @Override

75 public void onDisable()

76 {

77 chairListener.onDisable();

78 }

79

80 @Override

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

82 {

83 if(sender instanceof Player)

84 {

85 Player player = (Player) sender;

86

87 switch(label)

88 {

89 case "head":

90 return setItemAsHead(player, args);

91 case "skull":

92 return getSkullForName(player, args);

93 case "invsee":

94 return openInventoryForPlayer(player, args);

95 case "info":

96 return openInfoBook(player, args);

97 case "spawn":

98 return teleportToSpawn(player, args);

99 case "home":

100 return teleportToHome(player, args);

101 case "warp":

102 return teleportToWarppoint(player, args);

103 case "sethome":

104 return setHome(player, args);

105 case "setwarp":

106 return addWarppoint(player, args);

107 default:

108 return false;

109 }

110 }

111

112 return true;

113 }

114

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

116 {

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

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

119

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

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

122

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

124 {

125 if(head != null)

126 {

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

128 }

129 }

130

131 return true;

132 }

133

134 @SuppressWarnings("deprecation")

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

136 {

137 if(!player.isOp())

138 {

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

140 return true;

141 }

142

143 if(args.length != 1)

144 {

145 return false;

146 }

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

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

155

156 return true;

157 }

158

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

160 {

161 if(args.length == 0)

162 {

163 return false;

164 }

165

166 if(!player.isOp())

167 {

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

169 return true;

170 }

171

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

173

174 if(target == null)

175 {

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

177 return true;

178 }

179

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

181

182 return true;

183 }

184

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

186 {

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

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

189 meta.setTitle("Info");

190 meta.setAuthor("Server");

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

192 book.setItemMeta(meta);

193

194 player.openBook(book);

195

196 return true;

197 }

198

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

200 {

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

202

203 if(Util.travelTo(plugin, player, location))

204 {

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

206 }

207

208 return true;

209 }

210

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

212 {

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

214

215 if(location == null)

216 {

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

218 return true;

219 }

220

221 if(Util.travelTo(plugin, player, location))

222 {

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

224 }

225

226 return true;

227 }

228

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

230 {

231 if(args.length != 1)

232 {

233 return false;

234 }

235

236 final String name = args[0];

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

238

239 if(location == null)

240 {

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

242 return true;

243 }

244

245 if(Util.travelTo(plugin, player, location))

246 {

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

248 }

249

250 return true;

251 }

252

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

254 {

255 try

256 {

257 config.setHome(player);

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

259 }

260 catch(Exception ex)

261 {

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

263 }

264

265 return true;

266 }

267

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

269 {

270 if(args.length != 1)

271 {

272 return false;

273 }

274

275 final String name = args[0];

276

277 if(!Util.payFee(player, Material.COMPASS, 1))

278 {

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

280 return true;

281 }

282

283 try

284 {

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

286 {

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

288 return true;

289 }

290

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

292 }

293 catch(Exception ex)

294 {

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

296 }

297

298 return true;

299 }

300

301}