feat(guilds): the Guild Master says it in a chat bubble over its head

DisplayChatBubble from the Guild Master with "You are already in a guild!", besides the system chat line. Check:
use the Guild Master while in a guild: the bubble shows above it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-29 08:25:53 -05:00
parent d48f43b579
commit 553c024bee

View File

@@ -2,15 +2,22 @@
#include "CharacterComponent.h"
#include "ChatPackets.h"
#include "EffectsMessages.h"
#include "Entity.h"
#include "PlayerMessages.h"
void FvGuildCreate::OnUse(Entity* self, Entity* user) {
// A player already in a guild is told so instead of getting the create box. The client itself says the same
// (MSG_GUILD_ALREADY_IN_GUILD, system chat) only once the box is submitted (LWOGuildComponent::SendTMPGuildCreate).
// A player already in a guild is told so instead of getting the create box: the Guild Master says it in a chat
// bubble over its head and in system chat. The client itself says the same (MSG_GUILD_ALREADY_IN_GUILD, system chat)
// only once the box is submitted (LWOGuildComponent::SendTMPGuildCreate).
const auto* characterComponent = user->GetComponent<CharacterComponent>();
if (characterComponent && characterComponent->GetGuildID() != LWOOBJID_EMPTY) {
ChatPackets::SendSystemMessage(user->GetSystemAddress(), u"You are already in a guild!");
constexpr auto text = u"You are already in a guild!";
GameMessages::DisplayChatBubble bubble;
bubble.target = self->GetObjectID();
bubble.wsText = text;
bubble.Send(user->GetSystemAddress());
ChatPackets::SendSystemMessage(user->GetSystemAddress(), text);
return;
}