ViewAPI - Manages sidebars

This is a discussion topic for the Ore project, ViewAPI. View the full project on Ore for downloads and more information.


ViewAPI

Simple api for creating scoreboards for players.

Usage

Sidebar

Optional<SidebarManager> sidebarManagerOpt = Sponge.getServiceManager().provide(SidebarManager.class);
if (sidebarManagerOpt.isPresent()) {
    SidebarManager sidebarManager = sidebarManagerOpt.get();
    Sidebar sidebar = sidebarManager.createSidebar(player);
    sidebar.setTitle(new StaticText(Text.of("Title!")));
    sidebar.addLine(new StaticText(Text.of("Hello world!")));
    sidebar.addLine(sidebar.getEmptyText());
    sidebar.addLine(new StaticText(Text.of("Simple line!")));
    sidebar.addLine(new DynamicText(Text.of("Some"), Text.of("Dynamic"), Text.of("Text"), Text.of("Here!")));
}

public class DynamicText implements SidebarText {
    private final Text[] texts;
    private int pos;

    public DynamicText(Text... texts) {
        this.texts = texts;
        this.pos = 0;
    }

    @Override
    public Text getText() {
        return texts[pos = ((pos + 1) % texts.length)];
    }

    @Override
    public void setText(Text text) {
        throw new UnsupportedOperationException();
    }
}

Menu

Menu menu = menuManager.createMenu("test", Text.of("Test menu"), 6);
for (int i = 0; i < 54; i++) {
    final int pos = i;
    menu.setItem(new AbstractMenuItem(ItemStack.of(ItemTypes.DIAMOND, 1)) {
        @Override
        public void onClick(Player player) {
            player.sendMessage(Text.of("Clicked slot=" + pos));
        }
    }, SlotIndex.of(pos));
}
menu.syncIcons();
menu.open(player);
1 Like

A new version has been released for ViewAPI, it is available for download here.


Leak fix, more synchronization, sidebar pre-update listener api extension.

A new version has been released for ViewAPI, it is available for download here.


Performance fix, more listeners.

A new version has been released for ViewAPI, it is available for download here.


Fix api method naming.

A new version has been released for ViewAPI, it is available for download here.


Fix hashmap leak

A new version has been released for ViewAPI, it is available for download here.


Inventory GUI api!

A new version has been released for ViewAPI, it is available for download here.


Crash fixed

A new version has been released for ViewAPI, it is available for download here.


Fixed operator order for sidebar, should be working now.

Is there a way to set scoreboard team options (such as collisionRule) on the team created by this plugin? @Xakep_SDK

Yes, but not using ViewAPI api, just get target players scoreboard after creating it using ViewAPI and create new team and configure it.