Advertisement
Guest User

Untitled

a guest
Jul 10th, 2017
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 76.22 KB | None | 0 0
  1. package tk.askaldya.bots.viyame;
  2.  
  3. import com.google.code.chatterbotapi.ChatterBot;
  4. import com.google.code.chatterbotapi.ChatterBotFactory;
  5. import com.google.code.chatterbotapi.ChatterBotSession;
  6. import com.google.code.chatterbotapi.ChatterBotType;
  7. import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
  8. import sx.blah.discord.api.ClientBuilder;
  9. import sx.blah.discord.api.IDiscordClient;
  10. import sx.blah.discord.api.events.EventSubscriber;
  11. import sx.blah.discord.handle.impl.events.*;
  12. import sx.blah.discord.handle.obj.*;
  13. import sx.blah.discord.util.DiscordException;
  14. import sx.blah.discord.util.MissingPermissionsException;
  15. import sx.blah.discord.util.RateLimitException;
  16.  
  17. import javax.imageio.ImageIO;
  18. import java.awt.*;
  19. import java.awt.geom.RoundRectangle2D;
  20. import java.awt.image.BufferedImage;
  21. import java.io.*;
  22. import java.net.URL;
  23. import java.net.URLConnection;
  24. import java.sql.Connection;
  25. import java.sql.ResultSet;
  26. import java.sql.Statement;
  27. import java.util.*;
  28. import java.util.List;
  29.  
  30.  
  31. public class SardHandler {
  32.  
  33. boolean toggle = false;
  34. String reason = "nope";
  35. IDiscordClient client = Main.sardbot;
  36. List<String> chanPics = new ArrayList<String>();
  37. List<String> picsEnd = new ArrayList<String>();
  38. String user = "bot";
  39. String password = "7319824655vic";
  40. String serverName = "nekomoe.tk";
  41. String databaseName = "sardoche";
  42. String eUser = "root";
  43. String ePassword = "7319824655vic";
  44. String eServerName = "nekomoe.tk";
  45. String eDatabaseName = "sardbot";
  46. int port = 3306;
  47. String tempMsg = "";
  48. int reload = 0;
  49. int reloadCount = 0;
  50. ChatterBotFactory factory = new ChatterBotFactory();
  51.  
  52. ChatterBot bot1 = factory.create(ChatterBotType.CLEVERBOT);
  53. ChatterBotSession bot1session = bot1.createSession();
  54.  
  55. public SardHandler() throws Exception {
  56. }
  57.  
  58.  
  59. @EventSubscriber
  60. public void onDisconnect(DiscordDisconnectedEvent event) throws Exception {
  61. if(reload>300) {
  62. reload = 0;
  63. System.out.println(event.getReason().toString());
  64. System.out.println("Logging...");
  65. //client.login();
  66. IDiscordClient sardbot;
  67. sardbot = new ClientBuilder().withToken("MjAzNTA4ODU1MjAyNjQzOTY4.Cmp75A.xW3UdEEQjEtyiHjBqjZOBcWQbYA").login();
  68. sardbot.getDispatcher().registerListener(new SardHandler());
  69. this.reason = event.getReason().toString();
  70. }
  71. client.login();
  72.  
  73. }
  74.  
  75. @EventSubscriber
  76. public void onReadyEvent(ReadyEvent event) {
  77. System.out.println("The bot is now ready");
  78.  
  79. picsEnd.add(".jpg");
  80. picsEnd.add(".gif");
  81. picsEnd.add(".png");
  82.  
  83.  
  84.  
  85. }
  86.  
  87. @EventSubscriber
  88. public void onUpdate(UserRoleUpdateEvent event){
  89. try {
  90.  
  91. Set<IRole> oldRoles = new HashSet<IRole>(event.getOldRoles());
  92. Set<IRole> newRoles = new HashSet<IRole>(event.getNewRoles());
  93.  
  94. if(event.getOldRoles().size()<event.getNewRoles().size()) {
  95. System.out.println("Un rôle a été ajouté.");
  96. Set<IRole> newR = newRoles;
  97. newR.removeAll(oldRoles);
  98. Calendar cal = Calendar.getInstance();
  99.  
  100. MysqlDataSource dataSource = new MysqlDataSource();
  101.  
  102. dataSource.setUser(user);
  103. dataSource.setPassword(password);
  104. dataSource.setServerName(serverName);
  105. dataSource.setPort(port);
  106. dataSource.setDatabaseName(databaseName);
  107.  
  108. Connection conn = dataSource.getConnection();
  109. Statement stmt = conn.createStatement();
  110. int rs = stmt.executeUpdate("INSERT INTO permLogs (nom, id, type, valeur, date, oldRoles, newRoles) VALUES ('" + event.getUser().getName() + "', '" + event.getUser().getID() + "', 'ROLE_ADD', '" + newR.toString() + "', '" + cal.getTime().toString() + "', '" + oldRoles.toString()+ "', '" + newRoles.toString() + "')");
  111.  
  112.  
  113. stmt.close();
  114. conn.close();
  115. }
  116. if(event.getOldRoles().size()>event.getNewRoles().size()) {
  117. System.out.println("Un rôle a été enlevé.");
  118. Set<IRole> oldR = oldRoles;
  119. oldR.removeAll(newRoles);
  120. Calendar cal = Calendar.getInstance();
  121.  
  122. MysqlDataSource dataSource = new MysqlDataSource();
  123.  
  124. dataSource.setUser(user);
  125. dataSource.setPassword(password);
  126. dataSource.setServerName(serverName);
  127. dataSource.setPort(port);
  128. dataSource.setDatabaseName(databaseName);
  129.  
  130. Connection conn = dataSource.getConnection();
  131. Statement stmt = conn.createStatement();
  132. int rs = stmt.executeUpdate("INSERT INTO permLogs (nom, id, type, valeur, date, oldRoles, newRoles) VALUES ('" + event.getUser().getName() + "', '" + event.getUser().getID() + "', 'ROLE_REMOVE', '" + oldR.toString() + "', '" + cal.getTime().toString() + "', '" + oldRoles.toString()+ "', '" + newRoles.toString() + "')");
  133.  
  134.  
  135. stmt.close();
  136. conn.close();
  137. }
  138.  
  139.  
  140.  
  141.  
  142. }catch(Exception e){
  143. e.printStackTrace();
  144. }
  145. }
  146.  
  147. @EventSubscriber
  148. public void onMessageEvent(MessageReceivedEvent event) {
  149.  
  150. try {
  151. if (event.getMessage().getChannel().isPrivate()) {
  152. if (event.getMessage().getContent().startsWith("_profil")) {
  153.  
  154.  
  155. MysqlDataSource dataSource = new MysqlDataSource();
  156.  
  157. dataSource.setUser(user);
  158. dataSource.setPassword(password);
  159. dataSource.setServerName(serverName);
  160. dataSource.setPort(port);
  161. dataSource.setDatabaseName(databaseName);
  162. boolean identify = false;
  163. boolean leveled = false;
  164. Connection conn = dataSource.getConnection();
  165. Statement stmt = conn.createStatement();
  166. ResultSet rs = stmt.executeQuery("SELECT * FROM managers");
  167. while (rs.next()) {
  168. if (event.getMessage().getAuthor().getID().equalsIgnoreCase(rs.getString("id"))) {
  169. identify = true;
  170. leveled = true;
  171. }
  172. }
  173.  
  174.  
  175. identify = true;
  176. leveled = true;
  177.  
  178. System.out.println("Commande _profil reçue.");
  179. if(identify) {
  180. System.out.println("Identified.");
  181. if(event.getMessage().getContent().length() > 9){
  182. if(leveled) {
  183. TextUtils tu = new TextUtils();
  184. if (event.getMessage().getContent().contains("!")) {
  185. client.getOrCreatePMChannel(event.getMessage().getAuthor()).sendFile(image(client.getUserByID(tu.getBetweenTags(event.getMessage().getContent(), "<@!", ">", 0)), event.getMessage().getGuild(), event.getMessage().getChannel()));
  186. } else {
  187. client.getOrCreatePMChannel(event.getMessage().getAuthor()).sendFile(image(client.getUserByID(tu.getBetweenTags(event.getMessage().getContent(), "<@", ">", 0)), event.getMessage().getGuild(), event.getMessage().getChannel()));
  188. }
  189. }else{
  190. client.getOrCreatePMChannel(event.getMessage().getAuthor()).sendMessage("Tu ne peux que voir ton propre profil pour limiter les mentions inutiles! (pour l'instant)");
  191. }
  192. }else{
  193. client.getOrCreatePMChannel(event.getMessage().getAuthor()).sendFile(image(event.getMessage().getAuthor(), event.getMessage().getGuild(), event.getMessage().getChannel()));
  194.  
  195. }
  196. }
  197.  
  198.  
  199.  
  200. }
  201. if(event.getMessage().getContent().startsWith("_stats me")){
  202. event.getMessage().getChannel().sendMessage("Rappel: le système ne gère pas encore les changements de pseudo.");
  203. MysqlDataSource dataSource = new MysqlDataSource();
  204.  
  205. dataSource.setUser(user);
  206. dataSource.setPassword(password);
  207. dataSource.setServerName(serverName);
  208. dataSource.setPort(port);
  209. dataSource.setDatabaseName(databaseName);
  210.  
  211. Connection conn = dataSource.getConnection();
  212. Statement stmt = conn.createStatement();
  213. ResultSet rs = stmt.executeQuery("SELECT author,COUNT(*) as count FROM messages WHERE author='" + event.getMessage().getAuthor().getName() + "' GROUP BY author ORDER BY count DESC;");
  214. StringBuilder sb = new StringBuilder();
  215. sb.append("```Voici les statistiques te concernant\n");
  216. while (rs.next()) {
  217. sb.append(rs.getString("count") + " messages postés\n");
  218.  
  219. }
  220. ResultSet rs2 = stmt.executeQuery("SELECT author_name,COUNT(*) as count FROM pics WHERE author_name='" + event.getMessage().getAuthor().getName() + "' GROUP BY author_name ORDER BY count DESC;");
  221.  
  222. while (rs2.next()) {
  223. sb.append(rs2.getString("count") + " images postées dans les channels nsfw\n");
  224.  
  225. }
  226. sb.append("```");
  227.  
  228. event.getMessage().getChannel().sendMessage(sb.toString());
  229. rs2.close();
  230. rs.close();
  231. stmt.close();
  232. conn.close();
  233.  
  234. }
  235.  
  236. } else {
  237.  
  238.  
  239. // reload++;
  240. // if (reload > 300) {
  241.  
  242. // client.logout();
  243. // reloadCount++;
  244.  
  245. //}
  246. System.out.println(event.getMessage().getGuild().getName() + " " + event.getMessage().getChannel().getName() + ": " + event.getMessage().getAuthor().getName() + ": " + event.getMessage().getContent());
  247. if(!event.getMessage().getChannel().isPrivate()) {
  248. MysqlDataSource dataSourceA = new MysqlDataSource();
  249.  
  250. dataSourceA.setUser(user);
  251. dataSourceA.setPassword(password);
  252. dataSourceA.setServerName(serverName);
  253. dataSourceA.setPort(port);
  254. dataSourceA.setDatabaseName(databaseName);
  255.  
  256. Connection connA = dataSourceA.getConnection();
  257. Statement stmtA = connA.createStatement();
  258. if(!event.getMessage().getChannel().getName().contains("anon")) {
  259. int rsA = stmtA.executeUpdate("INSERT INTO messages (channel, message, author, date, author_id) VALUES ('" + event.getMessage().getChannel().getName() + "', '" + suppressInjection(event.getMessage().getContent()) + "', '" + event.getMessage().getAuthor().getName() + "', '" + event.getMessage().getTimestamp() + "', '" + event.getMessage().getAuthor().getID() + "')");
  260. //On aime tous le RSA
  261. }
  262. if (Main.noSpam.containsKey(event.getMessage().getAuthor().getID())) {
  263. Calendar cal = Calendar.getInstance();
  264. if (cal.getTime().getTime() - Main.noSpam.get(event.getMessage().getAuthor().getID()).getTime() < 15000) {
  265. Main.noSpam.remove(event.getMessage().getAuthor().getID());
  266. Main.noSpam.put(event.getMessage().getAuthor().getID(), cal.getTime());
  267. Statement stmtB = connA.createStatement();
  268. ResultSet rsB = stmtB.executeQuery("SELECT * FROM `levels` WHERE `id` LIKE '" + event.getMessage().getAuthor().getID() + "'");
  269. int xp = 0;
  270. while (rsB.next()) {
  271. xp = Integer.parseInt(rsB.getString("xpTotal"));
  272. }
  273. Random rc = new Random();
  274. int Lowc = 10;
  275. int Highc = 20;
  276. int resultc = rc.nextInt(Highc - Lowc) + Lowc;
  277. xp = xp + resultc;
  278. rsB.close();
  279. stmtB.close();
  280.  
  281. if (xp != 0) {
  282. Statement stmtC = connA.createStatement();
  283. int rsC = stmtC.executeUpdate("UPDATE levels SET xpTotal='" + xp + "' WHERE id='" + event.getMessage().getAuthor().getID() + "'");
  284. }
  285. } else {
  286. System.out.print("En cooldown");
  287. }
  288. } else {
  289. Calendar cal = Calendar.getInstance();
  290. Main.noSpam.put(event.getMessage().getAuthor().getID(), cal.getTime());
  291. Statement stmtB = connA.createStatement();
  292. ResultSet rsB = stmtB.executeQuery("SELECT * FROM `levels` WHERE `id` LIKE '" + event.getMessage().getAuthor().getID() + "'");
  293. int xp = 0;
  294. while (rsB.next()) {
  295. xp = Integer.parseInt(rsB.getString("xpTotal"));
  296. }
  297. Random rc = new Random();
  298. int Lowc = 1;
  299. int Highc = 10;
  300. int resultc = rc.nextInt(Highc - Lowc) + Lowc;
  301. xp = xp + resultc;
  302. rsB.close();
  303. stmtB.close();
  304.  
  305. if (xp != 0) {
  306. Statement stmtC = connA.createStatement();
  307. int rsC = stmtC.executeUpdate("UPDATE levels SET xpTotal='" + xp + "' WHERE id='" + event.getMessage().getAuthor().getID() + "'");
  308. }
  309.  
  310. stmtA.close();
  311. connA.close();
  312.  
  313. }
  314. if (event.getMessage().getContent().startsWith("_help")) {
  315. System.out.println("Commande _help reçue.");
  316. //client.getOrCreatePMChannel(event.getMessage().getAuthor()).sendMessage("```Voici les commandes disponibles:\n_stats me | Cette commande est à faire en mp, et affiche des statistiques sur vous\n_stats server | Affiche les statistiques du serveur\n_stats pics | Affiche les statistiques des images postées dans les channels nsfw```");
  317. event.getMessage().delete();
  318.  
  319. }
  320.  
  321.  
  322. if (event.getMessage().getContent().startsWith("_status")) {
  323. System.out.println("Commande _status reçue.");
  324. }
  325.  
  326. if(event.getMessage().getContent().startsWith("<@203508855202643968>") && toggle){
  327. String s = bot1session.think(event.getMessage().getContent().substring(22));
  328. event.getMessage().getChannel().sendMessage(s);
  329. System.out.println(s);
  330.  
  331. }
  332.  
  333. if (event.getMessage().getContent().startsWith("_transfer")) {
  334. System.out.println("transfer");
  335. event.getMessage().getChannel().sendMessage("```PAS FAITE\nTu peux transferer tes stats d'un compte à l'autre si tu change de nom ^^\nPour cela, fais _transfer <oldName=TonAncienNom> <newName=TonNouveauNom>.```");
  336. }
  337. if (event.getMessage().getContent().startsWith("_baka")) {
  338. System.out.println("Commande _aka reçue.");
  339. //event.getMessage().getChannel().sendMessage("愛してるよ!!!");
  340. }
  341.  
  342.  
  343. if (event.getMessage().getContent().equalsIgnoreCase("!link")) {
  344. System.out.println("Commande _link reçue.");
  345. event.getMessage().getChannel().sendMessage("```Tu ne peux link un compte osu qu'une seule fois dans ta vie, alors fais attention ^^\nPour link un compte osu, fais: link osu <name=tonnom> <mode=tonmode>. Les mods sont standard, ctb, taiko et mania.```");
  346. }
  347. if (event.getMessage().getContent().startsWith("!link osu")) {
  348. System.out.println("Commande _link osu reçue.");
  349. if(event.getMessage().getContent().contains("<name=") && event.getMessage().getContent().contains("<mode=")) {
  350. try {
  351. TextUtils tu = new TextUtils();
  352.  
  353. String nom = tu.getBetweenTags(event.getMessage().getContent(), "<name=", ">", 0);
  354. String mode = tu.getBetweenTags(event.getMessage().getContent(), "<mode=", ">", 0);
  355.  
  356. if (mode.equalsIgnoreCase("standard")) {
  357. mode = "0";
  358. }
  359. if (mode.equalsIgnoreCase("taiko")) {
  360. mode = "1";
  361. }
  362. if (mode.equalsIgnoreCase("ctb")) {
  363. mode = "2";
  364. }
  365. if (mode.equalsIgnoreCase("mania")) {
  366. mode = "3";
  367. }
  368. MysqlDataSource dataSource = new MysqlDataSource();
  369.  
  370. dataSource.setUser(user);
  371. dataSource.setPassword(password);
  372. dataSource.setServerName(serverName);
  373. dataSource.setPort(port);
  374. dataSource.setDatabaseName(databaseName);
  375.  
  376. Connection conn = dataSource.getConnection();
  377. Statement stmt = conn.createStatement();
  378. int rs = stmt.executeUpdate("INSERT INTO `linkedAccounts` (`user_id`, `nom`, `jeu`, `osu_ign`, `id_ign`, `osu_data_ign`) VALUES ('" + event.getMessage().getAuthor().getID() + "', '" + event.getMessage().getAuthor().getName() + "', 'osu', '" + nom + "', '', '" + mode + "');");
  379. stmt.close();
  380. conn.close();
  381.  
  382. event.getMessage().getChannel().sendMessage("`Compte osu lié!`");
  383.  
  384. }catch(com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException e){
  385. e.printStackTrace();
  386. event.getMessage().getChannel().sendMessage("Je t'avais bien prévenu, tu ne peux link ton compte qu'une fois!");
  387. }
  388. }else{
  389. event.getMessage().getChannel().sendMessage("```Fais !link et relis bien stp -___-```");
  390.  
  391. }
  392. event.getMessage().getChannel().sendMessage("");
  393.  
  394. }
  395. if (event.getMessage().getContent().startsWith("!stats")) {
  396.  
  397.  
  398. MysqlDataSource dataSource = new MysqlDataSource();
  399.  
  400. dataSource.setUser(user);
  401. dataSource.setPassword(password);
  402. dataSource.setServerName(serverName);
  403. dataSource.setPort(port);
  404. dataSource.setDatabaseName(databaseName);
  405. boolean identify = false;
  406. boolean leveled = false;
  407. Connection conn = dataSource.getConnection();
  408. Statement stmt = conn.createStatement();
  409. ResultSet rs = stmt.executeQuery("SELECT * FROM managers");
  410. while (rs.next()) {
  411. if (event.getMessage().getAuthor().getID().equalsIgnoreCase(rs.getString("id"))) {
  412. identify = true;
  413. leveled = true;
  414. }
  415. }
  416.  
  417.  
  418. identify = true;
  419. leveled = true;
  420.  
  421. System.out.println("Commande _profil reçue.");
  422. if(identify) {
  423. System.out.println("Identified.");
  424. if(event.getMessage().getContent().length() > 9){
  425. if(leveled) {
  426. TextUtils tu = new TextUtils();
  427. if (event.getMessage().getContent().contains("@!")) {
  428. client.getOrCreatePMChannel(event.getMessage().getAuthor()).sendFile(image(client.getUserByID(tu.getBetweenTags(event.getMessage().getContent(), "<@!", ">", 0)), event.getMessage().getGuild(), event.getMessage().getChannel()));
  429. } else {
  430. client.getOrCreatePMChannel(event.getMessage().getAuthor()).sendFile(image(client.getUserByID(tu.getBetweenTags(event.getMessage().getContent(), "<@", ">", 0)), event.getMessage().getGuild(), event.getMessage().getChannel()));
  431. }
  432. }else{
  433. client.getOrCreatePMChannel(event.getMessage().getAuthor()).sendMessage("Tu ne peux que voir ton propre profil pour limiter les mentions inutiles! (pour l'instant)");
  434. event.getMessage().delete();
  435. }
  436. }else{
  437.  
  438. event.getMessage().getChannel().sendFile(
  439. image(
  440. event.getMessage().getAuthor(),
  441. event.getMessage().getGuild(),
  442. event.getMessage().getChannel()));
  443. event.getMessage().delete();
  444.  
  445. }
  446. }
  447.  
  448. event.getMessage().delete();
  449.  
  450. }
  451. if (event.getMessage().getContent().startsWith("_aled")) {
  452. System.out.println("Commande _aled reçue.");
  453. event.getMessage().getChannel().sendMessage("Débrouille toi tout seul -___-");
  454. }
  455. if (event.getMessage().getContent().startsWith("_join")) {
  456. System.out.println("Commande _join reçue.");
  457. }
  458. if(event.getMessage().getContent().startsWith("_toggle")){
  459.  
  460. try {
  461.  
  462. System.out.println("Commande _toggle reçue.");
  463.  
  464. MysqlDataSource dataSource = new MysqlDataSource();
  465.  
  466. dataSource.setUser(user);
  467. dataSource.setPassword(password);
  468. dataSource.setServerName(serverName);
  469. dataSource.setPort(port);
  470. dataSource.setDatabaseName(databaseName);
  471. boolean identify = false;
  472. Connection conn = dataSource.getConnection();
  473. Statement stmt = conn.createStatement();
  474. ResultSet rs = stmt.executeQuery("SELECT * FROM managers");
  475. while (rs.next()) {
  476. if (event.getMessage().getAuthor().getID().equalsIgnoreCase(rs.getString("id"))) {
  477. identify = true;
  478. }
  479. }
  480. if(identify){
  481. if(toggle){
  482. toggle = false;
  483.  
  484. }else{
  485. toggle = true;
  486. }
  487. }
  488. }catch(Exception e){
  489. e.printStackTrace();
  490. }
  491. }
  492. if(event.getMessage().getContent().startsWith("_name")){
  493.  
  494. try {
  495.  
  496. System.out.println("Commande _name reçue.");
  497.  
  498. MysqlDataSource dataSource = new MysqlDataSource();
  499.  
  500. dataSource.setUser(user);
  501. dataSource.setPassword(password);
  502. dataSource.setServerName(serverName);
  503. dataSource.setPort(port);
  504. dataSource.setDatabaseName(databaseName);
  505. boolean identify = false;
  506. Connection conn = dataSource.getConnection();
  507. Statement stmt = conn.createStatement();
  508. ResultSet rs = stmt.executeQuery("SELECT * FROM managers");
  509. while (rs.next()) {
  510. if (event.getMessage().getAuthor().getID().equalsIgnoreCase(rs.getString("id"))) {
  511. identify = true;
  512. }
  513. }
  514. if(identify) {
  515. client.changeUsername(event.getMessage().getContent().substring(6));
  516. }
  517. }catch(Exception e){
  518. e.printStackTrace();
  519. }
  520. }
  521. if(event.getMessage().getContent().startsWith("_changeColor")){
  522.  
  523. try {
  524.  
  525. System.out.println("Commande _changeColor reçue.");
  526.  
  527. MysqlDataSource dataSource = new MysqlDataSource();
  528.  
  529. dataSource.setUser(user);
  530. dataSource.setPassword(password);
  531. dataSource.setServerName(serverName);
  532. dataSource.setPort(port);
  533. dataSource.setDatabaseName(databaseName);
  534. boolean identify = false;
  535. Connection conn = dataSource.getConnection();
  536. Statement stmt = conn.createStatement();
  537. ResultSet rs = stmt.executeQuery("SELECT * FROM managers");
  538. while (rs.next()) {
  539. if (event.getMessage().getAuthor().getID().equalsIgnoreCase(rs.getString("id"))) {
  540. identify = true;
  541. }
  542. }
  543. if(identify) {
  544. client.changePresence(true);
  545. }
  546. }catch(Exception e){
  547. e.printStackTrace();
  548. }
  549. }
  550. if (event.getMessage().getContent().startsWith("_quit")) {
  551. System.out.println("Commande _quit reçue.");
  552. for (int i = 0; i < client.getConnectedVoiceChannels().size(); i++) {
  553. client.getConnectedVoiceChannels().get(i).leave();
  554. }
  555. }
  556.  
  557.  
  558. if (event.getMessage().getContent().startsWith("_setbg")) {
  559. System.out.println("Commande _setbg reçue.");
  560.  
  561. MysqlDataSource dataSource = new MysqlDataSource();
  562.  
  563. dataSource.setUser(user);
  564. dataSource.setPassword(password);
  565. dataSource.setServerName(serverName);
  566. dataSource.setPort(port);
  567. dataSource.setDatabaseName(databaseName);
  568. boolean identify = false;
  569. Connection conn = dataSource.getConnection();
  570. Statement stmt = conn.createStatement();
  571. ResultSet rs = stmt.executeQuery("SELECT * FROM managers");
  572. while (rs.next()) {
  573. if (event.getMessage().getAuthor().getID().equalsIgnoreCase(rs.getString("id"))) {
  574. identify = true;
  575. }
  576. }
  577.  
  578.  
  579. rs.close();
  580. stmt.close();
  581. conn.close();
  582. if (identify) {
  583. Main.urlBG = event.getMessage().getContent().substring(7);
  584. }
  585. }
  586. if (event.getMessage().getContent().startsWith("_reasonazertyuiop")) {
  587. System.out.println("Commande _reason reçue.");
  588. client.getChannelByID(event.getMessage().getChannel().getID()).sendMessage(reason);
  589. }
  590. if (event.getMessage().getContent().startsWith("_count")) {
  591. System.out.println("Commande _count reçue.");
  592. String msg = " " + reloadCount;
  593. client.getChannelByID(event.getMessage().getChannel().getID()).sendMessage(msg);
  594. }
  595. if(event.getMessage().getContent().startsWith("_osu".toLowerCase())){
  596. System.out.println("Commande _osu reçue.");
  597. String urlOsuu = "http://lemmmy.pw/osusig/sig.php?colour=pink&uname=" + event.getMessage().getContent().substring(5) + "&pp=2&flagshadow&opaqueavatar&onlineindicator=2&xpbar&xpbarhex";
  598. if (!urlOsuu.equalsIgnoreCase("nope")) {
  599. final BufferedImage osu = ImageIO.read(new URL(urlOsuu));
  600. ImageIO.write(osu, "png", new File("image.png"));
  601. File osusu = new File("image.png");
  602. event.getMessage().getChannel().sendFile(osusu);
  603. }
  604. }
  605. if (event.getMessage().getContent().startsWith("_members")) {
  606. System.out.println("Commande _members reçue.");
  607. int n = event.getMessage().getGuild().getUsers().size();
  608. event.getMessage().getChannel().sendMessage(" " + n);
  609. }
  610.  
  611. if (event.getMessage().getContent().startsWith("_stats pics")) {
  612. event.getMessage().delete();
  613.  
  614. String imageHentai = " ";
  615. String imagePorn = " ";
  616. System.out.println("Commande _stats pics reçue.");
  617. MysqlDataSource dataSource = new MysqlDataSource();
  618.  
  619. dataSource.setUser(user);
  620. dataSource.setPassword(password);
  621. dataSource.setServerName(serverName);
  622. dataSource.setPort(port);
  623. dataSource.setDatabaseName(databaseName);
  624.  
  625. Connection conn = dataSource.getConnection();
  626. Statement stmt = conn.createStatement();
  627. ResultSet rs = stmt.executeQuery("SELECT channel,COUNT(*) as count FROM pics GROUP BY channel ORDER BY count DESC;");
  628. StringBuilder sb = new StringBuilder();
  629. sb.append("```Voici les statistiques relatives aux images postées dans les channels nsfw\n");
  630. while (rs.next()) {
  631. if (!rs.getString("channel").contains("imaginaire")) {
  632. sb.append(rs.getString("channel") + ": " + rs.getString("count") + " images postées\n");
  633. }
  634. }
  635. sb.append("```");
  636.  
  637. client.getOrCreatePMChannel(event.getMessage().getAuthor()).sendMessage(sb.toString());
  638.  
  639. rs.close();
  640. stmt.close();
  641. conn.close();
  642.  
  643.  
  644. }
  645. if (event.getMessage().getContent().startsWith("_stats server")) {
  646. event.getMessage().delete();
  647. String imageHentai = " ";
  648. String imagePorn = " ";
  649. System.out.println("Commande _stats server reçue.");
  650. MysqlDataSource dataSource = new MysqlDataSource();
  651.  
  652. dataSource.setUser(user);
  653. dataSource.setPassword(password);
  654. dataSource.setServerName(serverName);
  655. dataSource.setPort(port);
  656. dataSource.setDatabaseName(databaseName);
  657.  
  658. Connection conn = dataSource.getConnection();
  659. Statement stmt = conn.createStatement();
  660. ResultSet rs = stmt.executeQuery("SELECT channel,COUNT(*) as count FROM messages GROUP BY channel ORDER BY count DESC LIMIT 5;");
  661. StringBuilder sb = new StringBuilder();
  662. sb.append("```Voici les statistiques relatives aux messages postés dans les 5 plus gros channels\n");
  663. while (rs.next()) {
  664.  
  665. sb.append(rs.getString("channel") + ": " + rs.getString("count") + " messages postés\n");
  666. }
  667. //sb.append("");
  668. rs = stmt.executeQuery("SELECT channel,COUNT(*) as count FROM messages;");
  669.  
  670. while (rs.next()) {
  671. sb.append(rs.getString("count") + " messages au total.```");
  672. }
  673. client.getOrCreatePMChannel(event.getMessage().getAuthor()).sendMessage(sb.toString());
  674. rs.close();
  675. stmt.close();
  676. conn.close();
  677.  
  678.  
  679.  
  680. }
  681. if (event.getMessage().getContent().equalsIgnoreCase("_roll") ) {
  682.  
  683. try {
  684. String id = "205370456830640128";
  685.  
  686. System.out.println("Commande _roll vocal reçue.");
  687.  
  688. MysqlDataSource dataSource = new MysqlDataSource();
  689.  
  690. dataSource.setUser(user);
  691. dataSource.setPassword(password);
  692. dataSource.setServerName(serverName);
  693. dataSource.setPort(3306);
  694. dataSource.setDatabaseName(databaseName);
  695. boolean identify = false;
  696. Connection conn = dataSource.getConnection();
  697. Statement stmt = conn.createStatement();
  698. ResultSet rs = stmt.executeQuery("SELECT * FROM managers");
  699. while (rs.next()) {
  700. if (event.getMessage().getAuthor().getID().equalsIgnoreCase(rs.getString("id"))) {
  701. identify = true;
  702. }
  703. }
  704.  
  705.  
  706. rs.close();
  707. stmt.close();
  708. conn.close();
  709. if (identify) {
  710. Random r = new Random();
  711. int Low = 0;
  712. int High = event.getMessage().getGuild().getVoiceChannelByID(id).getConnectedUsers().size();
  713. int result = r.nextInt(High - Low) + Low;
  714. System.out.println("name of the user moved: " + event.getMessage().getGuild().getVoiceChannelByID(id).getConnectedUsers().get(result).getName());
  715. IUser user = event.getMessage().getGuild().getVoiceChannelByID(id).getConnectedUsers().get(result);
  716. //IVoiceChannel vChan = event.getMessage().getAuthor().getConnectedVoiceChannels().get(0);
  717. //System.out.println("name of the chanel the user will be moved: " + vChan.getName());
  718. event.getMessage().getChannel().sendMessage("Joueur choisi: " + user.getName());
  719. //user.moveToVoiceChannel(vChan);
  720. }else{
  721. // client.getOrCreatePMChannel(event.getMessage().getAuthor()).sendMessage("Tu n'as pas la permission de faire cette commande!");
  722. }
  723. } catch (Exception e) {
  724. e.printStackTrace();
  725. }
  726. }
  727. if (event.getMessage().getContent().startsWith("_clear tirage")) {
  728.  
  729. try {
  730. String id = "205370456830640128";
  731.  
  732. System.out.println("Commande _clear tirage reçue.");
  733.  
  734. MysqlDataSource dataSource = new MysqlDataSource();
  735.  
  736. dataSource.setUser(user);
  737. dataSource.setPassword(password);
  738. dataSource.setServerName(serverName);
  739. dataSource.setPort(3306);
  740. dataSource.setDatabaseName(databaseName);
  741. boolean identify = false;
  742. Connection conn = dataSource.getConnection();
  743. Statement stmt = conn.createStatement();
  744. ResultSet rs = stmt.executeQuery("SELECT * FROM managers");
  745. while (rs.next()) {
  746. if (event.getMessage().getAuthor().getID().equalsIgnoreCase(rs.getString("id"))) {
  747. identify = true;
  748. }
  749. }
  750.  
  751. for (int i = 0; i < event.getMessage().getAuthor().getRolesForGuild(event.getMessage().getGuild()).size(); i++) {
  752. if (event.getMessage().getAuthor().getRolesForGuild(event.getMessage().getGuild()).get(i).getName().equalsIgnoreCase("Gardiens")) {
  753. identify = true;
  754. }
  755. }
  756.  
  757. rs.close();
  758. stmt.close();
  759. conn.close();
  760.  
  761. if(identify){
  762. event.getMessage().getChannel().sendMessage("Commencement du move de tous les utilisateurs du channel...");
  763.  
  764. for(int i = 0;i<event.getMessage().getGuild().getVoiceChannelByID(id).getConnectedUsers().size(); i++){
  765. event.getMessage().getGuild().getVoiceChannelByID(id).getConnectedUsers().get(i).moveToVoiceChannel(event.getMessage().getGuild().getVoiceChannelByID("199580068152868866"));
  766. }
  767. event.getMessage().getChannel().sendMessage("Tous les utilisateurs ont étés retirés du channel " + event.getMessage().getGuild().getVoiceChannelByID(id).getName());
  768.  
  769. }else{
  770. //client.getOrCreatePMChannel(event.getMessage().getAuthor()).sendMessage("Tu n'as pas la permission de faire cette commande!");
  771. event.getMessage().delete();
  772. }
  773. }catch(Exception e){
  774. e.printStackTrace();
  775. }
  776. }
  777. if (event.getMessage().getContent().startsWith("_clear asmr")) {
  778.  
  779. try {
  780. String id = "201160877926383616";
  781.  
  782. System.out.println("Commande _clear asmr reçue.");
  783.  
  784. MysqlDataSource dataSource = new MysqlDataSource();
  785.  
  786. dataSource.setUser(user);
  787. dataSource.setPassword(password);
  788. dataSource.setServerName(serverName);
  789. dataSource.setPort(3306);
  790. dataSource.setDatabaseName(databaseName);
  791. boolean identify = false;
  792. Connection conn = dataSource.getConnection();
  793. Statement stmt = conn.createStatement();
  794. ResultSet rs = stmt.executeQuery("SELECT * FROM managers");
  795. while (rs.next()) {
  796. if (event.getMessage().getAuthor().getID().equalsIgnoreCase(rs.getString("id"))) {
  797. identify = true;
  798. }
  799. }
  800.  
  801. for (int i = 0; i < event.getMessage().getAuthor().getRolesForGuild(event.getMessage().getGuild()).size(); i++) {
  802. if (event.getMessage().getAuthor().getRolesForGuild(event.getMessage().getGuild()).get(i).getName().equalsIgnoreCase("Gardiens")) {
  803. identify = true;
  804. }
  805. }
  806.  
  807. rs.close();
  808. stmt.close();
  809. conn.close();
  810.  
  811. if(identify){
  812. event.getMessage().getChannel().sendMessage("Commencement du move de tous les utilisateurs du channel...");
  813.  
  814. for(int i = 0;i<event.getMessage().getGuild().getVoiceChannelByID(id).getConnectedUsers().size(); i++){
  815. event.getMessage().getGuild().getVoiceChannelByID(id).getConnectedUsers().get(i).moveToVoiceChannel(event.getMessage().getGuild().getVoiceChannelByID("199580068152868866"));
  816. }
  817. event.getMessage().getChannel().sendMessage("Tous les utilisateurs ont étés retirés du channel " + event.getMessage().getGuild().getVoiceChannelByID(id).getName());
  818.  
  819. }else{
  820. //client.getOrCreatePMChannel(event.getMessage().getAuthor()).sendMessage("Tu n'as pas la permission de faire cette commande!");
  821. event.getMessage().delete();
  822. }
  823. }catch(Exception e){
  824. e.printStackTrace();
  825. }
  826. }
  827.  
  828. if(event.getMessage().getContent().startsWith("_clear") && !event.getMessage().getContent().contains("tirage") && !event.getMessage().getContent().contains("asmr")){
  829. try {
  830. String id = "205370456830640128";
  831.  
  832. System.out.println("Commande _clear asmr reçue.");
  833.  
  834. MysqlDataSource dataSource = new MysqlDataSource();
  835.  
  836. dataSource.setUser(user);
  837. dataSource.setPassword(password);
  838. dataSource.setServerName(serverName);
  839. dataSource.setPort(3306);
  840. dataSource.setDatabaseName(databaseName);
  841. boolean identify = false;
  842. Connection conn = dataSource.getConnection();
  843. Statement stmt = conn.createStatement();
  844. ResultSet rs = stmt.executeQuery("SELECT * FROM managers");
  845. while (rs.next()) {
  846. if (event.getMessage().getAuthor().getID().equalsIgnoreCase(rs.getString("id"))) {
  847. identify = true;
  848. }
  849. }
  850.  
  851. for (int i = 0; i < event.getMessage().getAuthor().getRolesForGuild(event.getMessage().getGuild()).size(); i++) {
  852. if (event.getMessage().getAuthor().getRolesForGuild(event.getMessage().getGuild()).get(i).getName().equalsIgnoreCase("Gardiens")) {
  853. identify = true;
  854. }
  855. }
  856.  
  857. rs.close();
  858. stmt.close();
  859. conn.close();
  860.  
  861. if(identify) {
  862. event.getMessage().getChannel().sendMessage("```diff\n+ Cette commande permet de move les utilisateurs d'un channel dans le channel afk. Tu peux faire:\n- _clear tirage (pour le channel tirage au sort)\n- _clear asmr (se passe de commentaires)```");
  863. }
  864. }catch(Exception e){
  865. e.printStackTrace();
  866. }
  867. }
  868. if (event.getMessage().getChannel().getName().contains("nsfw") && !event.getMessage().getChannel().getName().contains("anon")) {
  869. TextUtils tu = new TextUtils();
  870. String msg = event.getMessage().getContent();
  871. List<IMessage.Attachment> attach = event.getMessage().getAttachments();
  872.  
  873. for (int a = 0; a < attach.size(); a++) {
  874. MysqlDataSource dataSource = new MysqlDataSource();
  875.  
  876. dataSource.setUser(user);
  877. dataSource.setPassword(password);
  878. dataSource.setServerName(serverName);
  879. dataSource.setPort(port);
  880. dataSource.setDatabaseName(databaseName);
  881.  
  882. Connection conn = dataSource.getConnection();
  883. Statement stmt = conn.createStatement();
  884. if (attach.get(a).getUrl().endsWith(".gif")) {
  885. int rs = stmt.executeUpdate("INSERT INTO pics (link, channel, author_id, author_name, gif) VALUES ('" + attach.get(a).getUrl() + "', '" + event.getMessage().getChannel().getName() + "', '" + event.getMessage().getAuthor().getID() + "', '" + event.getMessage().getAuthor().getName() + "', " + true + ")");
  886.  
  887. } else {
  888. int rs = stmt.executeUpdate("INSERT INTO pics (link, channel, author_id, author_name, gif) VALUES ('" + attach.get(a).getUrl() + "', '" + event.getMessage().getChannel().getName() + "', '" + event.getMessage().getAuthor().getID() + "', '" + event.getMessage().getAuthor().getName() + "', " + false + ")");
  889.  
  890. }
  891.  
  892. System.out.println("Ajout dans la db fait: " + attach.get(a).getUrl());
  893. stmt.close();
  894. conn.close();
  895. }
  896. if (msg.contains("http://")) {
  897. System.out.println("http:// found");
  898. MysqlDataSource dataSource = new MysqlDataSource();
  899.  
  900. dataSource.setUser(user);
  901. dataSource.setPassword(password);
  902. dataSource.setServerName(serverName);
  903. dataSource.setPort(port);
  904. dataSource.setDatabaseName(databaseName);
  905.  
  906. Connection conn = dataSource.getConnection();
  907. Statement stmt = conn.createStatement();
  908. for (int i = 0; i < picsEnd.size(); i++) {
  909. if (msg.contains(picsEnd.get(i))) {
  910. if (picsEnd.get(i).equalsIgnoreCase(".gif")) {
  911. int rs = stmt.executeUpdate("INSERT INTO pics (link, channel, author_id, author_name, gif) VALUES ('http://" + tu.getBetweenTags(msg, "http://", picsEnd.get(i), 0) + picsEnd.get(i) + "', '" + event.getMessage().getChannel().getName() + "', '" + event.getMessage().getAuthor().getID() + "', '" + event.getMessage().getAuthor().getName() + "', " + true + ")");
  912. } else {
  913. int rs = stmt.executeUpdate("INSERT INTO pics (link, channel, author_id, author_name, gif) VALUES ('http://" + tu.getBetweenTags(msg, "http://", picsEnd.get(i), 0) + picsEnd.get(i) + "', '" + event.getMessage().getChannel().getName() + "', '" + event.getMessage().getAuthor().getID() + "', '" + event.getMessage().getAuthor().getName() + "', " + false + ")");
  914.  
  915. }
  916. System.out.println("Ajout dans la db fait: http://" + tu.getBetweenTags(msg, "http://", picsEnd.get(i), 0) + picsEnd.get(i));
  917. }
  918. }
  919.  
  920. stmt.close();
  921. conn.close();
  922. }
  923. if (msg.contains("https://")) {
  924. System.out.println("https:// found");
  925.  
  926. MysqlDataSource dataSource = new MysqlDataSource();
  927.  
  928. dataSource.setUser(user);
  929. dataSource.setPassword(password);
  930. dataSource.setServerName(serverName);
  931. dataSource.setPort(port);
  932. dataSource.setDatabaseName(databaseName);
  933.  
  934. Connection conn = dataSource.getConnection();
  935. Statement stmt = conn.createStatement();
  936. for (int i = 0; i < picsEnd.size(); i++) {
  937. if (msg.contains(picsEnd.get(i))) {
  938. System.out.println();
  939. if (picsEnd.get(i).equalsIgnoreCase(".gif")) {
  940. int rs = stmt.executeUpdate("INSERT INTO pics (link, channel, author_id, author_name, gif) VALUES ('https://" + tu.getBetweenTags(msg, "https://", picsEnd.get(i), 0) + picsEnd.get(i) + "', '" + event.getMessage().getChannel().getName() + "', '" + event.getMessage().getAuthor().getID() + "', '" + event.getMessage().getAuthor().getName() + "', " + true + ")");
  941. } else {
  942.  
  943. int rs = stmt.executeUpdate("INSERT INTO pics (link, channel, author_id, author_name, gif) VALUES ('https://" + tu.getBetweenTags(msg, "https://", picsEnd.get(i), 0) + picsEnd.get(i) + "', '" + event.getMessage().getChannel().getName() + "', '" + event.getMessage().getAuthor().getID() + "', '" + event.getMessage().getAuthor().getName() + "', " + false + ")");
  944.  
  945. }
  946. System.out.println("Ajout dans la db fait: https://" + tu.getBetweenTags(msg, "https://", picsEnd.get(i), 0) + picsEnd.get(i));
  947.  
  948. }
  949. }
  950.  
  951. stmt.close();
  952. conn.close();
  953. }
  954.  
  955.  
  956. }
  957. }
  958. }
  959. }catch(Exception e){
  960. e.printStackTrace();
  961. }
  962. }
  963.  
  964. public String suppressInjection(String str) {
  965. String msg = str;
  966. int i = 0;
  967. TextUtils tu = new TextUtils();
  968. int from = 0;
  969. for(int ia = 0; i<tu.numberOfOccurrences(msg, "'"); i++){
  970.  
  971. StringBuilder sb = new StringBuilder();
  972. sb.append(msg.substring(0, msg.indexOf("'", from)));
  973. sb.append("\\");
  974. sb.append(msg.substring(msg.indexOf("'", from), msg.length()));
  975. msg = sb.toString();
  976. from = msg.indexOf("'") + 1;
  977. }
  978. return msg;
  979.  
  980. }
  981. public File image(IUser user, IGuild guild, IChannel channel) throws IOException, RateLimitException, DiscordException, MissingPermissionsException {
  982. String userName = user.getName();
  983. String police = "orbitron-black";
  984. final BufferedImage image = ImageIO.read(new URL(Main.urlBG));
  985. URL url = new URL("http://equinox.ovh/sardoche.png");
  986. URLConnection uc = url.openConnection();
  987. uc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
  988.  
  989. BufferedImage avatar = ImageIO.read(new URL("http://equinox.ovh/sardoche.png"));
  990.  
  991. try {
  992.  
  993. System.setProperty("http.agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0");
  994. // avatar = ImageIO.read(new URL(user.getAvatarURL()));
  995. } catch (Exception e){
  996.  
  997. e.printStackTrace();
  998. avatar = ImageIO.read(url);
  999.  
  1000. }
  1001.  
  1002. Graphics2D g = (Graphics2D) image.getGraphics();
  1003. g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  1004.  
  1005.  
  1006. if(user.getID().equals("177397082338885632") || user.getID().equals("109693334498316288")){
  1007. final BufferedImage sub = ImageIO.read(new URL("https://cdn.discordapp.com/attachments/210027383925768192/211211679566921729/kutsa__Linada.png"));
  1008. g.drawImage(sub, 1125, 0, 640, 512, null);
  1009. }else{
  1010. for (int i = 0; i < user.getRolesForGuild(guild).size(); i++) {
  1011. if (user.getRolesForGuild(guild).get(i).getName().equalsIgnoreCase("Subs")) {
  1012. final BufferedImage sub = ImageIO.read(new URL("https://discordcdn.com/attachments/202075269400363008/210383582957404171/Sans_titre-1.png"));
  1013. g.drawImage(sub, 1125, 0, null);
  1014. }
  1015. }
  1016. }
  1017. g.setFont(g.getFont().deriveFont(30f));
  1018.  
  1019. g.setColor(hex2Rgb("kokoro" + userName));
  1020. double pourcentage = getLevelProgreesion(user);
  1021. double angle = pourcentage * 360 / 100D;
  1022. int angleF = (int) angle;
  1023. g.fillArc(45, 35, 280, 280, 360 - (angleF - 90), angleF);
  1024.  
  1025. g.setColor(Color.white);
  1026.  
  1027. g.drawImage(makeRoundedCorner(avatar, 150), 60, 50, 250, 250, null);
  1028.  
  1029. g.setFont(new Font(police, Font.BOLD, 40));
  1030. int largeur = 380;
  1031.  
  1032. g.drawString(userName, largeur, 65);
  1033. if (user.getPresence().getPlayingText().toString().length() > 2) {
  1034. g.setFont(new Font(police, Font.BOLD, 30));
  1035. if (user.getPresence().getStatus().equals(StatusType.STREAMING)) {
  1036. g.drawString("Stream: " +user.getPresence().getPlayingText(), largeur, 100);
  1037. } else {
  1038. g.drawString("Joue à " + user.getPresence().getPlayingText(), largeur, 100);
  1039.  
  1040. }
  1041.  
  1042. }
  1043. g.setFont(new Font(police, Font.BOLD, 27));
  1044. g.drawString(getMessagesPosted(user) + " messages postés", largeur, 130);
  1045. g.drawString(getImagePosted(user) + " images postées dans les channels nsfw", largeur, 170);
  1046. // g.drawString(getSardCoins(user) + " SardCoins, rank " + getRank(user), largeur, 210);
  1047.  
  1048. //ImageIO.write(image, "png", new File("image.png"));
  1049.  
  1050.  
  1051. String urlOsuu = urlOsu(user);
  1052. if (!urlOsuu.equalsIgnoreCase("nope")) {
  1053. final BufferedImage osu = ImageIO.read(new URL(urlOsuu));
  1054. //ImageIO.write(image, "png", new File("image.png"));
  1055. //File osu = new File("image.png");
  1056. g.drawImage(osu, 45, 525, 886, 246, null);
  1057. }
  1058.  
  1059. //g.drawString(getWinrate(user) + "% de winrate, sur " + getTotalParis(user) + " paris", largeur, 255);
  1060. g.setPaint(Color.white);
  1061.  
  1062.  
  1063. g.setColor(Color.gray);
  1064. g.drawString("LVL " + getLvl(user), 135, 360);
  1065.  
  1066. g.dispose();
  1067.  
  1068. ImageIO.write(image, "png", new File("test.png"));
  1069. File outputFile = new File("test.png");
  1070.  
  1071. return outputFile;
  1072.  
  1073.  
  1074.  
  1075. }
  1076. public String getTotalParis(IUser user){
  1077. String win = "0";
  1078. String lose = "0";
  1079. try {
  1080. MysqlDataSource dataSource = new MysqlDataSource();
  1081.  
  1082.  
  1083. dataSource.setUser(this.user);
  1084. dataSource.setPassword(this.password);
  1085. dataSource.setServerName(this.serverName);
  1086. dataSource.setPort(this.port);
  1087. dataSource.setDatabaseName(this.databaseName);
  1088.  
  1089. Connection conn = dataSource.getConnection();
  1090. Statement stmt = conn.createStatement();
  1091. ResultSet rs = stmt.executeQuery("SELECT * FROM `users` WHERE IDdiscord='" + user.getID() + "'");
  1092. while (rs.next()) {
  1093. win = rs.getString("win");
  1094.  
  1095. }
  1096.  
  1097. rs.close();
  1098. stmt.close();
  1099. conn.close();
  1100. }catch(Exception e){
  1101. e.printStackTrace();
  1102. }
  1103. try {
  1104. MysqlDataSource dataSource = new MysqlDataSource();
  1105.  
  1106.  
  1107. dataSource.setUser(this.user);
  1108. dataSource.setPassword(this.password);
  1109. dataSource.setServerName(this.serverName);
  1110. dataSource.setPort(this.port);
  1111. dataSource.setDatabaseName(this.databaseName);
  1112.  
  1113. Connection conn = dataSource.getConnection();
  1114. Statement stmt = conn.createStatement();
  1115. ResultSet rs = stmt.executeQuery("SELECT * FROM `users` WHERE IDdiscord='" + user.getID() + "'");
  1116. while (rs.next()) {
  1117. lose = rs.getString("loose");
  1118.  
  1119. }
  1120.  
  1121. rs.close();
  1122. stmt.close();
  1123. conn.close();
  1124. }catch(Exception e){
  1125. e.printStackTrace();
  1126. }
  1127. int iwin = Integer.parseInt(win);
  1128. int ilose = Integer.parseInt(lose);
  1129.  
  1130. int total = iwin + ilose;
  1131. return "" + total;
  1132. }
  1133. public String getWinrate(IUser user){
  1134. String win = "0";
  1135. String lose = "0";
  1136. try {
  1137. MysqlDataSource dataSource = new MysqlDataSource();
  1138.  
  1139.  
  1140. dataSource.setUser(this.user);
  1141. dataSource.setPassword(this.password);
  1142. dataSource.setServerName(this.serverName);
  1143. dataSource.setPort(this.port);
  1144. dataSource.setDatabaseName(this.databaseName);
  1145.  
  1146. Connection conn = dataSource.getConnection();
  1147. Statement stmt = conn.createStatement();
  1148. ResultSet rs = stmt.executeQuery("SELECT * FROM `users` WHERE IDdiscord='" + user.getID() + "'");
  1149. while (rs.next()) {
  1150. win = rs.getString("win");
  1151.  
  1152. }
  1153.  
  1154. rs.close();
  1155. stmt.close();
  1156. conn.close();
  1157. }catch(Exception e){
  1158. e.printStackTrace();
  1159. }
  1160. try {
  1161. MysqlDataSource dataSource = new MysqlDataSource();
  1162.  
  1163.  
  1164. dataSource.setUser(this.user);
  1165. dataSource.setPassword(this.password);
  1166. dataSource.setServerName(this.serverName);
  1167. dataSource.setPort(this.port);
  1168. dataSource.setDatabaseName(this.databaseName);
  1169.  
  1170. Connection conn = dataSource.getConnection();
  1171. Statement stmt = conn.createStatement();
  1172. ResultSet rs = stmt.executeQuery("SELECT * FROM `users` WHERE IDdiscord='" + user.getID() + "'");
  1173. while (rs.next()) {
  1174. lose = rs.getString("loose");
  1175.  
  1176. }
  1177.  
  1178. rs.close();
  1179. stmt.close();
  1180. conn.close();
  1181. }catch(Exception e){
  1182. e.printStackTrace();
  1183. }
  1184. int iwin = Integer.parseInt(win);
  1185. int ilose = Integer.parseInt(lose);
  1186. if((iwin + ilose) == 0){
  1187. return "0";
  1188. }else {
  1189. int winrate = iwin * 100 / (iwin + ilose);
  1190. return "" + winrate;
  1191. }
  1192. }
  1193.  
  1194. public static BufferedImage makeRoundedCorner(BufferedImage image, int cornerRadius) {
  1195. int w = image.getWidth();
  1196. int h = image.getHeight();
  1197. BufferedImage output = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
  1198.  
  1199. Graphics2D g2 = output.createGraphics();
  1200.  
  1201. // This is what we want, but it only does hard-clipping, i.e. aliasing
  1202. // g2.setClip(new RoundRectangle2D ...)
  1203.  
  1204. // so instead fake soft-clipping by first drawing the desired clip shape
  1205. // in fully opaque white with antialiasing enabled...
  1206. g2.setComposite(AlphaComposite.Src);
  1207. g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  1208. g2.setColor(Color.WHITE);
  1209. g2.fill(new RoundRectangle2D.Float(0, 0, w, h, cornerRadius, cornerRadius));
  1210.  
  1211. // ... then compositing the image on top,
  1212. // using the white shape from above as alpha source
  1213. g2.setComposite(AlphaComposite.SrcAtop);
  1214. g2.drawImage(image, 0, 0, null);
  1215.  
  1216. g2.dispose();
  1217.  
  1218. return output;
  1219. }
  1220. public String urlOsu(IUser user) {
  1221. String osuName = "aucun";
  1222. String mode = "1";
  1223. try {
  1224. MysqlDataSource dataSource = new MysqlDataSource();
  1225.  
  1226.  
  1227. dataSource.setUser(this.user);
  1228. dataSource.setPassword(this.password);
  1229. dataSource.setServerName(this.serverName);
  1230. dataSource.setPort(this.port);
  1231. dataSource.setDatabaseName(this.databaseName);
  1232.  
  1233. Connection conn = dataSource.getConnection();
  1234. Statement stmt = conn.createStatement();
  1235. ResultSet rs = stmt.executeQuery("SELECT * FROM `linkedAccounts` WHERE `user_id` LIKE '" + user.getID() + "' ");
  1236. while (rs.next()) {
  1237. osuName = rs.getString("osu_ign");
  1238. mode = rs.getString("osu_data_ign");
  1239.  
  1240. }
  1241.  
  1242. rs.close();
  1243. stmt.close();
  1244. conn.close();
  1245. } catch (Exception e) {
  1246. e.printStackTrace();
  1247. }
  1248. if (osuName.equalsIgnoreCase("aucun")) {
  1249. return "nope";
  1250. } else {
  1251. return "http://lemmmy.pw/osusig/sig.php?colour=hex" + hex2RgbString("kokoro" + user.getName()) + "&mode=" + mode + "&uname=" + osuName + "&pp=1&countryrank&flagshadow&flagstroke&onlineindicator=2&xpbar&xpbarhex";
  1252. }
  1253. }
  1254. public Color hex2Rgb(String str) {
  1255. String colorStr = String.format("#%X", str.hashCode());
  1256.  
  1257. return new Color(
  1258. Integer.valueOf( colorStr.substring( 1, 3 ), 16 ),
  1259. Integer.valueOf( colorStr.substring( 3, 5 ), 16 ),
  1260. Integer.valueOf( colorStr.substring( 5, 7 ), 16 ) );
  1261. }
  1262. public String hex2RgbString(String str) {
  1263. String colorStr = String.format("#%X", str.hashCode());
  1264.  
  1265. return Integer.toHexString(new Color(
  1266. Integer.valueOf( colorStr.substring( 1, 3 ), 16 ),
  1267. Integer.valueOf( colorStr.substring( 3, 5 ), 16 ),
  1268. Integer.valueOf( colorStr.substring( 5, 7 ), 16 ) ).getRGB()).substring(2);
  1269. }
  1270. public void drawCircle(Graphics g, int x, int y, int radius, Color color) {
  1271.  
  1272. int diameter = radius * 2;
  1273. Graphics2D g2 = (Graphics2D)g;
  1274. g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
  1275. RenderingHints.VALUE_ANTIALIAS_ON);
  1276. //shift x and y by the radius of the circle in order to correctly center it
  1277. g2.fillOval(x - radius, y - radius, diameter, diameter);
  1278.  
  1279. }
  1280. public String getMessagesPosted(IUser user){
  1281. String result = "aucun";
  1282. try {
  1283. MysqlDataSource dataSource = new MysqlDataSource();
  1284.  
  1285.  
  1286. dataSource.setUser(this.user);
  1287. dataSource.setPassword(this.password);
  1288. dataSource.setServerName(this.serverName);
  1289. dataSource.setPort(this.port);
  1290. dataSource.setDatabaseName(this.databaseName);
  1291.  
  1292. Connection conn = dataSource.getConnection();
  1293. Statement stmt = conn.createStatement();
  1294. ResultSet rs = stmt.executeQuery("SELECT author,COUNT(*) as count FROM messages WHERE author='" + user.getName() + "' GROUP BY author ORDER BY count DESC;");
  1295. while (rs.next()) {
  1296. result = rs.getString("count");
  1297.  
  1298. }
  1299.  
  1300. rs.close();
  1301. stmt.close();
  1302. conn.close();
  1303. }catch(Exception e){
  1304. e.printStackTrace();
  1305. }
  1306. return result;
  1307.  
  1308. }
  1309. public String getImagePosted(IUser user){
  1310. String result = "aucune";
  1311. try {
  1312. MysqlDataSource dataSource = new MysqlDataSource();
  1313.  
  1314. dataSource.setUser(this.user);
  1315. dataSource.setPassword(this.password);
  1316. dataSource.setServerName(this.serverName);
  1317. dataSource.setPort(this.port);
  1318. dataSource.setDatabaseName(this.databaseName);
  1319.  
  1320. Connection conn = dataSource.getConnection();
  1321. Statement stmt = conn.createStatement();
  1322.  
  1323. ResultSet rs = stmt.executeQuery("SELECT author_name,COUNT(*) as count FROM pics WHERE author_name='" + user.getName() + "' GROUP BY author_name ORDER BY count DESC;");
  1324.  
  1325. while (rs.next()) {
  1326. result = rs.getString("count");
  1327.  
  1328. }
  1329.  
  1330. rs.close();
  1331. stmt.close();
  1332. conn.close();
  1333. }catch(Exception e){
  1334. e.printStackTrace();
  1335. }
  1336. return result;
  1337. }
  1338. public Double getLevelProgreesion(IUser user){
  1339. String result = "0";
  1340. try {
  1341. MysqlDataSource dataSource = new MysqlDataSource();
  1342.  
  1343. dataSource.setUser(this.user);
  1344. dataSource.setPassword(this.password);
  1345. dataSource.setServerName(this.serverName);
  1346. dataSource.setPort(this.port);
  1347. dataSource.setDatabaseName(this.databaseName);
  1348.  
  1349. Connection conn = dataSource.getConnection();
  1350. Statement stmt = conn.createStatement();
  1351.  
  1352. ResultSet rs = stmt.executeQuery("SELECT * FROM levels WHERE id='" + user.getID() + "'");
  1353. int xp = 0;
  1354. while (rs.next()) {
  1355. xp = Integer.parseInt(rs.getString("xpTotal"));
  1356.  
  1357. }
  1358.  
  1359. if(xp>75000){
  1360. result = "100";
  1361. }else if(xp>61000){
  1362. int maxXp = 75000 - 61000;
  1363. int curXp = xp - 61000;
  1364. int re = (curXp * 100) / maxXp;
  1365. result = "" + re;
  1366. }
  1367. else if(xp>50500){
  1368. int maxXp = 61000 - 50500;
  1369. int curXp = xp - 50500;
  1370. int re = (curXp * 100) / maxXp;
  1371. result = "" + re;
  1372. }
  1373. else if(xp>41000){
  1374. int maxXp = 50500 - 41000;
  1375. int curXp = xp - 41000;
  1376. int re = (curXp * 100) / maxXp;
  1377. result = "" + re;
  1378. }
  1379. else if(xp>32600){
  1380. int maxXp = 41000 - 32600;
  1381. int curXp = xp - 32600;
  1382. int re = (curXp * 100) / maxXp;
  1383. result = "" + re;
  1384. }
  1385.  
  1386. else if(xp>25200){
  1387. int maxXp = 32600 - 25200;
  1388. int curXp = xp - 25200;
  1389. int re = (curXp * 100) / maxXp;
  1390. result = "" + re;
  1391. }
  1392. else if(xp>19200){
  1393. int maxXp = 25200 - 19200;
  1394. int curXp = xp - 19200;
  1395. int re = (curXp * 100) / maxXp;
  1396. result = "" + re;
  1397. }
  1398. else if(xp>14500){
  1399. int maxXp = 19200 - 14500;
  1400. int curXp = xp - 14500;
  1401. int re = (curXp * 100) / maxXp;
  1402. result = "" + re;
  1403. }
  1404. else if(xp>10500){
  1405. int maxXp = 14500 - 10500;
  1406. int curXp = xp - 10500;
  1407. int re = (curXp * 100) / maxXp;
  1408. result = "" + re;
  1409. }
  1410. else if(xp>7300){
  1411. int maxXp = 10500 - 7300;
  1412. int curXp = xp - 7300;
  1413. int re = (curXp * 100) / maxXp;
  1414. result = "" + re;
  1415. }
  1416. else if(xp>4800){
  1417. int maxXp = 7300 - 4800;
  1418. int curXp = xp - 4800;
  1419. int re = (curXp * 100) / maxXp;
  1420. result = "" + re;
  1421. }
  1422. else if(xp>2800){
  1423. int maxXp = 4800 - 2800;
  1424. int curXp = xp - 2800;
  1425. int re = (curXp * 100) / maxXp;
  1426. result = "" + re;
  1427. }
  1428. else if(xp>1500){
  1429. int maxXp = 2800 - 1500;
  1430. int curXp = xp - 1500;
  1431. int re = (curXp * 100) / maxXp;
  1432. result = "" + re;
  1433. }
  1434. else if(xp>650){
  1435. int maxXp = 1500 - 650;
  1436. int curXp = xp - 650;
  1437. int re = (curXp * 100) / maxXp;
  1438. result = "" + re;
  1439. }
  1440. else if(xp>110){
  1441. int maxXp = 650 - 110;
  1442. int curXp = xp - 110;
  1443. int re = (curXp * 100) / maxXp;
  1444. result = "" + re;
  1445. }
  1446. else{
  1447. int maxXp = 110 - 0;
  1448. int curXp = xp - 0;
  1449. int re = (curXp * 100) / maxXp;
  1450. result = "" + re;
  1451. }
  1452.  
  1453.  
  1454. rs.close();
  1455. stmt.close();
  1456. conn.close();
  1457. }catch(Exception e){
  1458. e.printStackTrace();
  1459. }
  1460. return Double.parseDouble(result);
  1461. }
  1462.  
  1463. public String getLvl(IUser user){
  1464. String result = "1";
  1465. try {
  1466. MysqlDataSource dataSource = new MysqlDataSource();
  1467.  
  1468. dataSource.setUser(this.user);
  1469. dataSource.setPassword(this.password);
  1470. dataSource.setServerName(this.serverName);
  1471. dataSource.setPort(this.port);
  1472. dataSource.setDatabaseName(this.databaseName);
  1473.  
  1474. Connection conn = dataSource.getConnection();
  1475. Statement stmt = conn.createStatement();
  1476.  
  1477. ResultSet rs = stmt.executeQuery("SELECT * FROM levels WHERE id='" + user.getID() + "'");
  1478. int xp = 1;
  1479. while (rs.next()) {
  1480. xp = Integer.parseInt(rs.getString("xpTotal"));
  1481.  
  1482. }
  1483. System.out.println(xp);
  1484. if(xp>75000){
  1485. result = "16";
  1486. }else if(xp>61000){
  1487. result = "15";
  1488. }
  1489. else if(xp>50500){
  1490. result = "15";
  1491. }
  1492. else if(xp>41000){
  1493. result = "13";
  1494. }
  1495. else if(xp>32600){
  1496. result = "12";
  1497. }
  1498. else if(xp>25200){
  1499. result = "11";
  1500. }
  1501. else if(xp>19200){
  1502. result = "10";
  1503. }
  1504. else if(xp>14500){
  1505. result = "9";
  1506. }
  1507. else if(xp>10500){
  1508. result = "8";
  1509. }
  1510. else if(xp>7300){
  1511. result = "7";
  1512. }
  1513. else if(xp>4800){
  1514. result = "6";
  1515. }
  1516. else if(xp>2800){
  1517. result = "5";
  1518. }
  1519. else if(xp>1500){
  1520. result = "4";
  1521. }
  1522. else if(xp>650){
  1523. result = "3";
  1524. }
  1525. else if(xp>110){
  1526. result = "2";
  1527. }
  1528. else{
  1529. result = "1";
  1530. }
  1531.  
  1532.  
  1533.  
  1534. rs.close();
  1535. stmt.close();
  1536. conn.close();
  1537. }catch(Exception e){
  1538. e.printStackTrace();
  1539. }
  1540. return result;
  1541. }
  1542.  
  1543. public String getSardCoins(IUser user){
  1544. String result = "aucun";
  1545. try {
  1546. MysqlDataSource dataSource = new MysqlDataSource();
  1547.  
  1548. dataSource.setUser(this.eUser);
  1549. dataSource.setPassword(this.ePassword);
  1550. dataSource.setServerName(this.eServerName);
  1551. dataSource.setPort(this.port);
  1552. dataSource.setDatabaseName(this.eDatabaseName);
  1553.  
  1554. Connection conn = dataSource.getConnection();
  1555. Statement stmt = conn.createStatement();
  1556.  
  1557. ResultSet rs = stmt.executeQuery("SELECT * FROM `users` WHERE IDdiscord='" + user.getID() + "'");
  1558.  
  1559. while (rs.next()) {
  1560. result = rs.getString("bank");
  1561.  
  1562. }
  1563.  
  1564. rs.close();
  1565. stmt.close();
  1566. conn.close();
  1567. }catch(Exception e){
  1568. e.printStackTrace();
  1569. }
  1570. return result;
  1571. }
  1572. public String getRank(IUser user){
  1573. String result = "aucun";
  1574. try {
  1575. MysqlDataSource dataSource = new MysqlDataSource();
  1576.  
  1577. dataSource.setUser(this.eUser);
  1578. dataSource.setPassword(this.ePassword);
  1579. dataSource.setServerName(this.eServerName);
  1580. dataSource.setPort(this.port);
  1581. dataSource.setDatabaseName(this.eDatabaseName);
  1582.  
  1583. Connection conn = dataSource.getConnection();
  1584. Statement stmt = conn.createStatement();
  1585.  
  1586. ResultSet rs = stmt.executeQuery("SELECT * FROM `users` WHERE IDdiscord='" + user.getID() + "'");
  1587.  
  1588. while (rs.next()) {
  1589. result = rs.getString("rank");
  1590.  
  1591. }
  1592. rs.close();
  1593.  
  1594. stmt.close();
  1595. conn.close();
  1596. }catch(Exception e){
  1597. e.printStackTrace();
  1598. }
  1599. int a = Integer.parseInt(result);
  1600. a++;
  1601. return "" + a;
  1602. }
  1603. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement