Skip to content

Add UITabInitializeEvent#629

Open
Xemuain wants to merge 2 commits intoViaVersion:mainfrom
Xemuain:main
Open

Add UITabInitializeEvent#629
Xemuain wants to merge 2 commits intoViaVersion:mainfrom
Xemuain:main

Conversation

@Xemuain
Copy link
Copy Markdown

@Xemuain Xemuain commented Mar 29, 2026

Let to wrap UITab with additional functions.

@EventHandler
private void onUITabInitialize(UITabInitializeEvent event) {
    if (!(event.getTab() instanceof AccountsTab))
        return;

    event.setTab(new WrappedAccountsTab(event.getWindow()));
}

@RaphiMC
Copy link
Copy Markdown
Member

RaphiMC commented Mar 29, 2026

What is your goal with this API? Do you want to full replace a tab or do you want to slightly modify a tab? Could you give an example how this API should be used. If you only want to modify the existing elements, you can do something like this:

final JPanel accountsTabPanel = RStream.of(ui.accountsTab).withSuper().fields().by("contentPane").get();
final JPanel body = (JPanel) accountsTabPanel.getComponent(0);

in the ViaProxyLoadedEvent

Here is a full example of my proposed way to modify the GUI contents (This example adds a new dropdown into the advanced tab): https://github.com/ViaVersionAddons/ViaProxyRakNetProviders/blob/main/src/main/java/net/raphimc/raknetproviders/RakNetProviders.java#L71

If you can't use this way of modifying the GUI let me know with an example of what you want to achieve and then I will consider adding a new event for that purpose

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants