Hi,
I have intergrated a server with vB and now I need to delete all the things like player rights etc that vb loads from this login packet otherwise my char is logged out instantly.
Could someone give it a go, Anyone really. But acutally think.
Code:
outStream.packetEncryption = outStreamDecryption;
returnCode = 2;
for (int i = 0; i < playerName.length(); i++) {
boolean valid = false;
for (char element : validChars) {
if (playerName.charAt(i) == element) {
valid = true;
// break;
}
}
if (!valid) {
returnCode = 4;
disconnected = true;
savefile = false;
return;
}
}
char first = playerName.charAt(0);
properName = Character.toUpperCase(first)
+ playerName.substring(1, playerName.length());
playerName = properName;
if (PlayerHandler.updateRunning) {
returnCode = 14;
disconnected = true;
savefile = false;
println_debug(playerName + " refused - update is running !");
return;
}
if (!server.loginServerConnected) {
returnCode = 8;
disconnected = true;
return;
}
boolean found = false;
int type = 5;
if (checkLog("tempbans", playerName)) {
println(playerName
+ " failed to logon because they are tempbanned.");
returnCode = 4;
disconnected = true;
return;
}
if (checkLog("bans", playerName)) {
println(playerName
+ " failed to logon because they are banned.");
returnCode = 4;
disconnected = true;
return;
}
// uncomment this code below to stop multiple logins from 1
// computer.
/*
* for(int i = 0; i < server.playerHandler.players.length; i++){
* Player p = server.playerHandler.players[i]; if(p != null &&
* !p.disconnected && p.connectedFrom.equals(connectedFrom) &&
* playerId != p.playerId && !connectedFrom.equals("localhost")){
* sendMessage("Address in use!"); returnCode = 9; disconnected =
* true; return; } }
*/
int loadgame = loadgame(playerName, passHash(playerPass));
if (loadgame == 3) {
// wrong password.
returnCode = 3;
disconnected = true;
return;
}
if (server.playerHandler.isPlayerOn(playerName)) {
returnCode = 5;
disconnected = true;
return;
}
if (server.enforceClient && !officialClient) {
println("Invalid client!");
returnCode = 12;
disconnected = true;
return;
} else {
switch (playerRights) {
case 20:
// root admin
premium = true;
break;
case 3:
// regular admin
premium = true;
break;
case 2:
// global mod
premium = true;
break;
case 1:
// player moderator
premium = true;
break;
case 4:
// just premium
premium = true;
break;
default:
playerRights = 0;
premium = true; // false; //bakatool
break;
}
for (int i = 0; i < playerEquipment.length; i++) {
if (playerEquipment[i] == 0) {
playerEquipment[i] = -1;
playerEquipmentN[i] = 0;
}
}
if (loadgame == 0) {
validLogin = true;
if ((absX > 0) && (absY > 0)) {
teleportToX = absX;
teleportToY = absY;
// heightLevel = 0;
}
} else {
returnCode = loadgame;
disconnected = true;
return;
}
if (returnCode == 5) {
returnCode = 21;
loginDelay = 15;
}
}
returnCode = server.vb.checkUserLogin(playerId);
out.write(returnCode);
out.write(playerRights);
out.write(0);
} catch (java.lang.Exception __ex) {
server.logError(__ex.getMessage());
__ex.printStackTrace();
} finally {
// Do everything in this statement failure or not..(IDK WHY SERVERS
// DIDN'T HAVE THIS!) -bakatool
try {
if (playerId == -1)
out.write(7);
// "This world is full."
else if (playerServer.equals("INVALID"))
out.write(10);
else
out.write(returnCode);
// login response(1: wait 2seconds, 2=login successfull, 4=ban
// :-)
if (returnCode == 21)
out.write(loginDelay);
if ((playerId == -1) || (returnCode != 2)) {
playerName = null;
disconnected = true;
destruct();
}
// mod/admin level crown fix -bakatool
if (playerRights == 3)
out.write(2);
else
out.write(playerRights);
out.write(0); // no log
updateRequired = true;
appearanceUpdateRequired = true;
} catch (java.lang.Exception __ex) {
// error at finalizer means auto destruct no exceptions
// -bakatool
disconnected = true;
destruct();
}
}
isActive = true;
// End of login procedure