Untitled
unknown
plain_text
3 years ago
8.9 kB
13
Indexable
package ballistickemu.Lobby.handlers;
import ballistickemu.Lobby.LobbyServer;
import ballistickemu.Main;
import ballistickemu.Tools.DatabaseTools;
import ballistickemu.Tools.StickPacketMaker;
import ballistickemu.Tools.StringTool;
import ballistickemu.Types.StickClient;
import ballistickemu.Types.StickClientRegistry;
import ballistickemu.Types.StickColour;
import ballistickemu.Types.StickItem;
import java.io.PrintStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.LinkedHashMap;
import org.apache.mina.core.session.IoSession;
public class LoginHandler
{
public static void HandlePacket(StickClient paramStickClient, String paramString)
{
String[] arrayOfString = paramString.replaceAll("\000", "").substring(2).split(";");
if (arrayOfString[0].length() > 20)
{
paramStickClient.getIoSession().close(true);
return;
}
String str1 = "";
try
{
str1 = arrayOfString[1];
} catch (Exception localException1) {
localException1.printStackTrace();
}
try
{
if ((DatabaseTools.getDbConnection().isClosed()) || (DatabaseTools.getDbConnection() == null)) {
DatabaseTools.dbConnect();
}
PreparedStatement localPreparedStatement1 = DatabaseTools.getDbConnection().prepareStatement("SELECT * FROM `users` WHERE `USERname` = ? AND `USERpass` = ?");
localPreparedStatement1.setString(1, arrayOfString[0]);
localPreparedStatement1.setString(2, str1);
ResultSet localResultSet = localPreparedStatement1.executeQuery();
localResultSet.last();
int i = localResultSet.getRow();
if (i < 1)
{
paramStickClient.write(StickPacketMaker.getLoginFailed());
return;
}
String str2 = StringTool.PadStringLeft(arrayOfString[0], "#", 20);
String str3 = StringTool.PadStringLeft(String.valueOf(localResultSet.getInt("red")), "0", 3);
String str4 = StringTool.PadStringLeft(String.valueOf(localResultSet.getInt("green")), "0", 3);
String str5 = StringTool.PadStringLeft(String.valueOf(localResultSet.getInt("blue")), "0", 3);
String str6 = str3 + str4 + str5;
int j = localResultSet.getInt("kills");
int k = localResultSet.getInt("deaths");
int m = localResultSet.getInt("wins");
int n = localResultSet.getInt("losses");
int i1 = localResultSet.getInt("rounds");
int i2 = localResultSet.getInt("passexpiry");
int i3 = localResultSet.getInt("cash");
int i4 = localResultSet.getInt("ticket");
int i5 = localResultSet.getInt("labpass");
int i6 = localResultSet.getInt("user_level");
int i7 = localResultSet.getInt("UID");
paramStickClient.setName(arrayOfString[0]);
paramStickClient.setColour1(str6);
paramStickClient.setColour2(str6);
paramStickClient.setKills(j);
paramStickClient.setDeaths(k);
paramStickClient.setWins(m);
paramStickClient.setLosses(n);
paramStickClient.setRounds(i1);
paramStickClient.setPassExpiry(i2);
paramStickClient.setCash(i3);
paramStickClient.setTicket(i4);
paramStickClient.setPass(Boolean.valueOf(i5 == 1));
paramStickClient.setModStatus(Boolean.valueOf(i6 > 0));
paramStickClient.setUserLevel(i6);
paramStickClient.setDbID(i7);
Boolean localBoolean1 = Boolean.valueOf(false);
Boolean localBoolean2 = Boolean.valueOf(false);
if (localResultSet.getInt("ban") == 1)
{
paramStickClient.write(StickPacketMaker.getErrorPacket("1"));
return;
}
while (!localBoolean1.booleanValue())
{
localObject1 = DatabaseTools.getDbConnection().prepareStatement("SELECT * FROM `inventory` WHERE `userid` = ?");
((PreparedStatement)localObject1).setInt(1, i7);
localResultSet = ((PreparedStatement)localObject1).executeQuery();
localResultSet.last();
if (localResultSet.getRow() > 1)
localBoolean2 = Boolean.valueOf(false);
PreparedStatement localPreparedStatement2;
Object localObject2; Object localObject3; if (localResultSet.getRow() < 2)
{
localPreparedStatement2 = DatabaseTools.getDbConnection().prepareStatement("DELETE FROM `inventory` where `userid` = ?");
localPreparedStatement2.setInt(1, i7);
localPreparedStatement2.executeUpdate();
localObject2 = DatabaseTools.getDbConnection().prepareStatement("INSERT INTO `inventory` (`userid`, `itemid`, `itemtype`, `red1`, `green1`, `blue1`, `red2`, `green2`, `blue2`, `selected`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
((PreparedStatement)localObject2).setInt(1, paramStickClient.getDbID());
((PreparedStatement)localObject2).setInt(2, 100);
((PreparedStatement)localObject2).setInt(3, 1);
((PreparedStatement)localObject2).setInt(4, paramStickClient.getStickColour().getRed1());
((PreparedStatement)localObject2).setInt(5, paramStickClient.getStickColour().getGreen1());
((PreparedStatement)localObject2).setInt(6, paramStickClient.getStickColour().getBlue1());
((PreparedStatement)localObject2).setInt(7, paramStickClient.getStickColour().getRed2());
((PreparedStatement)localObject2).setInt(8, paramStickClient.getStickColour().getGreen2());
((PreparedStatement)localObject2).setInt(9, paramStickClient.getStickColour().getBlue2());
((PreparedStatement)localObject2).setInt(10, 1);
((PreparedStatement)localObject2).executeUpdate();
((PreparedStatement)localObject2).close();
localObject3 = DatabaseTools.getDbConnection().prepareStatement("INSERT INTO `inventory` (`userid`, `itemid`, `itemtype`, `red1`, `green1`, `blue1`, `red2`, `green2`, `blue2`, `selected`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
((PreparedStatement)localObject3).setInt(1, paramStickClient.getDbID());
((PreparedStatement)localObject3).setInt(2, 200);
((PreparedStatement)localObject3).setInt(3, 2);
((PreparedStatement)localObject3).setInt(4, 0);
((PreparedStatement)localObject3).setInt(5, 0);
((PreparedStatement)localObject3).setInt(6, 0);
((PreparedStatement)localObject3).setInt(7, 0);
((PreparedStatement)localObject3).setInt(8, 0);
((PreparedStatement)localObject3).setInt(9, 0);
((PreparedStatement)localObject3).setInt(10, 1);
((PreparedStatement)localObject3).executeUpdate();
((PreparedStatement)localObject3).close();
localBoolean2 = Boolean.valueOf(true);
}
if (!localBoolean2.booleanValue())
{
localPreparedStatement2 = DatabaseTools.getDbConnection().prepareStatement("SELECT * FROM `inventory` WHERE `userid` = ?");
localPreparedStatement2.setInt(1, i7);
localObject2 = localPreparedStatement2.executeQuery();
while (((ResultSet)localObject2).next())
{
localObject3 = new StickColour(((ResultSet)localObject2).getInt("red1"), ((ResultSet)localObject2).getInt("green1"), ((ResultSet)localObject2).getInt("blue1"), ((ResultSet)localObject2).getInt("red2"), ((ResultSet)localObject2).getInt("green2"), ((ResultSet)localObject2).getInt("blue2"));
int i8 = ((ResultSet)localObject2).getInt("id");
int i9 = ((ResultSet)localObject2).getInt("itemid");
paramStickClient.getInventory().put(Integer.valueOf(i8), new StickItem(i9, i8, i7, ((ResultSet)localObject2).getInt("itemtype"), Boolean.valueOf(((ResultSet)localObject2).getInt("selected") == 1), (StickColour)localObject3));
}
localBoolean1 = Boolean.valueOf(true);
((ResultSet)localObject2).close();
localPreparedStatement2.close();
}
localResultSet.close();
((PreparedStatement)localObject1).close();
}
str6 = paramStickClient.getSelectedSpinner().getColour().getColour1AsString();
Object localObject1 = paramStickClient.getSelectedSpinner().getColour().getColour2AsString();
paramStickClient.write(StickPacketMaker.getLoginSuccess(paramStickClient.getUID(), str2, str6, (String)localObject1, j, k, m, n, i1, i5, i2, i4, i3, i6));
Main.getLobbyServer().getClientRegistry().registerClient(paramStickClient);
paramStickClient.setIsReal(Boolean.valueOf(true));
}
catch (Exception localException2)
{
System.out.println("Exception at login: + " + localException2.toString());
localException2.printStackTrace();
}
}
}Editor is loading...