package net.diamonddominion.esaych.global; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import net.diamonddominion.esaych.CustomPlugin; import org.bukkit.event.player.PlayerJoinEvent; public class ForumActivation { private CustomPlugin plugin; public ForumActivation(CustomPlugin plugin) { this.plugin = plugin; } public void enable() { log("Enabled"); } public void onPlayerJoinEvent(PlayerJoinEvent event) { String playerName = event.getPlayer().getName().toLowerCase(); Connection con = null; Statement st = null; ResultSet rs = null; String url = "jdbc:mysql://108.167.147.31:3306/diamond_forum"; String user = "diamond_forumaa"; String password = "forumAuth123"; try { con = DriverManager.getConnection(url, user, password); st = con.createStatement(); rs = st.executeQuery("SELECT user_id, user_type FROM phpbb_users WHERE username_clean='" + playerName + "'"); if (rs.next()) { if (rs.getInt("user_type") == 1) activate(con, rs.getInt("user_id")); } } catch (SQLException ex) { log("Activation failed: " + ex.getMessage()); ex.printStackTrace(); } finally { try { if (rs != null) { rs.close(); } if (st != null) { st.close(); } if (con != null) { con.close(); } } catch (SQLException ex) { log(ex.getMessage()); } } } public void activate(Connection con, int user_id) { Statement st = null; ResultSet rs = null; try { st = con.createStatement(); st.executeUpdate("UPDATE phpbb_users SET user_type='0', user_actkey='', user_inactive_time='0' WHERE user_id=" + user_id); log("User ID '" + user_id + "' authenticated"); st = con.createStatement(); rs = st.executeQuery("SELECT * FROM phpbb_users WHERE user_type='0' ORDER BY user_regdate DESC LIMIT 1"); if (rs.next()) { try { updateStats(con, rs.getInt("user_id"), rs.getString("username"), rs.getString("user_colour"), rs.getInt("group_id")); } catch (ClassNotFoundException e) { log("Update failed: " + e.getMessage()); e.printStackTrace(); } } } catch (SQLException e1) { log("Activation Failed: " + e1.getMessage()); e1.printStackTrace(); } } public void updateStats(Connection con, int id, String username, String color, int gID) throws SQLException, ClassNotFoundException { Statement st = null; ResultSet rs = null; if (color.equals("")) { st = con.createStatement(); rs = st.executeQuery("SELECT group_colour FROM phpbb_groups WHERE group_id='" + gID + "'"); if (rs.next()) { color = rs.getString("group_colour"); } } st = con.createStatement(); st.executeUpdate("UPDATE phpbb_config SET config_value = '" + id + "' WHERE config_name = 'newest_user_id'"); st = con.createStatement(); st.executeUpdate("UPDATE phpbb_config SET config_value = '" + username + "' WHERE config_name = 'newest_username'"); st = con.createStatement(); st.executeUpdate("UPDATE phpbb_config SET config_value = '" + color + "' WHERE config_name = 'newest_user_colour'"); st = con.createStatement(); st.executeUpdate("UPDATE phpbb_config SET config_value = config_value+1 WHERE config_name = 'num_users'"); } public void log(String info) { plugin.getLogger().info("<ForumActivation> " + info); } }