· 10 years ago · Aug 12, 2016, 01:38 PM
1package ru.zoom;
2
3import java.io.File;
4import java.util.ArrayList;
5import java.util.Date;
6import java.util.List;
7
8import org.bukkit.Bukkit;
9import org.bukkit.configuration.file.FileConfiguration;
10import org.bukkit.configuration.file.YamlConfiguration;
11import org.bukkit.plugin.java.JavaPlugin;
12
13public class SMPluginConfigManager extends JavaPlugin {
14 private static Date d = new Date();
15 protected static FileConfiguration config, messages;
16 protected static File file;
17 // TODO Config
18 protected static String server, language, host, user, database, password, table_unbanned, table_banlist,
19 table_onlineusers, table_shophistory, table_servers, table_chat, table_users, table_permissions_group,
20 queryMakeSMChat, queryCheckTableExist, queryUnbannedList, queryBanlist, querySetReason,
21 querySetReasonByServer, queryGetPlayTime, queryShopList, queryGetTopTime, queryGetOnlines, querySetTell,
22 queryGetSMChat, querySetStatus, queryCheckPlayer, querySetTellSender, queryTruncateTable;
23 protected static int level, truncate_time_hours, port;
24 // TODO Messages
25 protected static List<String> success, kit, lists, errors, forms, others, data, lore, commands = new ArrayList();
26 // TODO Plugins
27 protected static boolean mysql, truncatechat, usefigadmin, useonlineusers, useshoppingcartreloaded, figadmin,
28 onlineusers, shoppingcartreloaded;
29
30 protected static void reload() {
31 SMPlugin.createFile("config");
32 config = YamlConfiguration.loadConfiguration(file);
33 loadConfig();
34 SMPlugin.createFile(language);
35 messages = YamlConfiguration.loadConfiguration(file);
36 loadMessages();
37 createConfigs();
38 SMPlugin.log.info("End");
39 }
40
41 protected static void createConfigs() {
42 SMPlugin.log.info("checkMySQL");
43 if (mysql) {
44 if (usefigadmin)
45 if (Bukkit.getServer().getPluginManager().getPlugin("FigAdmin") != null)
46 figadmin = true;
47 if (useonlineusers)
48 if (Bukkit.getServer().getPluginManager().getPlugin("OnlineUsers") != null)
49 onlineusers = true;
50 if (useshoppingcartreloaded)
51 if (Bukkit.getServer().getPluginManager().getPlugin("ShoppingCartReloaded") != null)
52 shoppingcartreloaded = true;
53 reloadQuery();
54 SMPluginTask.start();
55 SMPluginMySQL.createTable();
56 if (truncatechat)
57 if (d.getHours() == truncate_time_hours) {
58 SMPlugin.log.info("Truncate " + truncate_time_hours);
59 SMPluginMySQL.truncateTable();
60 }
61 } else
62 SMPluginTask.stop();
63 }
64
65 protected static void loadConfig() {
66 SMPlugin.log.info("loadConfig");
67 // TODO Server
68 if (!config.isString("server"))
69 config.set("server", "server");
70 else
71 server = config.getString("server");
72 // TODO Language
73 if (!config.isString("language"))
74 config.set("language", "russian");
75 else
76 language = config.getString("language");
77 // TODO Level
78 if (!config.isInt("level"))
79 config.set("level", 100);
80 else
81 level = config.getInt("level");
82 // TODO Use FigAmdin
83 if (!config.isBoolean("usefigadmin"))
84 config.set("usefigadmin", false);
85 else
86 usefigadmin = config.getBoolean("usefigadmin");
87 // TODO Use OnlineUsers
88 if (!config.isBoolean("useonlineusers"))
89 config.set("useonlineusers", false);
90 else
91 useonlineusers = config.getBoolean("useonlineusers");
92 // TODO Use ShoppingCartReloaded
93 if (!config.isBoolean("useshoppingcartreloaded"))
94 config.set("useshoppingcartreloaded", false);
95 else
96 useshoppingcartreloaded = config.getBoolean("useshoppingcartreloaded");
97 // TODO MySQL
98 if (!config.isBoolean("MySQL.enable"))
99 config.set("MySQL.enable", false);
100 else
101 mysql = config.getBoolean("MySQL.enable");
102 // TODO Truncate chat
103 if (!config.isBoolean("MySQL.truncatechat"))
104 config.set("MySQL.truncatechat", false);
105 else
106 truncatechat = config.getBoolean("MySQL.truncatechat");
107 // TODO Truncate time hours
108 if (!config.isInt("MySQL.truncate_time_hours"))
109 config.set("MySQL.truncate_time_hours", 0);
110 else
111 truncate_time_hours = config.getInt("MySQL.truncate_time_hours");
112 // TODO Host
113 if (!config.isString("MySQL.host"))
114 config.set("MySQL.host", "localhost");
115 else
116 host = config.getString("MySQL.host");
117 // TODO Port
118 if (!config.isInt("MySQL.port"))
119 config.set("MySQL.port", 3306);
120 else
121 port = config.getInt("MySQL.port");
122 // TODO User
123 if (!config.isString("MySQL.user"))
124 config.set("MySQL.user", "root");
125 else
126 user = config.getString("MySQL.user");
127 // TODO Database
128 if (!config.isString("MySQL.database"))
129 config.set("MySQL.database", "root");
130 else
131 database = config.getString("MySQL.database");
132 // TODO Password
133 if (!config.isString("MySQL.password"))
134 config.set("MySQL.password", "password");
135 else
136 password = config.getString("MySQL.password");
137 if (mysql) {
138 if (figadmin) {
139 // TODO Table_unbanned
140 if (!config.isString("MySQL.table_unbanned"))
141 config.set("MySQL.table_unbanned", "unbanned");
142 else
143 table_unbanned = config.getString("MySQL.table_unbanned");
144 // TODO Table_banlist
145 if (!config.isString("MySQL.table_banlist"))
146 config.set("MySQL.table_banlist", "banlist");
147 else
148 table_banlist = config.getString("MySQL.table_banlist");
149 }
150 if (onlineusers) {
151 // TODO Table_onlineusers
152 if (!config.isString("MySQL.table_onlineusers"))
153 config.set("MySQL.table_onlineusers", "online_users");
154 else
155 table_onlineusers = config.getString("MySQL.table_onlineusers");
156 }
157 if (shoppingcartreloaded) {
158 // TODO Table_shophistory
159 if (!config.isString("MySQL.table_shophistory"))
160 config.set("MySQL.table_shophistory", "shophistory");
161 else
162 table_shophistory = config.getString("MySQL.table_shophistory");
163 }
164 // TODO Table_servers
165 if (!config.isString("MySQL.table_servers"))
166 config.set("MySQL.table_servers", "servers");
167 else
168 table_servers = config.getString("MySQL.table_servers");
169 // TODO Table_chat
170 if (!config.isString("MySQL.table_chat"))
171 config.set("MySQL.table_chat", "chat");
172 else
173 table_chat = config.getString("MySQL.table_chat");
174 // TODO Table_users
175 if (!config.isString("MySQL.table_users"))
176 config.set("MySQL.table_users", "users");
177 else
178 table_users = config.getString("MySQL.table_users");
179 }
180 SMPlugin.plugin.saveConfig();
181 SMPlugin.log.info("endLoadConfig");
182 }
183
184 protected static void loadMessages() {
185 SMPlugin.log.info("loadMessages");
186 success = messages.getStringList("Success");
187 kit = messages.getStringList("Kit");
188 lists = messages.getStringList("Lists");
189 errors = messages.getStringList("Errors");
190 forms = messages.getStringList("Forms");
191 others = messages.getStringList("Others");
192 data = messages.getStringList("Data");
193 lore = messages.getStringList("Lore");
194 commands = messages.getStringList("Commands");
195 SMPlugin.log.info("endLoadMessages");
196 }
197
198 protected static void reloadQuery() {
199 SMPlugin.log.info("reloadQuery");
200 // TODO CreateSMChat
201 queryMakeSMChat = "CREATE TABLE IF NOT EXISTS `" + table_chat + "` (`sender` varchar(32) NOT NULL, "
202 + "`for` varchar(32) NOT NULL, " + "`server` varchar(32) NOT NULL, " + "`message` text(100) NOT NULL, "
203 + "`status` tinyint(1) NOT NULL)";
204 // TODO CheckSMChat
205 queryCheckTableExist = "SHOW TABLES LIKE '" + table_chat + "'";
206 // TODO Unbanned
207 queryUnbannedList = "SELECT `name`, `time` FROM " + table_unbanned;
208 // TODO Banlist
209 queryBanlist = "SELECT `name`, `admin`, `reason`, `time`, `temptime` FROM " + table_banlist;
210 // TODO Reason
211 querySetReason = "UPDATE `" + table_banlist
212 + "` SET `reason`='%reason%' WHERE `name`='%name%' AND `admin`='%admin%'";
213 // TODO ReasonByServer
214 querySetReasonByServer = "UPDATE `" + table_banlist + "` SET `reason`='%reason%' WHERE `name`='%name%'";
215 // TODO PlayTime
216 queryGetPlayTime = "SELECT `time_total` FROM `" + table_onlineusers + "` WHERE `server`='" + server
217 + "' AND `name`='%name%'";
218 // TODO Shop
219 queryShopList = "SELECT `itemid`, `summa`, `count` FROM `" + table_shophistory
220 + "` WHERE `shop`='%server%' AND `uuid`='%name%'";
221 // TODO TopTime
222 queryGetTopTime = "SELECT `time_total`, `name`, `server` FROM `" + table_onlineusers + "`";
223 // TODO Onlines
224 queryGetOnlines = "SELECT `name`, `server`, `time` FROM `" + table_onlineusers + "` WHERE `online`=1";
225 // TODO Tell
226 querySetTell = "INSERT INTO `" + table_chat
227 + "` (`sender`, `for`, `server`, `message`, `status`) VALUES ('%name%', '%player%', '%server%', '%message%', '0')";
228 // TODO CheckSMChat
229 queryGetSMChat = "SELECT `sender`, `for`, `server`, `message` FROM `" + table_chat + "` WHERE `status`='0'";
230 // TODO SetStatus
231 querySetStatus = "UPDATE `" + table_chat + "` SET `status`='1' WHERE `for`='%name%' AND `status`=0";
232 // TODO CheckPlayer
233 queryCheckPlayer = "SELECT `name` FROM `" + table_users + "` WHERE `name`='%name%'";
234 // TODO TellSender
235 querySetTellSender = "SELECT `sender` FROM `" + table_chat + "` WHERE `status`='1' AND `for`='%name%'";
236 // TODO TrunceSMChat
237 queryTruncateTable = "TRUNCATE `" + table_chat + "`";
238 SMPlugin.log.info(queryGetOnlines);
239 SMPlugin.log.info("endReloadQuery");
240 }
241}