Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.climaxcraft.xenfororegister.bungee;
- import java.io.BufferedInputStream;
- import java.io.DataInputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.regex.Pattern;
- import org.json.JSONObject;
- import com.climaxcraft.xenfororegister.util.PasswordSecurity;
- import net.md_5.bungee.api.ChatColor;
- import net.md_5.bungee.api.CommandSender;
- import net.md_5.bungee.api.ProxyServer;
- import net.md_5.bungee.api.connection.ProxiedPlayer;
- import net.md_5.bungee.api.plugin.Command;
- public class RegisterCommand extends Command {
- String prefix = "§4§lM.A.D. §8| ";
- protected RegisterCommand() {
- super("forum");
- }
- public static boolean isRegistered(ProxiedPlayer p) throws SQLException {
- // User ist in der ForenDB
- String statement = "SELECT COUNT(*) FROM `xf_user` WHERE username = '" + p.getName() + "';";
- ResultSet rs = XenforoRegister.instance.db.executeQueryWithResults(statement);
- if (rs.first()) {
- if (rs.getInt("COUNT(*)") == 1) {
- return true;
- } else {
- return false;
- }
- }
- return false;
- }
- public static boolean samePassword(String string, String password) throws SQLException {
- //User ist in der ForenDB
- String statement = "SELECT DISTINCT password FROM `authme` WHERE username = '" + string + "';";
- ResultSet rs = XenforoRegister.instance.login.executeQueryWithResults(statement);
- if (rs.first()) {
- String passworddb = rs.getString("password");
- if(PasswordSecurity.comparePassword(passworddb, password)) {
- return true;
- } else {
- return false;
- }
- }
- return false;
- }
- @SuppressWarnings("deprecation")
- public void execute(CommandSender commandSender, final String[] strings) {
- try {
- if (XenforoRegister.configObj.getString("apiKey").equalsIgnoreCase("xxxxxx")) {
- commandSender.sendMessage(ChatColor.DARK_RED
- + "Configuration for plugin not set up - please refer this message to an administrator.");
- return;
- }
- } catch (Exception e3) {
- e3.printStackTrace();
- if ((commandSender instanceof ProxiedPlayer)) {
- final ProxiedPlayer p = (ProxiedPlayer) commandSender;
- if (strings.length == 2) {
- ProxyServer.getInstance().getScheduler().runAsync(XenforoRegister.instance, new Runnable() {
- public void run() {
- String password = strings[1];
- String email = strings[0];
- String[] emailproviderarray = email.split(Pattern.quote("@"));
- String emailprovider = "*" + emailproviderarray[1];
- try {
- if (XenforoRegister.configObj.getBoolean("enforceMaxRegistrations")) {
- String statement = "SELECT COUNT(*) FROM `xf_ban_email` WHERE banned_email = '"
- + emailprovider + "';";
- ResultSet rs = XenforoRegister.instance.db.executeQueryWithResults(statement);
- if ((rs.first()) && (rs.getInt("COUNT(*)") == 1)) {
- p.sendMessage(RegisterCommand.this.prefix
- + "§cBitte verwende eine richtige Emailadresse. Keine Trash-EMail!");
- return;
- }
- if (samePassword(p.getName(), password)) {
- p.sendMessage(RegisterCommand.this.prefix
- + "§cBitte verwende ein anderes Passwort als dein InGame-Passwort!");
- return;
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- try {
- URL api = new URL(XenforoRegister.configObj.getString("apiLoc")
- + "?action=register&hash=" + XenforoRegister.configObj.getString("apiKey")
- + "&username=" + p.getName() + "&password=" + password + "&email=" + email
- + "&user_state="
- + XenforoRegister.configObj.getString("default_user_state"));
- HttpURLConnection conn = (HttpURLConnection) api.openConnection();
- conn.setInstanceFollowRedirects(true);
- DataInputStream result;
- if (conn.getResponseCode() == 400) {
- result = new DataInputStream(new BufferedInputStream(conn.getErrorStream()));
- } else {
- result = new DataInputStream(new BufferedInputStream(conn.getInputStream()));
- }
- String json = result.readLine();
- if (json == null) {
- p.sendMessage(RegisterCommand.this.prefix + ChatColor.RED
- + "Das hat nicht geklappt :/ - Bitte an einen Admin wenden!");
- }
- JSONObject obj = new JSONObject(json);
- if (!obj.has("error")) {
- p.sendMessage(RegisterCommand.this.prefix
- + "§6Fertig! §aDu hast dich erfolgreich in unserem Forum registriert. Forum: http://www.mad-gamble.net/forum");
- XenforoRegister.instance.getLogger().info(RegisterCommand.this.prefix + "User "
- + p.getName() + " has registered on the site.");
- } else {
- p.sendMessage(RegisterCommand.this.prefix
- + "§cDu hast dich bereits im Forum registriert!");
- }
- } catch (Exception e) {
- p.sendMessage(RegisterCommand.this.prefix
- + "§cDas hat nicht geklappt :/ Bitte an einen Admin wenden!");
- e.printStackTrace();
- }
- }
- });
- } else {
- p.sendMessage(this.prefix + ChatColor.RED
- + "Verwende: /forum <Email> <Passwort> um dich zu registrieren.");
- }
- } else {
- commandSender.sendMessage(this.prefix + ChatColor.RED + "Dieser Befehl ist nur für Spieler.");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement