mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 22:56:45 +01:00
Converting from MySQL -> FlatFile now accounts for users that don't exist yet in mcmmo.users
Fixes #3130
This commit is contained in:
parent
3dca32a226
commit
1e8d950767
@ -40,6 +40,7 @@ Version 2.1.0
|
||||
= (Skills) Added missing mushroom blocks to experience.yml defaults
|
||||
= (Skills) Tridents will no longer be considered unarmed
|
||||
= (MySQL) You can now inspect offline players
|
||||
= (MySQL) When converting from MySQL to flatfile mcMMO will now properly include all users in the conversion process
|
||||
! (Party) Party member list will only include members of the party that you can see (aren't vanished)
|
||||
! (Skills) mcMMO skills will now be on a scale from 1-100 instead of 0-1000 (for existing mcMMO installs this is opt-in and off by default)
|
||||
! (Skills) Skill Super Powers (Tree Feller, etc...) will now require level 10+ to use
|
||||
|
@ -268,6 +268,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
|
||||
StringBuilder writer = new StringBuilder();
|
||||
String line;
|
||||
|
||||
boolean wroteUser = false;
|
||||
// While not at the end of the file
|
||||
while ((line = in.readLine()) != null) {
|
||||
// Read the line in and copy it to the output if it's not the player we want to edit
|
||||
@ -277,6 +278,50 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
|
||||
}
|
||||
else {
|
||||
// Otherwise write the new player information
|
||||
writeUserToLine(profile, playerName, uuid, writer);
|
||||
wroteUser = true;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If we couldn't find the user in the DB we need to add him
|
||||
*/
|
||||
if(!wroteUser)
|
||||
{
|
||||
writeUserToLine(profile, playerName, uuid, writer);
|
||||
}
|
||||
|
||||
// Write the new file
|
||||
out = new FileWriter(usersFilePath);
|
||||
out.write(writer.toString());
|
||||
return true;
|
||||
}
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
finally {
|
||||
if (in != null) {
|
||||
try {
|
||||
in.close();
|
||||
}
|
||||
catch (IOException e) {
|
||||
// Ignore
|
||||
}
|
||||
}
|
||||
if (out != null) {
|
||||
try {
|
||||
out.close();
|
||||
}
|
||||
catch (IOException e) {
|
||||
// Ignore
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void writeUserToLine(PlayerProfile profile, String playerName, UUID uuid, StringBuilder writer) {
|
||||
writer.append(playerName).append(":");
|
||||
writer.append(profile.getSkillLevel(PrimarySkill.MINING)).append(":");
|
||||
writer.append(":");
|
||||
@ -324,37 +369,6 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
|
||||
writer.append(profile.getUniqueData(UniqueDataType.CHIMAERA_WING_DATS)).append(":");
|
||||
writer.append("\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
// Write the new file
|
||||
out = new FileWriter(usersFilePath);
|
||||
out.write(writer.toString());
|
||||
return true;
|
||||
}
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
finally {
|
||||
if (in != null) {
|
||||
try {
|
||||
in.close();
|
||||
}
|
||||
catch (IOException e) {
|
||||
// Ignore
|
||||
}
|
||||
}
|
||||
if (out != null) {
|
||||
try {
|
||||
out.close();
|
||||
}
|
||||
catch (IOException e) {
|
||||
// Ignore
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public List<PlayerStat> readLeaderboard(PrimarySkill skill, int pageNumber, int statsPerPage) {
|
||||
updateLeaderboards();
|
||||
|
Loading…
Reference in New Issue
Block a user