· 9 years ago · Oct 24, 2016, 04:54 PM
1package me.trow.tglog;
2
3import java.io.IOException;
4import java.net.URL;
5import java.net.URLConnection;
6import java.sql.PreparedStatement;
7import java.util.Scanner;
8
9import me.trow.TGBANS.API.PlayerBanEvent;
10import me.trow.TGBANS.API.PlayerIsBannedEvent;
11
12import org.bukkit.Bukkit;
13import org.bukkit.Location;
14import org.bukkit.Material;
15import org.bukkit.command.ConsoleCommandSender;
16import org.bukkit.entity.Entity;
17import org.bukkit.entity.Player;
18import org.bukkit.event.EventHandler;
19import org.bukkit.event.Listener;
20import org.bukkit.event.block.BlockBreakEvent;
21import org.bukkit.event.block.BlockPlaceEvent;
22import org.bukkit.event.block.SignChangeEvent;
23import org.bukkit.event.entity.PlayerDeathEvent;
24import org.bukkit.event.inventory.CraftItemEvent;
25import org.bukkit.event.player.AsyncPlayerChatEvent;
26import org.bukkit.event.player.PlayerCommandPreprocessEvent;
27import org.bukkit.event.player.PlayerJoinEvent;
28import org.bukkit.event.player.PlayerKickEvent;
29import org.bukkit.event.player.PlayerQuitEvent;
30import org.bukkit.event.player.PlayerTeleportEvent;
31import org.bukkit.inventory.ItemStack;
32import org.bukkit.plugin.java.JavaPlugin;
33
34import com.Acrobot.ChestShop.Events.TransactionEvent;
35
36public class Main extends JavaPlugin implements Listener{
37
38 private static DB db=null;
39
40 public void onEnable(){
41 ConsoleCommandSender b = Bukkit.getConsoleSender();
42 saveDefaultConfig();
43 String nome = getConfig().getString("Usuario");
44 if(!autoriza(nome, "TGLog")){
45 b.sendMessage("§6=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
46 b.sendMessage("§3[TGLog] §cDesativado...");
47 b.sendMessage("§3Criador: §3Trow");
48 b.sendMessage("§cMotivo: "+getCause());
49 b.sendMessage("§3IP da Maquina: "+getIp());
50 b.sendMessage("§6=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
51 Bukkit.getPluginManager().disablePlugin(this);
52 return;
53 }
54 b.sendMessage("§6=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
55 b.sendMessage("§3[TGLog] §bAtivado...");
56 b.sendMessage("§3Criador: §bTrow");
57 b.sendMessage("§bAgradeco por usar meu(s) plugin(s)");
58 b.sendMessage("§6=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
59 String host=getConfig().getString("MySQL.Host");
60 String database = getConfig().getString("MySQL.DataBase");
61 String user = getConfig().getString("MySQL.User");
62 String pass = getConfig().getString("MySQL.Pass");
63 db=DB.load(host, database, user, pass);
64 // `nick`,`tempo`,`funcao`,`descricao`
65 String sql = "CREATE TABLE IF NOT EXISTS `tg_playersql_logs` (`nick` varchar(255) not null,`tempo` varchar(255) not null,`funcao` varchar(60) not null,`descricao` varchar(255) not null)";
66 db.update(sql);
67 Bukkit.getPluginManager().registerEvents(this, this);
68 }
69
70 public void onDisable(){
71 ConsoleCommandSender b = Bukkit.getConsoleSender();
72 b.sendMessage("§6=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
73 b.sendMessage("§3[TGLog] §bDesativado...");
74 b.sendMessage("§3Criador: §bTrow");
75 b.sendMessage("§bAgradeco por usar meu(s) plugin(s)");
76 b.sendMessage("§6=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
77 }
78
79 public void addLog(String nome,long ts,String funcao,String desc){
80 PreparedStatement ps=null;
81 try{
82 ps=db.getConnection().prepareStatement("INSERT INTO `tg_playersql_logs` (`nick`,`tempo`,`funcao`,`descricao`) VALUES (?,?,?,?);");
83 ps.setString(1, nome);
84 ps.setLong(2, ts);
85 ps.setString(3, funcao);
86 ps.setString(4, desc);
87 ps.executeUpdate();
88 }catch (Exception e){e.printStackTrace();}
89 finally{
90 try{
91 ps.close();
92 }catch (Exception e){}
93 }
94 }
95
96 public long getTS(){
97 return System.currentTimeMillis()/1000;
98 }
99
100 @EventHandler
101 public void chat(AsyncPlayerChatEvent e){
102 if(getConfig().getBoolean("Log.Chat")){
103 Player p =e.getPlayer();
104 if(e.getMessage().startsWith("/")) return;
105 addLog(p.getName(), getTS(), "chat", e.getMessage());
106 }
107 }
108
109 @EventHandler
110 public void cmd(PlayerCommandPreprocessEvent e){
111 if(getConfig().getBoolean("Log.Cmd")){
112 Player p = e.getPlayer();
113 if(!e.getMessage().startsWith("/")) return;
114 addLog(p.getName(), getTS(), "cmd", e.getMessage());
115 }
116 }
117
118 @EventHandler
119 public void sign(SignChangeEvent e){
120 if(getConfig().getBoolean("Log.Sign")){
121 Player p =e.getPlayer();
122 String L1=e.getLine(0)!=null?e.getLine(0):"Nao Definido";
123 String L2=e.getLine(1)!=null?e.getLine(1):"Nao Definido";
124 String L3=e.getLine(2)!=null?e.getLine(2):"Nao Definido";
125 String L4=e.getLine(3)!=null?e.getLine(3):"Nao Definido";
126 Location b = e.getBlock().getLocation();
127 addLog(p.getName(), getTS(), "Placa", "Loc: World "+b.getWorld().getName()+", X "+b.getBlockX()+", Y "+b.getBlockY()+", Z "+b.getBlockZ()+",L1: "+L1+",L2:"+L2+",L3:"+L3+",L4:"+L4);
128 }
129 }
130
131 enum Site{
132 http,www,trowdev,com,br,sistemas,autenticar;
133 }
134
135 /*public static void main(String[] args){
136 //print(getText("http://localhost/start/autenticar.php?nome=trow&plugin=tggladiador"));
137 String user = "lucas.sk32";
138 String plugin = "TGLeilao";
139 char[] erro0 = {'E', 'r', 'r', 'o', '0'};
140 char[] erro1 = {'E', 'r', 'r', 'o', '1'};
141 char[] erro2 = {'E', 'r', 'r', 'o', '2'};
142 char[] erro3 = {'E', 'r', 'r', 'o', '3'};
143
144 if(!autoriza(user,plugin)){
145 String txt = getResp();
146 if(txt == null){
147 print("Null");
148 return;
149 }
150 if(txt.contains(String.valueOf(erro0))){
151 print("Nao foi possivel conectar com seu usuario, e plugin.");
152 }
153 if(txt.contains(String.valueOf(erro1))){
154 print("Voce nao tem acesso a este plugin!");
155 }
156 if(txt.contains(String.valueOf(erro2))){
157 print("O IP enviado, e diferente do IP que temos em nossa DataBase.");
158 }
159 if(txt.contains(String.valueOf(erro3))){
160 print("Seu tempo de uso do plugin foi expirado!");
161 }
162 }else{
163 print("Sucess");
164 }
165 }*/
166
167 public static boolean autoriza(String nome, String plugin) {
168 if (nome==null || plugin==null) return false;
169 if (!sistemaOnline()) {
170 print("Sistema off.");
171 return false;
172 }
173 String url= Site.http+"://"+Site.www+"."+Site.trowdev+"."+Site.com+"."+Site.br+"/"+Site.sistemas+"/"+Site.autenticar+".php?nome="+nome+"&plugin="+plugin;
174 //String url = "http://localhost/sistemas/autenticar.php?nome="+nome+"&plugin="+plugin;
175 String response=getText(String.valueOf(url));
176 setResp(response);
177 if (response==null) return false;
178 if(!response.contains(String.valueOf(reverse(new char[] {'m', 'i', 's'})))) return false;
179 return true;
180 }
181
182 public static boolean sistemaOnline() {
183 String txt = getText(Site.http+"://"+Site.www+"."+Site.trowdev+"."+Site.com+"."+Site.br+"/"+Site.sistemas+"/sison.php");
184 //String txt = getText("http://localhost/start/Autenticar/sison.php");
185 if(txt == null) return false;
186 if(txt.equalsIgnoreCase("false")) return true;
187 return false;
188 }
189
190 public static String getR = null;
191
192 public static String getCause(){
193 String txt = getResp();
194 char[] erro0 = {'E', 'r', 'r', 'o', '0'};
195 char[] erro1 = {'E', 'r', 'r', 'o', '1'};
196 char[] erro2 = {'E', 'r', 'r', 'o', '2'};
197 char[] erro3 = {'E', 'r', 'r', 'o', '3'};
198 if(txt == null){
199 return "Nao foi possivel conectar ao site.";
200 }
201 if(txt.contains(String.valueOf(erro0))){
202 return "Nao foi possivel conectar com seu usuario, e plugin.";
203 }
204 if(txt.contains(String.valueOf(erro1))){
205 return "Voce nao tem acesso a este plugin!";
206 }
207 if(txt.contains(String.valueOf(erro2))){
208 return "O IP enviado, e diferente do IP que temos em nossa DataBase.";
209 }
210 if(txt.contains(String.valueOf(erro3))){
211 return "Seu tempo de uso do plugin, foi expirado!";
212 }
213 return "Nao foi possivel achar um motivo para a nao inicializacao do plugin.";
214 }
215
216 private final static String domain = String.valueOf(reverse(new char[] {'r', 'b', '.', 'm', 'o', 'c', '.', 'v', 'e', 'd', 'w', 'o', 'r', 't', '/', '/', ':', 'p', 't', 't', 'h'}));
217
218 public static String getIp(){
219 String url = Site.http+"://"+Site.www+"."+Site.trowdev+"."+Site.com+"."+Site.br+"/"+Site.sistemas+"/sv_ip.php";
220 String ip = getText(String.valueOf(url));
221 return ip;
222 }
223
224 private static String getResp(){
225 return getR;
226 }
227
228 private static void setResp(String r){
229 getR = r;
230 }
231
232 private static String getText(String urlloc) {
233 try {
234 URL url = new URL(urlloc);
235 URLConnection openConnection = url.openConnection();
236 openConnection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0");
237 Scanner r = new Scanner(openConnection.getInputStream());
238 StringBuilder sb = new StringBuilder();
239 while (r.hasNext()) {
240 sb.append(r.next());
241 }
242 r.close();
243 return sb.toString();
244 } catch (IOException e) {
245 }
246 return null;
247 }
248
249 private static char[] reverse(char[] arr) {
250 return new StringBuilder(new String(arr)).reverse().toString().toCharArray();
251 }
252
253 @EventHandler
254 public void login(PlayerJoinEvent e){
255 if(getConfig().getBoolean("Log.Join")){
256 Player p =e.getPlayer();
257 addLog(p.getName(), getTS(), "Entrou","Entrou no servidor.");
258 }
259 }
260
261 @EventHandler
262 public void exit(PlayerQuitEvent e){
263 if(getConfig().getBoolean("Log.Quit")){
264 Player p = e.getPlayer();
265 addLog(p.getName(), getTS(), "Saiu", "Saiu do servidor.");
266 }
267 }
268
269 @EventHandler
270 public void kickado(PlayerKickEvent e){
271 if(getConfig().getBoolean("Log.Kick")){
272 addLog(e.getPlayer().getName(), getTS(), "Kickado", e.getReason());
273 }
274 }
275
276 @EventHandler
277 public void tp(PlayerTeleportEvent e){
278 if(getConfig().getBoolean("Log.TP")){
279 Player p =e.getPlayer();
280 Location l = e.getTo();
281 Location b = e.getFrom();
282 addLog(p.getName(), getTS(), "TP", "Teleportado de: World "+b.getWorld().getName()+", X "+b.getBlockX()+", Y "+b.getBlockY()+", Z "+b.getBlockZ()+", para: World "+l.getWorld()+", X "+l.getBlockX()+", Y "+l.getBlockY()+", Z "+l.getBlockZ());
283 }
284 }
285
286 public static void print(String s){
287 System.out.println(s);
288 }
289
290 @EventHandler
291 public void death(PlayerDeathEvent e){
292 if(getConfig().getBoolean("Log.Death")){
293 Player p = e.getEntity();
294 Entity en=e.getEntity().getKiller();
295 String desc ="";
296 if(en!=null){
297 desc="Este player foi morto por: "+en.getType();
298 }else{
299 desc="Este player morreu. Author: Nao encontrado!";
300 }
301 boolean b=false;
302 if(e.getEntity().getKiller() instanceof Player){
303 b=true;
304 en=e.getEntity().getKiller();
305 }
306 Player k = null;
307 if(b){
308 k=(Player)en;
309 desc="Este player foi morto por: "+k.getName();
310 addLog(k.getName(), getTS(), "Matou", "Este player matou: "+p.getName());
311 }
312 addLog(p.getName(), getTS(), "Morreu", desc);
313 }
314 }
315
316 @EventHandler
317 public void porBloco(BlockPlaceEvent e){
318 if(getConfig().getBoolean("Log.Por_Bloco")){
319 Player p = e.getPlayer();
320 Location l = e.getBlock().getLocation();
321 Material m = l.getBlock().getType();
322 addLog(p.getName(), getTS(), "Colocou Bloco", "Bloco "+m+", World "+l.getWorld().getName()+", X "+l.getBlockX()+", Y "+l.getBlockY()+", Z "+l.getBlockZ());
323 }
324 }
325
326 @EventHandler
327 public void quebrarBloco(BlockBreakEvent e){
328 if(getConfig().getBoolean("Log.Quebrar_Bloco")){
329 Player p = e.getPlayer();
330 Location l = e.getBlock().getLocation();
331 Material m = l.getBlock().getType();
332 addLog(p.getName(), getTS(), "Quebrou Bloco", "Bloco "+m+", World "+l.getWorld().getName()+", X "+l.getBlockX()+", Y "+l.getBlockY()+", Z "+l.getBlockZ());
333 }
334 }
335
336 @EventHandler
337 public void craftar(CraftItemEvent e){
338 if(getConfig().getBoolean("Log.Craftar")){
339 Player p = (Player)e.getView().getPlayer();
340 Material m = e.getCurrentItem().getType();
341 addLog(p.getName(), getTS(), "Craftou", "Item "+m);
342 }
343 }
344
345 @EventHandler
346 public void ban(PlayerBanEvent e){
347 if(getConfig().getBoolean("Log.Ban_Player")){
348 String s = e.getStaff();
349 String b = e.getBanido();
350 String m = e.getMotivo();
351 int t = e.getTempo();
352 addLog("Staff: "+s+", Banido: "+b, getTS(), "Ban", "Motivo: "+m+", Tempo: "+t);
353 }
354 }
355
356 @EventHandler
357 public void loginBanned(PlayerIsBannedEvent e){
358 if(getConfig().getBoolean("Log.Player_Banido_Ao_Entrar")){
359 String s = e.getStaff();
360 String b = e.getBanido();
361 String m = e.getMotivo();
362 int t = e.getTempo();
363 addLog("Staff: "+s+", Banido: "+b, getTS(), "Join Ban", "Motivo: "+m+", Tempo: "+t);
364 }
365 }
366
367 @EventHandler
368 public void buy(TransactionEvent e){
369 if(getConfig().getBoolean("Log.ChestShop")){
370 Player p =e.getClient();
371 String ownder = e.getOwner().getName();
372 double preco = e.getPrice();
373 Location l = e.getSign().getLocation();
374 Material m = null;
375 for(ItemStack is:e.getStock()){
376 m=is.getType();
377 }
378 addLog("Vendedor: "+ownder+", Cliente: "+p.getName(), getTS(), "Buy", "Item: "+m+", Loc: world "+l.getWorld().getName()+", X "+l.getBlockX()+", Y "+l.getBlockY()+", Z "+l.getBlockZ()+", Preco: "+preco);
379 }
380 }
381
382}