Advertisement
Guest User

Untitled

a guest
Feb 26th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.90 KB | None | 0 0
  1. package eu.kingdomsmc.networksync.forum;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.io.Reader;
  8. import java.net.HttpURLConnection;
  9. import java.net.MalformedURLException;
  10. import java.net.URL;
  11. import java.nio.charset.Charset;
  12. import java.sql.ResultSet;
  13. import java.sql.SQLException;
  14.  
  15. import org.json.JSONException;
  16. import org.json.simpleForBukkit.JSONObject;
  17.  
  18. import eu.kingdomsmc.networksync.NetworkSyncPLUGIN;
  19. import net.md_5.bungee.api.CommandSender;
  20. import net.md_5.bungee.api.connection.ProxiedPlayer;
  21. import net.md_5.bungee.api.plugin.Command;
  22.  
  23. public class ForumSync extends Command {
  24.  
  25. private static String site, apiHash, usernameField, uuidField;
  26. private static final String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
  27. private static final String USER_AGENT = "Mozilla/5.0";
  28.  
  29. public static String prefix = "§7§l[§3§lSync§7§l] ";
  30.  
  31. public ForumSync() {
  32. super("forum");
  33. site = "NEIN";
  34. apiHash = "NEIN";
  35. usernameField = "custom_field_names.minecraft_username";
  36. uuidField = "custom_field_names.minecraft_uuide";
  37. }
  38.  
  39. @SuppressWarnings("deprecation")
  40. @Override
  41. public void execute(CommandSender sender, String[] args) {
  42. ProxiedPlayer player = (ProxiedPlayer) sender;
  43. String uuid = player.getUniqueId().toString();
  44.  
  45. if (args.length == 0) {
  46. player.sendMessage(prefix + "§7/forum register <eMail> <Passwort> §8| §7Erstelle die einen Forum Account.");
  47. player.sendMessage(prefix + "§7/forum changePasswort <neuesPasswort> §8| §7Ändere dein Forum passwort.");
  48. player.sendMessage(prefix + "§7/forum info §8| §7Zeige dein Aktuelles passwort an.");
  49. } else if (args.length == 1) {
  50. if (args[0].equalsIgnoreCase("info")) {
  51. player.sendMessage(prefix + "Deine Email: §c" + getInfos(player.getUniqueId().toString(), "Email"));
  52. player.sendMessage(
  53. prefix + "Deine Passwort: §c" + getInfos(player.getUniqueId().toString(), "Passwort"));
  54.  
  55. }
  56. } else if (args.length == 2) {
  57. if (args[0].equalsIgnoreCase("changePasswort")) {
  58. String newPassword = args[1];
  59. String link = "api.php?action=editUser&hash=" + apiHash + "&user=" + player.getName() + "&password="
  60. + newPassword;
  61.  
  62. NetworkSyncPLUGIN.getSql().getMySQL().queryUpdate("UPDATE forumRegistery SET Passwort='" + newPassword
  63. + "' WHERE UUID='" + player.getUniqueId().toString() + "'");
  64.  
  65. try {
  66. URL url = new URL(site + link);
  67. HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  68. conn.setDoOutput(true);
  69. conn.connect();
  70. BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  71. StringBuilder results = new StringBuilder();
  72.  
  73. player.sendMessage(prefix + "§aDas Passwort deines Accounds wurde erfolgreich geändert!");
  74.  
  75. conn.disconnect();
  76.  
  77. } catch (MalformedURLException e) {
  78. e.printStackTrace();
  79. player.sendMessage("Es ist ein fehler unterlaufen. Bitte an einen Administrator wenden. #1742");
  80.  
  81. } catch (IOException e) {
  82. e.printStackTrace();
  83. player.sendMessage(
  84. prefix + "Es ist ein fehler unterlaufen. Bitte an einen Administrator wenden. #1741");
  85. }
  86.  
  87. }
  88.  
  89. } else if (args.length == 3) {
  90. if (args[0].equalsIgnoreCase("register")) {
  91. String eMail = args[1];
  92. String passwort = args[2];
  93.  
  94. if (!isRegistery(uuid)) {
  95. player.sendMessage(registerUse(player.getName(), player.getUniqueId().toString(), eMail, passwort));
  96. } else {
  97. player.sendMessage(prefix + "§cDu hast dich schon registriert.");
  98. player.sendMessage(prefix + "§7Benutze §c/forum info §7um deine Daten einzusehen!");
  99.  
  100. }
  101.  
  102. }
  103.  
  104. } else {
  105. player.sendMessage(prefix + "§7/forum register <eMail> <Passwort> §8| §7Erstelle die einen Forum Account.");
  106. player.sendMessage(prefix + "§7/forum changePasswort <neuesPasswort> §8| §7Ändere dein Forum passwort.");
  107. player.sendMessage(prefix + "§7/forum info §8| §7Zeige dein Aktuelles passwort an.");
  108. }
  109.  
  110. }
  111.  
  112.  
  113.  
  114.  
  115. private static String readAll(Reader rd) throws IOException {
  116. StringBuilder sb = new StringBuilder();
  117. int cp;
  118. while ((cp = rd.read()) != -1) {
  119. sb.append((char) cp);
  120. }
  121. return sb.toString();
  122. }
  123.  
  124. public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {
  125. InputStream is = new URL(url).openStream();
  126.  
  127. try {
  128. BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
  129. String jsonText = readAll(rd);
  130. JSONObject json = new JSONObject(jsonText);
  131. return json;
  132. } finally {
  133. is.close();
  134. }
  135.  
  136. }
  137.  
  138. public static String getUser() {
  139. String link = "api.php?action=getConversations&value=MisterHase&hash=" + apiHash;
  140.  
  141. try {
  142. JSONObject jason = readJsonFromUrl(link);
  143. if(jason.get("title").equals("Chat mit MisterHase")){
  144. return String.valueOf(jason.get("conversation_id"));
  145. }
  146. } catch (IOException e) {
  147. e.printStackTrace();
  148. } catch (JSONException e) {
  149. e.printStackTrace();
  150. }
  151.  
  152. return "KEINE";
  153.  
  154. }
  155.  
  156. private static String registerUse(String playerName, String UUID, String eMail, String password) {
  157. if (eMail.contains("=") || eMail.contains("&")) {
  158. return prefix + "Die Angegebende Email ist ungültig!";
  159. }
  160.  
  161. if (!eMail.matches(EMAIL_PATTERN)) {
  162. return prefix + "Die Angegebende Email ist ungültig!";
  163.  
  164. }
  165.  
  166. try {
  167.  
  168. String link = "api.php?action=register&hash=" + apiHash + "&username=" + playerName.replace('&', '.')
  169. + "&password=" + password + "&email=" + eMail.replace('&', '.').replace('=', '.')
  170. + "&custom_fields=" + usernameField + "=" + usernameField + "," + uuidField + "=" + uuidField
  171. + "&user_state=email_confirm";
  172.  
  173. URL url = new URL(site + link);
  174. HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  175. conn.setDoOutput(true);
  176. conn.connect();
  177. BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  178. StringBuilder results = new StringBuilder();
  179. System.out.println("ForumRegistery.registerUse()");
  180.  
  181. String inputLine;
  182.  
  183. while ((inputLine = reader.readLine()) != null) {
  184. System.out.println("ForumRegistery.registerUse() +1");
  185. if (inputLine
  186. .contains("{\"error\":7,\"message\":\"Something went wrong when \\\"registering user\\\": \\\""
  187. + "User already exists\\\"\",\"user_error_id\":40,\"user_error_field\":\"username\",\""
  188. + "user_error_key\":\"usernames_must_be_unique\",\"user_error_phrase\":\"Usernames must be unique."
  189. + " The specified username is already in use.\"}"))
  190. return prefix + "Es ist ein fehler unterlaufen. Bitte an einen Administrator wenden. #1744";
  191.  
  192. if (inputLine
  193. .contains("{\"error\":7,\"message\":\"Something went wrong when \\\"registering user\\\": \\\""
  194. + "Email already used\\\"\",\"user_error_id\":42,\"user_error_field\":\"email\",\"user_error_key\":\""
  195. + "email_addresses_must_be_unique\",\"user_error_phrase\":\"Email addresses must be unique. "
  196. + "The specified email address is already in use.\"}"))
  197. return prefix + "Es ist ein fehler unterlaufen. Bitte an einen Administrator wenden. #1743";
  198. }
  199.  
  200. conn.disconnect();
  201.  
  202. } catch (MalformedURLException e) {
  203. e.printStackTrace();
  204. return prefix + "Es ist ein fehler unterlaufen. Bitte an einen Administrator wenden. #1742";
  205.  
  206. } catch (IOException e) {
  207. e.printStackTrace();
  208. return prefix + "Es ist ein fehler unterlaufen. Bitte an einen Administrator wenden. #1741";
  209. }
  210.  
  211. NetworkSyncPLUGIN.getSql().getMySQL()
  212. .queryUpdate("INSERT INTO forumRegistery (UUID, Name, Email, Passwort) VALUES ('" + UUID + "','"
  213. + playerName + "','" + eMail + "','" + password + "');");
  214.  
  215. NetworkSyncPLUGIN.getSql().getMySQL()
  216. .queryUpdate("INSERT INTO forumInfos (UUID, username, gender, groupName) VALUES ('" + UUID + "','"
  217. + playerName + "','" + "undefinded" + "','" + "Registered" + "');");
  218.  
  219. return prefix + "§aDein Account wurde erfolgreich Erstellt. Überprüfe deine Emails!";
  220. }
  221.  
  222. public static String getInfos(String UUID, String info) {
  223. ResultSet result = NetworkSyncPLUGIN.getSql().getMySQL()
  224. .query("SELECT * FROM forumRegistery WHERE UUID='" + UUID + "'");
  225.  
  226. try {
  227. if (result.next()) {
  228. return result.getString(info);
  229. } else {
  230. return "Kein Forum Account.";
  231. }
  232. } catch (Exception e) {
  233. // TODO: handle exception
  234. }
  235.  
  236. return "Error";
  237.  
  238. }
  239.  
  240. private boolean isRegistery(String uuid) {
  241. ResultSet result = NetworkSyncPLUGIN.getSql().getMySQL()
  242. .query("SELECT * FROM forumRegistery WHERE UUID='" + uuid + "'");
  243.  
  244. try {
  245. return result.next();
  246. } catch (SQLException e) {
  247. e.printStackTrace();
  248. }
  249. return false;
  250.  
  251. }
  252. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement