Search in sources :

Example 1 with KryoServer

use of io.anuke.kryonet.KryoServer in project Mindustry by Anuken.

the class ServerLauncher method main.

public static void main(String[] args) throws Exception {
    Net.setClientProvider(new KryoClient());
    Net.setServerProvider(new KryoServer());
    new HeadlessApplication(new MindustryServer());
    // find and handle uncaught exceptions in libGDX thread
    for (Thread thread : Thread.getAllStackTraces().keySet()) {
        if (thread.getName().equals("HeadlessApplication")) {
            thread.setUncaughtExceptionHandler((t, throwable) -> {
                throwable.printStackTrace();
                System.exit(-1);
            });
            break;
        }
    }
}
Also used : KryoServer(io.anuke.kryonet.KryoServer) HeadlessApplication(com.badlogic.gdx.backends.headless.HeadlessApplication) KryoClient(io.anuke.kryonet.KryoClient)

Example 2 with KryoServer

use of io.anuke.kryonet.KryoServer in project Mindustry by Anuken.

the class AndroidLauncher method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
    config.useImmersiveMode = true;
    Platform.instance = new Platform() {

        DateFormat format = SimpleDateFormat.getDateTimeInstance();

        @Override
        public boolean hasDiscord() {
            return isPackageInstalled("com.discord");
        }

        @Override
        public String format(Date date) {
            return format.format(date);
        }

        @Override
        public String format(int number) {
            return NumberFormat.getIntegerInstance().format(number);
        }

        @Override
        public void addDialog(TextField field, int length) {
            TextFieldDialogListener.add(field, 0, length);
        }

        @Override
        public String getLocaleName(Locale locale) {
            return locale.getDisplayName(locale);
        }

        @Override
        public void openDonations() {
            showDonations();
        }

        @Override
        public void requestWritePerms() {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                    requestPermissions(new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE }, WRITE_REQUEST_CODE);
                } else {
                    if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                        requestPermissions(new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, WRITE_REQUEST_CODE);
                    }
                    if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                        requestPermissions(new String[] { Manifest.permission.READ_EXTERNAL_STORAGE }, WRITE_REQUEST_CODE);
                    }
                }
            }
        }

        @Override
        public ThreadProvider getThreadProvider() {
            return new DefaultThreadImpl();
        }

        @Override
        public boolean isDebug() {
            return false;
        }

        @Override
        public byte[] getUUID() {
            try {
                String s = Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID);
                int len = s.length();
                byte[] data = new byte[len / 2];
                for (int i = 0; i < len; i += 2) {
                    data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i + 1), 16));
                }
                return data;
            } catch (Exception e) {
                Settings.defaults("uuid", "");
                String uuid = Settings.getString("uuid");
                if (uuid.isEmpty()) {
                    byte[] result = new byte[8];
                    new Random().nextBytes(result);
                    uuid = new String(Base64Coder.encode(result));
                    Settings.putString("uuid", uuid);
                    Settings.save();
                    return result;
                }
                return Base64Coder.decode(uuid);
            }
        }
    };
    if (doubleScaleTablets && isTablet(this.getContext())) {
        Unit.dp.addition = 0.5f;
    }
    config.hideStatusBar = true;
    Net.setClientProvider(new KryoClient());
    Net.setServerProvider(new KryoServer());
    initialize(new Mindustry(), config);
}
Also used : Locale(java.util.Locale) Platform(io.anuke.mindustry.io.Platform) KryoServer(io.anuke.kryonet.KryoServer) DefaultThreadImpl(io.anuke.kryonet.DefaultThreadImpl) Date(java.util.Date) AndroidApplicationConfiguration(com.badlogic.gdx.backends.android.AndroidApplicationConfiguration) Random(java.util.Random) SimpleDateFormat(java.text.SimpleDateFormat) DateFormat(java.text.DateFormat) TextField(io.anuke.ucore.scene.ui.TextField) ThreadProvider(io.anuke.mindustry.core.ThreadHandler.ThreadProvider) KryoClient(io.anuke.kryonet.KryoClient)

Example 3 with KryoServer

use of io.anuke.kryonet.KryoServer in project Mindustry by Anuken.

the class DesktopLauncher method main.

public static void main(String[] arg) {
    Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
    config.setTitle("Mindustry");
    config.setMaximized(true);
    config.setWindowedMode(960, 540);
    config.setWindowIcon("sprites/icon.png");
    Platform.instance = new DesktopPlatform(arg);
    Net.setClientProvider(new KryoClient());
    Net.setServerProvider(new KryoServer());
    try {
        new Lwjgl3Application(new Mindustry(), config);
    } catch (Throwable e) {
        CrashHandler.handle(e);
    }
}
Also used : Mindustry(io.anuke.mindustry.Mindustry) KryoServer(io.anuke.kryonet.KryoServer) Lwjgl3Application(com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application) Lwjgl3ApplicationConfiguration(com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration) KryoClient(io.anuke.kryonet.KryoClient)

Aggregations

KryoClient (io.anuke.kryonet.KryoClient)3 KryoServer (io.anuke.kryonet.KryoServer)3 AndroidApplicationConfiguration (com.badlogic.gdx.backends.android.AndroidApplicationConfiguration)1 HeadlessApplication (com.badlogic.gdx.backends.headless.HeadlessApplication)1 Lwjgl3Application (com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application)1 Lwjgl3ApplicationConfiguration (com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration)1 DefaultThreadImpl (io.anuke.kryonet.DefaultThreadImpl)1 Mindustry (io.anuke.mindustry.Mindustry)1 ThreadProvider (io.anuke.mindustry.core.ThreadHandler.ThreadProvider)1 Platform (io.anuke.mindustry.io.Platform)1 TextField (io.anuke.ucore.scene.ui.TextField)1 DateFormat (java.text.DateFormat)1 SimpleDateFormat (java.text.SimpleDateFormat)1 Date (java.util.Date)1 Locale (java.util.Locale)1 Random (java.util.Random)1