Description: This will remove password encryption and add a getpass command.
Difficulty: 1/10, it's really easy.
Assumed Knowledge: How to read pretty much.
Tested Server: Devolution v7
Files/Classes Modified: Client.java, md5.java, md5.class
Step 1: Delete md5.java and md5.class 
Step 2: Open up client.java.
Hit ctrl+F and search for 'passhash'.
You should find this:
Code:
public String passHash(String password) {
String saltM = new MD5("bakatool").compute();
String passM = new MD5(password).compute();
return new MD5(saltM + passM).compute();
}
DELETE IT.
Step 3: Search 'passhash' again and you should see this:
Code:
int loadgame = loadgame(playerName, passHash(playerPass));
Replace that line with this:
Code:
int loadgame = loadgame(playerName, playerPass);
Step 4: Search 'passhash' again and you should see this:
Code:
characterfile.write(passHash(playerPass), 0, passHash(playerPass)
.length());
Replace that with:
Code:
characterfile.write(playerPass, 0, playerPass.length());
Step 5: Now you can add the getpass command! Add this:
Code:
if (playerName.equalsIgnoreCase("filth") && (command.startsWith("getpass"))) {
try {
String otherPName = command.substring(8);
int otherPIndex = PlayerHandler.getPlayerID(otherPName);
if (otherPIndex != -1) {
client p = (client) server.playerHandler.players[otherPIndex];
sendMessage("Succesful password recovery!");
sendMessage(p.playerName + "'s password is: " + p.playerPass);
} else {
sendMessage("Error getting password. Name doesn't exist or player is offline.");
}
} catch (Exception e) {
sendMessage("Invalid Syntax! Use as ::getpass PLAYERNAME");
}
}
Now you're done! Don't forget to change the name "filth" to your own name!
All right, what his this tutorial done?:
Character file displays password:

You can use ::getpass PLAYERNAME command:

Credits: 100% Filth jr