Remove questing (or questingEnabled) from the config, replace with questOptions or questing

This commit is contained in:
KingRainbow44
2023-05-03 23:42:26 -04:00
parent dae2ad394c
commit 6805c74bfc
3 changed files with 18 additions and 35 deletions

View File

@@ -26,9 +26,11 @@ public class ConfigContainer {
* Version 5 - 'questing' has been changed from a boolean * Version 5 - 'questing' has been changed from a boolean
* to a container of options ('questOptions'). * to a container of options ('questOptions').
* This field will be removed in future versions. * This field will be removed in future versions.
* Version 6 - 'questing' has been fully replaced with 'questOptions'.
* The field for 'legacyResources' has been removed.
*/ */
private static int version() { private static int version() {
return 5; return 6;
} }
/** /**
@@ -245,11 +247,8 @@ public class ConfigContainer {
public boolean staminaUsage = true; public boolean staminaUsage = true;
public boolean energyUsage = true; public boolean energyUsage = true;
public boolean fishhookTeleport = true; public boolean fishhookTeleport = true;
@SerializedName("questOptions") @SerializedName(value = "questing", alternate = "questOptions")
public Questing questing = new Questing(); public Questing questing = new Questing();
@Deprecated(forRemoval = true)
@SerializedName("questing")
public boolean questingEnabled = true;
public ResinOptions resinOptions = new ResinOptions(); public ResinOptions resinOptions = new ResinOptions();
public Rates rates = new Rates(); public Rates rates = new Rates();
@@ -281,8 +280,6 @@ public class ConfigContainer {
public static class Questing { public static class Questing {
/* Should questing behavior be used? */ /* Should questing behavior be used? */
public boolean enabled = true; public boolean enabled = true;
/* Are older resources being used? */
public boolean legacyResources = false;
} }
} }

View File

@@ -43,26 +43,6 @@ public class QuestManager extends BasePlayerManager {
eventExecutor = new ThreadPoolExecutor(4, 4, eventExecutor = new ThreadPoolExecutor(4, 4,
60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(1000), 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(1000),
FastThreadLocalThread::new, new ThreadPoolExecutor.AbortPolicy()); FastThreadLocalThread::new, new ThreadPoolExecutor.AbortPolicy());
var options = GAME_OPTIONS.questing;
if (options.enabled) {
if (options.legacyResources) {
Grasscutter.getLogger().debug("You have 'legacyResources' enabled.");
Grasscutter.getLogger().debug("This assumes you are using older (3.2) QuestExcelConfigData and MainQuestExcelConfigData.");
Grasscutter.getLogger().debug("The game will *break* if you are not using these older excels.");
Grasscutter.getLogger().debug("Questing should feel more natural in this mode.");
} else {
Grasscutter.getLogger().debug("You have 'legacyResources' disabled.");
Grasscutter.getLogger().debug("This should be enabled if you are using 3.3 or newer resources.");
Grasscutter.getLogger().debug("The game can potentially encounter issues in this mode.");
}
}
//noinspection removal
if (GAME_OPTIONS.questingEnabled) {
Grasscutter.getLogger().warn("Please upgrade your configuration. 'questing' is being deprecated in favor of 'questOptions'.");
Grasscutter.getLogger().info("To remove this message until removal, use 'questingEnabled' instead of 'questOptions.enabled'.");
}
} }
/* /*
On SetPlayerBornDataReq, the server sends FinishedParentQuestNotify, with this exact On SetPlayerBornDataReq, the server sends FinishedParentQuestNotify, with this exact
@@ -128,7 +108,9 @@ public class QuestManager extends BasePlayerManager {
// These quests currently have bugged triggers. // These quests currently have bugged triggers.
30700, // Quest which is responsible for unlocking Crash Course. 30700, // Quest which is responsible for unlocking Crash Course.
30800 // Quest which is responsible for unlocking Sparks Amongst the Pages. 30800, // Quest which is responsible for unlocking Sparks Amongst the Pages.
47001, 47002, 47003, 47004
)); ));
} }
} }
@@ -146,11 +128,7 @@ public class QuestManager extends BasePlayerManager {
// 3. ServerCondMeetQuestListUpdateNotify // 3. ServerCondMeetQuestListUpdateNotify
if (this.isQuestingEnabled()) { if (this.isQuestingEnabled()) {
if (GAME_OPTIONS.questing.legacyResources) { this.enableQuests();
this.enableQuests(); // This assumes 3.2 resources, where all conditions are known.
} else {
this.addQuest(35104); // This assumes resources greater than 3.2, where quests might have unknown conditions.
}
} }
// this.getPlayer().sendPacket(new PacketFinishedParentQuestUpdateNotify(newQuests)); // this.getPlayer().sendPacket(new PacketFinishedParentQuestUpdateNotify(newQuests));
@@ -447,6 +425,14 @@ public class QuestManager extends BasePlayerManager {
} }
if (shouldAccept) { if (shouldAccept) {
Grasscutter.getLogger().debug("Quest {} was accepted because {} {} met.",
questData.getId(),
questData.getAcceptCond().stream()
.map(p -> p.getType().name())
.collect(Collectors.joining(", ")),
questData.getAcceptCond()
.size() > 1 ? "were" : "was");
GameQuest quest = owner.getQuestManager().addQuest(questData); GameQuest quest = owner.getQuestManager().addQuest(questData);
Grasscutter.getLogger().debug("Added quest {} result {}", questData.getSubId(), quest != null); Grasscutter.getLogger().debug("Added quest {} result {}", questData.getSubId(), quest != null);
} }

View File

@@ -45,11 +45,11 @@ public class QuestSystem extends BaseGameSystem {
var handlerClasses = reflections.getSubTypesOf(clazz); var handlerClasses = reflections.getSubTypesOf(clazz);
for (var obj : handlerClasses) { for (var obj : handlerClasses) {
this.registerPacketHandler(map, obj); this.registerHandler(map, obj);
} }
} }
public <T> void registerPacketHandler(Int2ObjectMap<T> map, Class<? extends T> handlerClass) { public <T> void registerHandler(Int2ObjectMap<T> map, Class<? extends T> handlerClass) {
try { try {
int value = 0; int value = 0;
if (handlerClass.isAnnotationPresent(QuestValueExec.class)) { if (handlerClass.isAnnotationPresent(QuestValueExec.class)) {