Improved QuestLink buypass handler.
This commit is contained in:
		| @@ -87,10 +87,9 @@ public class QuestLink implements IBypassHandler | ||||
| 		final StringBuilder sbCanStart = new StringBuilder(128); | ||||
| 		final StringBuilder sbCantStart = new StringBuilder(128); | ||||
| 		final StringBuilder sbCompleted = new StringBuilder(128); | ||||
| 		int availableQuestCounter = 0; | ||||
| 		int inProgressQuestCounter = 0; | ||||
| 		Quest lastSavedAvailableQuest = null; | ||||
| 		Quest lastSavedProgressQuest = null; | ||||
| 		int questCounter = 0; | ||||
| 		 | ||||
| 		//@formatter:off | ||||
| 		final Set<Quest> startingQuests = npc.getListeners(EventType.ON_NPC_QUEST_START).stream() | ||||
| @@ -127,8 +126,8 @@ public class QuestLink implements IBypassHandler | ||||
| 					sbCanStart.append("<button icon=\"quest\" align=\"left\" action=\"bypass -h npc_" + npc.getObjectId() + "_Quest " + quest.getName() + "\">"); | ||||
| 					sbCanStart.append(quest.isCustomQuest() ? quest.getPath() : "<fstring>" + quest.getNpcStringId() + "01</fstring>"); | ||||
| 					sbCanStart.append("</button></font>"); | ||||
| 					availableQuestCounter++; | ||||
| 					lastSavedAvailableQuest = quest; | ||||
| 					questCounter++; | ||||
| 				} | ||||
| 				else | ||||
| 				{ | ||||
| @@ -136,6 +135,7 @@ public class QuestLink implements IBypassHandler | ||||
| 					sbCantStart.append("<button icon=\"quest\" align=\"left\" action=\"bypass -h npc_" + npc.getObjectId() + "_Quest " + quest.getName() + "\">"); | ||||
| 					sbCantStart.append(quest.isCustomQuest() ? quest.getPath() : "<fstring>" + quest.getNpcStringId() + "01</fstring>"); | ||||
| 					sbCantStart.append("</button></font>"); | ||||
| 					questCounter++; | ||||
| 				} | ||||
| 			} | ||||
| 			else if (qs.isStarted()) | ||||
| @@ -144,8 +144,8 @@ public class QuestLink implements IBypassHandler | ||||
| 				sbStarted.append("<button icon=\"quest\" align=\"left\" action=\"bypass -h npc_" + npc.getObjectId() + "_Quest " + quest.getName() + "\">"); | ||||
| 				sbStarted.append(quest.isCustomQuest() ? quest.getPath() + " (In Progress)" : "<fstring>" + quest.getNpcStringId() + "02</fstring>"); | ||||
| 				sbStarted.append("</button></font>"); | ||||
| 				inProgressQuestCounter++; | ||||
| 				lastSavedProgressQuest = quest; | ||||
| 				questCounter++; | ||||
| 			} | ||||
| 			else if (qs.isCompleted()) | ||||
| 			{ | ||||
| @@ -153,18 +153,22 @@ public class QuestLink implements IBypassHandler | ||||
| 				sbCompleted.append("<button icon=\"quest\" align=\"left\" action=\"bypass -h npc_" + npc.getObjectId() + "_Quest " + quest.getName() + "\">"); | ||||
| 				sbCompleted.append(quest.isCustomQuest() ? quest.getPath() + " (Done) " : "<fstring>" + quest.getNpcStringId() + "03</fstring>"); | ||||
| 				sbCompleted.append("</button></font>"); | ||||
| 				questCounter++; | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		if ((availableQuestCounter == 0) && (inProgressQuestCounter == 1) && (lastSavedProgressQuest != null)) | ||||
| 		if (questCounter == 1) | ||||
| 		{ | ||||
| 			showQuestWindow(player, npc, lastSavedProgressQuest.getName()); | ||||
| 			return; | ||||
| 		} | ||||
| 		if ((availableQuestCounter == 1) && (inProgressQuestCounter == 0) && (lastSavedAvailableQuest != null)) | ||||
| 		{ | ||||
| 			showQuestWindow(player, npc, lastSavedAvailableQuest.getName()); | ||||
| 			return; | ||||
| 			if (lastSavedProgressQuest != null) | ||||
| 			{ | ||||
| 				showQuestWindow(player, npc, lastSavedProgressQuest.getName()); | ||||
| 				return; | ||||
| 			} | ||||
| 			if (lastSavedAvailableQuest != null) | ||||
| 			{ | ||||
| 				showQuestWindow(player, npc, lastSavedAvailableQuest.getName()); | ||||
| 				return; | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		String content; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 MobiusDev
					MobiusDev