Search in sources :

Example 6 with ServerInfo

use of org.terasology.engine.config.ServerInfo in project Terasology by MovingBlocks.

the class JoinGameScreen method refresh.

public void refresh() {
    ServerInfo i = visibleList.getSelection();
    visibleList.setSelection(null);
    extInfo.clear();
    visibleList.setSelection(i);
}
Also used : ServerInfo(org.terasology.engine.config.ServerInfo)

Example 7 with ServerInfo

use of org.terasology.engine.config.ServerInfo in project Terasology by MovingBlocks.

the class AddServerPopup method initialise.

@Override
public void initialise() {
    nameText = find("name", UIText.class);
    ownerText = find("owner", UIText.class);
    addressText = find("address", UIText.class);
    portText = find("port", UIText.class);
    okButton = find("ok", UIButton.class);
    cancelButton = find("cancel", UIButton.class);
    tip = find("tip", UILabel.class);
    okButton.subscribe(button -> {
        String name = nameText.getText();
        String owner = ownerText.getText();
        String address = addressText.getText();
        Integer portBoxed = Ints.tryParse(portText.getText().trim());
        int port = (portBoxed != null) ? portBoxed : TerasologyConstants.DEFAULT_PORT;
        if (serverInfo == null) {
            // create new
            serverInfo = new ServerInfo(name, address, port);
            serverInfo.setOwner(owner);
        } else {
            // update existing
            serverInfo.setName(name);
            serverInfo.setAddress(address);
            serverInfo.setPort(port);
            serverInfo.setOwner(owner);
        }
        if (successFunc != null) {
            successFunc.accept(serverInfo);
        }
        getManager().popScreen();
    });
    okButton.bindEnabled(new ReadOnlyBinding<Boolean>() {

        @Override
        public Boolean get() {
            return !nameText.getText().isEmpty() && !addressText.getText().isEmpty() && Ints.tryParse(portText.getText().trim()) != null;
        }
    });
    cancelButton.subscribe(button -> getManager().popScreen());
    // copy name to address on ENTER if address is empty
    nameText.subscribe(widget -> {
        if (addressText.getText().isEmpty()) {
            addressText.setText(nameText.getText());
            addressText.setCursorPosition(addressText.getText().length());
        }
        getManager().setFocus(addressText);
    });
    // simulate tabbing behavior
    // TODO: replace with NUI tabbing, once available
    addressText.subscribe(widget -> {
        getManager().setFocus(portText);
    });
}
Also used : UILabel(org.terasology.nui.widgets.UILabel) ServerInfo(org.terasology.engine.config.ServerInfo) UIButton(org.terasology.nui.widgets.UIButton) UIText(org.terasology.nui.widgets.UIText)

Example 8 with ServerInfo

use of org.terasology.engine.config.ServerInfo in project Terasology by MovingBlocks.

the class TelemetryScreen method pushAddServerPopupAndStartEmitter.

private void pushAddServerPopupAndStartEmitter() {
    AddServerPopup addServerPopup = nuiManager.pushScreen(AddServerPopup.ASSET_URI, AddServerPopup.class);
    addServerPopup.removeTip();
    ServerInfo serverInfo;
    TelemetryConfig telemetryConfig = config.getTelemetryConfig();
    String telemetryDestination = telemetryConfig.getTelemetryDestination();
    if (telemetryDestination != null) {
        try {
            URL url = new URL(telemetryDestination);
            String address = url.getHost();
            int port = url.getPort();
            serverInfo = new ServerInfo(telemetryConfig.getTelemetryServerName(), address, port);
            serverInfo.setOwner(telemetryConfig.getTelemetryServerOwner());
        } catch (Exception e) {
            logger.error("Exception when get telemetry server information", e);
            serverInfo = new ServerInfo(TelemetryEmitter.DEFAULT_COLLECTOR_NAME, TelemetryEmitter.DEFAULT_COLLECTOR_HOST, TelemetryEmitter.DEFAULT_COLLECTOR_PORT);
            serverInfo.setOwner(TelemetryEmitter.DEFAULT_COLLECTOR_OWNER);
        }
    } else {
        serverInfo = new ServerInfo(TelemetryEmitter.DEFAULT_COLLECTOR_NAME, TelemetryEmitter.DEFAULT_COLLECTOR_HOST, TelemetryEmitter.DEFAULT_COLLECTOR_PORT);
        serverInfo.setOwner(TelemetryEmitter.DEFAULT_COLLECTOR_OWNER);
    }
    addServerPopup.setServerInfo(serverInfo);
    addServerPopup.onSuccess((item) -> {
        TelemetryEmitter telemetryEmitter = (TelemetryEmitter) emitter;
        Optional<URL> optionalURL = item.getURL("http");
        if (optionalURL.isPresent()) {
            telemetryEmitter.changeUrl(optionalURL.get());
            // Save the telemetry destination
            telemetryConfig.setTelemetryDestination(optionalURL.get().toString());
            telemetryConfig.setTelemetryServerName(item.getName());
            telemetryConfig.setTelemetryServerOwner(item.getOwner());
        }
    });
    addServerPopup.onCancel((button) -> config.getTelemetryConfig().setTelemetryEnabled(false));
}
Also used : ServerInfo(org.terasology.engine.config.ServerInfo) AddServerPopup(org.terasology.engine.rendering.nui.layers.mainMenu.AddServerPopup) URL(java.net.URL) TelemetryConfig(org.terasology.engine.config.TelemetryConfig)

Aggregations

ServerInfo (org.terasology.engine.config.ServerInfo)8 UIButton (org.terasology.nui.widgets.UIButton)4 UILabel (org.terasology.nui.widgets.UILabel)4 URL (java.net.URL)3 ReadOnlyBinding (org.terasology.nui.databinding.ReadOnlyBinding)3 Future (java.util.concurrent.Future)2 TelemetryConfig (org.terasology.engine.config.TelemetryConfig)2 AddServerPopup (org.terasology.engine.rendering.nui.layers.mainMenu.AddServerPopup)2 Joiner (com.google.common.base.Joiner)1 Predicate (com.google.common.base.Predicate)1 Collections2 (com.google.common.collect.Collections2)1 JsonReader (com.google.gson.stream.JsonReader)1 IOException (java.io.IOException)1 InputStreamReader (java.io.InputStreamReader)1 Reader (java.io.Reader)1 ArrayList (java.util.ArrayList)1 Collections (java.util.Collections)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1