mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-24 14:16:45 +01:00
Update FlatFile for new skill cds
This commit is contained in:
parent
7e3826a4d6
commit
7973ccc848
@ -290,6 +290,7 @@ public class FlatFileDataProcessor {
|
|||||||
case COOLDOWN_CHIMAERA_WING:
|
case COOLDOWN_CHIMAERA_WING:
|
||||||
case COOLDOWN_SUPER_SHOTGUN:
|
case COOLDOWN_SUPER_SHOTGUN:
|
||||||
case COOLDOWN_TRIDENTS:
|
case COOLDOWN_TRIDENTS:
|
||||||
|
case COOLDOWN_ARCHERY:
|
||||||
return ExpectedType.INTEGER;
|
return ExpectedType.INTEGER;
|
||||||
case EXP_MINING:
|
case EXP_MINING:
|
||||||
case EXP_WOODCUTTING:
|
case EXP_WOODCUTTING:
|
||||||
|
@ -86,10 +86,11 @@ public final class FlatFileDatabaseManager implements DatabaseManager {
|
|||||||
public static final int SKILLS_TRIDENTS = 48;
|
public static final int SKILLS_TRIDENTS = 48;
|
||||||
public static final int COOLDOWN_SUPER_SHOTGUN = 49;
|
public static final int COOLDOWN_SUPER_SHOTGUN = 49;
|
||||||
public static final int COOLDOWN_TRIDENTS = 50;
|
public static final int COOLDOWN_TRIDENTS = 50;
|
||||||
|
public static final int COOLDOWN_ARCHERY = 51;
|
||||||
|
//Update this everytime new data is added
|
||||||
|
public static final int DATA_ENTRY_COUNT = COOLDOWN_ARCHERY + 1;
|
||||||
|
|
||||||
public static final int DATA_ENTRY_COUNT = COOLDOWN_TRIDENTS + 1; //Update this everytime new data is added
|
FlatFileDatabaseManager(@NotNull File usersFile, @NotNull Logger logger, long purgeTime, int startingLevel, boolean testing) {
|
||||||
|
|
||||||
protected FlatFileDatabaseManager(@NotNull File usersFile, @NotNull Logger logger, long purgeTime, int startingLevel, boolean testing) {
|
|
||||||
this.usersFile = usersFile;
|
this.usersFile = usersFile;
|
||||||
this.usersFilePath = usersFile.getPath();
|
this.usersFilePath = usersFile.getPath();
|
||||||
this.logger = logger;
|
this.logger = logger;
|
||||||
@ -105,7 +106,7 @@ public final class FlatFileDatabaseManager implements DatabaseManager {
|
|||||||
List<FlatFileDataFlag> flatFileDataFlags = checkFileHealthAndStructure();
|
List<FlatFileDataFlag> flatFileDataFlags = checkFileHealthAndStructure();
|
||||||
|
|
||||||
if(flatFileDataFlags != null) {
|
if(flatFileDataFlags != null) {
|
||||||
if(flatFileDataFlags.size() > 0) {
|
if(!flatFileDataFlags.isEmpty()) {
|
||||||
logger.info("Detected "+flatFileDataFlags.size() + " data entries which need correction.");
|
logger.info("Detected "+flatFileDataFlags.size() + " data entries which need correction.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -114,7 +115,7 @@ public final class FlatFileDatabaseManager implements DatabaseManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected FlatFileDatabaseManager(@NotNull String usersFilePath, @NotNull Logger logger, long purgeTime, int startingLevel) {
|
FlatFileDatabaseManager(@NotNull String usersFilePath, @NotNull Logger logger, long purgeTime, int startingLevel) {
|
||||||
this(new File(usersFilePath), logger, purgeTime, startingLevel, false);
|
this(new File(usersFilePath), logger, purgeTime, startingLevel, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -243,7 +244,7 @@ public final class FlatFileDatabaseManager implements DatabaseManager {
|
|||||||
out.write(writer.toString());
|
out.write(writer.toString());
|
||||||
|
|
||||||
if(testing) {
|
if(testing) {
|
||||||
System.out.println(writer.toString());
|
System.out.println(writer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (IOException e) {
|
catch (IOException e) {
|
||||||
@ -575,16 +576,11 @@ public final class FlatFileDatabaseManager implements DatabaseManager {
|
|||||||
* @return a profile with the targets data or an unloaded profile if no data was found
|
* @return a profile with the targets data or an unloaded profile if no data was found
|
||||||
*/
|
*/
|
||||||
private @NotNull PlayerProfile processUserQuery(@NotNull UserQuery userQuery) throws RuntimeException {
|
private @NotNull PlayerProfile processUserQuery(@NotNull UserQuery userQuery) throws RuntimeException {
|
||||||
switch(userQuery.getType()) {
|
return switch (userQuery.getType()) {
|
||||||
case UUID_AND_NAME:
|
case UUID_AND_NAME -> queryByUUIDAndName((UserQueryFull) userQuery);
|
||||||
return queryByUUIDAndName((UserQueryFull) userQuery);
|
case UUID -> queryByUUID((UserQueryUUID) userQuery);
|
||||||
case UUID:
|
case NAME -> queryByName((UserQueryNameImpl) userQuery);
|
||||||
return queryByUUID((UserQueryUUID) userQuery);
|
};
|
||||||
case NAME:
|
|
||||||
return queryByName((UserQueryNameImpl) userQuery);
|
|
||||||
default:
|
|
||||||
throw new RuntimeException("No case for this UserQueryType!");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private @NotNull PlayerProfile queryByName(@NotNull UserQueryName userQuery) {
|
private @NotNull PlayerProfile queryByName(@NotNull UserQueryName userQuery) {
|
||||||
@ -690,7 +686,7 @@ public final class FlatFileDatabaseManager implements DatabaseManager {
|
|||||||
* No match was found in the file
|
* No match was found in the file
|
||||||
*/
|
*/
|
||||||
|
|
||||||
return grabUnloadedProfile(uuid, "Player-Not-Found="+uuid.toString());
|
return grabUnloadedProfile(uuid, "Player-Not-Found="+ uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
private @NotNull PlayerProfile queryByUUIDAndName(@NotNull UserQueryFull userQuery) {
|
private @NotNull PlayerProfile queryByUUIDAndName(@NotNull UserQueryFull userQuery) {
|
||||||
@ -725,7 +721,7 @@ public final class FlatFileDatabaseManager implements DatabaseManager {
|
|||||||
boolean matchingName = dbPlayerName.equalsIgnoreCase(playerName);
|
boolean matchingName = dbPlayerName.equalsIgnoreCase(playerName);
|
||||||
|
|
||||||
if (!matchingName) {
|
if (!matchingName) {
|
||||||
logger.warning("When loading user: "+playerName +" with UUID of (" + uuid.toString()
|
logger.warning("When loading user: "+playerName +" with UUID of (" + uuid
|
||||||
+") we found a mismatched name, the name in the DB will be replaced (DB name: "+dbPlayerName+")");
|
+") we found a mismatched name, the name in the DB will be replaced (DB name: "+dbPlayerName+")");
|
||||||
//logger.info("Name updated for player: " + rawSplitData[USERNAME_INDEX] + " => " + playerName);
|
//logger.info("Name updated for player: " + rawSplitData[USERNAME_INDEX] + " => " + playerName);
|
||||||
rawSplitData[USERNAME_INDEX] = playerName;
|
rawSplitData[USERNAME_INDEX] = playerName;
|
||||||
@ -1111,7 +1107,7 @@ public final class FlatFileDatabaseManager implements DatabaseManager {
|
|||||||
public @Nullable List<FlatFileDataFlag> checkFileHealthAndStructure() {
|
public @Nullable List<FlatFileDataFlag> checkFileHealthAndStructure() {
|
||||||
ArrayList<FlatFileDataFlag> flagsFound = null;
|
ArrayList<FlatFileDataFlag> flagsFound = null;
|
||||||
LogUtils.debug(logger, "(" + usersFile.getPath() + ") Validating database file..");
|
LogUtils.debug(logger, "(" + usersFile.getPath() + ") Validating database file..");
|
||||||
FlatFileDataProcessor dataProcessor = null;
|
FlatFileDataProcessor dataProcessor;
|
||||||
|
|
||||||
if (usersFile.exists()) {
|
if (usersFile.exists()) {
|
||||||
BufferedReader bufferedReader = null;
|
BufferedReader bufferedReader = null;
|
||||||
@ -1143,7 +1139,7 @@ public final class FlatFileDatabaseManager implements DatabaseManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Only update the file if needed
|
//Only update the file if needed
|
||||||
if(dataProcessor.getFlatFileDataFlags().size() > 0) {
|
if(!dataProcessor.getFlatFileDataFlags().isEmpty()) {
|
||||||
flagsFound = new ArrayList<>(dataProcessor.getFlatFileDataFlags());
|
flagsFound = new ArrayList<>(dataProcessor.getFlatFileDataFlags());
|
||||||
logger.info("Updating FlatFile Database...");
|
logger.info("Updating FlatFile Database...");
|
||||||
fileWriter = new FileWriter(usersFilePath);
|
fileWriter = new FileWriter(usersFilePath);
|
||||||
@ -1161,7 +1157,7 @@ public final class FlatFileDatabaseManager implements DatabaseManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(flagsFound == null || flagsFound.size() == 0) {
|
if(flagsFound == null || flagsFound.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
return flagsFound;
|
return flagsFound;
|
||||||
@ -1251,7 +1247,7 @@ public final class FlatFileDatabaseManager implements DatabaseManager {
|
|||||||
tryLoadSkillCooldownFromRawData(skillsDATS, character, SuperAbilityType.BERSERK, COOLDOWN_BERSERK, username);
|
tryLoadSkillCooldownFromRawData(skillsDATS, character, SuperAbilityType.BERSERK, COOLDOWN_BERSERK, username);
|
||||||
tryLoadSkillCooldownFromRawData(skillsDATS, character, SuperAbilityType.GREEN_TERRA, COOLDOWN_GREEN_TERRA, username);
|
tryLoadSkillCooldownFromRawData(skillsDATS, character, SuperAbilityType.GREEN_TERRA, COOLDOWN_GREEN_TERRA, username);
|
||||||
tryLoadSkillCooldownFromRawData(skillsDATS, character, SuperAbilityType.GIGA_DRILL_BREAKER, COOLDOWN_GIGA_DRILL_BREAKER, username);
|
tryLoadSkillCooldownFromRawData(skillsDATS, character, SuperAbilityType.GIGA_DRILL_BREAKER, COOLDOWN_GIGA_DRILL_BREAKER, username);
|
||||||
// Archery - Unused
|
tryLoadSkillCooldownFromRawData(skillsDATS, character, SuperAbilityType.EXPLOSIVE_SHOT, COOLDOWN_ARCHERY, username);
|
||||||
tryLoadSkillCooldownFromRawData(skillsDATS, character, SuperAbilityType.SERRATED_STRIKES, COOLDOWN_SERRATED_STRIKES, username);
|
tryLoadSkillCooldownFromRawData(skillsDATS, character, SuperAbilityType.SERRATED_STRIKES, COOLDOWN_SERRATED_STRIKES, username);
|
||||||
tryLoadSkillCooldownFromRawData(skillsDATS, character, SuperAbilityType.SKULL_SPLITTER, COOLDOWN_SKULL_SPLITTER, username);
|
tryLoadSkillCooldownFromRawData(skillsDATS, character, SuperAbilityType.SKULL_SPLITTER, COOLDOWN_SKULL_SPLITTER, username);
|
||||||
// Acrobatics - Unused
|
// Acrobatics - Unused
|
||||||
|
@ -94,6 +94,7 @@ public class FlatFileDataUtil {
|
|||||||
case COOLDOWN_BLAST_MINING:
|
case COOLDOWN_BLAST_MINING:
|
||||||
case COOLDOWN_SUPER_SHOTGUN:
|
case COOLDOWN_SUPER_SHOTGUN:
|
||||||
case COOLDOWN_TRIDENTS:
|
case COOLDOWN_TRIDENTS:
|
||||||
|
case COOLDOWN_ARCHERY:
|
||||||
case SCOREBOARD_TIPS:
|
case SCOREBOARD_TIPS:
|
||||||
case COOLDOWN_CHIMAERA_WING:
|
case COOLDOWN_CHIMAERA_WING:
|
||||||
case EXP_MINING:
|
case EXP_MINING:
|
||||||
|
@ -31,7 +31,6 @@ import java.util.logging.Logger;
|
|||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
|
|
||||||
//This class uses JUnit5/Jupiter
|
|
||||||
class FlatFileDatabaseManagerTest {
|
class FlatFileDatabaseManagerTest {
|
||||||
|
|
||||||
public static final @NotNull String TEST_FILE_NAME = "test.mcmmo.users";
|
public static final @NotNull String TEST_FILE_NAME = "test.mcmmo.users";
|
||||||
@ -39,7 +38,7 @@ class FlatFileDatabaseManagerTest {
|
|||||||
public static final @NotNull String BAD_DATA_FILE_LINE_TWENTY_THREE = "nossr51:baddata:::baddata:baddata:640:baddata:1000:1000:1000:baddata:baddata:baddata:baddata:16:0:500:20273:0:0:0:0::1000:0:0:baddata:1593543012:0:0:0:0::1000:0:0:baddata:IGNORED:1000:0:588fe472-1c82-4c4e-9aa1-7eefccb277e3:1:0:";
|
public static final @NotNull String BAD_DATA_FILE_LINE_TWENTY_THREE = "nossr51:baddata:::baddata:baddata:640:baddata:1000:1000:1000:baddata:baddata:baddata:baddata:16:0:500:20273:0:0:0:0::1000:0:0:baddata:1593543012:0:0:0:0::1000:0:0:baddata:IGNORED:1000:0:588fe472-1c82-4c4e-9aa1-7eefccb277e3:1:0:";
|
||||||
public static final @NotNull String DB_BADDATA = "baddatadb.users";
|
public static final @NotNull String DB_BADDATA = "baddatadb.users";
|
||||||
public static final @NotNull String DB_HEALTHY = "healthydb.users";
|
public static final @NotNull String DB_HEALTHY = "healthydb.users";
|
||||||
public static final @NotNull String HEALTHY_DB_LINE_1 = "nossr50:1:IGNORED:IGNORED:10:2:20:3:4:5:6:7:8:9:10:30:40:50:60:70:80:90:100:IGNORED:11:110:111:222:333:444:555:666:777:IGNORED:12:120:888:IGNORED:HEARTS:13:130:588fe472-1c82-4c4e-9aa1-7eefccb277e3:1111:999:2020:140:14:150:15:1111:2222:";
|
public static final @NotNull String HEALTHY_DB_LINE_1 = "nossr50:1:IGNORED:IGNORED:10:2:20:3:4:5:6:7:8:9:10:30:40:50:60:70:80:90:100:IGNORED:11:110:111:222:333:444:555:666:777:IGNORED:12:120:888:IGNORED:HEARTS:13:130:588fe472-1c82-4c4e-9aa1-7eefccb277e3:1111:999:2020:140:14:150:15:1111:2222:3333";
|
||||||
public static final @NotNull String HEALTHY_DB_LINE_ONE_UUID_STR = "588fe472-1c82-4c4e-9aa1-7eefccb277e3";
|
public static final @NotNull String HEALTHY_DB_LINE_ONE_UUID_STR = "588fe472-1c82-4c4e-9aa1-7eefccb277e3";
|
||||||
public static final String DB_MISSING_LAST_LOGIN = "missinglastlogin.users";
|
public static final String DB_MISSING_LAST_LOGIN = "missinglastlogin.users";
|
||||||
public static final String LINE_TWO_FROM_MISSING_DB = "nossr50:1:IGNORED:IGNORED:10:2:20:3:4:5:6:7:8:9:10:30:40:50:60:70:80:90:100:IGNORED:11:110:111:222:333:444:555:666:777:IGNORED:12:120:888:0:HEARTS:13:130:588fe472-1c82-4c4e-9aa1-7eefccb277e3:1111:999:";
|
public static final String LINE_TWO_FROM_MISSING_DB = "nossr50:1:IGNORED:IGNORED:10:2:20:3:4:5:6:7:8:9:10:30:40:50:60:70:80:90:100:IGNORED:11:110:111:222:333:444:555:666:777:IGNORED:12:120:888:0:HEARTS:13:130:588fe472-1c82-4c4e-9aa1-7eefccb277e3:1111:999:";
|
||||||
@ -64,7 +63,7 @@ class FlatFileDatabaseManagerTest {
|
|||||||
long expectedBerserkCd = 111, expectedGigaDrillBreakerCd = 222, expectedTreeFellerCd = 333,
|
long expectedBerserkCd = 111, expectedGigaDrillBreakerCd = 222, expectedTreeFellerCd = 333,
|
||||||
expectedGreenTerraCd = 444, expectedSerratedStrikesCd = 555, expectedSkullSplitterCd = 666,
|
expectedGreenTerraCd = 444, expectedSerratedStrikesCd = 555, expectedSkullSplitterCd = 666,
|
||||||
expectedSuperBreakerCd = 777, expectedBlastMiningCd = 888, expectedChimaeraWingCd = 999,
|
expectedSuperBreakerCd = 777, expectedBlastMiningCd = 888, expectedChimaeraWingCd = 999,
|
||||||
expectedSuperShotgunCd = 1111, expectedTridentSuperCd = 2222;
|
expectedSuperShotgunCd = 1111, expectedTridentSuperCd = 2222, expectedExplosiveShotCd = 3333;
|
||||||
|
|
||||||
int expectedScoreboardTips = 1111;
|
int expectedScoreboardTips = 1111;
|
||||||
Long expectedLastLogin = 2020L;
|
Long expectedLastLogin = 2020L;
|
||||||
@ -473,31 +472,22 @@ class FlatFileDatabaseManagerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private long getExpectedSuperAbilityDATS(@NotNull SuperAbilityType superAbilityType) {
|
private long getExpectedSuperAbilityDATS(@NotNull SuperAbilityType superAbilityType) {
|
||||||
switch(superAbilityType) {
|
return switch (superAbilityType) {
|
||||||
case BERSERK:
|
case BERSERK -> expectedBerserkCd;
|
||||||
return expectedBerserkCd;
|
case SUPER_BREAKER -> expectedSuperBreakerCd;
|
||||||
case SUPER_BREAKER:
|
case GIGA_DRILL_BREAKER -> expectedGigaDrillBreakerCd;
|
||||||
return expectedSuperBreakerCd;
|
case GREEN_TERRA -> expectedGreenTerraCd;
|
||||||
case GIGA_DRILL_BREAKER:
|
case SKULL_SPLITTER -> expectedSkullSplitterCd;
|
||||||
return expectedGigaDrillBreakerCd;
|
case SUPER_SHOTGUN -> expectedSuperShotgunCd;
|
||||||
case GREEN_TERRA:
|
case TREE_FELLER -> expectedTreeFellerCd;
|
||||||
return expectedGreenTerraCd;
|
case SERRATED_STRIKES -> expectedSerratedStrikesCd;
|
||||||
case SKULL_SPLITTER:
|
case BLAST_MINING -> expectedBlastMiningCd;
|
||||||
return expectedSkullSplitterCd;
|
case TRIDENTS_SUPER_ABILITY -> expectedTridentSuperCd;
|
||||||
case SUPER_SHOTGUN:
|
case EXPLOSIVE_SHOT -> expectedExplosiveShotCd;
|
||||||
return expectedSuperShotgunCd;
|
default -> throw new RuntimeException("Values not defined for super ability please add " +
|
||||||
case TREE_FELLER:
|
|
||||||
return expectedTreeFellerCd;
|
|
||||||
case SERRATED_STRIKES:
|
|
||||||
return expectedSerratedStrikesCd;
|
|
||||||
case BLAST_MINING:
|
|
||||||
return expectedBlastMiningCd;
|
|
||||||
case TRIDENTS_SUPER_ABILITY:
|
|
||||||
return expectedTridentSuperCd;
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new RuntimeException("Values not defined for super ability not defined please add " +
|
|
||||||
"values for " + superAbilityType.toString() + " to the test");
|
"values for " + superAbilityType.toString() + " to the test");
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private float getExpectedExperienceHealthyDBEntryOne(@NotNull PrimarySkillType primarySkillType) {
|
private float getExpectedExperienceHealthyDBEntryOne(@NotNull PrimarySkillType primarySkillType) {
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
nossr50:1:IGNORED:IGNORED:10:2:20:3:4:5:6:7:8:9:10:30:40:50:60:70:80:90:100:IGNORED:11:110:111:222:333:444:555:666:777:IGNORED:12:120:888:IGNORED:HEARTS:13:130:588fe472-1c82-4c4e-9aa1-7eefccb277e3:1111:999:2020:140:14:150:15:1111:2222:
|
nossr50:1:IGNORED:IGNORED:10:2:20:3:4:5:6:7:8:9:10:30:40:50:60:70:80:90:100:IGNORED:11:110:111:222:333:444:555:666:777:IGNORED:12:120:888:IGNORED:HEARTS:13:130:588fe472-1c82-4c4e-9aa1-7eefccb277e3:1111:999:2020:140:14:150:15:1111:2222:3333:
|
||||||
mrfloris:2420:::0:2452:0:1983:1937:1790:3042:1138:3102:2408:3411:0:0:0:0:0:0:0:0::642:0:1617583171:0:1617165043:0:1617583004:1617563189:1616785408::2184:0:0:1617852413:HEARTS:415:0:631e3896-da2a-4077-974b-d047859d76bc:5:1600906906:3030:0:0:0:0:0:0:
|
mrfloris:2420:::0:2452:0:1983:1937:1790:3042:1138:3102:2408:3411:0:0:0:0:0:0:0:0::642:0:1617583171:0:1617165043:0:1617583004:1617563189:1616785408::2184:0:0:1617852413:HEARTS:415:0:631e3896-da2a-4077-974b-d047859d76bc:5:1600906906:3030:0:0:0:0:0:0:0:
|
||||||
powerless:0:::0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0::0:0:0:0:0:0:0:0:0::0:0:0:1337:HEARTS:0:0:e0d07db8-f7e8-43c7-9ded-864dfc6f3b7c:5:1600906906:4040:0:0:0:0:0:0:
|
powerless:0:::0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0::0:0:0:0:0:0:0:0:0::0:0:0:1337:HEARTS:0:0:e0d07db8-f7e8-43c7-9ded-864dfc6f3b7c:5:1600906906:4040:0:0:0:0:0:0:0:
|
Loading…
Reference in New Issue
Block a user