so://phie

poppy

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

blob: 46bef07934b492badb0a579ebe4bb669aa3b26d4 (5185 bytes)[doc][blame][raw]

1package de.typable.minecrafthub;

2

3import java.io.File;

4import java.io.IOException;

5import java.net.ServerSocket;

6import java.net.Socket;

7

8import org.bukkit.Bukkit;

9import org.bukkit.ChatColor;

10import org.bukkit.GameMode;

11import org.bukkit.Material;

12import org.bukkit.command.Command;

13import org.bukkit.command.CommandSender;

14import org.bukkit.entity.Player;

15import org.bukkit.inventory.ItemStack;

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

17import org.bukkit.plugin.Plugin;

18import org.bukkit.plugin.PluginManager;

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

20

21import de.typable.minecrafthub.constant.DefaultConstants;

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

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

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

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

26import de.typable.minecrafthub.event.StandbyListener;

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

28

29

30public class Main extends JavaPlugin

31{

32 private PluginManager pluginManager;

33 private StandbyListener standbyListener;

34 private DoubleDoorListener doubleDoorListener;

35 private ChairListener chairListener;

36 private AutoWorkbenchListener autoWorkbenchListener;

37 private EventListener eventListener;

38

39 private Plugin plugin;

40

41 @Override

42 public void onEnable()

43 {

44 plugin = this;

45

46 pluginManager = Bukkit.getPluginManager();

47

48 standbyListener = new StandbyListener(this);

49 pluginManager.registerEvents(standbyListener, this);

50

51 doubleDoorListener = new DoubleDoorListener();

52 pluginManager.registerEvents(doubleDoorListener, this);

53

54 chairListener = new ChairListener();

55 pluginManager.registerEvents(chairListener, this);

56

57 autoWorkbenchListener = new AutoWorkbenchListener();

58 pluginManager.registerEvents(autoWorkbenchListener, this);

59

60 eventListener = new EventListener();

61 pluginManager.registerEvents(eventListener, this);

62

63 Bukkit.getScheduler().runTaskAsynchronously(this, new Runnable()

64 {

65 @Override

66 public void run()

67 {

68 try(ServerSocket serverSocket = new ServerSocket(25560))

69 {

70 while(!serverSocket.isClosed())

71 {

72 Socket socket = serverSocket.accept();

73

74 Util.sendCountdown(plugin, "Server restarts in", 5, new Runnable()

75 {

76 @Override

77 public void run()

78 {

79 for(Player target : Bukkit.getOnlinePlayers())

80 {

81 target.kickPlayer("Server restarting...");

82 }

83

84 Bukkit.getServer().shutdown();

85 }

86 });

87

88 socket.close();

89 }

90 }

91 catch(IOException ex)

92 {

93 ex.printStackTrace();

94 }

95 }

96 });

97 }

98

99 @SuppressWarnings("deprecation")

100 @Override

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

102 {

103 if(sender instanceof Player)

104 {

105 Player player = (Player) sender;

106

107 if(label.equals("shutdown")) {

108

109 if(!player.isOp())

110 {

111 player.sendMessage(DefaultConstants.Messages.NOT_ENOUGH_PERMISSION);

112 return true;

113 }

114

115 String path = new File(".").getAbsolutePath();

116

117 File file = new File(path + "/.shutdown");

118

119 try

120 {

121 file.createNewFile();

122

123 Util.sendCountdown(this, "Server shuts down in", 5, new Runnable()

124 {

125 @Override

126 public void run()

127 {

128 for(Player target : Bukkit.getOnlinePlayers())

129 {

130 target.kickPlayer("Server stopped");

131 }

132

133 Bukkit.getServer().shutdown();

134 }

135 });

136 }

137 catch(IOException ex)

138 {

139 ex.printStackTrace();

140 }

141 }

142

143 if(label.equals("head"))

144 {

145 ItemStack handitem = player.getInventory().getItemInMainHand();

146 ItemStack headitem = player.getInventory().getHelmet();

147

148 player.getInventory().setHelmet(handitem);

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

150

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

152 {

153 if(headitem != null)

154 {

155 player.getInventory().addItem(headitem);

156 }

157 }

158 }

159

160 if(label.equals("skull"))

161 {

162 if(!player.isOp())

163 {

164 player.sendMessage(DefaultConstants.Messages.NOT_ENOUGH_PERMISSION);

165 return true;

166 }

167

168 if(args.length != 1)

169 {

170 return false;

171 }

172

173 ItemStack skull = new ItemStack(Material.PLAYER_HEAD);

174 SkullMeta meta = (SkullMeta) skull.getItemMeta();

175 meta.setOwner(args[0]);

176 skull.setItemMeta(meta);

177

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

179 }

180

181 if(label.equals("standby"))

182 {

183 if(!player.isOp())

184 {

185 player.sendMessage(DefaultConstants.Messages.NOT_ENOUGH_PERMISSION);

186 return true;

187 }

188

189 if(args.length != 1)

190 {

191 return false;

192 }

193

194 String argument = args[0];

195

196 if(!argument.equals("true") && !argument.equals("false"))

197 {

198 return false;

199 }

200

201 boolean enabled = argument.equals("true");

202 standbyListener.setEnabled(enabled);

203

204 player.sendMessage(ChatColor.GRAY + "Standby mode is now " + (enabled ? "enabled" : "disabled"));

205 }

206 }

207

208 return true;

209 }

210}