expose jukebox label as action bar like java

This commit is contained in:
DrPerkyLegit 2026-04-10 16:38:27 -04:00
parent 2321135a1e
commit 1bbc90c18b
5 changed files with 16 additions and 1 deletions

View file

@ -1561,6 +1561,7 @@ void ClientConnection::handleChat(shared_ptr<ChatPacket> packet)
switch(packet->m_messageType)
{
case ChatPacket::e_ChatCustom:
case ChatPacket::e_ChatActionBar:
if (stringArgsSize >= 1) {
message = packet->m_stringArgs[0];
@ -1574,6 +1575,7 @@ void ClientConnection::handleChat(shared_ptr<ChatPacket> packet)
} else {
message = L"empty message";
}
displayOnGui = (packet->m_messageType == ChatPacket::e_ChatCustom);
break;
case ChatPacket::e_ChatBedOccupied:
message = app.GetString(IDS_TILE_BED_OCCUPIED);
@ -1959,6 +1961,8 @@ void ClientConnection::handleChat(shared_ptr<ChatPacket> packet)
bool bIsDeathMessage = (packet->m_messageType>=ChatPacket::e_ChatDeathInFire) && (packet->m_messageType<=ChatPacket::e_ChatDeathIndirectMagicItem);
if( displayOnGui ) minecraft->gui->addMessage(message, m_userIndex, bIsDeathMessage);
if (!displayOnGui && !message.empty()) minecraft->gui->setActionBarMessage(message);
}
void ClientConnection::handleAnimate(shared_ptr<AnimatePacket> packet)

View file

@ -26,6 +26,7 @@ UIScene_HUD::UIScene_HUD(int iPad, void *initData, UILayer *parentLayer) : UISce
IggyValueSetBooleanRS(m_labelChatText[i].getIggyValuePath(), 0, "m_bUseHtmlText", true);
}
m_labelJukebox.init(L"");
IggyValueSetBooleanRS(m_labelJukebox.getIggyValuePath(), 0, "m_bUseHtmlText", true);
addTimer(0, 100);
}

View file

@ -1575,6 +1575,13 @@ float Gui::getOpacity(int iPad, DWORD index)
return opacityPercentage;
}
//just like java functionality it overwrites the jukebox label
void Gui::setActionBarMessage(wstring message)
{
overlayMessageString = message;
overlayMessageTime = 20 * 4; //idk how long it should last, need to check java usage
}
float Gui::getJukeboxOpacity(int iPad)
{
float t = overlayMessageTime - lastTickA;
@ -1590,7 +1597,7 @@ void Gui::setNowPlaying(const wstring& string)
// overlayMessageString = L"Now playing: " + string;
overlayMessageString = app.GetString(IDS_NOWPLAYING) + string;
overlayMessageTime = 20 * 3;
animateOverlayMessageColor = true;
animateOverlayMessageColor = true; //appears to be unused, @DrPerkyLegit plans to add in later pr
}
void Gui::displayClientMessage(int messageId, int iPad)

View file

@ -63,6 +63,8 @@ public:
wstring getMessage(int iPad, DWORD index) { return guiMessages[iPad].at(index).string; }
float getOpacity(int iPad, DWORD index);
void setActionBarMessage(wstring message); //uses jukebox label
wstring getJukeboxMessage(int iPad) { return overlayMessageString; }
float getJukeboxOpacity(int iPad);

View file

@ -98,6 +98,7 @@ public:
e_ChatCommandTeleportMe,
e_ChatCommandTeleportToMe,
e_ChatActionBar,
};
public: