· 10 years ago · Jul 27, 2016, 11:18 AM
1package survivalgames;
2
3import java.io.File;
4import java.io.IOException;
5import java.io.PrintStream;
6import java.util.ArrayList;
7import java.util.Iterator;
8import java.util.List;
9import java.util.Random;
10import org.bukkit.Bukkit;
11import org.bukkit.Location;
12import org.bukkit.World;
13import org.bukkit.command.Command;
14import org.bukkit.command.CommandSender;
15import org.bukkit.command.ConsoleCommandSender;
16import org.bukkit.configuration.ConfigurationSection;
17import org.bukkit.configuration.file.FileConfiguration;
18import org.bukkit.configuration.file.FileConfigurationOptions;
19import org.bukkit.configuration.file.YamlConfiguration;
20import org.bukkit.entity.Entity;
21import org.bukkit.entity.Player;
22import org.bukkit.plugin.PluginManager;
23import org.bukkit.plugin.java.JavaPlugin;
24import survivalgames.chest.Chest_Manager;
25import survivalgames.commands.RegisterCommands;
26import survivalgames.commands.SG_Command;
27import survivalgames.commands.Stats_Command;
28import survivalgames.commands.Vote_Command;
29import survivalgames.countdown.Lobby;
30import survivalgames.game.GameState;
31import survivalgames.listener.RegisterListener;
32import survivalgames.sql.MySQL;
33import survivalgames.utils.WorldReset;
34import survivalgames.voting.Map;
35
36public class Main extends JavaPlugin
37{
38 public static String pr = "§6HawksQSG §8■§6";
39 public static String prefix = "§6HawksQSG §8■§6";
40 public static GameState status;
41 public static List<Entity> spec = new ArrayList();
42 private static Main m;
43 public GameState state;
44 private static Chest_Manager mana;
45 public static boolean sql;
46
47 public void onEnable()
48 {
49 m = this;
50 mana = new Chest_Manager();
51 status = GameState.LOBBY;
52 Global.voting = true;
53 RegisterListener.registerListener();
54 RegisterCommands.registerCommand();
55 loadMaps();
56 Lobby.startLobby();
57 Bukkit.getPluginManager().registerEvents(new SG_Command(), this);
58 Bukkit.getPluginManager().registerEvents(new Stats_Command(), this);
59 Bukkit.getPluginManager().registerEvents(new Vote_Command(), this);
60
61 for (Iterator localIterator1 = Bukkit.getWorlds().iterator(); localIterator1.hasNext(); )
62 {
63 World w = (World)localIterator1.next();
64 w.setAutoSave(false);
65 w.setTime(0L);
66 w.setThundering(false);
67 Iterator localIterator2 = w.getEntities().iterator();
68
69 localIterator2
70 .hasNext();
71 }
72
73 sql = false;
74 loadSettings();
75 }
76
77 public void loadSettings() {
78 File file = new File("plugins/SurvivalGames", "Settings.yml");
79 FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
80
81 cfg.addDefault("SQL.Enable", Boolean.valueOf(true));
82 cfg.addDefault("SQL.Host", "localhost");
83 cfg.addDefault("SQL.User", "HawksQuickSG");
84 cfg.addDefault("SQL.Passwort", "password");
85 cfg.addDefault("SQL.Port", Integer.valueOf(3306));
86 cfg.addDefault("SQL.Datenbank", "HawksQuickSG");
87 cfg.options().copyDefaults(true);
88 try {
89 cfg.save(file);
90 } catch (IOException e) {
91 e.printStackTrace();
92 }
93 if (cfg.getBoolean("SQL.Enable")) {
94 String host = cfg.getString("SQL.Host");
95 String user = cfg.getString("SQL.User");
96 String Password = cfg.getString("SQL.Passwort");
97 String datenbank = cfg.getString("SQL.Datenbank");
98 int port = cfg.getInt("SQL.Port");
99 System.out.println(host + " " + user + " " + Password + " " + datenbank + " " + port);
100 try {
101 Bukkit.getConsoleSender().sendMessage(pr + "MySQL connecting...");
102 MySQL.connect(host, user, Password, datenbank, port);
103 sql = true;
104
105 MySQL.update(
106 "CREATE TABLE IF NOT EXISTS SG_playerstats(Player varchar(16),Toetungen int(40),Tode int(40),SpieleGewonnen int(40),SpieleGespielt int(40),Punkte int(40))");
107 }
108 catch (Exception e)
109 {
110 Player[] arrayOfPlayer;
111 int j = (arrayOfPlayer = Bukkit.getOnlinePlayers()).length;
112 for (int i = 0; i < j; i++) {
113 Player all = arrayOfPlayer[i];
114 if (all.isOp()) {
115 all.sendMessage(pr +
116 "Please enter the MySQL data correctly or make them stop and restart the server.");
117 Bukkit.getConsoleSender().sendMessage(pr +
118 "Please enter the MySQL data correctly or make them stop and restart the server.");
119 }
120 }
121 Bukkit.getPluginManager().disablePlugin(this);
122 }
123 }
124 }
125
126 public void loadMaps() {
127 File file = new File("plugins/SurvivalGames", "Maps.yml");
128 FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
129 for (String s : cfg.getConfigurationSection("").getKeys(false)) {
130 List locs = new ArrayList();
131 for (int is = 1; is <= 24; is++) {
132 if (cfg.contains(s + "." + is)) {
133 Location loc = SG_Command.getLocation1(s + "." + is, true);
134 locs.add(loc);
135 }
136 }
137 Map m = new Map(s, locs);
138 Global.Nmaps.add(m);
139 }
140 int anzahl = 5;
141 if (Global.Nmaps.size() < 5) {
142 anzahl = Global.Nmaps.size();
143 }
144 for (int is = 1; is <= anzahl; is++) {
145 int gn = generate(anzahl);
146 Global.maps.add((Map)Global.Nmaps.get(gn));
147 }
148 }
149
150 public int generate(int i) {
151 Random ran = new Random();
152 int gn = ran.nextInt(i);
153 if (Global.maps.contains(Global.Nmaps.get(gn))) {
154 generate(i);
155 }
156 return gn;
157 }
158
159 public void onDisable()
160 {
161 for (Iterator localIterator1 = Bukkit.getWorlds().iterator(); localIterator1.hasNext(); )
162 {
163 World w = (World)localIterator1.next();
164 WorldReset.resetMap(w.getName());
165 Iterator localIterator2 = w.getEntities().iterator();
166
167 localIterator2
168 .hasNext();
169 }
170 }
171
172 public static Chest_Manager getChestManager()
173 {
174 return mana;
175 }
176
177 public static Main getInstance() {
178 return m;
179 }
180
181 public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
182 Player p = (Player)sender;
183 if (cmd.getName().equalsIgnoreCase("fix"))
184 {
185 Player[] arrayOfPlayer;
186 int j = (arrayOfPlayer = Bukkit.getOnlinePlayers()).length;
187 for (int i = 0; i < j; i++) {
188 Player all = arrayOfPlayer[i];
189 if (!spec.contains(all)) {
190 p.hidePlayer(all);
191 p.showPlayer(all);
192 }
193 }
194 p.sendMessage(pr + "§aFixed");
195 }
196 return false;
197 }
198}