diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index a51d83a99..2166af3c3 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -2767,16 +2767,17 @@ namespace Game.Entities if (source == null) return; + // If there is only one quest available (and no gossip options), send quest info if (source.IsTypeId(TypeId.Unit) || source.IsTypeId(TypeId.GameObject)) { - if (PlayerTalkClass.GetGossipMenu().IsEmpty() && !PlayerTalkClass.GetQuestMenu().IsEmpty()) + if (PlayerTalkClass.GetGossipMenu().IsEmpty() && PlayerTalkClass.GetQuestMenu().GetMenuItemCount() == 1) { SendPreparedQuest(source); return; } } - // in case non empty gossip menu (that not included quests list size) show it + // In case non empty gossip menu or quest menu count > 1, show it // (quest entries from quest menu will be included in list) uint textId = GetGossipTextId(source); diff --git a/Source/Game/Handlers/QuestHandler.cs b/Source/Game/Handlers/QuestHandler.cs index e492bca69..2b277b2a5 100644 --- a/Source/Game/Handlers/QuestHandler.cs +++ b/Source/Game/Handlers/QuestHandler.cs @@ -56,8 +56,8 @@ namespace Game if (creature.GetAI().OnGossipHello(_player)) return; - GetPlayer().PrepareGossipMenu(creature, _player.GetGossipMenuForSource(creature), true); - GetPlayer().SendPreparedGossip(creature); + _player.PrepareQuestMenu(creature.GetGUID()); + _player.SendPreparedQuest(creature); } [WorldPacketHandler(ClientOpcodes.QuestGiverAcceptQuest, Processing = PacketProcessing.Inplace)]