Skip to content

Commit 5bd4427

Browse files
fix: skyblock level mission bugs
Took 16 minutes
1 parent 4587be8 commit 5bd4427

5 files changed

Lines changed: 14 additions & 12 deletions

File tree

type.generic/src/main/java/net/swofty/types/generic/SkyBlockGenericLoader.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -390,11 +390,6 @@ public void initialize(MinecraftServer server) {
390390
*/
391391
BlockAttribute.registerBlockAttributes();
392392

393-
/**
394-
* Register SkyBlock levels
395-
*/
396-
SkyBlockLevelCause.initializeCauses();
397-
398393
/**
399394
* Register event
400395
*/
@@ -522,6 +517,11 @@ public void initialize(MinecraftServer server) {
522517
}
523518
});
524519

520+
/**
521+
* Register SkyBlock levels
522+
*/
523+
SkyBlockLevelCause.initializeCauses();
524+
525525
/**
526526
* Handle ConnectionManager
527527
*/

type.generic/src/main/java/net/swofty/types/generic/data/datapoints/DatapointSkyBlockExperience.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import lombok.Getter;
44
import lombok.NoArgsConstructor;
5+
import lombok.NonNull;
56
import lombok.Setter;
67
import net.swofty.commons.protocol.Serializer;
78
import net.swofty.types.generic.data.Datapoint;
@@ -128,7 +129,7 @@ public boolean hasExperienceFor(SkyBlockLevelCauseAbstr cause) {
128129
*
129130
* @param cause the {@link SkyBlockLevelCauseAbstr} to be added.
130131
*/
131-
public void addExperience(SkyBlockLevelCauseAbstr cause) {
132+
public void addExperience(@NonNull SkyBlockLevelCauseAbstr cause) {
132133
if (completedExperienceCauses.contains(cause)) return;
133134
String causeKey = SkyBlockLevelCause.getKey(cause);
134135
if (completedExperienceCauses.stream().anyMatch((c) -> SkyBlockLevelCause.getKey(c).equals(causeKey))) return;

type.generic/src/main/java/net/swofty/types/generic/levels/SkyBlockLevelCause.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package net.swofty.types.generic.levels;
22

3+
import lombok.NonNull;
34
import lombok.SneakyThrows;
45
import net.swofty.commons.item.ItemType;
56
import net.swofty.types.generic.collection.CollectionCategories;
@@ -22,7 +23,6 @@
2223
public class SkyBlockLevelCause {
2324
private static final Map<String, SkyBlockLevelCauseAbstr> CAUSES = new HashMap<>();
2425

25-
@SneakyThrows
2626
public static void initializeCauses() {
2727
// Register all Skill causes
2828
for (SkillCategories category : SkillCategories.values()) {
@@ -96,8 +96,8 @@ public static FairySoulExchangeLevelCause getFairySoulExchangeCause(int exchange
9696
}
9797

9898
public static MissionLevelCause getMissionCause(String missionKey) {
99-
for (SkyBlockLevelCauseAbstr cause : CAUSES.values()) {
100-
if (cause instanceof MissionLevelCause missionCause) {
99+
for (String key : CAUSES.keySet()) {
100+
if (CAUSES.get(key) instanceof MissionLevelCause missionCause) {
101101
if (missionCause.getMissionKey().equals(missionKey)) {
102102
return missionCause;
103103
}
@@ -169,7 +169,7 @@ public static SkillLevelCause getSkillCause(SkillCategories category, int level)
169169
return CAUSES.get(key);
170170
}
171171

172-
public static String getKey(SkyBlockLevelCauseAbstr cause) {
172+
public static String getKey(@NonNull SkyBlockLevelCauseAbstr cause) {
173173
for (Map.Entry<String, SkyBlockLevelCauseAbstr> entry : CAUSES.entrySet()) {
174174
if (entry.getValue() == cause) {
175175
return entry.getKey();

type.generic/src/main/java/net/swofty/types/generic/mission/MissionData.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import lombok.Setter;
55
import lombok.SneakyThrows;
66
import net.swofty.types.generic.calendar.SkyBlockCalendar;
7+
import net.swofty.types.generic.levels.SkyBlockLevelCause;
78
import net.swofty.types.generic.region.RegionType;
89
import net.swofty.types.generic.user.SkyBlockPlayer;
910
import org.jetbrains.annotations.Nullable;
@@ -93,6 +94,7 @@ public void endMission(String missionID) {
9394

9495
ActiveMission activeMission = activeMissions.stream().filter(mission -> mission.getMissionID().equals(missionID)).findFirst().get();
9596
getMissionFromCache(missionID).onEnd(getSkyBlockPlayer(), activeMission.getCustomData(), activeMission);
97+
getSkyBlockPlayer().getSkyBlockExperience().addExperience(SkyBlockLevelCause.getMissionCause(activeMission.getMissionID()));
9698
activeMission.setMissionEnded((int) SkyBlockCalendar.getElapsed());
9799
activeMissions.remove(activeMission);
98100
completedMissions.add(activeMission);

type.generic/src/main/java/net/swofty/types/generic/mission/missions/blacksmith/MissionMineCoal.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public void onBlockBreak(CustomBlockBreakEvent event) {
2222
return;
2323
}
2424

25-
if (event.getMaterial().equals(Material.COAL)) {
25+
if (event.getMaterial().equals(Material.COAL_ORE)) {
2626
MissionData.ActiveMission mission = data.getMission(this.getClass()).getKey();
2727
mission.setMissionProgress(mission.getMissionProgress() + 1);
2828
mission.checkIfMissionEnded(event.getPlayer());
@@ -48,7 +48,6 @@ public Map<String, Object> onStart(SkyBlockPlayer player, MissionData.ActiveMiss
4848
public void onEnd(SkyBlockPlayer player, Map<String, Object> customData, MissionData.ActiveMission mission) {
4949
mission.getObjectiveCompleteText(new ArrayList<>(List.of("§3100 §7Mining Experience", "§b5 SkyBlock XP"))).forEach(player::sendMessage);
5050
player.getSkills().increase(player, SkillCategories.MINING, 100D);
51-
player.getSkyBlockExperience().addExperience(SkyBlockLevelCause.getMissionCause(getID()));
5251
player.getMissionData().startMission(MissionTalkToBlacksmithAgain.class);
5352
}
5453

0 commit comments

Comments
 (0)