From 2b2a12aebdf1a72f8a1990043f0c76274158c917 Mon Sep 17 00:00:00 2001 From: Ziggy Date: Mon, 10 Jun 2024 21:33:36 +0200 Subject: [PATCH 1/3] Fixed a bug in the "Quest Received" system message, where it would display %TT instead of the relevant quest category --- .../resources/support/data/server_info/loader/QuestLoader.kt | 1 + .../holocore/services/gameplay/player/quest/QuestService.kt | 2 +- .../support/data/server_info/loader/TestQuestLoader.java | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/projectswg/holocore/resources/support/data/server_info/loader/QuestLoader.kt b/src/main/java/com/projectswg/holocore/resources/support/data/server_info/loader/QuestLoader.kt index eefb3f565..7a5593297 100644 --- a/src/main/java/com/projectswg/holocore/resources/support/data/server_info/loader/QuestLoader.kt +++ b/src/main/java/com/projectswg/holocore/resources/support/data/server_info/loader/QuestLoader.kt @@ -93,6 +93,7 @@ class QuestLoader : DataLoader() { class QuestListInfo(set: SdbResultSet) { val journalEntryTitle: String = set.getText("journal_entry_title") val journalEntryDescription: String = set.getText("journal_entry_description") + val category: String = set.getText("category") val isCompleteWhenTasksComplete: Boolean = set.getBoolean("complete_when_tasks_complete") val isRepeatable: Boolean = set.getBoolean("allow_repeats") } diff --git a/src/main/java/com/projectswg/holocore/services/gameplay/player/quest/QuestService.kt b/src/main/java/com/projectswg/holocore/services/gameplay/player/quest/QuestService.kt index 9e0f93abd..fa0f51ff5 100644 --- a/src/main/java/com/projectswg/holocore/services/gameplay/player/quest/QuestService.kt +++ b/src/main/java/com/projectswg/holocore/services/gameplay/player/quest/QuestService.kt @@ -112,7 +112,7 @@ class QuestService(private val destroyMultiAndLootDie: Die = RandomDie(), privat retrievedItemRepository.clearPreviousAttempts(questName, playerObject) // In case this quest is being repeated playerObject.addQuest(questName) StandardLog.onPlayerTrace(this, player, "received quest %s", questName) - val prose = ProsePackage(StringId("quest/ground/system_message", "quest_received"), "TO", questListInfo.journalEntryTitle) + val prose = ProsePackage(StringId("quest/ground/system_message", "quest_received"), "TT", questListInfo.category, "TO", questListInfo.journalEntryTitle) SystemMessageIntent.broadcastPersonal(player, prose, ChatSystemMessage.SystemChatType.QUEST) activateTask(player, questName, questLoader.getTaskListInfos(questName)[0]) } diff --git a/src/test/java/com/projectswg/holocore/resources/support/data/server_info/loader/TestQuestLoader.java b/src/test/java/com/projectswg/holocore/resources/support/data/server_info/loader/TestQuestLoader.java index 9eb0ad4bc..81f8440cd 100644 --- a/src/test/java/com/projectswg/holocore/resources/support/data/server_info/loader/TestQuestLoader.java +++ b/src/test/java/com/projectswg/holocore/resources/support/data/server_info/loader/TestQuestLoader.java @@ -62,6 +62,11 @@ public class TestQuestLoader { public void canLoadJournalEntryDescription() { assertEquals("@quest/ground/c_newbie_quest4:journal_entry_description", questInfo.getJournalEntryDescription()); } + + @Test + public void canLoadCategory() { + assertEquals("@quest/ground/c_newbie_quest4:category", questInfo.getCategory()); + } @Test public void canloadCompleteWhenTasksCompleteFlag() { From 4f80ccf5bca0b965dd2afa07b3b76ebcaa72fd4d Mon Sep 17 00:00:00 2001 From: Ziggy Date: Mon, 10 Jun 2024 21:55:38 +0200 Subject: [PATCH 2/3] Rename .java to .kt --- .../loader/{TestQuestLoader.java => TestQuestLoader.kt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/test/java/com/projectswg/holocore/resources/support/data/server_info/loader/{TestQuestLoader.java => TestQuestLoader.kt} (100%) diff --git a/src/test/java/com/projectswg/holocore/resources/support/data/server_info/loader/TestQuestLoader.java b/src/test/java/com/projectswg/holocore/resources/support/data/server_info/loader/TestQuestLoader.kt similarity index 100% rename from src/test/java/com/projectswg/holocore/resources/support/data/server_info/loader/TestQuestLoader.java rename to src/test/java/com/projectswg/holocore/resources/support/data/server_info/loader/TestQuestLoader.kt From 5aa4ab225905bd87028506f5d3f24097f84b74a8 Mon Sep 17 00:00:00 2001 From: Ziggy Date: Mon, 10 Jun 2024 21:55:38 +0200 Subject: [PATCH 3/3] Converted TestQuestLoader to Kotlin --- .../server_info/loader/TestQuestLoader.kt | 248 ++++++++---------- 1 file changed, 113 insertions(+), 135 deletions(-) diff --git a/src/test/java/com/projectswg/holocore/resources/support/data/server_info/loader/TestQuestLoader.kt b/src/test/java/com/projectswg/holocore/resources/support/data/server_info/loader/TestQuestLoader.kt index 81f8440cd..06b67bb30 100644 --- a/src/test/java/com/projectswg/holocore/resources/support/data/server_info/loader/TestQuestLoader.kt +++ b/src/test/java/com/projectswg/holocore/resources/support/data/server_info/loader/TestQuestLoader.kt @@ -24,157 +24,135 @@ * You should have received a copy of the GNU Affero General Public License * * along with Holocore. If not, see . * ***********************************************************************************/ -package com.projectswg.holocore.resources.support.data.server_info.loader; +package com.projectswg.holocore.resources.support.data.server_info.loader -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Nested; -import org.junit.jupiter.api.Test; +import com.projectswg.holocore.resources.support.data.server_info.loader.ServerData.questLoader +import org.junit.jupiter.api.Assertions.* +import org.junit.jupiter.api.Nested +import org.junit.jupiter.api.Test -import java.io.IOException; -import java.util.Collection; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; - -public class TestQuestLoader { - +class TestQuestLoader { @Nested - public class TestQuestInfo { - - private static QuestLoader.QuestListInfo questInfo; - - @BeforeEach - public void setup() throws IOException { - questInfo = ServerData.INSTANCE.getQuestLoader().getQuestListInfo("quest/c_newbie_quest4"); - } - + inner class TestQuestListInfo { + + private val questListInfo = questLoader.getQuestListInfo("quest/c_newbie_quest4") ?: throw IllegalStateException("Quest info not found") + @Test - public void canLoadQuestListInfo() { - assertNotNull(questInfo); - } - - @Test - public void canLoadJournalEntryTitle() { - assertEquals("@quest/ground/c_newbie_quest4:journal_entry_title", questInfo.getJournalEntryTitle()); - } - - @Test - public void canLoadJournalEntryDescription() { - assertEquals("@quest/ground/c_newbie_quest4:journal_entry_description", questInfo.getJournalEntryDescription()); + fun canLoadJournalEntryTitle() { + assertEquals("@quest/ground/c_newbie_quest4:journal_entry_title", questListInfo.journalEntryTitle) } @Test - public void canLoadCategory() { - assertEquals("@quest/ground/c_newbie_quest4:category", questInfo.getCategory()); + fun canLoadJournalEntryDescription() { + assertEquals("@quest/ground/c_newbie_quest4:journal_entry_description", questListInfo.journalEntryDescription) } - + @Test - public void canloadCompleteWhenTasksCompleteFlag() { - assertTrue(questInfo.isCompleteWhenTasksComplete()); + fun canLoadCategory() { + assertEquals("@quest/ground/c_newbie_quest4:category", questListInfo.category) } - + @Test - public void canLoadRepeatableFlag() { - assertTrue(questInfo.isRepeatable()); + fun canloadCompleteWhenTasksCompleteFlag() { + assertTrue(questListInfo.isCompleteWhenTasksComplete) + } + + @Test + fun canLoadRepeatableFlag() { + assertTrue(questListInfo.isRepeatable) } - } - + @Nested - public class TestQuestTask { - - private static List taskListInfos; - - @BeforeEach - public void setup() throws IOException { - taskListInfos = ServerData.INSTANCE.getQuestLoader().getTaskListInfos("quest/c_syren5"); - } - - @Test - public void canLoadRightAmountOfTasks() { - assertEquals(8, taskListInfos.size()); - } - - @Test - public void canLoadMinTime() { - assertEquals(0, taskListInfos.get(5).getMinTime()); - } - - @Test - public void canLoadMaxTime() { - assertEquals(0, taskListInfos.get(5).getMaxTime()); - } - - @Test - public void canLoadIndex() { - assertEquals(5, taskListInfos.get(5).getIndex()); - } - - @Test - public void canLoadType() { - assertEquals("quest.task.ground.destroy_multi_and_loot", taskListInfos.get(1).getType()); - } - - @Test - public void canLoadName() { - assertEquals("encounterWithCalHandro", taskListInfos.get(3).getName()); - } - - @Test - public void canLoadTargetServerTemplate() { - List taskListInfos = ServerData.INSTANCE.getQuestLoader().getTaskListInfos("quest/yavin_fallenstar_pt_2"); - assertEquals("imperial_major", taskListInfos.get(1).getTargetServerTemplate()); - } - - @Test - public void canLoadMessageBoxTitle() { - List taskListInfos = ServerData.INSTANCE.getQuestLoader().getTaskListInfos("quest/c_newbie_start"); - assertEquals("@quest/ground/c_newbie_start:task00_message_box_title", taskListInfos.getFirst().getMessageBoxTitle()); - } - - @Test - public void canLoadMessageBoxText() { - List taskListInfos = ServerData.INSTANCE.getQuestLoader().getTaskListInfos("quest/c_newbie_start"); - assertEquals("@quest/ground/c_newbie_start:task00_message_box_text", taskListInfos.getFirst().getMessageBoxText()); - } - - @Test - public void canLoadNpcAppearanceServerTemplate() { - assertEquals("object/mobile/boba_fett.iff", taskListInfos.get(5).getNpcAppearanceServerTemplate()); - } - - @Test - public void canLoadCommMessageText() { - assertEquals("@quest/ground/c_syren5:task05_comm_message_text", taskListInfos.get(5).getCommMessageText()); - } - - @Test - public void canLoadCount() { - assertEquals(1, taskListInfos.get(4).getCount()); - } - - @Test - public void canLoadNextTasksOnCompleteMultipleTasks() { - Collection nextTasksOnComplete = taskListInfos.get(3).getNextTasksOnComplete(); - Collection expected = List.of(4, 5, 6); - - assertIterableEquals(expected, nextTasksOnComplete); - } - - @Test - public void canLoadNextTasksOnCompleteSingleTask() { - Collection nextTasksOnComplete = taskListInfos.get(1).getNextTasksOnComplete(); - Collection expected = List.of(2); + inner class TestQuestTaskInfo { - assertIterableEquals(expected, nextTasksOnComplete); - } - - @Test - public void canLoadNextTasksOnCompleteEmpty() { - Collection nextTasksOnComplete = taskListInfos.get(6).getNextTasksOnComplete(); - Collection expected = List.of(); + private val taskListInfos = questLoader.getTaskListInfos("quest/c_syren5") - assertIterableEquals(expected, nextTasksOnComplete); + @Test + fun canLoadRightAmountOfTasks() { + assertEquals(8, taskListInfos.size) + } + + @Test + fun canLoadMinTime() { + assertEquals(0, taskListInfos[5].minTime) + } + + @Test + fun canLoadMaxTime() { + assertEquals(0, taskListInfos[5].maxTime) + } + + @Test + fun canLoadIndex() { + assertEquals(5, taskListInfos[5].index) + } + + @Test + fun canLoadType() { + assertEquals("quest.task.ground.destroy_multi_and_loot", taskListInfos[1].type) + } + + @Test + fun canLoadName() { + assertEquals("encounterWithCalHandro", taskListInfos[3].name) + } + + @Test + fun canLoadTargetServerTemplate() { + val taskListInfos = questLoader.getTaskListInfos("quest/yavin_fallenstar_pt_2") + assertEquals("imperial_major", taskListInfos[1].targetServerTemplate) + } + + @Test + fun canLoadMessageBoxTitle() { + val taskListInfos = questLoader.getTaskListInfos("quest/c_newbie_start") + assertEquals("@quest/ground/c_newbie_start:task00_message_box_title", taskListInfos.first().messageBoxTitle) + } + + @Test + fun canLoadMessageBoxText() { + val taskListInfos = questLoader.getTaskListInfos("quest/c_newbie_start") + assertEquals("@quest/ground/c_newbie_start:task00_message_box_text", taskListInfos.first().messageBoxText) + } + + @Test + fun canLoadNpcAppearanceServerTemplate() { + assertEquals("object/mobile/boba_fett.iff", taskListInfos[5].npcAppearanceServerTemplate) + } + + @Test + fun canLoadCommMessageText() { + assertEquals("@quest/ground/c_syren5:task05_comm_message_text", taskListInfos[5].commMessageText) + } + + @Test + fun canLoadCount() { + assertEquals(1, taskListInfos[4].count) + } + + @Test + fun canLoadNextTasksOnCompleteMultipleTasks() { + val nextTasksOnComplete = taskListInfos[3].nextTasksOnComplete + val expected = listOf(4, 5, 6) + + assertIterableEquals(expected, nextTasksOnComplete) + } + + @Test + fun canLoadNextTasksOnCompleteSingleTask() { + val nextTasksOnComplete = taskListInfos[1].nextTasksOnComplete + val expected = listOf(2) + + assertIterableEquals(expected, nextTasksOnComplete) + } + + @Test + fun canLoadNextTasksOnCompleteEmpty() { + val nextTasksOnComplete = taskListInfos[6].nextTasksOnComplete + val expected = emptyList() + + assertIterableEquals(expected, nextTasksOnComplete) } } }