diff --git a/app_pojavlauncher/src/main/AndroidManifest.xml b/app_pojavlauncher/src/main/AndroidManifest.xml
index 8e0710c5d..745a4a760 100644
--- a/app_pojavlauncher/src/main/AndroidManifest.xml
+++ b/app_pojavlauncher/src/main/AndroidManifest.xml
@@ -49,33 +49,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app_pojavlauncher/src/main/assets/plugins/MobileClientBindings.zip b/app_pojavlauncher/src/main/assets/plugins/MobileClientBindings.zip
index 04e1c5dd1..1467b22ef 100644
Binary files a/app_pojavlauncher/src/main/assets/plugins/MobileClientBindings.zip and b/app_pojavlauncher/src/main/assets/plugins/MobileClientBindings.zip differ
diff --git a/app_pojavlauncher/src/main/assets/rt4.jar b/app_pojavlauncher/src/main/assets/rt4.jar
index a9de508d4..1e0418fa9 100644
Binary files a/app_pojavlauncher/src/main/assets/rt4.jar and b/app_pojavlauncher/src/main/assets/rt4.jar differ
diff --git a/app_pojavlauncher/src/main/ic_launcher-playstore.png b/app_pojavlauncher/src/main/ic_launcher-playstore.png
new file mode 100644
index 000000000..36a7edc7f
Binary files /dev/null and b/app_pojavlauncher/src/main/ic_launcher-playstore.png differ
diff --git a/app_pojavlauncher/src/main/java/com/kdt/mcgui/MineButton.java b/app_pojavlauncher/src/main/java/com/kdt/mcgui/MineButton.java
deleted file mode 100644
index 8d5c65f46..000000000
--- a/app_pojavlauncher/src/main/java/com/kdt/mcgui/MineButton.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.kdt.mcgui;
-
-import android.content.*;
-import android.graphics.*;
-import android.util.*;
-
-import androidx.core.content.res.ResourcesCompat;
-
-import net.kdt.pojavlaunch.R;
-
-public class MineButton extends androidx.appcompat.widget.AppCompatButton {
-
- public MineButton(Context ctx) {
- this(ctx, null);
- }
-
- public MineButton(Context ctx, AttributeSet attrs) {
- super(ctx, attrs);
- init();
- }
-
- public void init() {
- setTypeface(ResourcesCompat.getFont(getContext(), R.font.noto_sans_bold));
- setBackground(ResourcesCompat.getDrawable(getResources(), R.drawable.mine_button_background, null));
- setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimensionPixelSize(R.dimen._13ssp));
- }
-
-}
diff --git a/app_pojavlauncher/src/main/java/com/kdt/mcgui/MineEditText.java b/app_pojavlauncher/src/main/java/com/kdt/mcgui/MineEditText.java
deleted file mode 100644
index 5b1bc75c3..000000000
--- a/app_pojavlauncher/src/main/java/com/kdt/mcgui/MineEditText.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.kdt.mcgui;
-
-import android.content.*;
-import android.util.*;
-import android.graphics.*;
-import android.widget.EditText;
-
-public class MineEditText extends androidx.appcompat.widget.AppCompatEditText {
- public MineEditText(Context ctx) {
- super(ctx);
- init();
- }
-
- public MineEditText(Context ctx, AttributeSet attrs) {
- super(ctx, attrs);
- init();
- }
-
- public void init() {
- setBackgroundColor(Color.parseColor("#131313"));
- setPadding(5, 5, 5, 5);
- }
-}
diff --git a/app_pojavlauncher/src/main/java/com/kdt/mcgui/mcAccountSpinner.java b/app_pojavlauncher/src/main/java/com/kdt/mcgui/mcAccountSpinner.java
deleted file mode 100644
index 79df93aff..000000000
--- a/app_pojavlauncher/src/main/java/com/kdt/mcgui/mcAccountSpinner.java
+++ /dev/null
@@ -1,328 +0,0 @@
-package com.kdt.mcgui;
-
-import android.animation.ObjectAnimator;
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.graphics.drawable.BitmapDrawable;
-import android.net.Uri;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.Toast;
-
-import androidx.annotation.Keep;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.appcompat.widget.AppCompatSpinner;
-
-
-import net.kdt.pojavlaunch.PojavProfile;
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.authenticator.listener.DoneListener;
-import net.kdt.pojavlaunch.authenticator.listener.ErrorListener;
-import net.kdt.pojavlaunch.authenticator.listener.ProgressListener;
-import net.kdt.pojavlaunch.authenticator.microsoft.PresentedException;
-import net.kdt.pojavlaunch.authenticator.microsoft.MicrosoftBackgroundLogin;
-import net.kdt.pojavlaunch.extra.ExtraConstants;
-import net.kdt.pojavlaunch.extra.ExtraCore;
-import net.kdt.pojavlaunch.extra.ExtraListener;
-import net.kdt.pojavlaunch.value.MinecraftAccount;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import fr.spse.extended_view.ExtendedTextView;
-
-public class mcAccountSpinner extends AppCompatSpinner implements AdapterView.OnItemSelectedListener {
- public mcAccountSpinner(@NonNull Context context) {
- this(context, null);
- }
- public mcAccountSpinner(@NonNull Context context, @Nullable AttributeSet attrs) {
- super(context, attrs);
- init();
- }
-
- private final List mAccountList = new ArrayList<>(2);
- private MinecraftAccount mSelectecAccount = null;
-
- /* Display the head of the current profile, here just to allow bitmap recycling */
- private BitmapDrawable mHeadDrawable;
-
- /* Current animator to for the login bar, is swapped when changing step */
- private ObjectAnimator mLoginBarAnimator;
- private float mLoginBarWidth = -1;
-
- /* Paint used to display the bottom bar, to show the login progress. */
- private final Paint mLoginBarPaint = new Paint();
-
- /* When a login is performed in the background, we need to know where we are */
- private final static int MAX_LOGIN_STEP = 5;
- private int mLoginStep = 0;
-
- /* Login listeners */
- private final ProgressListener mProgressListener = step -> {
- // Animate the login bar, cosmetic purposes only
- mLoginStep = step;
- if(mLoginBarAnimator != null){
- mLoginBarAnimator.cancel();
- mLoginBarAnimator.setFloatValues( mLoginBarWidth, (getWidth()/MAX_LOGIN_STEP * mLoginStep));
- }else{
- mLoginBarAnimator = ObjectAnimator.ofFloat(this, "LoginBarWidth", mLoginBarWidth, (getWidth()/MAX_LOGIN_STEP * mLoginStep));
- }
- mLoginBarAnimator.start();
- };
-
- private final DoneListener mDoneListener = account -> {
- Toast.makeText(getContext(), R.string.main_login_done, Toast.LENGTH_SHORT).show();
-
- // Check if the account being added is not one that is already existing
- // Like login twice on the same mc account...
- for(String mcAccountName : mAccountList){
- if(mcAccountName.equals(account.username)) return;
- }
-
- mSelectecAccount = account;
- invalidate();
- mAccountList.add(account.username);
- reloadAccounts(false, mAccountList.size() -1);
- };
-
- private final ErrorListener mErrorListener = errorMessage -> {
- mLoginBarPaint.setColor(Color.RED);
- if(errorMessage instanceof PresentedException) {
- PresentedException exception = (PresentedException) errorMessage;
- Tools.showError(getContext(), exception.toString(getContext()), exception.getCause());
- }else {
- Tools.showError(getContext(), errorMessage);
- }
- invalidate();
- };
-
- /* Triggered when we need to do microsoft login */
- private final ExtraListener mMicrosoftLoginListener = (key, value) -> {
- mLoginBarPaint.setColor(getResources().getColor(R.color.minebutton_color));
- new MicrosoftBackgroundLogin(false, value.getQueryParameter("code")).performLogin(
- mProgressListener, mDoneListener, mErrorListener);
- return false;
- };
-
- /* Triggered when we need to perform mojang login */
- private final ExtraListener mMojangLoginListener = (key, value) -> {
- if(value[1].isEmpty()){ // Test mode
- MinecraftAccount account = new MinecraftAccount();
- account.username = value[0];
- try {
- account.save();
- }catch (IOException e){
- Log.e("McAccountSpinner", "Failed to save the account : " + e);
- }
-
- mDoneListener.onLoginDone(account);
- }
- return false;
- };
-
-
- @SuppressLint("ClickableViewAccessibility")
- private void init(){
- // Set visual properties
- setBackgroundColor(getResources().getColor(R.color.background_status_bar));
- mLoginBarPaint.setColor(getResources().getColor(R.color.minebutton_color));
- mLoginBarPaint.setStrokeWidth(getResources().getDimensionPixelOffset(R.dimen._2sdp));
-
- // Set behavior
- reloadAccounts(true, 0);
- setOnItemSelectedListener(this);
-
- ExtraCore.addExtraListener(ExtraConstants.MOJANG_LOGIN_TODO, mMojangLoginListener);
- ExtraCore.addExtraListener(ExtraConstants.MICROSOFT_LOGIN_TODO, mMicrosoftLoginListener);
- }
-
-
- @Override
- public final void onItemSelected(AdapterView> parent, View view, int position, long id) {
- if(position == 0){ // Add account button
- if(mAccountList.size() > 1){
- ExtraCore.setValue(ExtraConstants.SELECT_AUTH_METHOD, true);
- }
- return;
- }
-
- pickAccount(position);
- if(mSelectecAccount != null)
- performLogin(mSelectecAccount);
- }
-
- @Override
- public final void onNothingSelected(AdapterView> parent) {}
-
-
- @Override
- protected void onDraw(Canvas canvas) {
- if(mLoginBarWidth == -1) mLoginBarWidth = getWidth(); // Initial draw
-
- float bottom = getHeight() - mLoginBarPaint.getStrokeWidth()/2;
- canvas.drawLine(0, bottom, mLoginBarWidth, bottom, mLoginBarPaint);
- }
-
- public void removeCurrentAccount(){
- int position = getSelectedItemPosition();
- if(position == 0) return;
- File accountFile = new File(Tools.DIR_ACCOUNT_NEW, mAccountList.get(position)+".json");
- if(accountFile.exists()) accountFile.delete();
- mAccountList.remove(position);
-
- reloadAccounts(false, 0);
- }
-
- @Keep
- public void setLoginBarWidth(float value){
- mLoginBarWidth = value;
- invalidate(); // Need to redraw each time this is changed
- }
-
- /** Allows checking whether we have an online account */
- public boolean isAccountOnline(){
- return mSelectecAccount != null && !mSelectecAccount.accessToken.equals("0");
- }
-
- public MinecraftAccount getSelectedAccount(){
- return mSelectecAccount;
- }
-
- public int getLoginState(){
- return mLoginStep;
- }
-
- public boolean isLoginDone(){
- return mLoginStep >= MAX_LOGIN_STEP;
- }
-
- @SuppressLint("ClickableViewAccessibility")
- private void setNoAccountBehavior(){
- // Set custom behavior when no account are present, to make it act as a button
- if(mAccountList.size() != 1){
- // Remove any touch listener
- setOnTouchListener(null);
- return;
- }
-
- // Make the spinner act like a button, since there is no item to really select
- setOnTouchListener((v, event) -> {
- if(event.getAction() != MotionEvent.ACTION_UP) return false;
- // The activity should intercept this and spawn another fragment
- ExtraCore.setValue(ExtraConstants.SELECT_AUTH_METHOD, true);
- return true;
- });
- }
-
- /**
- * Reload the spinner, from memory or from scratch. A default account can be selected
- * @param fromFiles Whether we use files as the source of truth
- * @param overridePosition Force the spinner to be at this position, if not 0
- */
- private void reloadAccounts(boolean fromFiles, int overridePosition){
- if(fromFiles){
- mAccountList.clear();
-
- mAccountList.add(getContext().getString(R.string.main_add_account));
- File accountFolder = new File(Tools.DIR_ACCOUNT_NEW);
- if(accountFolder.exists()){
- for (String fileName : accountFolder.list()) {
- mAccountList.add(fileName.substring(0, fileName.length() - 5));
- }
- }
- }
-
- String[] accountArray = mAccountList.toArray(new String[0]);
- ArrayAdapter accountAdapter = new ArrayAdapter<>(getContext(), R.layout.item_minecraft_account, accountArray);
- accountAdapter.setDropDownViewResource(R.layout.item_minecraft_account);
- setAdapter(accountAdapter);
-
- // Pick what's available, might just be the the add account "button"
- pickAccount(overridePosition == 0 ? -1 : overridePosition);
- if(mSelectecAccount != null)
- performLogin(mSelectecAccount);
-
- // Remove or add the behavior if needed
- setNoAccountBehavior();
-
- }
-
- private void performLogin(MinecraftAccount minecraftAccount){
- if(minecraftAccount.isLocal()) return;
-
- mLoginBarPaint.setColor(getResources().getColor(R.color.minebutton_color));
- if(minecraftAccount.isMicrosoft){
- if(System.currentTimeMillis() > minecraftAccount.expiresAt){
- // Perform login only if needed
- new MicrosoftBackgroundLogin(true, minecraftAccount.msaRefreshToken)
- .performLogin(mProgressListener, mDoneListener, mErrorListener);
- }
- return;
- }
- }
-
- /** Pick the selected account, the one in settings if 0 is passed */
- private void pickAccount(int position){
- MinecraftAccount selectedAccount;
- if(position != -1){
- PojavProfile.setCurrentProfile(getContext(), mAccountList.get(position));
- selectedAccount = PojavProfile.getCurrentProfileContent(getContext(), mAccountList.get(position));
-
-
- // WORKAROUND
- // Account file corrupted due to previous versions having improper encoding
- if (selectedAccount == null){
- removeCurrentAccount();
- pickAccount(-1);
- setSelection(0);
- return;
- }
- setSelection(position);
- }else {
- // Get the current profile, or the first available profile if the wanted one is unavailable
- selectedAccount = PojavProfile.getCurrentProfileContent(getContext(), null);
- int spinnerPosition = selectedAccount == null
- ? mAccountList.size() <= 1 ? 0 : 1
- : mAccountList.indexOf(selectedAccount.username);
- setSelection(spinnerPosition, false);
- }
-
- mSelectecAccount = selectedAccount;
- BitmapDrawable oldBitmapDrawable = mHeadDrawable;
-
- if(mSelectecAccount != null){
- ExtendedTextView view = ((ExtendedTextView) getSelectedView());
- if(view != null){
- Bitmap bitmap = mSelectecAccount.getSkinFace();
- if(bitmap != null) {
- mHeadDrawable = new BitmapDrawable(bitmap);
- mHeadDrawable.setBounds(0, 0, bitmap.getWidth(), bitmap.getHeight());
-
- view.setCompoundDrawables(mHeadDrawable, null, null, null);
- view.postProcessDrawables();
- }else{
- view.setCompoundDrawables(null, null, null, null);
- view.postProcessDrawables();
- }
- }
- }
-
- if(oldBitmapDrawable != null){
- oldBitmapDrawable.getBitmap().recycle();
- }
-
- }
-
-}
diff --git a/app_pojavlauncher/src/main/java/com/kdt/mcgui/mcVersionSpinner.java b/app_pojavlauncher/src/main/java/com/kdt/mcgui/mcVersionSpinner.java
deleted file mode 100644
index d0cd464c2..000000000
--- a/app_pojavlauncher/src/main/java/com/kdt/mcgui/mcVersionSpinner.java
+++ /dev/null
@@ -1,180 +0,0 @@
-package com.kdt.mcgui;
-
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static net.kdt.pojavlaunch.fragments.ProfileEditorFragment.DELETED_PROFILE;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.os.Build;
-import android.transition.Slide;
-import android.transition.Transition;
-import android.util.AttributeSet;
-import android.util.TypedValue;
-import android.view.Gravity;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.ListView;
-import android.widget.PopupWindow;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.core.content.res.ResourcesCompat;
-import androidx.fragment.app.FragmentActivity;
-
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.extra.ExtraConstants;
-import net.kdt.pojavlaunch.extra.ExtraCore;
-import net.kdt.pojavlaunch.fragments.ProfileTypeSelectFragment;
-import net.kdt.pojavlaunch.prefs.LauncherPreferences;
-import net.kdt.pojavlaunch.profiles.ProfileAdapter;
-import net.kdt.pojavlaunch.profiles.ProfileAdapterExtra;
-
-import fr.spse.extended_view.ExtendedTextView;
-
-/**
- * A class implementing custom spinner like behavior, notably:
- * dropdown popup view with a custom direction.
- */
-public class mcVersionSpinner extends ExtendedTextView {
- private static final int VERSION_SPINNER_PROFILE_CREATE = 0;
- private static final int VERSION_SPINNER_PROFILE_CREATE_MODDED = 1;
- public mcVersionSpinner(@NonNull Context context) {
- super(context);
- init();
- }
- public mcVersionSpinner(@NonNull Context context, @Nullable AttributeSet attrs) {
- super(context, attrs);
- init();
- }
- public mcVersionSpinner(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- init();
- }
-
- /* The class is in charge of displaying its own list with adapter content being known in advance */
- private ListView mListView = null;
- private PopupWindow mPopupWindow = null;
- private Object mPopupAnimation;
- private final ProfileAdapter mProfileAdapter = new ProfileAdapter(getContext(), new ProfileAdapterExtra[]{
- new ProfileAdapterExtra(VERSION_SPINNER_PROFILE_CREATE,
- R.string.create_profile,
- ResourcesCompat.getDrawable(getResources(), R.drawable.ic_add, null)),
- });
-
-
- /** Set the selection AND saves it as a shared preference */
- public void setProfileSelection(int position){
- setSelection(position);
- LauncherPreferences.DEFAULT_PREF.edit()
- .putString(LauncherPreferences.PREF_KEY_CURRENT_PROFILE,
- mProfileAdapter.getItem(position).toString())
- .apply();
- }
-
- public void setSelection(int position){
- if(mListView != null) mListView.setSelection(position);
- mProfileAdapter.setViewProfile(this, (String) mProfileAdapter.getItem(position), false);
- }
-
- /** Initialize various behaviors */
- private void init(){
- // Setup various attributes
- setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimensionPixelSize(R.dimen._12ssp));
- setGravity(Gravity.CENTER_VERTICAL);
- int startPadding = getContext().getResources().getDimensionPixelOffset(R.dimen._17sdp);
- int endPadding = getContext().getResources().getDimensionPixelOffset(R.dimen._5sdp);
- setPaddingRelative(startPadding, 0, endPadding, 0);
- setCompoundDrawablePadding(startPadding);
-
- int profileIndex;
- String extra_value = (String) ExtraCore.consumeValue(ExtraConstants.REFRESH_VERSION_SPINNER);
- if(extra_value != null){
- profileIndex = extra_value.equals(DELETED_PROFILE) ? 0
- : getProfileAdapter().resolveProfileIndex(extra_value);
- }else
- profileIndex = mProfileAdapter.resolveProfileIndex(
- LauncherPreferences.DEFAULT_PREF.getString(LauncherPreferences.PREF_KEY_CURRENT_PROFILE,""));
-
- setProfileSelection(Math.max(0,profileIndex));
-
- // Popup window behavior
- setOnClickListener(new OnClickListener() {
- final int offset = -getContext().getResources().getDimensionPixelOffset(R.dimen._4sdp);
- @Override
- public void onClick(View v) {
- if(mPopupWindow == null) getPopupWindow();
-
- if(mPopupWindow.isShowing()){
- mPopupWindow.dismiss();
- return;
- }
- mPopupWindow.showAsDropDown(mcVersionSpinner.this, 0, offset);
- }
- });
- }
-
-
- /** Create the listView and popup window for the interface, and set up the click behavior */
- @SuppressLint("ClickableViewAccessibility")
- private void getPopupWindow(){
- mListView = (ListView) inflate(getContext(), R.layout.spinner_mc_version, null);
- mListView.setAdapter(mProfileAdapter);
- mListView.setOnItemClickListener((parent, view, position, id) -> {
- Object item = mProfileAdapter.getItem(position);
- if(item instanceof String) {
- hidePopup(true);
- setProfileSelection(position);
- }else if(item instanceof ProfileAdapterExtra) {
- hidePopup(false);
- ProfileAdapterExtra extra = (ProfileAdapterExtra) item;
- switch (extra.id) {
- case VERSION_SPINNER_PROFILE_CREATE:
- Tools.swapFragment((FragmentActivity) getContext(), ProfileTypeSelectFragment.class,
- ProfileTypeSelectFragment.TAG, true, null);
- break;
- }
- }
- });
-
- mPopupWindow = new PopupWindow(mListView, MATCH_PARENT, getContext().getResources().getDimensionPixelOffset(R.dimen._184sdp));
- mPopupWindow.setElevation(5);
- mPopupWindow.setClippingEnabled(false);
-
- // Block clicking outside of the popup window
- mPopupWindow.setOutsideTouchable(true);
- mPopupWindow.setFocusable(true);
- mPopupWindow.setTouchInterceptor((v, event) -> {
- if(event.getAction() == MotionEvent.ACTION_OUTSIDE){
- mPopupWindow.dismiss();
- return true;
- }
- return false;
- });
-
-
- // Custom animation, nice slide in
- if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
- mPopupAnimation = new Slide(Gravity.BOTTOM);
- mPopupWindow.setEnterTransition((Transition) mPopupAnimation);
- mPopupWindow.setExitTransition((Transition) mPopupAnimation);
- }
- }
-
- private void hidePopup(boolean animate) {
- if(mPopupWindow == null) return;
- if(!animate && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- mPopupWindow.setEnterTransition(null);
- mPopupWindow.setExitTransition(null);
- mPopupWindow.dismiss();
- mPopupWindow.setEnterTransition((Transition) mPopupAnimation);
- mPopupWindow.setExitTransition((Transition) mPopupAnimation);
- }else {
- mPopupWindow.dismiss();
- }
- }
-
- public ProfileAdapter getProfileAdapter() {
- return mProfileAdapter;
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/FatalErrorActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/FatalErrorActivity.java
index 429d8e764..5fb1802e5 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/FatalErrorActivity.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/FatalErrorActivity.java
@@ -24,7 +24,7 @@ public class FatalErrorActivity extends AppCompatActivity {
.setTitle(R.string.error_fatal)
.setMessage(errHeader + "\n\n" + stackTrace)
.setPositiveButton(android.R.string.ok, (p1, p2) -> finish())
- .setNegativeButton(R.string.global_restart, (p1, p2) -> startActivity(new Intent(FatalErrorActivity.this, LauncherActivity.class)))
+ .setNegativeButton(R.string.global_restart, (p1, p2) -> startActivity(new Intent(FatalErrorActivity.this, DummyLauncher.class)))
.setNeutralButton(android.R.string.copy, (p1, p2) -> {
ClipboardManager mgr = (ClipboardManager) FatalErrorActivity.this.getSystemService(CLIPBOARD_SERVICE);
mgr.setPrimaryClip(ClipData.newPlainText("error", stackTrace));
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/ImportControlActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/ImportControlActivity.java
deleted file mode 100644
index a3739dbd5..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/ImportControlActivity.java
+++ /dev/null
@@ -1,187 +0,0 @@
-package net.kdt.pojavlaunch;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Bundle;
-import android.view.View;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.EditText;
-import android.widget.Toast;
-
-import androidx.annotation.Nullable;
-
-import net.kdt.pojavlaunch.utils.FileUtils;
-
-import org.apache.commons.io.IOUtils;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * An activity dedicated to importing control files.
- */
-@SuppressWarnings("IOStreamConstructor")
-public class ImportControlActivity extends Activity {
-
- private Uri mUriData;
- private boolean mHasIntentChanged = true;
- private volatile boolean mIsFileVerified = false;
-
- private EditText mEditText;
-
-
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Tools.initContextConstants(getApplicationContext());
-
- setContentView(R.layout.activity_import_control);
- mEditText = findViewById(R.id.editText_import_control_file_name);
- }
-
- /**
- * Override the previous loaded intent
- * @param intent the intent used to replace the old one.
- */
- @Override
- protected void onNewIntent(Intent intent) {
- if(intent != null) setIntent(intent);
- mHasIntentChanged = true;
- }
-
- /**
- * Update all over again if the intent changed.
- */
- @Override
- protected void onPostResume() {
- super.onPostResume();
- if(!mHasIntentChanged) return;
- mIsFileVerified = false;
- getUriData();
- if(mUriData == null) {
- finishAndRemoveTask();
- return;
- }
- mEditText.setText(trimFileName(Tools.getFileName(this, mUriData)));
- mHasIntentChanged = false;
-
- //Import and verify thread
- //Kill the app if the file isn't valid.
- new Thread(() -> {
- importControlFile();
-
- if(verify())mIsFileVerified = true;
- else runOnUiThread(() -> {
- Toast.makeText(
- ImportControlActivity.this,
- getText(R.string.import_control_invalid_file),
- Toast.LENGTH_SHORT).show();
- finishAndRemoveTask();
- });
- }).start();
-
- //Auto show the keyboard
- Tools.MAIN_HANDLER.postDelayed(() -> {
- InputMethodManager imm = (InputMethodManager) getApplicationContext().getSystemService(INPUT_METHOD_SERVICE);
- imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
- mEditText.setSelection(mEditText.getText().length());
- }, 100);
- }
-
- /**
- * Start the import.
- * @param view the view which called the function
- */
- public void startImport(View view) {
- String fileName = trimFileName(mEditText.getText().toString());
- //Step 1 check for suffixes.
- if(!isFileNameValid(fileName)){
- Toast.makeText(this, getText(R.string.import_control_invalid_name), Toast.LENGTH_SHORT).show();
- return;
- }
- if(!mIsFileVerified){
- Toast.makeText(this, getText(R.string.import_control_verifying_file), Toast.LENGTH_LONG).show();
- return;
- }
-
- new File(Tools.CTRLMAP_PATH + "/TMP_IMPORT_FILE.json").renameTo(new File(Tools.CTRLMAP_PATH + "/" + fileName + ".json"));
- Toast.makeText(getApplicationContext(), getText(R.string.import_control_done), Toast.LENGTH_SHORT).show();
- finishAndRemoveTask();
- }
-
- /**
- * Copy a the file from the Intent data with a provided name into the controlmap folder.
- */
- private void importControlFile(){
- InputStream is;
- try {
- is = getContentResolver().openInputStream(mUriData);
- OutputStream os = new FileOutputStream(Tools.CTRLMAP_PATH + "/" + "TMP_IMPORT_FILE" + ".json");
- IOUtils.copy(is, os);
-
- os.close();
- is.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- /**
- * Tell if the clean version of the filename is valid.
- * @param fileName the string to test
- * @return whether the filename is valid
- */
- private static boolean isFileNameValid(String fileName){
- fileName = trimFileName(fileName);
-
- if(fileName.isEmpty()) return false;
- return !FileUtils.exists(Tools.CTRLMAP_PATH + "/" + fileName + ".json");
- }
-
- /**
- * Remove or undesirable chars from the string
- * @param fileName The string to trim
- * @return The trimmed string
- */
- private static String trimFileName(String fileName){
- return fileName
- .replace(".json", "")
- .replaceAll("%..", "/")
- .replace("/", "")
- .replace("\\", "")
- .trim();
- }
-
- /**
- * Tries to get an Uri from the various sources
- */
- private void getUriData(){
- mUriData = getIntent().getData();
- if(mUriData != null) return;
- try {
- mUriData = getIntent().getClipData().getItemAt(0).getUri();
- }catch (Exception ignored){}
- }
-
- /**
- * Verify if the control file is valid
- * @return Whether the control file is valid
- */
- private static boolean verify(){
- try{
- String jsonLayoutData = Tools.read(Tools.CTRLMAP_PATH + "/TMP_IMPORT_FILE.json");
- JSONObject layoutJobj = new JSONObject(jsonLayoutData);
- return layoutJobj.has("version") && layoutJobj.has("mControlDataList");
- }catch (JSONException | IOException e) {
- e.printStackTrace();
- return false;
- }
- }
-
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JMinecraftVersionList.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JMinecraftVersionList.java
index 5b753efa5..c34892017 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JMinecraftVersionList.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JMinecraftVersionList.java
@@ -2,7 +2,6 @@ package net.kdt.pojavlaunch;
import androidx.annotation.Keep;
import java.util.*;
-import net.kdt.pojavlaunch.value.*;
@Keep
@SuppressWarnings("unused") // all unused fields here are parts of JSON structures
@@ -23,10 +22,8 @@ public class JMinecraftVersionList {
public AssetIndex assetIndex;
public String assets;
- public Map downloads;
public String inheritsFrom;
public JavaVersionInfo javaVersion;
- public DependentLibrary[] libraries;
public LoggingConfig logging;
public String mainClass;
public String minecraftArguments;
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JRE17Util.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JRE17Util.java
index f004f1307..d7b778386 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JRE17Util.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JRE17Util.java
@@ -8,8 +8,6 @@ import android.util.Log;
import net.kdt.pojavlaunch.multirt.MultiRTUtils;
import net.kdt.pojavlaunch.multirt.Runtime;
-import net.kdt.pojavlaunch.value.launcherprofiles.LauncherProfiles;
-import net.kdt.pojavlaunch.value.launcherprofiles.MinecraftProfile;
import java.io.IOException;
@@ -49,46 +47,6 @@ public class JRE17Util {
return NEW_JRE_NAME.equals(runtime.name);
}
- /** @return true if everything is good, false otherwise. */
- public static boolean installNewJreIfNeeded(Activity activity, JMinecraftVersionList.Version versionInfo) {
- //Now we have the reliable information to check if our runtime settings are good enough
- if (versionInfo.javaVersion == null || versionInfo.javaVersion.component.equalsIgnoreCase("jre-legacy"))
- return true;
-
- LauncherProfiles.update();
- MinecraftProfile minecraftProfile = LauncherProfiles.getCurrentProfile();
-
- String selectedRuntime = Tools.getSelectedRuntime(minecraftProfile);
-
- Runtime runtime = MultiRTUtils.read(selectedRuntime);
- if (runtime.javaVersion >= versionInfo.javaVersion.majorVersion) {
- return true;
- }
-
- String appropriateRuntime = MultiRTUtils.getNearestJreName(versionInfo.javaVersion.majorVersion);
- if (appropriateRuntime != null) {
- if (JRE17Util.isInternalNewJRE(appropriateRuntime)) {
- JRE17Util.checkInternalNewJre(activity.getAssets());
- }
- minecraftProfile.javaDir = Tools.LAUNCHERPROFILES_RTPREFIX + appropriateRuntime;
- LauncherProfiles.update();
- } else {
- if (versionInfo.javaVersion.majorVersion <= 17) { // there's a chance we have an internal one for this case
- if (!JRE17Util.checkInternalNewJre(activity.getAssets())){
- showRuntimeFail(activity, versionInfo);
- return false;
- } else {
- minecraftProfile.javaDir = Tools.LAUNCHERPROFILES_RTPREFIX + JRE17Util.NEW_JRE_NAME;
- LauncherProfiles.update();
- }
- } else {
- showRuntimeFail(activity, versionInfo);
- return false;
- }
- }
-
- return true;
- }
private static void showRuntimeFail(Activity activity, JMinecraftVersionList.Version verInfo) {
Tools.dialogOnUiThread(activity, activity.getString(R.string.global_error),
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/LauncherActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/LauncherActivity.java
deleted file mode 100644
index d1eb9bafc..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/LauncherActivity.java
+++ /dev/null
@@ -1,305 +0,0 @@
-package net.kdt.pojavlaunch;
-
-import static net.kdt.pojavlaunch.MainActivity.INTENT_MINECRAFT_VERSION;
-
-import android.Manifest;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.os.Build;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.widget.ImageButton;
-import android.widget.Toast;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
-import androidx.core.app.ActivityCompat;
-import androidx.core.content.ContextCompat;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentContainerView;
-import androidx.fragment.app.FragmentManager;
-
-import com.kdt.mcgui.ProgressLayout;
-import com.kdt.mcgui.mcAccountSpinner;
-
-import net.kdt.pojavlaunch.fragments.MainMenuFragment;
-import net.kdt.pojavlaunch.fragments.MicrosoftLoginFragment;
-import net.kdt.pojavlaunch.extra.ExtraConstants;
-import net.kdt.pojavlaunch.extra.ExtraCore;
-import net.kdt.pojavlaunch.extra.ExtraListener;
-
-import net.kdt.pojavlaunch.fragments.SelectAuthFragment;
-import net.kdt.pojavlaunch.multirt.MultiRTConfigDialog;
-import net.kdt.pojavlaunch.prefs.LauncherPreferences;
-import net.kdt.pojavlaunch.prefs.screens.LauncherPreferenceFragment;
-import net.kdt.pojavlaunch.progresskeeper.ProgressKeeper;
-import net.kdt.pojavlaunch.services.ProgressServiceKeeper;
-import net.kdt.pojavlaunch.tasks.AsyncMinecraftDownloader;
-import net.kdt.pojavlaunch.tasks.AsyncVersionList;
-import net.kdt.pojavlaunch.value.launcherprofiles.LauncherProfiles;
-import net.kdt.pojavlaunch.value.launcherprofiles.MinecraftProfile;
-
-public class LauncherActivity extends BaseActivity {
- public static final String SETTING_FRAGMENT_TAG = "SETTINGS_FRAGMENT";
-
- private final int REQUEST_STORAGE_REQUEST_CODE = 1;
- private final Object mLockStoragePerm = new Object();
-
-
- private mcAccountSpinner mAccountSpinner;
- private FragmentContainerView mFragmentView;
- private ImageButton mSettingsButton, mDeleteAccountButton;
- private ProgressLayout mProgressLayout;
- private ProgressServiceKeeper mProgressServiceKeeper;
-
- /* Allows to switch from one button "type" to another */
- private final FragmentManager.FragmentLifecycleCallbacks mFragmentCallbackListener = new FragmentManager.FragmentLifecycleCallbacks() {
- @Override
- public void onFragmentResumed(@NonNull FragmentManager fm, @NonNull Fragment f) {
- mSettingsButton.setImageDrawable(ContextCompat.getDrawable(getBaseContext(), f instanceof MainMenuFragment
- ? R.drawable.ic_menu_settings : R.drawable.ic_menu_home));
- }
- };
-
- /* Listener for the back button in settings */
- private final ExtraListener mBackPreferenceListener = (key, value) -> {
- if(value.equals("true")) onBackPressed();
- return false;
- };
-
- /* Listener for the auth method selection screen */
- private final ExtraListener mSelectAuthMethod = (key, value) -> {
- Fragment fragment = getSupportFragmentManager().findFragmentById(mFragmentView.getId());
- // Allow starting the add account only from the main menu, should it be moved to fragment itself ?
- if(!(fragment instanceof MainMenuFragment)) return false;
-
- Tools.swapFragment(this, SelectAuthFragment.class, SelectAuthFragment.TAG, true, null);
- return false;
- };
-
- /* Listener for the settings fragment */
- private final View.OnClickListener mSettingButtonListener = v -> {
- Fragment fragment = getSupportFragmentManager().findFragmentById(mFragmentView.getId());
- if(fragment instanceof MainMenuFragment){
- Tools.swapFragment(this, LauncherPreferenceFragment.class, SETTING_FRAGMENT_TAG, true, null);
- } else{
- // The setting button doubles as a home button now
- while(!(getSupportFragmentManager().findFragmentById(mFragmentView.getId()) instanceof MainMenuFragment)){
- getSupportFragmentManager().popBackStackImmediate();
- }
- }
- };
-
- /* Listener for account deletion */
- private final View.OnClickListener mAccountDeleteButtonListener = v -> new AlertDialog.Builder(this)
- .setMessage(R.string.warning_remove_account)
- .setPositiveButton(android.R.string.cancel, null)
- .setNeutralButton(R.string.global_delete, (dialog, which) -> mAccountSpinner.removeCurrentAccount())
- .show();
-
- private final ExtraListener mLaunchGameListener = (key, value) -> {
- if(mProgressLayout.hasProcesses()){
- Toast.makeText(this, R.string.tasks_ongoing, Toast.LENGTH_LONG).show();
- return false;
- }
-
- String selectedProfile = LauncherPreferences.DEFAULT_PREF.getString(LauncherPreferences.PREF_KEY_CURRENT_PROFILE,"");
- if (LauncherProfiles.mainProfileJson == null || !LauncherProfiles.mainProfileJson.profiles.containsKey(selectedProfile)){
- Toast.makeText(this, R.string.error_no_version, Toast.LENGTH_LONG).show();
- return false;
- }
- MinecraftProfile prof = LauncherProfiles.mainProfileJson.profiles.get(selectedProfile);
- if (prof == null || prof.lastVersionId == null || "Unknown".equals(prof.lastVersionId)){
- Toast.makeText(this, R.string.error_no_version, Toast.LENGTH_LONG).show();
- return false;
- }
-
- if(mAccountSpinner.getSelectedAccount() == null){
- Toast.makeText(this, R.string.no_saved_accounts, Toast.LENGTH_LONG).show();
- ExtraCore.setValue(ExtraConstants.SELECT_AUTH_METHOD, true);
- return false;
- }
- String normalizedVersionId = AsyncMinecraftDownloader.normalizeVersionId(prof.lastVersionId);
- JMinecraftVersionList.Version mcVersion = AsyncMinecraftDownloader.getListedVersion(normalizedVersionId);
- new AsyncMinecraftDownloader(this, mcVersion, normalizedVersionId, new AsyncMinecraftDownloader.DoneListener() {
- @Override
- public void onDownloadDone() {
- ProgressKeeper.waitUntilDone(()-> runOnUiThread(() -> {
- try {
- Intent mainIntent = new Intent(getBaseContext(), MainActivity.class);
- mainIntent.putExtra(INTENT_MINECRAFT_VERSION, normalizedVersionId);
- mainIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
- startActivity(mainIntent);
- finish();
- android.os.Process.killProcess(android.os.Process.myPid()); //You should kill yourself, NOW!
- } catch (Throwable e) {
- Tools.showError(getBaseContext(), e);
- }
- }));
- }
-
- @Override
- public void onDownloadFailed(Throwable th) {
- if(th != null) Tools.showError(LauncherActivity.this, R.string.mc_download_failed, th);
- }
- });
- return false;
- };
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_pojav_launcher);
- getWindow().setBackgroundDrawable(null);
- bindViews();
- ProgressKeeper.addTaskCountListener((mProgressServiceKeeper = new ProgressServiceKeeper(this)));
- askForStoragePermission(); // Will wait here
-
- mSettingsButton.setOnClickListener(mSettingButtonListener);
- mDeleteAccountButton.setOnClickListener(mAccountDeleteButtonListener);
- ProgressKeeper.addTaskCountListener(mProgressLayout);
- ExtraCore.addExtraListener(ExtraConstants.BACK_PREFERENCE, mBackPreferenceListener);
- ExtraCore.addExtraListener(ExtraConstants.SELECT_AUTH_METHOD, mSelectAuthMethod);
-
- ExtraCore.addExtraListener(ExtraConstants.LAUNCH_GAME, mLaunchGameListener);
-
- new AsyncVersionList().getVersionList(versions -> ExtraCore.setValue(ExtraConstants.RELEASE_TABLE, versions), false);
-
- mProgressLayout.observe(ProgressLayout.DOWNLOAD_MINECRAFT);
- mProgressLayout.observe(ProgressLayout.UNPACK_RUNTIME);
- mProgressLayout.observe(ProgressLayout.INSTALL_MODPACK);
- mProgressLayout.observe(ProgressLayout.AUTHENTICATE_MICROSOFT);
- mProgressLayout.observe(ProgressLayout.DOWNLOAD_VERSION_LIST);
- }
-
- @Override
- public boolean setFullscreen() {
- return false;
- }
-
- @Override
- protected void onStart() {
- super.onStart();
- getSupportFragmentManager().registerFragmentLifecycleCallbacks(mFragmentCallbackListener, true);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- mProgressLayout.cleanUpObservers();
- ProgressKeeper.removeTaskCountListener(mProgressLayout);
- ProgressKeeper.removeTaskCountListener(mProgressServiceKeeper);
- ExtraCore.removeExtraListenerFromValue(ExtraConstants.BACK_PREFERENCE, mBackPreferenceListener);
- ExtraCore.removeExtraListenerFromValue(ExtraConstants.SELECT_AUTH_METHOD, mSelectAuthMethod);
- ExtraCore.removeExtraListenerFromValue(ExtraConstants.LAUNCH_GAME, mLaunchGameListener);
-
- getSupportFragmentManager().unregisterFragmentLifecycleCallbacks(mFragmentCallbackListener);
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if(resultCode != RESULT_OK) return;
- if(requestCode == Tools.RUN_MOD_INSTALLER && data != null){
- Tools.launchModInstaller(this, data);
- return;
- }
- if(requestCode == MultiRTConfigDialog.MULTIRT_PICK_RUNTIME && data != null){
- Tools.installRuntimeFromUri(this, data.getData());
- }
- }
-
- /** Custom implementation to feel more natural when a backstack isn't present */
- @Override
- public void onBackPressed() {
- MicrosoftLoginFragment fragment = (MicrosoftLoginFragment) getVisibleFragment(MicrosoftLoginFragment.TAG);
- if(fragment != null){
- if(fragment.canGoBack()){
- fragment.goBack();
- return;
- }
- }
-
- super.onBackPressed();
- }
-
- @Override
- public void onAttachedToWindow() {
- LauncherPreferences.computeNotchSize(this);
- }
-
- @SuppressWarnings("SameParameterValue")
- private Fragment getVisibleFragment(String tag){
- Fragment fragment = getSupportFragmentManager().findFragmentByTag(tag);
- if(fragment != null && fragment.isVisible()) {
- return fragment;
- }
- return null;
- }
-
- @SuppressWarnings("unused")
- private Fragment getVisibleFragment(int id){
- Fragment fragment = getSupportFragmentManager().findFragmentById(id);
- if(fragment != null && fragment.isVisible()) {
- return fragment;
- }
- return null;
- }
-
- private void askForStoragePermission(){
- int revokeCount = 0;
- while (Build.VERSION.SDK_INT >= 23 && Build.VERSION.SDK_INT < 29 && !isStorageAllowed()) { //Do not ask for storage at all on Android 10+
- try {
- revokeCount++;
- if (revokeCount >= 3) {
- Toast.makeText(this, R.string.toast_permission_denied, Toast.LENGTH_LONG).show();
- finish();
- }
- requestStoragePermission();
-
- synchronized (mLockStoragePerm) {
- mLockStoragePerm.wait();
- }
- } catch (InterruptedException e) {
- Log.e("LauncherActivity", e.toString());
- }
- }
- }
-
- private boolean isStorageAllowed() {
- //Getting the permission status
- int result1 = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
- int result2 = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE);
-
-
- //If permission is granted returning true
- return result1 == PackageManager.PERMISSION_GRANTED &&
- result2 == PackageManager.PERMISSION_GRANTED;
- }
-
- private void requestStoragePermission() {
- ActivityCompat.requestPermissions(this, new String[]{
- Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_STORAGE_REQUEST_CODE);
- }
-
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- if (requestCode == REQUEST_STORAGE_REQUEST_CODE) {
- synchronized (mLockStoragePerm) {
- mLockStoragePerm.notifyAll();
- }
- }
- }
-
- /** Stuff all the view boilerplate here */
- private void bindViews(){
- mFragmentView = findViewById(R.id.container_fragment);
- mSettingsButton = findViewById(R.id.setting_button);
- mDeleteAccountButton = findViewById(R.id.delete_account_button);
- mAccountSpinner = findViewById(R.id.account_spinner);
- mProgressLayout = findViewById(R.id.progress_layout);
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MainActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MainActivity.java
index d3b4876d4..c896c0a7a 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MainActivity.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MainActivity.java
@@ -14,7 +14,6 @@ import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
@@ -48,12 +47,7 @@ import net.kdt.pojavlaunch.customcontrols.EditorExitable;
import net.kdt.pojavlaunch.customcontrols.keyboard.LwjglCharSender;
import net.kdt.pojavlaunch.customcontrols.keyboard.TouchCharInput;
import net.kdt.pojavlaunch.prefs.LauncherPreferences;
-import net.kdt.pojavlaunch.services.GameService;
-import net.kdt.pojavlaunch.utils.JREUtils;
import net.kdt.pojavlaunch.utils.MCOptionUtils;
-import net.kdt.pojavlaunch.value.MinecraftAccount;
-import net.kdt.pojavlaunch.value.launcherprofiles.LauncherProfiles;
-import net.kdt.pojavlaunch.value.launcherprofiles.MinecraftProfile;
import org.lwjgl.glfw.CallbackBridge;
@@ -76,8 +70,6 @@ public class MainActivity extends BaseActivity implements ControlButtonMenuListe
private GyroControl mGyroControl = null;
public static ControlLayout mControlLayout;
- MinecraftProfile minecraftProfile;
-
private ArrayAdapter gameActionArrayAdapter;
private AdapterView.OnItemClickListener gameActionClickListener;
public ArrayAdapter ingameControlsEditorArrayAdapter;
@@ -86,7 +78,6 @@ public class MainActivity extends BaseActivity implements ControlButtonMenuListe
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- GameService.startService(this);
initLayout(R.layout.activity_basemain);
CallbackBridge.addGrabListener(touchpad);
CallbackBridge.addGrabListener(minecraftGLView);
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLSurface.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLSurface.java
index 898f34618..e2edf8f45 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLSurface.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLSurface.java
@@ -18,6 +18,7 @@ import android.os.Looper;
import android.os.Message;
import android.util.AttributeSet;
import android.util.Log;
+import android.view.GestureDetector;
import android.view.InputDevice;
import android.view.KeyEvent;
import android.view.MotionEvent;
@@ -53,14 +54,15 @@ public class MinecraftGLSurface extends View implements GrabListener {
float startX = 0;
float startY = 0;
- ScaleGestureDetector scaleGestureDetector;
+ private ScaleGestureDetector scaleGestureDetector;
+ private GestureDetector longPressDetector;
+
/* The RemapperView.Builder object allows you to set which buttons to remap */
private final RemapperManager mInputManager = new RemapperManager(getContext(), new RemapperView.Builder(null)
.remapA(true)
.remapB(true)
.remapX(true)
.remapY(true)
-
.remapDpad(true)
.remapLeftJoystick(true)
.remapRightJoystick(true)
@@ -215,6 +217,30 @@ public class MinecraftGLSurface extends View implements GrabListener {
public void onSurfaceTextureUpdated(@NonNull SurfaceTexture surface) {}
});
+ this.longPressDetector = new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() {
+
+ boolean isDragClicking = false;
+ @Override
+ public void onLongPress(MotionEvent e) {
+ super.onLongPress(e);
+ if(!isDragClicking) {
+ isDragClicking = true;
+ AWTInputBridge.sendKey((char)AWTInputEvent.VK_F5, AWTInputEvent.VK_F5);
+ }
+ }
+
+ @Override
+ public boolean onSingleTapUp(MotionEvent e) {
+ if(isDragClicking) {
+ isDragClicking = false;
+ AWTInputBridge.sendKey((char)AWTInputEvent.VK_F5, AWTInputEvent.VK_F5);
+ }
+ return super.onSingleTapUp(e);
+ }
+ });
+
+ //this.longPressDetector.setIsLongpressEnabled(true);
+
((ViewGroup)getParent()).addView(textureView);
}
}
@@ -228,9 +254,7 @@ public class MinecraftGLSurface extends View implements GrabListener {
@SuppressWarnings("accessibility")
public boolean onTouchEvent(MotionEvent e) {
scaleGestureDetector.onTouchEvent(e);
-
- Log.i("downthecrop","ya I still see these events");
-
+ //longPressDetector.onTouchEvent(e);
// Kinda need to send this back to the layout
if(((ControlLayout)getParent()).getModifiable()) return false;
@@ -252,7 +276,8 @@ public class MinecraftGLSurface extends View implements GrabListener {
CallbackBridge.mouseX = (e.getX() * mScaleFactor);
CallbackBridge.mouseY = (e.getY() * mScaleFactor);
//One android click = one MC click
- if(mSingleTapDetector.onTouchEvent(e)){ // Touch Mode
+ if(mSingleTapDetector.onTouchEvent(e)){ //
+ //longPressDetector.onTouchEvent(e);// Touch Mode
CallbackBridge.putMouseEventWithCoords(LwjglGlfwKeycode.GLFW_MOUSE_BUTTON_LEFT, CallbackBridge.mouseX, CallbackBridge.mouseY);
return true;
}
@@ -397,25 +422,6 @@ public class MinecraftGLSurface extends View implements GrabListener {
sendMouseButton(LwjglGlfwKeycode.GLFW_MOUSE_BUTTON_RIGHT, false);
}
break;
-
- case MotionEvent.ACTION_POINTER_DOWN: // 5
- //TODO Hey we could have some sort of middle click detection ?
-
- mScrollLastInitialX = e.getX();
- mScrollLastInitialY = e.getY();
- //Checking if we are pressing the hotbar to select the item
- hudKeyHandled = handleGuiBar((int)e.getX(e.getPointerCount()-1), (int) e.getY(e.getPointerCount()-1));
- if(hudKeyHandled != -1){
- sendKeyPress(hudKeyHandled);
- if(hasDoubleTapped && hudKeyHandled == mLastHotbarKey){
- //Prevent double tapping Event on two different slots
- sendKeyPress(LwjglGlfwKeycode.GLFW_KEY_F);
- }
- }
-
- mLastHotbarKey = hudKeyHandled;
- break;
-
}
// Actualise the pointer count
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavProfile.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavProfile.java
deleted file mode 100644
index ae9d5421e..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavProfile.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package net.kdt.pojavlaunch;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import net.kdt.pojavlaunch.value.MinecraftAccount;
-
-public class PojavProfile {
- private static final String PROFILE_PREF = "pojav_profile";
- private static final String PROFILE_PREF_FILE = "file";
-
- public static SharedPreferences getPrefs(Context ctx) {
- return ctx.getSharedPreferences(PROFILE_PREF, Context.MODE_PRIVATE);
- }
-
- public static MinecraftAccount getCurrentProfileContent(@NonNull Context ctx, @Nullable String profileName) {
- return MinecraftAccount.load(profileName == null ? getCurrentProfileName(ctx) : profileName);
- }
-
- public static String getCurrentProfileName(Context ctx) {
- String name = getPrefs(ctx).getString(PROFILE_PREF_FILE, "");
- // A dirty fix
- if (!name.isEmpty() && name.startsWith(Tools.DIR_ACCOUNT_NEW) && name.endsWith(".json")) {
- name = name.substring(0, name.length() - 5).replace(Tools.DIR_ACCOUNT_NEW, "").replace(".json", "");
- setCurrentProfile(ctx, name);
- }
- return name;
- }
-
- public static void setCurrentProfile(@NonNull Context ctx, @Nullable Object obj) {
- SharedPreferences.Editor pref = getPrefs(ctx).edit();
-
- try { if (obj instanceof String) {
- String acc = (String) obj;
- pref.putString(PROFILE_PREF_FILE, acc);
- //MinecraftAccount.clearTempAccount();
- } else if (obj == null) {
- pref.putString(PROFILE_PREF_FILE, "");
- } else {
- throw new IllegalArgumentException("Profile must be String.class or null");
- }
- } finally {
- pref.apply();
- }
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java
index 155b71e36..653632685 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java
@@ -49,16 +49,11 @@ import net.kdt.pojavlaunch.extra.ExtraConstants;
import net.kdt.pojavlaunch.extra.ExtraCore;
import net.kdt.pojavlaunch.multirt.MultiRTUtils;
import net.kdt.pojavlaunch.multirt.Runtime;
-import net.kdt.pojavlaunch.plugins.FFmpegPlugin;
import net.kdt.pojavlaunch.prefs.LauncherPreferences;
import net.kdt.pojavlaunch.utils.DownloadUtils;
import net.kdt.pojavlaunch.utils.JREUtils;
import net.kdt.pojavlaunch.utils.JSONUtils;
import net.kdt.pojavlaunch.utils.OldVersionsUtils;
-import net.kdt.pojavlaunch.value.DependentLibrary;
-import net.kdt.pojavlaunch.value.MinecraftAccount;
-import net.kdt.pojavlaunch.value.launcherprofiles.LauncherProfiles;
-import net.kdt.pojavlaunch.value.launcherprofiles.MinecraftProfile;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.io.IOUtils;
@@ -188,15 +183,6 @@ public final class Tools {
JREUtils.launchJavaVM(activity, runtime, gamedir, javaArgList, args);
}
- public static File getGameDirPath(@NonNull MinecraftProfile minecraftProfile){
- if(minecraftProfile.gameDir != null){
- if(minecraftProfile.gameDir.startsWith(Tools.LAUNCHERPROFILES_RTPREFIX))
- return new File(minecraftProfile.gameDir.replace(Tools.LAUNCHERPROFILES_RTPREFIX,Tools.DIR_GAME_HOME+"/"));
- else
- return new File(Tools.DIR_GAME_HOME,minecraftProfile.gameDir);
- }
- return new File(Tools.DIR_GAME_NEW);
- }
public static void buildNotificationChannel(Context context){
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.O) return;
@@ -276,72 +262,6 @@ public final class Tools {
javaArgList.add(cacioClasspath.toString());
}
- public static String[] getMinecraftJVMArgs(String versionName, File gameDir) {
- JMinecraftVersionList.Version versionInfo = Tools.getVersionInfo(versionName, true);
- // Parse Forge 1.17+ additional JVM Arguments
- if (versionInfo.inheritsFrom == null || versionInfo.arguments == null || versionInfo.arguments.jvm == null) {
- return new String[0];
- }
-
- Map varArgMap = new ArrayMap<>();
- varArgMap.put("classpath_separator", ":");
- varArgMap.put("library_directory", DIR_HOME_LIBRARY);
- varArgMap.put("version_name", versionInfo.id);
- varArgMap.put("natives_directory", Tools.NATIVE_LIB_DIR);
-
- List minecraftArgs = new ArrayList<>();
- if (versionInfo.arguments != null) {
- for (Object arg : versionInfo.arguments.jvm) {
- if (arg instanceof String) {
- minecraftArgs.add((String) arg);
- } //TODO: implement (?maybe?)
- }
- }
- return JSONUtils.insertJSONValueList(minecraftArgs.toArray(new String[0]), varArgMap);
- }
-
- public static String[] getMinecraftClientArgs(MinecraftAccount profile, JMinecraftVersionList.Version versionInfo, File gameDir) {
- String username = profile.username;
- String versionName = versionInfo.id;
- if (versionInfo.inheritsFrom != null) {
- versionName = versionInfo.inheritsFrom;
- }
-
- String userType = "mojang";
-
- Map varArgMap = new ArrayMap<>();
- varArgMap.put("auth_session", profile.accessToken); // For legacy versions of MC
- varArgMap.put("auth_access_token", profile.accessToken);
- varArgMap.put("auth_player_name", username);
- varArgMap.put("auth_uuid", profile.profileId.replace("-", ""));
- varArgMap.put("auth_xuid", profile.xuid);
- varArgMap.put("assets_root", Tools.ASSETS_PATH);
- varArgMap.put("assets_index_name", versionInfo.assets);
- varArgMap.put("game_assets", Tools.ASSETS_PATH);
- varArgMap.put("game_directory", gameDir.getAbsolutePath());
- varArgMap.put("user_properties", "{}");
- varArgMap.put("user_type", userType);
- varArgMap.put("version_name", versionName);
- varArgMap.put("version_type", versionInfo.type);
-
- List minecraftArgs = new ArrayList<>();
- if (versionInfo.arguments != null) {
- // Support Minecraft 1.13+
- for (Object arg : versionInfo.arguments.game) {
- if (arg instanceof String) {
- minecraftArgs.add((String) arg);
- } //TODO: implement else clause
- }
- }
-
- return JSONUtils.insertJSONValueList(
- splitAndFilterEmpty(
- versionInfo.minecraftArguments == null ?
- fromStringArray(minecraftArgs.toArray(new String[0])):
- versionInfo.minecraftArguments
- ), varArgMap
- );
- }
public static String fromStringArray(String[] strArr) {
StringBuilder builder = new StringBuilder();
@@ -364,15 +284,6 @@ public final class Tools {
return strList.toArray(new String[0]);
}
- public static String artifactToPath(DependentLibrary library) {
- if (library.downloads != null &&
- library.downloads.artifact != null &&
- library.downloads.artifact.path != null)
- return library.downloads.artifact.path;
- String[] libInfos = library.name.split(":");
- return libInfos[0].replaceAll("\\.", "/") + "/" + libInfos[1] + "/" + libInfos[2] + "/" + libInfos[1] + "-" + libInfos[2] + ".jar";
- }
-
public static String getPatchedFile(String version) {
return DIR_HOME_VERSION + "/" + version + "/" + version + ".jar";
}
@@ -394,27 +305,6 @@ public final class Tools {
}
private final static boolean isClientFirst = false;
- public static String generateLaunchClassPath(JMinecraftVersionList.Version info,String actualname) {
- StringBuilder libStr = new StringBuilder(); //versnDir + "/" + version + "/" + version + ".jar:";
-
- String[] classpath = generateLibClasspath(info);
-
- if (isClientFirst) {
- libStr.append(getPatchedFile(actualname));
- }
- for (String perJar : classpath) {
- if (!new File(perJar).exists()) {
- Log.d(APP_NAME, "Ignored non-exists file: " + perJar);
- continue;
- }
- libStr.append((isClientFirst ? ":" : "")).append(perJar).append(!isClientFirst ? ":" : "");
- }
- if (!isClientFirst) {
- libStr.append(getPatchedFile(actualname));
- }
-
- return libStr.toString();
- }
public static DisplayMetrics getDisplayMetrics(Activity activity) {
DisplayMetrics displayMetrics = new DisplayMetrics();
@@ -595,105 +485,9 @@ public final class Tools {
}
return true; // allow if none match
}
- public static String[] generateLibClasspath(JMinecraftVersionList.Version info) {
- List libDir = new ArrayList<>();
- for (DependentLibrary libItem: info.libraries) {
- if(!checkRules(libItem.rules)) continue;
- libDir.add(Tools.DIR_HOME_LIBRARY + "/" + artifactToPath(libItem));
- }
- return libDir.toArray(new String[0]);
- }
-
- public static JMinecraftVersionList.Version getVersionInfo(String versionName) {
- return getVersionInfo(versionName, false);
- }
@SuppressWarnings({"unchecked", "rawtypes"})
- public static JMinecraftVersionList.Version getVersionInfo(String versionName, boolean skipInheriting) {
- try {
- JMinecraftVersionList.Version customVer = Tools.GLOBAL_GSON.fromJson(read(DIR_HOME_VERSION + "/" + versionName + "/" + versionName + ".json"), JMinecraftVersionList.Version.class);
- if (skipInheriting || customVer.inheritsFrom == null || customVer.inheritsFrom.equals(customVer.id)) {
- return customVer;
- } else {
- JMinecraftVersionList.Version inheritsVer;
- //If it won't download, just search for it
- try{
- inheritsVer = Tools.GLOBAL_GSON.fromJson(read(DIR_HOME_VERSION + "/" + customVer.inheritsFrom + "/" + customVer.inheritsFrom + ".json"), JMinecraftVersionList.Version.class);
- }catch(IOException e) {
- throw new RuntimeException("Can't find the source version for "+ versionName +" (req version="+customVer.inheritsFrom+")");
- }
- //inheritsVer.inheritsFrom = inheritsVer.id;
- insertSafety(inheritsVer, customVer,
- "assetIndex", "assets", "id",
- "mainClass", "minecraftArguments",
- "releaseTime", "time", "type"
- );
- List libList = new ArrayList<>(Arrays.asList(inheritsVer.libraries));
- try {
- loop_1:
- for (DependentLibrary lib : customVer.libraries) {
- String libName = lib.name.substring(0, lib.name.lastIndexOf(":"));
- for (int i = 0; i < libList.size(); i++) {
- DependentLibrary libAdded = libList.get(i);
- String libAddedName = libAdded.name.substring(0, libAdded.name.lastIndexOf(":"));
-
- if (libAddedName.equals(libName)) {
- Log.d(APP_NAME, "Library " + libName + ": Replaced version " +
- libName.substring(libName.lastIndexOf(":") + 1) + " with " +
- libAddedName.substring(libAddedName.lastIndexOf(":") + 1));
- libList.set(i, lib);
- continue loop_1;
- }
- }
-
- libList.add(0, lib);
- }
- } finally {
- inheritsVer.libraries = libList.toArray(new DependentLibrary[0]);
- }
-
- // Inheriting Minecraft 1.13+ with append custom args
- if (inheritsVer.arguments != null && customVer.arguments != null) {
- List totalArgList = new ArrayList(Arrays.asList(inheritsVer.arguments.game));
-
- int nskip = 0;
- for (int i = 0; i < customVer.arguments.game.length; i++) {
- if (nskip > 0) {
- nskip--;
- continue;
- }
-
- Object perCustomArg = customVer.arguments.game[i];
- if (perCustomArg instanceof String) {
- String perCustomArgStr = (String) perCustomArg;
- // Check if there is a duplicate argument on combine
- if (perCustomArgStr.startsWith("--") && totalArgList.contains(perCustomArgStr)) {
- perCustomArg = customVer.arguments.game[i + 1];
- if (perCustomArg instanceof String) {
- perCustomArgStr = (String) perCustomArg;
- // If the next is argument value, skip it
- if (!perCustomArgStr.startsWith("--")) {
- nskip++;
- }
- }
- } else {
- totalArgList.add(perCustomArgStr);
- }
- } else if (!totalArgList.contains(perCustomArg)) {
- totalArgList.add(perCustomArg);
- }
- }
-
- inheritsVer.arguments.game = totalArgList.toArray(new Object[0]);
- }
-
- return inheritsVer;
- }
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
// Prevent NullPointerException
private static void insertSafety(JMinecraftVersionList.Version targetVer, JMinecraftVersionList.Version fromVer, String... keyArr) {
@@ -868,18 +662,6 @@ public final class Tools {
return fileName;
}
- /** Swap the main fragment with another */
- public static void swapFragment(FragmentActivity fragmentActivity , Class extends Fragment> fragmentClass,
- @Nullable String fragmentTag, boolean addCurrentToBackstack, @Nullable Bundle bundle) {
- // When people tab out, it might happen
- //TODO handle custom animations
- FragmentTransaction transaction = fragmentActivity.getSupportFragmentManager().beginTransaction()
- .setReorderingAllowed(true)
- .replace(R.id.container_fragment, fragmentClass, bundle, fragmentTag);
- if(addCurrentToBackstack) transaction.addToBackStack(null);
-
- transaction.commit();
- }
/** Remove the current fragment */
public static void removeCurrentFragment(FragmentActivity fragmentActivity){
@@ -994,34 +776,10 @@ public final class Tools {
return prefixedName.substring(Tools.LAUNCHERPROFILES_RTPREFIX.length());
}
- public static String getSelectedRuntime(MinecraftProfile minecraftProfile) {
- String runtime = LauncherPreferences.PREF_DEFAULT_RUNTIME;
- String profileRuntime = getRuntimeName(minecraftProfile.javaDir);
- if(profileRuntime != null) {
- if(MultiRTUtils.forceReread(profileRuntime).versionString != null) {
- runtime = profileRuntime;
- }
- }
- return runtime;
- }
-
public static void runOnUiThread(Runnable runnable) {
MAIN_HANDLER.post(runnable);
}
- public static @NonNull String pickRuntime(MinecraftProfile minecraftProfile, int targetJavaVersion) {
- String runtime = getSelectedRuntime(minecraftProfile);
- String profileRuntime = getRuntimeName(minecraftProfile.javaDir);
- Runtime pickedRuntime = MultiRTUtils.read(runtime);
- if(runtime == null || pickedRuntime.javaVersion == 0 || pickedRuntime.javaVersion < targetJavaVersion) {
- String preferredRuntime = MultiRTUtils.getNearestJreName(targetJavaVersion);
- if(preferredRuntime == null) throw new RuntimeException("Failed to autopick runtime!");
- if(profileRuntime != null) minecraftProfile.javaDir = Tools.LAUNCHERPROFILES_RTPREFIX+preferredRuntime;
- runtime = preferredRuntime;
- }
- return runtime;
- }
-
/** Triggers the share intent chooser, with the latestlog file attached to it */
public static void shareLog(Context context){
Uri contentUri = DocumentsContract.buildDocumentUri(context.getString(R.string.storageProviderAuthorities), Tools.DIR_GAME_HOME + "/latestlog.txt");
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/listener/DoneListener.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/listener/DoneListener.java
deleted file mode 100644
index 9bc5c3617..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/listener/DoneListener.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package net.kdt.pojavlaunch.authenticator.listener;
-
-import net.kdt.pojavlaunch.value.MinecraftAccount;
-
-/** Called when the login is done and the account received. guaranteed to be on the UI Thread */
-public interface DoneListener {
- void onLoginDone(MinecraftAccount account);
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/listener/ErrorListener.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/listener/ErrorListener.java
deleted file mode 100644
index 14ccf4fc5..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/listener/ErrorListener.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package net.kdt.pojavlaunch.authenticator.listener;
-
-/** Called when there is a complete failure, guaranteed to be on the UI Thread */
-public interface ErrorListener {
- void onLoginError(Throwable errorMessage);
-}
-
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/listener/ProgressListener.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/listener/ProgressListener.java
deleted file mode 100644
index 4dae81c60..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/listener/ProgressListener.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package net.kdt.pojavlaunch.authenticator.listener;
-
-/** Called when a step is started, guaranteed to be in the UI Thread */
-public interface ProgressListener {
- /** */
- void onLoginProgress(int step);
-}
\ No newline at end of file
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/microsoft/MicrosoftBackgroundLogin.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/microsoft/MicrosoftBackgroundLogin.java
deleted file mode 100644
index b4191803b..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/microsoft/MicrosoftBackgroundLogin.java
+++ /dev/null
@@ -1,336 +0,0 @@
-package net.kdt.pojavlaunch.authenticator.microsoft;
-
-import static net.kdt.pojavlaunch.PojavApplication.sExecutorService;
-
-import android.util.ArrayMap;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.kdt.mcgui.ProgressLayout;
-
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.authenticator.listener.DoneListener;
-import net.kdt.pojavlaunch.authenticator.listener.ErrorListener;
-import net.kdt.pojavlaunch.authenticator.listener.ProgressListener;
-import net.kdt.pojavlaunch.value.MinecraftAccount;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-import java.net.HttpURLConnection;
-import java.net.ProtocolException;
-import java.net.URL;
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
-import java.util.Collections;
-import java.util.Map;
-
-/** Allow to perform a background login on a given account */
-// TODO handle connection errors !
-public class MicrosoftBackgroundLogin {
- private static final String authTokenUrl = "https://login.live.com/oauth20_token.srf";
- private static final String xblAuthUrl = "https://user.auth.xboxlive.com/user/authenticate";
- private static final String xstsAuthUrl = "https://xsts.auth.xboxlive.com/xsts/authorize";
- private static final String mcLoginUrl = "https://api.minecraftservices.com/authentication/login_with_xbox";
- private static final String mcProfileUrl = "https://api.minecraftservices.com/minecraft/profile";
-
- private final boolean mIsRefresh;
- private final String mAuthCode;
- private static final Map XSTS_ERRORS;
- static {
- XSTS_ERRORS = new ArrayMap<>();
- XSTS_ERRORS.put(2148916233L, R.string.xerr_no_account);
- XSTS_ERRORS.put(2148916235L, R.string.xerr_not_available);
- XSTS_ERRORS.put(2148916236L ,R.string.xerr_adult_verification);
- XSTS_ERRORS.put(2148916237L ,R.string.xerr_adult_verification);
- XSTS_ERRORS.put(2148916238L ,R.string.xerr_child);
- }
-
- /* Fields used to fill the account */
- public String msRefreshToken;
- public String mcName;
- public String mcToken;
- public String mcUuid;
- public boolean doesOwnGame;
- public long expiresAt;
-
- public MicrosoftBackgroundLogin(boolean isRefresh, String authCode){
- mIsRefresh = isRefresh;
- mAuthCode = authCode;
- }
-
- /** Performs a full login, calling back listeners appropriately */
- public void performLogin(@Nullable final ProgressListener progressListener,
- @Nullable final DoneListener doneListener,
- @Nullable final ErrorListener errorListener){
- sExecutorService.execute(() -> {
- try {
- notifyProgress(progressListener, 1);
- String accessToken = acquireAccessToken(mIsRefresh, mAuthCode);
- notifyProgress(progressListener, 2);
- String xboxLiveToken = acquireXBLToken(accessToken);
- notifyProgress(progressListener, 3);
- String[] xsts = acquireXsts(xboxLiveToken);
- notifyProgress(progressListener, 4);
- String mcToken = acquireMinecraftToken(xsts[0], xsts[1]);
- notifyProgress(progressListener, 5);
- checkMcProfile(mcToken);
-
- MinecraftAccount acc = MinecraftAccount.load(mcName);
- if(acc == null) acc = new MinecraftAccount();
- if (doesOwnGame) {
- acc.xuid = xsts[0];
- acc.clientToken = "0"; /* FIXME */
- acc.accessToken = mcToken;
- acc.username = mcName;
- acc.profileId = mcUuid;
- acc.isMicrosoft = true;
- acc.msaRefreshToken = msRefreshToken;
- acc.expiresAt = expiresAt;
- acc.updateSkinFace();
- }
- acc.save();
-
- if(doneListener != null) {
- MinecraftAccount finalAcc = acc;
- Tools.runOnUiThread(() -> doneListener.onLoginDone(finalAcc));
- }
-
- }catch (Exception e){
- Log.e("MicroAuth", e.toString());
- if(errorListener != null)
- Tools.runOnUiThread(() -> errorListener.onLoginError(e));
- }
- ProgressLayout.clearProgress(ProgressLayout.AUTHENTICATE_MICROSOFT);
- });
- }
-
- public String acquireAccessToken(boolean isRefresh, String authcode) throws IOException, JSONException {
- URL url = new URL(authTokenUrl);
- Log.i("MicrosoftLogin", "isRefresh=" + isRefresh + ", authCode= "+authcode);
-
- String formData = convertToFormData(
- "client_id", "00000000402b5328",
- isRefresh ? "refresh_token" : "code", authcode,
- "grant_type", isRefresh ? "refresh_token" : "authorization_code",
- "redirect_url", "https://login.live.com/oauth20_desktop.srf",
- "scope", "service::user.auth.xboxlive.com::MBI_SSL"
- );
-
- Log.i("MicroAuth", formData);
-
- //да пошла yf[eq1 она ваша джава 11
- HttpURLConnection conn = (HttpURLConnection)url.openConnection();
- conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
- conn.setRequestProperty("charset", "utf-8");
- conn.setRequestProperty("Content-Length", Integer.toString(formData.getBytes(StandardCharsets.UTF_8).length));
- conn.setRequestMethod("POST");
- conn.setUseCaches(false);
- conn.setDoInput(true);
- conn.setDoOutput(true);
- conn.connect();
- try(OutputStream wr = conn.getOutputStream()) {
- wr.write(formData.getBytes(StandardCharsets.UTF_8));
- }
- if(conn.getResponseCode() >= 200 && conn.getResponseCode() < 300) {
- JSONObject jo = new JSONObject(Tools.read(conn.getInputStream()));
- msRefreshToken = jo.getString("refresh_token");
- conn.disconnect();
- Log.i("MicrosoftLogin","Acess Token = " + jo.getString("access_token"));
- return jo.getString("access_token");
- //acquireXBLToken(jo.getString("access_token"));
- }else{
- throw getResponseThrowable(conn);
- }
- }
-
- private String acquireXBLToken(String accessToken) throws IOException, JSONException {
- URL url = new URL(xblAuthUrl);
-
- JSONObject data = new JSONObject();
- JSONObject properties = new JSONObject();
- properties.put("AuthMethod", "RPS");
- properties.put("SiteName", "user.auth.xboxlive.com");
- properties.put("RpsTicket", accessToken);
- data.put("Properties",properties);
- data.put("RelyingParty", "http://auth.xboxlive.com");
- data.put("TokenType", "JWT");
-
- String req = data.toString();
- HttpURLConnection conn = (HttpURLConnection)url.openConnection();
- setCommonProperties(conn, req);
- conn.connect();
-
- try(OutputStream wr = conn.getOutputStream()) {
- wr.write(req.getBytes(StandardCharsets.UTF_8));
- }
- if(conn.getResponseCode() >= 200 && conn.getResponseCode() < 300) {
- JSONObject jo = new JSONObject(Tools.read(conn.getInputStream()));
- conn.disconnect();
- Log.i("MicrosoftLogin","Xbl Token = "+jo.getString("Token"));
- return jo.getString("Token");
- //acquireXsts(jo.getString("Token"));
- }else{
- throw getResponseThrowable(conn);
- }
- }
-
- /** @return [uhs, token]*/
- private @NonNull String[] acquireXsts(String xblToken) throws IOException, JSONException {
- URL url = new URL(xstsAuthUrl);
-
- JSONObject data = new JSONObject();
- JSONObject properties = new JSONObject();
- properties.put("SandboxId", "RETAIL");
- properties.put("UserTokens", new JSONArray(Collections.singleton(xblToken)));
- data.put("Properties", properties);
- data.put("RelyingParty", "rp://api.minecraftservices.com/");
- data.put("TokenType", "JWT");
-
- String req = data.toString();
- Log.i("MicroAuth", req);
- HttpURLConnection conn = (HttpURLConnection)url.openConnection();
- setCommonProperties(conn, req);
- Log.i("MicroAuth", conn.getRequestMethod());
- conn.connect();
-
- try(OutputStream wr = conn.getOutputStream()) {
- wr.write(req.getBytes(StandardCharsets.UTF_8));
- }
-
- if(conn.getResponseCode() >= 200 && conn.getResponseCode() < 300) {
- JSONObject jo = new JSONObject(Tools.read(conn.getInputStream()));
- String uhs = jo.getJSONObject("DisplayClaims").getJSONArray("xui").getJSONObject(0).getString("uhs");
- String token = jo.getString("Token");
- conn.disconnect();
- Log.i("MicrosoftLogin","Xbl Xsts = " + token + "; Uhs = " + uhs);
- return new String[]{uhs, token};
- //acquireMinecraftToken(uhs,jo.getString("Token"));
- }else if(conn.getResponseCode() == 401) {
- String responseContents = Tools.read(conn.getErrorStream());
- JSONObject jo = new JSONObject(responseContents);
- long xerr = jo.optLong("XErr", -1);
- Integer locale_id = XSTS_ERRORS.get(xerr);
- if(locale_id != null) {
- throw new PresentedException(new RuntimeException(responseContents), locale_id);
- }
- throw new PresentedException(new RuntimeException(responseContents), R.string.xerr_unknown, xerr);
- }else{
- throw getResponseThrowable(conn);
- }
- }
-
- private String acquireMinecraftToken(String xblUhs, String xblXsts) throws IOException, JSONException {
- URL url = new URL(mcLoginUrl);
-
- JSONObject data = new JSONObject();
- data.put("identityToken", "XBL3.0 x=" + xblUhs + ";" + xblXsts);
-
- String req = data.toString();
- HttpURLConnection conn = (HttpURLConnection)url.openConnection();
- setCommonProperties(conn, req);
- conn.connect();
-
- try(OutputStream wr = conn.getOutputStream()) {
- wr.write(req.getBytes(StandardCharsets.UTF_8));
- }
-
- if(conn.getResponseCode() >= 200 && conn.getResponseCode() < 300) {
- expiresAt = System.currentTimeMillis() + 86400000;
- JSONObject jo = new JSONObject(Tools.read(conn.getInputStream()));
- conn.disconnect();
- Log.i("MicrosoftLogin","MC token: "+jo.getString("access_token"));
- mcToken = jo.getString("access_token");
- //checkMcProfile(jo.getString("access_token"));
- return jo.getString("access_token");
- }else{
- throw getResponseThrowable(conn);
- }
- }
-
- private void checkMcProfile(String mcAccessToken) throws IOException, JSONException {
- URL url = new URL(mcProfileUrl);
-
- HttpURLConnection conn = (HttpURLConnection)url.openConnection();
- conn.setRequestProperty("Authorization", "Bearer " + mcAccessToken);
- conn.setUseCaches(false);
- conn.connect();
-
- if(conn.getResponseCode() >= 200 && conn.getResponseCode() < 300) {
- String s= Tools.read(conn.getInputStream());
- conn.disconnect();
- Log.i("MicrosoftLogin","profile:" + s);
- JSONObject jsonObject = new JSONObject(s);
- String name = (String) jsonObject.get("name");
- String uuid = (String) jsonObject.get("id");
- String uuidDashes = uuid.replaceFirst(
- "(\\p{XDigit}{8})(\\p{XDigit}{4})(\\p{XDigit}{4})(\\p{XDigit}{4})(\\p{XDigit}+)", "$1-$2-$3-$4-$5"
- );
- doesOwnGame = true;
- Log.i("MicrosoftLogin","UserName = " + name);
- Log.i("MicrosoftLogin","Uuid Minecraft = " + uuidDashes);
- mcName=name;
- mcUuid=uuidDashes;
- }else{
- Log.i("MicrosoftLogin","It seems that this Microsoft Account does not own the game.");
- doesOwnGame = false;
- throw new PresentedException(new RuntimeException(conn.getResponseMessage()), R.string.minecraft_not_owned);
- //throwResponseError(conn);
- }
- }
-
- /** Wrapper to ease notifying the listener */
- private void notifyProgress(@Nullable ProgressListener listener, int step){
- if(listener != null){
- Tools.runOnUiThread(() -> listener.onLoginProgress(step));
- }
- ProgressLayout.setProgress(ProgressLayout.AUTHENTICATE_MICROSOFT, step*20);
- }
-
-
- /** Set common properties for the connection. Given that all requests are POST, interactivity is always enabled */
- private static void setCommonProperties(HttpURLConnection conn, String formData) {
- conn.setRequestProperty("Content-Type", "application/json");
- conn.setRequestProperty("Accept", "application/json");
- conn.setRequestProperty("charset", "utf-8");
- try {
- conn.setRequestProperty("Content-Length", Integer.toString(formData.getBytes(StandardCharsets.UTF_8).length));
- conn.setRequestMethod("POST");
- }catch (ProtocolException e) {
- Log.e("MicrosoftAuth", e.toString());
- }
- conn.setUseCaches(false);
- conn.setDoInput(true);
- conn.setDoOutput(true);
- }
-
- /**
- * @param data A series a strings: key1, value1, key2, value2...
- * @return the data converted as a form string for a POST request
- */
- private static String convertToFormData(String... data) throws UnsupportedEncodingException {
- StringBuilder builder = new StringBuilder();
- for(int i=0; i 0) builder.append("&");
- builder.append(URLEncoder.encode(data[i], "UTF-8"))
- .append("=")
- .append(URLEncoder.encode(data[i+1], "UTF-8"));
- }
- return builder.toString();
- }
-
- private RuntimeException getResponseThrowable(HttpURLConnection conn) throws IOException {
- Log.i("MicrosoftLogin", "Error code: " + conn.getResponseCode() + ": " + conn.getResponseMessage());
- if(conn.getResponseCode() == 429) {
- return new PresentedException(R.string.microsoft_login_retry_later);
- }
- return new RuntimeException(conn.getResponseMessage());
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/microsoft/PresentedException.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/microsoft/PresentedException.java
deleted file mode 100644
index 7842379c4..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/authenticator/microsoft/PresentedException.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package net.kdt.pojavlaunch.authenticator.microsoft;
-
-import android.content.Context;
-
-public class PresentedException extends RuntimeException {
- final int localizationStringId;
- final Object[] extraArgs;
-
- public PresentedException(int localizationStringId, Object... extraArgs) {
- this.localizationStringId = localizationStringId;
- this.extraArgs = extraArgs;
- }
-
- public PresentedException(Throwable throwable, int localizationStringId, Object... extraArgs) {
- super(throwable);
- this.localizationStringId = localizationStringId;
- this.extraArgs = extraArgs;
- }
-
- public String toString(Context context) {
- return context.getString(localizationStringId, extraArgs);
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FabricInstallFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FabricInstallFragment.java
deleted file mode 100644
index 4626a1df9..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FabricInstallFragment.java
+++ /dev/null
@@ -1,195 +0,0 @@
-package net.kdt.pojavlaunch.fragments;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.widget.Adapter;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.ProgressBar;
-import android.widget.Spinner;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentManager;
-
-import net.kdt.pojavlaunch.JavaGUILauncherActivity;
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.modloaders.FabricDownloadTask;
-import net.kdt.pojavlaunch.modloaders.FabricUtils;
-import net.kdt.pojavlaunch.modloaders.ModloaderDownloadListener;
-import net.kdt.pojavlaunch.modloaders.ModloaderListenerProxy;
-import net.kdt.pojavlaunch.profiles.VersionSelectorDialog;
-import net.kdt.pojavlaunch.progresskeeper.ProgressKeeper;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-
-public class FabricInstallFragment extends Fragment implements AdapterView.OnItemSelectedListener, ModloaderDownloadListener, Runnable {
- public static final String TAG = "FabricInstallTarget";
- private static ModloaderListenerProxy sTaskProxy;
- private TextView mSelectedVersionLabel;
- private String mSelectedLoaderVersion;
- private Spinner mLoaderVersionSpinner;
- private String mSelectedGameVersion;
- private boolean mSelectedSnapshot;
- private ProgressBar mProgressBar;
- private File mDestinationDir;
- private Button mStartButton;
- private View mRetryView;
- public FabricInstallFragment() {
- super(R.layout.fragment_fabric_install);
- }
-
- @Override
- public void onAttach(@NonNull Context context) {
- super.onAttach(context);
- this.mDestinationDir = new File(Tools.DIR_CACHE, "fabric-installer");
- }
-
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- mStartButton = view.findViewById(R.id.fabric_installer_start_button);
- mStartButton.setOnClickListener(this::onClickStart);
- mSelectedVersionLabel = view.findViewById(R.id.fabric_installer_version_select_label);
- view.findViewById(R.id.fabric_installer_game_version_change).setOnClickListener(this::onClickSelect);
- mLoaderVersionSpinner = view.findViewById(R.id.fabric_installer_loader_ver_spinner);
- mLoaderVersionSpinner.setOnItemSelectedListener(this);
- mProgressBar = view.findViewById(R.id.fabric_installer_progress_bar);
- mRetryView = view.findViewById(R.id.fabric_installer_retry_layout);
- view.findViewById(R.id.fabric_installer_retry_button).setOnClickListener(this::onClickRetry);
- if(sTaskProxy != null) {
- mStartButton.setEnabled(false);
- sTaskProxy.attachListener(this);
- }
- new Thread(this).start();
- }
-
- @Override
- public void onDestroyView() {
- super.onDestroyView();
- if(sTaskProxy != null) {
- sTaskProxy.detachListener();
- }
- }
-
- private void onClickStart(View v) {
- if(ProgressKeeper.hasOngoingTasks()) {
- Toast.makeText(v.getContext(), R.string.tasks_ongoing, Toast.LENGTH_LONG).show();
- return;
- }
- sTaskProxy = new ModloaderListenerProxy();
- FabricDownloadTask fabricDownloadTask = new FabricDownloadTask(sTaskProxy, mDestinationDir);
- sTaskProxy.attachListener(this);
- mStartButton.setEnabled(false);
- new Thread(fabricDownloadTask).start();
- }
-
- private void onClickSelect(View v) {
- VersionSelectorDialog.open(v.getContext(), true, (id, snapshot)->{
- mSelectedGameVersion = id;
- mSelectedVersionLabel.setText(mSelectedGameVersion);
- mSelectedSnapshot = snapshot;
- if(mSelectedLoaderVersion != null && sTaskProxy == null) mStartButton.setEnabled(true);
- });
- }
-
- private void onClickRetry(View v) {
- mLoaderVersionSpinner.setAdapter(null);
- mStartButton.setEnabled(false);
- mProgressBar.setVisibility(View.VISIBLE);
- mRetryView.setVisibility(View.GONE);
- new Thread(this).start();
- }
-
- @Override
- public void onItemSelected(AdapterView> adapterView, View view, int i, long l) {
- Adapter adapter = adapterView.getAdapter();
- mSelectedLoaderVersion = (String) adapter.getItem(i);
- }
-
- @Override
- public void onNothingSelected(AdapterView> adapterView) {
- mSelectedLoaderVersion = null;
- }
-
- @Override
- public void onDownloadFinished(File downloadedFile) {
- Tools.runOnUiThread(()->{
- Context context = requireContext();
- sTaskProxy.detachListener();
- sTaskProxy = null;
- mStartButton.setEnabled(true);
- // This works because the due to the fact that we have transitioned here
- // without adding a transaction to the back stack, which caused the previous
- // transaction to be amended (i guess?? thats how the back stack dump looks like)
- // we can get back to the main fragment with just one back stack pop.
- // For some reason that amendment causes the transaction to lose its tag
- // so we cant use the tag here.
- getParentFragmentManager().popBackStackImmediate();
- Intent intent = new Intent(context, JavaGUILauncherActivity.class);
- FabricUtils.addAutoInstallArgs(intent, downloadedFile, mSelectedGameVersion, mSelectedLoaderVersion, mSelectedSnapshot, true);
- context.startActivity(intent);
- });
- }
-
- @Override
- public void onDataNotAvailable() {
- Tools.runOnUiThread(()->{
- Context context = requireContext();
- sTaskProxy.detachListener();
- sTaskProxy = null;
- mStartButton.setEnabled(true);
- Tools.dialog(context,
- context.getString(R.string.global_error),
- context.getString(R.string.fabric_dl_cant_read_meta));
- });
- }
-
- @Override
- public void onDownloadError(Exception e) {
- Tools.runOnUiThread(()-> {
- Context context = requireContext();
- sTaskProxy.detachListener();
- sTaskProxy = null;
- mStartButton.setEnabled(true);
- Tools.showError(context, e);
- });
- }
-
- @Override
- public void run() {
- try {
- List mLoaderVersions = FabricUtils.downloadLoaderVersionList(false);
- if (mLoaderVersions != null) {
- Tools.runOnUiThread(()->{
- Context context = getContext();
- if(context == null) return;
- ArrayAdapter arrayAdapter = new ArrayAdapter<>(context, R.layout.support_simple_spinner_dropdown_item, mLoaderVersions);
- mLoaderVersionSpinner.setAdapter(arrayAdapter);
- mProgressBar.setVisibility(View.GONE);
- });
- }else{
- Tools.runOnUiThread(()-> {
- mRetryView.setVisibility(View.VISIBLE);
- mProgressBar.setVisibility(View.GONE);
- });
- }
- }catch (IOException e) {
- Tools.runOnUiThread(()-> {
- if(getContext() != null) Tools.showError(getContext(), e);
- mRetryView.setVisibility(View.VISIBLE);
- mProgressBar.setVisibility(View.GONE);
- });
- }
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FileSelectorFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FileSelectorFragment.java
deleted file mode 100644
index 7cb262746..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FileSelectorFragment.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package net.kdt.pojavlaunch.fragments;
-
-import android.app.AlertDialog;
-import android.os.Build;
-import android.os.Bundle;
-import android.os.Environment;
-import android.view.View;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-
-import com.kdt.pickafile.FileListView;
-import com.kdt.pickafile.FileSelectedListener;
-
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.extra.ExtraConstants;
-import net.kdt.pojavlaunch.extra.ExtraCore;
-
-import java.io.File;
-public class FileSelectorFragment extends Fragment {
- public static final String TAG = "FileSelectorFragment";
- public static final String BUNDLE_SELECT_FOLDER = "select_folder";
- public static final String BUNDLE_SHOW_FILE = "show_file";
- public static final String BUNDLE_SHOW_FOLDER = "show_folder";
- public static final String BUNDLE_ROOT_PATH = "root_path";
-
- private Button mSelectFolderButton, mCreateFolderButton;
- private FileListView mFileListView;
- private TextView mFilePathView;
-
- private boolean mSelectFolder = true;
- private boolean mShowFiles = true;
- private boolean mShowFolders = true;
- private String mRootPath = Build.VERSION.SDK_INT >= Build.VERSION_CODES.P
- ? Tools.DIR_GAME_NEW
- : Environment.getExternalStorageDirectory().getAbsolutePath();
-
-
- public FileSelectorFragment(){
- super(R.layout.fragment_file_selector);
- }
-
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- bindViews(view);
- parseBundle();
- if(!mSelectFolder) mSelectFolderButton.setVisibility(View.GONE);
- else mSelectFolderButton.setVisibility(View.VISIBLE);
-
- mFileListView.setShowFiles(mShowFiles);
- mFileListView.setShowFolders(mShowFolders);
- mFileListView.lockPathAt(new File(mRootPath));
- mFileListView.setDialogTitleListener((title)->mFilePathView.setText(removeLockPath(title)));
- mFileListView.refreshPath();
-
- mCreateFolderButton.setOnClickListener(v -> {
- final EditText editText = new EditText(getContext());
- new AlertDialog.Builder(getContext())
- .setTitle(R.string.folder_dialog_insert_name)
- .setView(editText)
- .setNegativeButton(android.R.string.cancel, null)
- .setPositiveButton(R.string.folder_dialog_create, (dialog, which) -> {
- File folder = new File(mFileListView.getFullPath(), editText.getText().toString());
- boolean success = folder.mkdir();
- if(success){
- mFileListView.listFileAt(new File(mFileListView.getFullPath(),editText.getText().toString()));
- }else{
- mFileListView.refreshPath();
- }
- }).show();
- });
-
- mSelectFolderButton.setOnClickListener(v -> {
- ExtraCore.setValue(ExtraConstants.FILE_SELECTOR, removeLockPath(mFileListView.getFullPath().getAbsolutePath()));
- Tools.removeCurrentFragment(requireActivity());
- });
-
- mFileListView.setFileSelectedListener(new FileSelectedListener() {
- @Override
- public void onFileSelected(File file, String path) {
- ExtraCore.setValue(ExtraConstants.FILE_SELECTOR, removeLockPath(path));
- Tools.removeCurrentFragment(requireActivity());
- }
- });
- }
-
- private String removeLockPath(String path){
- return path.replace(mRootPath, ".");
- }
-
- private void parseBundle(){
- Bundle bundle = getArguments();
- if(bundle == null) return;
- mSelectFolder = bundle.getBoolean(BUNDLE_SELECT_FOLDER, mSelectFolder);
- mShowFiles = bundle.getBoolean(BUNDLE_SHOW_FILE, mShowFiles);
- mShowFolders = bundle.getBoolean(BUNDLE_SHOW_FOLDER, mShowFolders);
- mRootPath = bundle.getString(BUNDLE_ROOT_PATH, mRootPath);
- }
-
- private void bindViews(@NonNull View view){
- mSelectFolderButton = view.findViewById(R.id.file_selector_select_folder);
- mCreateFolderButton = view.findViewById(R.id.file_selector_create_folder);
- mFileListView = view.findViewById(R.id.file_selector);
- mFilePathView = view.findViewById(R.id.file_selector_current_path);
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ForgeInstallFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ForgeInstallFragment.java
deleted file mode 100644
index fe609697f..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ForgeInstallFragment.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package net.kdt.pojavlaunch.fragments;
-
-import android.content.Context;
-import android.content.Intent;
-import android.view.LayoutInflater;
-import android.widget.ExpandableListAdapter;
-
-import androidx.annotation.NonNull;
-
-import net.kdt.pojavlaunch.JavaGUILauncherActivity;
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.modloaders.ForgeDownloadTask;
-import net.kdt.pojavlaunch.modloaders.ForgeUtils;
-import net.kdt.pojavlaunch.modloaders.ForgeVersionListAdapter;
-import net.kdt.pojavlaunch.modloaders.ModloaderListenerProxy;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-
-public class ForgeInstallFragment extends ModVersionListFragment> {
- public static final String TAG = "ForgeInstallFragment";
- private static ModloaderListenerProxy sTaskProxy;
-
- @Override
- public void onAttach(@NonNull Context context) {
- super.onAttach(context);
- }
-
- @Override
- public int getTitleText() {
- return R.string.forge_dl_select_version;
- }
-
- @Override
- public int getNoDataMsg() {
- return R.string.forge_dl_no_installer;
- }
-
- @Override
- public ModloaderListenerProxy getTaskProxy() {
- return sTaskProxy;
- }
- @Override
- public void setTaskProxy(ModloaderListenerProxy proxy) {
- sTaskProxy = proxy;
- }
-
- @Override
- public List loadVersionList() throws IOException {
- return ForgeUtils.downloadForgeVersions();
- }
-
- @Override
- public ExpandableListAdapter createAdapter(List versionList, LayoutInflater layoutInflater) {
- return new ForgeVersionListAdapter(versionList, layoutInflater);
- }
-
- @Override
- public Runnable createDownloadTask(Object selectedVersion, ModloaderListenerProxy listenerProxy) {
- return new ForgeDownloadTask(listenerProxy, (String) selectedVersion, new File(Tools.DIR_CACHE, "forge-installer.jar"));
- }
-
- @Override
- public void onDownloadFinished(Context context, File downloadedFile) {
- Intent modInstallerStartIntent = new Intent(context, JavaGUILauncherActivity.class);
- ForgeUtils.addAutoInstallArgs(modInstallerStartIntent, downloadedFile, true);
- context.startActivity(modInstallerStartIntent);
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/LocalLoginFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/LocalLoginFragment.java
deleted file mode 100644
index 6b704642e..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/LocalLoginFragment.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package net.kdt.pojavlaunch.fragments;
-
-import android.os.Bundle;
-import android.view.View;
-import android.widget.EditText;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.extra.ExtraConstants;
-import net.kdt.pojavlaunch.extra.ExtraCore;
-
-import java.io.File;
-
-public class LocalLoginFragment extends Fragment {
- public static final String TAG = "LOCAL_LOGIN_FRAGMENT";
-
- private EditText mUsernameEditText;
-
- public LocalLoginFragment(){
- super(R.layout.fragment_local_login);
- }
-
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- mUsernameEditText = view.findViewById(R.id.login_edit_email);
- view.findViewById(R.id.login_button).setOnClickListener(v -> {
- if(!checkEditText()) return;
-
- ExtraCore.setValue(ExtraConstants.MOJANG_LOGIN_TODO, new String[]{
- mUsernameEditText.getText().toString(), "" });
-
- Tools.swapFragment(requireActivity(), MainMenuFragment.class, MainMenuFragment.TAG, false, null);
- });
- }
-
-
- /** @return Whether the mail (and password) text are eligible to make an auth request */
- private boolean checkEditText(){
-
- String text = mUsernameEditText.getText().toString();
-
- return !(text.isEmpty()
- || text.length() < 3
- || text.length() > 16
- || !text.matches("\\w+")
- || new File(Tools.DIR_ACCOUNT_NEW + "/" + text + ".json").exists()
- );
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/MainMenuFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/MainMenuFragment.java
deleted file mode 100644
index 29e5b4d33..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/MainMenuFragment.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package net.kdt.pojavlaunch.fragments;
-
-import static net.kdt.pojavlaunch.Tools.shareLog;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
-import android.widget.ImageButton;
-import android.widget.Toast;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-
-import net.kdt.pojavlaunch.CustomControlsActivity;
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.extra.ExtraConstants;
-import net.kdt.pojavlaunch.extra.ExtraCore;
-import net.kdt.pojavlaunch.progresskeeper.ProgressKeeper;
-
-public class MainMenuFragment extends Fragment {
- public static final String TAG = "MainMenuFragment";
-
- public MainMenuFragment(){
- super(R.layout.fragment_launcher);
- }
-
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- Button mNewsButton = view.findViewById(R.id.news_button);
- Button mCustomControlButton = view.findViewById(R.id.custom_control_button);
- Button mInstallJarButton = view.findViewById(R.id.install_jar_button);
- Button mShareLogsButton = view.findViewById(R.id.share_logs_button);
-
- ImageButton mEditProfileButton = view.findViewById(R.id.edit_profile_button);
- Button mPlayButton = view.findViewById(R.id.play_button);
-
- mNewsButton.setOnClickListener(v -> Tools.openURL(requireActivity(), Tools.URL_HOME));
- mCustomControlButton.setOnClickListener(v -> startActivity(new Intent(requireContext(), CustomControlsActivity.class)));
- mInstallJarButton.setOnClickListener(v -> runInstallerWithConfirmation(false));
- mInstallJarButton.setOnLongClickListener(v->{
- runInstallerWithConfirmation(true);
- return true;
- });
- mEditProfileButton.setOnClickListener(v -> Tools.swapFragment(requireActivity(), ProfileEditorFragment.class, ProfileEditorFragment.TAG, true, null));
-
- mPlayButton.setOnClickListener(v -> ExtraCore.setValue(ExtraConstants.LAUNCH_GAME, true));
-
- mShareLogsButton.setOnClickListener((v) -> shareLog(requireContext()));
-
- mNewsButton.setOnLongClickListener((v)->{
- Tools.swapFragment(requireActivity(), FabricInstallFragment.class, FabricInstallFragment.TAG, true, null);
- return true;
- });
- }
- private void runInstallerWithConfirmation(boolean isCustomArgs) {
- if (ProgressKeeper.getTaskCount() == 0)
- Tools.installMod(requireActivity(), isCustomArgs);
- else
- Toast.makeText(requireContext(), R.string.tasks_ongoing, Toast.LENGTH_LONG).show();
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/MicrosoftLoginFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/MicrosoftLoginFragment.java
deleted file mode 100644
index 5c41d0f8b..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/MicrosoftLoginFragment.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package net.kdt.pojavlaunch.fragments;
-
-import android.annotation.SuppressLint;
-import android.graphics.Bitmap;
-import android.net.Uri;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.webkit.CookieManager;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
-import android.widget.Toast;
-
-import androidx.fragment.app.Fragment;
-
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.extra.ExtraConstants;
-import net.kdt.pojavlaunch.extra.ExtraCore;
-
-public class MicrosoftLoginFragment extends Fragment {
- public static final String TAG = "MICROSOFT_LOGIN_FRAGMENT";
- private WebView mWebview;
-
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- mWebview = (WebView) inflater.inflate(R.layout.fragment_microsoft_login, container, false);
- CookieManager.getInstance().removeAllCookies(this::onCookiesRemoved);
- return mWebview;
- }
-
- @SuppressLint("SetJavaScriptEnabled") // required for Microsoft log-in
- public void onCookiesRemoved(Boolean b) {
- WebSettings settings = mWebview.getSettings();
-
- settings.setJavaScriptEnabled(true);
- mWebview.clearHistory();
- mWebview.clearCache(true);
- mWebview.clearFormData();
- mWebview.clearHistory();
- mWebview.setWebViewClient(new WebViewTrackClient());
-
- mWebview.loadUrl("https://login.live.com/oauth20_authorize.srf" +
- "?client_id=00000000402b5328" +
- "&response_type=code" +
- "&scope=service%3A%3Auser.auth.xboxlive.com%3A%3AMBI_SSL" +
- "&redirect_url=https%3A%2F%2Flogin.live.com%2Foauth20_desktop.srf");
- }
-
- /* Expose webview actions to others */
- public boolean canGoBack(){ return mWebview.canGoBack();}
- public void goBack(){ mWebview.goBack();}
-
- /** Client to track when to sent the data to the launcher */
- class WebViewTrackClient extends WebViewClient {
-
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- if(url.startsWith("ms-xal-00000000402b5328")) {
- // Should be captured by the activity to kill the fragment and get
- ExtraCore.setValue(ExtraConstants.MICROSOFT_LOGIN_TODO, Uri.parse(url));
- Toast.makeText(view.getContext(), "Login started !", Toast.LENGTH_SHORT).show();
- Tools.removeCurrentFragment(requireActivity());
-
- return true;
- }
-
- // Sometimes, the user just clicked cancel
- if(url.contains("res=cancel")){
- requireActivity().onBackPressed();
- return true;
- }
-
-
- return super.shouldOverrideUrlLoading(view, url);
- }
-
- @Override
- public void onPageStarted(WebView view, String url, Bitmap favicon) {}
-
- @Override
- public void onPageFinished(WebView view, String url) {}
- }
-
-
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ModVersionListFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ModVersionListFragment.java
deleted file mode 100644
index f1ac32a51..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ModVersionListFragment.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package net.kdt.pojavlaunch.fragments;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.ExpandableListAdapter;
-import android.widget.ExpandableListView;
-import android.widget.ProgressBar;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.modloaders.ModloaderDownloadListener;
-import net.kdt.pojavlaunch.modloaders.ModloaderListenerProxy;
-import net.kdt.pojavlaunch.progresskeeper.ProgressKeeper;
-
-import java.io.File;
-import java.io.IOException;
-
-public abstract class ModVersionListFragment extends Fragment implements Runnable, View.OnClickListener, ExpandableListView.OnChildClickListener, ModloaderDownloadListener {
- public static final String TAG = "ForgeInstallFragment";
- private ExpandableListView mExpandableListView;
- private ProgressBar mProgressBar;
- private LayoutInflater mInflater;
- private View mRetryView;
-
- public ModVersionListFragment() {
- super(R.layout.fragment_mod_version_list);
- }
-
- @Override
- public void onAttach(@NonNull Context context) {
- super.onAttach(context);
- this.mInflater = LayoutInflater.from(context);
- }
-
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- ((TextView)view.findViewById(R.id.title_textview)).setText(getTitleText());
- mProgressBar = view.findViewById(R.id.mod_dl_list_progress);
- mExpandableListView = view.findViewById(R.id.mod_dl_expandable_version_list);
- mExpandableListView.setOnChildClickListener(this);
- mRetryView = view.findViewById(R.id.mod_dl_retry_layout);
- view.findViewById(R.id.forge_installer_retry_button).setOnClickListener(this);
- ModloaderListenerProxy taskProxy = getTaskProxy();
- if(taskProxy != null) {
- mExpandableListView.setEnabled(false);
- taskProxy.attachListener(this);
- }
- new Thread(this).start();
- }
-
- @Override
- public void onDestroyView() {
- ModloaderListenerProxy taskProxy = getTaskProxy();
- if(taskProxy != null) taskProxy.detachListener();
- super.onDestroyView();
- }
-
- @Override
- public void run() {
- try {
- T versions = loadVersionList();
- Tools.runOnUiThread(()->{
- if(versions != null) {
- mExpandableListView.setAdapter(createAdapter(versions, mInflater));
- }else{
- mRetryView.setVisibility(View.VISIBLE);
- }
- mProgressBar.setVisibility(View.GONE);
- });
- }catch (IOException e) {
- Tools.runOnUiThread(()-> {
- if (getContext() != null) {
- Tools.showError(getContext(), e);
- mRetryView.setVisibility(View.VISIBLE);
- mProgressBar.setVisibility(View.GONE);
- }
- });
- }
- }
-
- @Override
- public void onClick(View view) {
- mRetryView.setVisibility(View.GONE);
- mProgressBar.setVisibility(View.VISIBLE);
- new Thread(this).start();
- }
-
- @Override
- public boolean onChildClick(ExpandableListView expandableListView, View view, int i, int i1, long l) {
- if(ProgressKeeper.hasOngoingTasks()) {
- Toast.makeText(expandableListView.getContext(), R.string.tasks_ongoing, Toast.LENGTH_LONG).show();
- return true;
- }
- Object forgeVersion = expandableListView.getExpandableListAdapter().getChild(i, i1);
- ModloaderListenerProxy taskProxy = new ModloaderListenerProxy();
- Runnable downloadTask = createDownloadTask(forgeVersion, taskProxy);
- setTaskProxy(taskProxy);
- taskProxy.attachListener(this);
- mExpandableListView.setEnabled(false);
- new Thread(downloadTask).start();
- return true;
- }
-
- @Override
- public void onDownloadFinished(File downloadedFile) {
- Tools.runOnUiThread(()->{
- Context context = requireContext();
- getTaskProxy().detachListener();
- setTaskProxy(null);
- mExpandableListView.setEnabled(true);
- // Read the comment in FabricInstallFragment.onDownloadFinished() to see how this works
- getParentFragmentManager().popBackStackImmediate();
- onDownloadFinished(context, downloadedFile);
- });
- }
-
- @Override
- public void onDataNotAvailable() {
- Tools.runOnUiThread(()->{
- Context context = requireContext();
- getTaskProxy().detachListener();
- setTaskProxy(null);
- mExpandableListView.setEnabled(true);
- Tools.dialog(context,
- context.getString(R.string.global_error),
- context.getString(getNoDataMsg()));
- });
- }
-
- @Override
- public void onDownloadError(Exception e) {
- Tools.runOnUiThread(()->{
- Context context = requireContext();
- getTaskProxy().detachListener();
- setTaskProxy(null);
- mExpandableListView.setEnabled(true);
- Tools.showError(context, e);
- });
- }
-
- public abstract int getTitleText();
- public abstract int getNoDataMsg();
- public abstract ModloaderListenerProxy getTaskProxy();
- public abstract T loadVersionList() throws IOException;
- public abstract void setTaskProxy(ModloaderListenerProxy proxy);
- public abstract ExpandableListAdapter createAdapter(T versionList, LayoutInflater layoutInflater);
- public abstract Runnable createDownloadTask(Object selectedVersion, ModloaderListenerProxy listenerProxy);
- public abstract void onDownloadFinished(Context context, File downloadedFile);
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/OptiFineInstallFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/OptiFineInstallFragment.java
deleted file mode 100644
index a37704618..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/OptiFineInstallFragment.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package net.kdt.pojavlaunch.fragments;
-
-import android.content.Context;
-import android.content.Intent;
-import android.view.LayoutInflater;
-import android.widget.ExpandableListAdapter;
-
-import net.kdt.pojavlaunch.JavaGUILauncherActivity;
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.modloaders.ModloaderListenerProxy;
-import net.kdt.pojavlaunch.modloaders.OptiFineDownloadTask;
-import net.kdt.pojavlaunch.modloaders.OptiFineUtils;
-import net.kdt.pojavlaunch.modloaders.OptiFineVersionListAdapter;
-
-import java.io.File;
-import java.io.IOException;
-
-public class OptiFineInstallFragment extends ModVersionListFragment {
- public static final String TAG = "OptiFineInstallFragment";
- private static ModloaderListenerProxy sTaskProxy;
- @Override
- public int getTitleText() {
- return R.string.of_dl_select_version;
- }
-
- @Override
- public int getNoDataMsg() {
- return R.string.of_dl_failed_to_scrape;
- }
-
- @Override
- public ModloaderListenerProxy getTaskProxy() {
- return sTaskProxy;
- }
-
- @Override
- public OptiFineUtils.OptiFineVersions loadVersionList() throws IOException {
- return OptiFineUtils.downloadOptiFineVersions();
- }
-
- @Override
- public void setTaskProxy(ModloaderListenerProxy proxy) {
- sTaskProxy = proxy;
- }
-
- @Override
- public ExpandableListAdapter createAdapter(OptiFineUtils.OptiFineVersions versionList, LayoutInflater layoutInflater) {
- return new OptiFineVersionListAdapter(versionList, layoutInflater);
- }
-
- @Override
- public Runnable createDownloadTask(Object selectedVersion, ModloaderListenerProxy listenerProxy) {
- return new OptiFineDownloadTask((OptiFineUtils.OptiFineVersion) selectedVersion,
- new File(Tools.DIR_CACHE, "optifine-installer.jar"), listenerProxy);
- }
-
- @Override
- public void onDownloadFinished(Context context, File downloadedFile) {
- Intent modInstallerStartIntent = new Intent(context, JavaGUILauncherActivity.class);
- OptiFineUtils.addAutoInstallArgs(modInstallerStartIntent, downloadedFile);
- context.startActivity(modInstallerStartIntent);
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ProfileEditorFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ProfileEditorFragment.java
deleted file mode 100644
index 5df28efa7..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ProfileEditorFragment.java
+++ /dev/null
@@ -1,214 +0,0 @@
-package net.kdt.pojavlaunch.fragments;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.Spinner;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.extra.ExtraConstants;
-import net.kdt.pojavlaunch.extra.ExtraCore;
-import net.kdt.pojavlaunch.multirt.MultiRTUtils;
-import net.kdt.pojavlaunch.multirt.RTSpinnerAdapter;
-import net.kdt.pojavlaunch.multirt.Runtime;
-import net.kdt.pojavlaunch.prefs.LauncherPreferences;
-import net.kdt.pojavlaunch.profiles.VersionSelectorDialog;
-import net.kdt.pojavlaunch.value.launcherprofiles.LauncherProfiles;
-import net.kdt.pojavlaunch.value.launcherprofiles.MinecraftProfile;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.UUID;
-
-public class ProfileEditorFragment extends Fragment {
- public static final String TAG = "ProfileEditorFragment";
- public static final String DELETED_PROFILE = "deleted_profile";
-
- private String mProfileKey;
- private MinecraftProfile mTempProfile = null;
- private String mValueToConsume = "";
- private Button mSaveButton, mDeleteButton, mControlSelectButton, mGameDirButton, mVersionSelectButton;
- private Spinner mDefaultRuntime, mDefaultRenderer;
- private EditText mDefaultName, mDefaultJvmArgument;
- private TextView mDefaultPath, mDefaultVersion, mDefaultControl;
-
- private List mRenderNames;
-
- public ProfileEditorFragment(){
- super(R.layout.fragment_profile_editor);
- }
-
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- // Paths, which can be changed
- String value = (String) ExtraCore.consumeValue(ExtraConstants.FILE_SELECTOR);
- if(value != null){
- if(mValueToConsume.equals(FileSelectorFragment.BUNDLE_SELECT_FOLDER)){
- mTempProfile.gameDir = value;
- }else{
- mTempProfile.controlFile = value;
- }
- }
- return super.onCreateView(inflater, container, savedInstanceState);
- }
-
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- mRenderNames = Arrays.asList(getResources().getStringArray(R.array.renderer_values));
- bindViews(view);
-
- // Renderer spinner
- List renderList = new ArrayList<>(5);
- Collections.addAll(renderList, getResources().getStringArray(R.array.renderer));
- renderList.add("Default");
- mDefaultRenderer.setAdapter(new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, renderList));
-
- // Set up behaviors
- mSaveButton.setOnClickListener(v -> {
- save();
- Tools.removeCurrentFragment(requireActivity());
- });
-
- mDeleteButton.setOnClickListener(v -> {
- LauncherProfiles.mainProfileJson.profiles.remove(mProfileKey);
- LauncherProfiles.update();
- ExtraCore.setValue(ExtraConstants.REFRESH_VERSION_SPINNER, DELETED_PROFILE);
- Tools.removeCurrentFragment(requireActivity());
- });
-
- mGameDirButton.setOnClickListener(v -> {
- Bundle bundle = new Bundle(2);
- bundle.putBoolean(FileSelectorFragment.BUNDLE_SELECT_FOLDER, true);
- bundle.putString(FileSelectorFragment.BUNDLE_ROOT_PATH, Tools.DIR_GAME_HOME);
- bundle.putBoolean(FileSelectorFragment.BUNDLE_SHOW_FILE, false);
- mValueToConsume = FileSelectorFragment.BUNDLE_SELECT_FOLDER;
-
- Tools.swapFragment(requireActivity(),
- FileSelectorFragment.class, FileSelectorFragment.TAG, true, bundle);
- });
-
- mControlSelectButton.setOnClickListener(v -> {
- Bundle bundle = new Bundle(3);
- bundle.putBoolean(FileSelectorFragment.BUNDLE_SELECT_FOLDER, false);
- bundle.putString(FileSelectorFragment.BUNDLE_ROOT_PATH, Tools.CTRLMAP_PATH);
- Tools.swapFragment(requireActivity(),
- FileSelectorFragment.class, FileSelectorFragment.TAG, true, bundle);
- });
-
- // Setup the expendable list behavior
- mVersionSelectButton.setOnClickListener(v -> VersionSelectorDialog.open(v.getContext(), false, (id, snapshot)->{
- mTempProfile.lastVersionId = id;
- mDefaultVersion.setText(id);
- }));
-
-
-
- loadValues(LauncherPreferences.DEFAULT_PREF.getString(LauncherPreferences.PREF_KEY_CURRENT_PROFILE, ""), view.getContext());
- }
-
-
- private void loadValues(@NonNull String profile, @NonNull Context context){
- if(mTempProfile == null){
- mTempProfile = getProfile(profile);
- }
-
- // Runtime spinner
- List runtimes = MultiRTUtils.getRuntimes();
- int jvmIndex = runtimes.indexOf(new Runtime(""));
- if (mTempProfile.javaDir != null) {
- String selectedRuntime = mTempProfile.javaDir.substring(Tools.LAUNCHERPROFILES_RTPREFIX.length());
- int nindex = runtimes.indexOf(new Runtime(selectedRuntime));
- if (nindex != -1) jvmIndex = nindex;
- }
- mDefaultRuntime.setAdapter(new RTSpinnerAdapter(context, runtimes));
- if(jvmIndex == -1) jvmIndex = runtimes.size() - 1;
- mDefaultRuntime.setSelection(jvmIndex);
-
- // Renderer spinner
- int rendererIndex = mDefaultRenderer.getAdapter().getCount() - 1;
- if(mTempProfile.pojavRendererName != null) {
- int nindex = mRenderNames.indexOf(mTempProfile.pojavRendererName);
- if(nindex != -1) rendererIndex = nindex;
- }
- mDefaultRenderer.setSelection(rendererIndex);
-
- mDefaultVersion.setText(mTempProfile.lastVersionId);
- mDefaultJvmArgument.setText(mTempProfile.javaArgs == null ? "" : mTempProfile.javaArgs);
- mDefaultName.setText(mTempProfile.name);
- mDefaultPath.setText(mTempProfile.gameDir == null ? "" : mTempProfile.gameDir);
- mDefaultControl.setText(mTempProfile.controlFile == null ? "" : mTempProfile.controlFile);
- }
-
- private MinecraftProfile getProfile(@NonNull String profile){
- MinecraftProfile minecraftProfile;
- if(getArguments() == null) {
- minecraftProfile = new MinecraftProfile(LauncherProfiles.mainProfileJson.profiles.get(profile));
- mProfileKey = profile;
- }else{
- minecraftProfile = MinecraftProfile.createTemplate();
- String uuid = UUID.randomUUID().toString();
- while(LauncherProfiles.mainProfileJson.profiles.containsKey(uuid)) {
- uuid = UUID.randomUUID().toString();
- }
- mProfileKey = uuid;
- }
- return minecraftProfile;
- }
-
-
- private void bindViews(@NonNull View view){
- mDefaultControl = view.findViewById(R.id.vprof_editor_ctrl_spinner);
- mDefaultRuntime = view.findViewById(R.id.vprof_editor_spinner_runtime);
- mDefaultRenderer = view.findViewById(R.id.vprof_editor_profile_renderer);
- mDefaultVersion = view.findViewById(R.id.vprof_editor_version_spinner);
-
- mDefaultPath = view.findViewById(R.id.vprof_editor_path);
- mDefaultName = view.findViewById(R.id.vprof_editor_profile_name);
- mDefaultJvmArgument = view.findViewById(R.id.vprof_editor_jre_args);
-
- mSaveButton = view.findViewById(R.id.vprof_editor_save_button);
- mDeleteButton = view.findViewById(R.id.vprof_editor_delete_button);
- mControlSelectButton = view.findViewById(R.id.vprof_editor_ctrl_button);
- mVersionSelectButton = view.findViewById(R.id.vprof_editor_version_button);
- mGameDirButton = view.findViewById(R.id.vprof_editor_path_button);
- }
-
- private void save(){
- //First, check for potential issues in the inputs
- mTempProfile.lastVersionId = mDefaultVersion.getText().toString();
- mTempProfile.controlFile = mDefaultControl.getText().toString();
- mTempProfile.name = mDefaultName.getText().toString();
- mTempProfile.javaArgs = mDefaultJvmArgument.getText().toString();
- mTempProfile.gameDir = mDefaultPath.getText().toString();
-
- if(mTempProfile.controlFile.isEmpty()) mTempProfile.controlFile = null;
- if(mTempProfile.javaArgs.isEmpty()) mTempProfile.javaArgs = null;
- if(mTempProfile.gameDir.isEmpty()) mTempProfile.gameDir = null;
-
- Runtime selectedRuntime = (Runtime) mDefaultRuntime.getSelectedItem();
- mTempProfile.javaDir = (selectedRuntime.name.equals("") || selectedRuntime.versionString == null)
- ? null : Tools.LAUNCHERPROFILES_RTPREFIX + selectedRuntime.name;
-
- if(mDefaultRenderer.getSelectedItemPosition() == mRenderNames.size()) mTempProfile.pojavRendererName = null;
- else mTempProfile.pojavRendererName = mRenderNames.get(mDefaultRenderer.getSelectedItemPosition());
-
-
- LauncherProfiles.mainProfileJson.profiles.put(mProfileKey, mTempProfile);
- LauncherProfiles.update();
- ExtraCore.setValue(ExtraConstants.REFRESH_VERSION_SPINNER, mProfileKey);
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ProfileTypeSelectFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ProfileTypeSelectFragment.java
deleted file mode 100644
index 2c29ffff5..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ProfileTypeSelectFragment.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package net.kdt.pojavlaunch.fragments;
-
-import android.os.Bundle;
-import android.view.View;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-
-public class ProfileTypeSelectFragment extends Fragment {
- public static final String TAG = "ProfileTypeSelectFragment";
- public ProfileTypeSelectFragment() {
- super(R.layout.fragment_profile_type);
- }
-
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- view.findViewById(R.id.vanilla_profile).setOnClickListener(v -> Tools.swapFragment(requireActivity(), ProfileEditorFragment.class,
- ProfileEditorFragment.TAG, false, new Bundle(1)));
-
- // NOTE: Special care needed! If you wll decide to add these to the back stack, please read
- // the comment in FabricInstallFragment.onDownloadFinished() and amend the code
- // in FabricInstallFragment.onDownloadFinished() and ModVersionListFragment.onDownloadFinished()
- view.findViewById(R.id.optifine_profile).setOnClickListener(v -> Tools.swapFragment(requireActivity(), OptiFineInstallFragment.class,
- OptiFineInstallFragment.TAG, false, null));
- view.findViewById(R.id.modded_profile_fabric).setOnClickListener((v)->
- Tools.swapFragment(requireActivity(), FabricInstallFragment.class, FabricInstallFragment.TAG, false, null));
- view.findViewById(R.id.modded_profile_forge).setOnClickListener((v)->
- Tools.swapFragment(requireActivity(), ForgeInstallFragment.class, ForgeInstallFragment.TAG, false, null));
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/SelectAuthFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/SelectAuthFragment.java
deleted file mode 100644
index f27a5e7d4..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/SelectAuthFragment.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package net.kdt.pojavlaunch.fragments;
-
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-
-public class SelectAuthFragment extends Fragment {
- public static final String TAG = "AUTH_SELECT_FRAGMENT";
-
- public SelectAuthFragment(){
- super(R.layout.fragment_select_auth_method);
- }
-
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- Button mMicrosoftButton = view.findViewById(R.id.button_microsoft_authentication);
- Button mLocalButton = view.findViewById(R.id.button_local_authentication);
-
- mMicrosoftButton.setOnClickListener(v -> Tools.swapFragment(requireActivity(), MicrosoftLoginFragment.class, MicrosoftLoginFragment.TAG, false, null));
- mLocalButton.setOnClickListener(v -> Tools.swapFragment(requireActivity(), LocalLoginFragment.class, LocalLoginFragment.TAG, false, null));
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/FabricDownloadTask.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/FabricDownloadTask.java
deleted file mode 100644
index 03ea723ad..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/FabricDownloadTask.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package net.kdt.pojavlaunch.modloaders;
-
-import com.kdt.mcgui.ProgressLayout;
-
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.progresskeeper.ProgressKeeper;
-import net.kdt.pojavlaunch.utils.DownloadUtils;
-
-import java.io.File;
-import java.io.IOException;
-
-public class FabricDownloadTask implements Runnable, Tools.DownloaderFeedback{
- private final File mDestinationDir;
- private final File mDestinationFile;
- private final ModloaderDownloadListener mModloaderDownloadListener;
-
- public FabricDownloadTask(ModloaderDownloadListener modloaderDownloadListener, File mDestinationDir) {
- this.mModloaderDownloadListener = modloaderDownloadListener;
- this.mDestinationDir = mDestinationDir;
- this.mDestinationFile = new File(mDestinationDir, "fabric-installer.jar");
- }
-
- @Override
- public void run() {
- ProgressKeeper.submitProgress(ProgressLayout.INSTALL_MODPACK, 0, R.string.fabric_dl_progress);
- try {
- if(runCatching()) mModloaderDownloadListener.onDownloadFinished(mDestinationFile);
- }catch (IOException e) {
- mModloaderDownloadListener.onDownloadError(e);
- }
- ProgressKeeper.submitProgress(ProgressLayout.INSTALL_MODPACK, -1, -1);
- }
-
- private boolean runCatching() throws IOException {
- if(!mDestinationDir.exists() && !mDestinationDir.mkdirs()) throw new IOException("Failed to create cache directory");
- String[] urlAndVersion = FabricUtils.getInstallerUrlAndVersion();
- if(urlAndVersion == null) {
- mModloaderDownloadListener.onDataNotAvailable();
- return false;
- }
- File versionFile = new File(mDestinationDir, "fabric-installer-version");
- boolean shouldDownloadInstaller = true;
- if(urlAndVersion[1] != null && versionFile.canRead()) { // if we know the latest version that we have and the server has
- try {
- shouldDownloadInstaller = !urlAndVersion[1].equals(Tools.read(versionFile.getAbsolutePath()));
- }catch (IOException e) {
- e.printStackTrace();
- }
- }
- if(shouldDownloadInstaller) {
- if (urlAndVersion[0] != null) {
- byte[] buffer = new byte[8192];
- DownloadUtils.downloadFileMonitored(urlAndVersion[0], mDestinationFile, buffer, this);
- if(urlAndVersion[1] != null) {
- try {
- Tools.write(versionFile.getAbsolutePath(), urlAndVersion[1]);
- }catch (IOException e) {
- e.printStackTrace();
- }
- }
- return true;
- } else {
- mModloaderDownloadListener.onDataNotAvailable();
- return false;
- }
- }else{
- return true;
- }
- }
-
- @Override
- public void updateProgress(int curr, int max) {
- int progress100 = (int)(((float)curr / (float)max)*100f);
- ProgressKeeper.submitProgress(ProgressLayout.INSTALL_MODPACK, progress100, R.string.fabric_dl_progress);
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/FabricMetaReader.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/FabricMetaReader.java
deleted file mode 100644
index 151c61c2a..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/FabricMetaReader.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package net.kdt.pojavlaunch.modloaders;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-public interface FabricMetaReader {
- boolean processMetadata(JSONObject jsonObject) throws JSONException;
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/FabricUtils.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/FabricUtils.java
deleted file mode 100644
index 83f849a78..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/FabricUtils.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package net.kdt.pojavlaunch.modloaders;
-
-import android.content.Intent;
-
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.utils.DownloadUtils;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-public class FabricUtils {
- private static final String FABRIC_INSTALLER_METADATA_URL = "https://meta.fabricmc.net/v2/versions/installer";
- private static final String FABRIC_LOADER_METADATA_URL = "https://meta.fabricmc.net/v2/versions/loader";
- public static List downloadLoaderVersionList(boolean onlyStable) throws IOException {
- try {
- return DownloadUtils.downloadStringCached(FABRIC_LOADER_METADATA_URL,
- "fabric_loader_versions", (input)->{
- final List loaderList = new ArrayList<>();
- try {
- enumerateMetadata(input, (object) -> {
- if (onlyStable && !object.getBoolean("stable")) return false;
- loaderList.add(object.getString("version"));
- return false;
- });
- }catch (JSONException e) {
- throw new DownloadUtils.ParseException(e);
- }
- return loaderList;
- });
- }catch (DownloadUtils.ParseException e) {
- e.printStackTrace();
- return null;
- }
- }
-
- public static String[] getInstallerUrlAndVersion() throws IOException{
- String installerMetadata = DownloadUtils.downloadString(FABRIC_INSTALLER_METADATA_URL);
- try {
- return DownloadUtils.downloadStringCached(FABRIC_INSTALLER_METADATA_URL,
- "fabric_installer_versions", input -> {
- try {
- JSONObject selectedMetadata = enumerateMetadata(installerMetadata, (object) ->
- object.getBoolean("stable"));
- if (selectedMetadata == null) return null;
- return new String[]{selectedMetadata.getString("url"),
- selectedMetadata.getString("version")};
- } catch (JSONException e) {
- throw new DownloadUtils.ParseException(e);
- }
- });
- }catch (DownloadUtils.ParseException e) {
- e.printStackTrace();
- return null;
- }
- }
-
- public static void addAutoInstallArgs(Intent intent, File modInstalllerJar,
- String gameVersion, String loaderVersion,
- boolean isSnapshot, boolean createProfile) {
- intent.putExtra("javaArgs", "-jar " + modInstalllerJar.getAbsolutePath() + " client -dir "+ Tools.DIR_GAME_NEW
- + " -mcversion "+gameVersion +" -loader "+loaderVersion +
- (isSnapshot ? " -snapshot" : "") +
- (createProfile ? "" : " -noprofile"));
- intent.putExtra("openLogOutput", true);
-
- }
-
- private static JSONObject enumerateMetadata(String inputMetadata, FabricMetaReader metaReader) throws JSONException{
- JSONArray fullMetadata = new JSONArray(inputMetadata);
- JSONObject metadataObject = null;
- for(int i = 0; i < fullMetadata.length(); i++) {
- metadataObject = fullMetadata.getJSONObject(i);
- if(metaReader.processMetadata(metadataObject)) return metadataObject;
- }
- return metadataObject;
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ForgeDownloadTask.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ForgeDownloadTask.java
deleted file mode 100644
index 60dcd9b2d..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ForgeDownloadTask.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package net.kdt.pojavlaunch.modloaders;
-
-import com.kdt.mcgui.ProgressLayout;
-
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.progresskeeper.ProgressKeeper;
-import net.kdt.pojavlaunch.utils.DownloadUtils;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-public class ForgeDownloadTask implements Runnable, Tools.DownloaderFeedback {
- private final String mForgeUrl;
- private final String mForgeVersion;
- private final File mDestinationFile;
- private final ModloaderDownloadListener mListener;
- public ForgeDownloadTask(ModloaderDownloadListener listener, String forgeVersion, File destinationFile) {
- this.mListener = listener;
- this.mForgeUrl = ForgeUtils.getInstallerUrl(forgeVersion);
- this.mForgeVersion = forgeVersion;
- this.mDestinationFile = destinationFile;
- }
- @Override
- public void run() {
- ProgressKeeper.submitProgress(ProgressLayout.INSTALL_MODPACK, 0, R.string.forge_dl_progress, mForgeVersion);
- try {
- byte[] buffer = new byte[8192];
- DownloadUtils.downloadFileMonitored(mForgeUrl, mDestinationFile, buffer, this);
- mListener.onDownloadFinished(mDestinationFile);
- }catch (IOException e) {
- if(e instanceof FileNotFoundException) {
- mListener.onDataNotAvailable();
- }else{
- mListener.onDownloadError(e);
- }
- }
- ProgressKeeper.submitProgress(ProgressLayout.INSTALL_MODPACK, -1, -1);
- }
-
- @Override
- public void updateProgress(int curr, int max) {
- int progress100 = (int)(((float)curr / (float)max)*100f);
- ProgressKeeper.submitProgress(ProgressLayout.INSTALL_MODPACK, progress100, R.string.forge_dl_progress, mForgeVersion);
- }
-
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ForgeUtils.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ForgeUtils.java
deleted file mode 100644
index 31420de90..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ForgeUtils.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package net.kdt.pojavlaunch.modloaders;
-
-import android.content.Intent;
-
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.utils.DownloadUtils;
-
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.List;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-public class ForgeUtils {
- private static final String FORGE_METADATA_URL = "https://maven.minecraftforge.net/net/minecraftforge/forge/maven-metadata.xml";
- private static final String FORGE_INSTALLER_URL = "https://maven.minecraftforge.net/net/minecraftforge/forge/%1$s/forge-%1$s-installer.jar";
- public static List downloadForgeVersions() throws IOException {
- SAXParser saxParser;
- try {
- SAXParserFactory parserFactory = SAXParserFactory.newInstance();
- saxParser = parserFactory.newSAXParser();
- }catch (SAXException | ParserConfigurationException e) {
- e.printStackTrace();
- // if we cant make a parser we might as well not even try to parse anything
- return null;
- }
- try {
- //of_test();
- return DownloadUtils.downloadStringCached(FORGE_METADATA_URL, "forge_versions", input -> {
- try {
- ForgeVersionListHandler handler = new ForgeVersionListHandler();
- saxParser.parse(new InputSource(new StringReader(input)), handler);
- return handler.getVersions();
- // IOException is present here StringReader throws it only if the parser called close()
- // sooner than needed, which is a parser issue and not an I/O one
- }catch (SAXException | IOException e) {
- throw new DownloadUtils.ParseException(e);
- }
- });
- }catch (DownloadUtils.ParseException e) {
- e.printStackTrace();
- return null;
- }
-
- }
- public static String getInstallerUrl(String version) {
- return String.format(FORGE_INSTALLER_URL, version);
- }
-
- public static void addAutoInstallArgs(Intent intent, File modInstallerJar, boolean createProfile) {
- intent.putExtra("javaArgs", "-javaagent:"+ Tools.DIR_DATA+"/forge_installer/forge_installer.jar"
- + (createProfile ? "=NPS" : "") + // No Profile Suppression
- " -jar "+modInstallerJar.getAbsolutePath());
- intent.putExtra("skipDetectMod", true);
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ForgeVersionListAdapter.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ForgeVersionListAdapter.java
deleted file mode 100644
index 4b96cd03e..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ForgeVersionListAdapter.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package net.kdt.pojavlaunch.modloaders;
-
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseExpandableListAdapter;
-import android.widget.ExpandableListAdapter;
-import android.widget.TextView;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class ForgeVersionListAdapter extends BaseExpandableListAdapter implements ExpandableListAdapter {
- private final List mGameVersions;
- private final List> mForgeVersions;
- private final LayoutInflater mLayoutInflater;
-
- public ForgeVersionListAdapter(List forgeVersions, LayoutInflater layoutInflater) {
- this.mLayoutInflater = layoutInflater;
- mGameVersions = new ArrayList<>();
- mForgeVersions = new ArrayList<>();
- for(String version : forgeVersions) {
- int dashIndex = version.indexOf("-");
- String gameVersion = version.substring(0, dashIndex);
- List versionList;
- int gameVersionIndex = mGameVersions.indexOf(gameVersion);
- if(gameVersionIndex != -1) versionList = mForgeVersions.get(gameVersionIndex);
- else {
- versionList = new ArrayList<>();
- mGameVersions.add(gameVersion);
- mForgeVersions.add(versionList);
- }
- versionList.add(version);
- }
- }
-
- @Override
- public int getGroupCount() {
- return mGameVersions.size();
- }
-
- @Override
- public int getChildrenCount(int i) {
- return mForgeVersions.get(i).size();
- }
-
- @Override
- public Object getGroup(int i) {
- return getGameVersion(i);
- }
-
- @Override
- public Object getChild(int i, int i1) {
- return getForgeVersion(i, i1);
- }
-
- @Override
- public long getGroupId(int i) {
- return i;
- }
-
- @Override
- public long getChildId(int i, int i1) {
- return i1;
- }
-
- @Override
- public boolean hasStableIds() {
- return true;
- }
-
- @Override
- public View getGroupView(int i, boolean b, View convertView, ViewGroup viewGroup) {
- if(convertView == null)
- convertView = mLayoutInflater.inflate(android.R.layout.simple_expandable_list_item_1, viewGroup, false);
-
- ((TextView) convertView).setText(getGameVersion(i));
-
- return convertView;
- }
-
- @Override
- public View getChildView(int i, int i1, boolean b, View convertView, ViewGroup viewGroup) {
- if(convertView == null)
- convertView = mLayoutInflater.inflate(android.R.layout.simple_expandable_list_item_1, viewGroup, false);
- ((TextView) convertView).setText(getForgeVersion(i, i1));
- return convertView;
- }
-
- private String getGameVersion(int i) {
- return mGameVersions.get(i);
- }
-
- private String getForgeVersion(int i, int i1){
- return mForgeVersions.get(i).get(i1);
- }
-
- @Override
- public boolean isChildSelectable(int i, int i1) {
- return true;
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ForgeVersionListHandler.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ForgeVersionListHandler.java
deleted file mode 100644
index 8de024ccd..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ForgeVersionListHandler.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package net.kdt.pojavlaunch.modloaders;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class ForgeVersionListHandler extends DefaultHandler {
- private List mForgeVersions;
- private StringBuilder mCurrentVersion = null;
- @Override
- public void startDocument() throws SAXException {
- mForgeVersions = new ArrayList<>();
- }
-
- @Override
- public void characters(char[] ch, int start, int length) throws SAXException {
- if(mCurrentVersion != null) mCurrentVersion.append(ch, start, length);
- }
-
- @Override
- public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
- if(qName.equals("version")) mCurrentVersion = new StringBuilder();
- }
-
- @Override
- public void endElement(String uri, String localName, String qName) throws SAXException {
- if (qName.equals("version")) {
- String version = mCurrentVersion.toString();
- mForgeVersions.add(version);
- mCurrentVersion = null;
- }
- }
- public List getVersions() {
- return mForgeVersions;
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ModloaderDownloadListener.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ModloaderDownloadListener.java
deleted file mode 100644
index 9260d4cbc..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ModloaderDownloadListener.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package net.kdt.pojavlaunch.modloaders;
-
-import java.io.File;
-
-public interface ModloaderDownloadListener {
- void onDownloadFinished(File downloadedFile);
- void onDataNotAvailable();
- void onDownloadError(Exception e);
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ModloaderListenerProxy.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ModloaderListenerProxy.java
deleted file mode 100644
index 97713c9e4..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/ModloaderListenerProxy.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package net.kdt.pojavlaunch.modloaders;
-
-import java.io.File;
-
-public class ModloaderListenerProxy implements ModloaderDownloadListener {
- public static final int PROXY_RESULT_NONE = -1;
- public static final int PROXY_RESULT_FINISHED = 0;
- public static final int PROXY_RESULT_NOT_AVAILABLE = 1;
- public static final int PROXY_RESULT_ERROR = 2;
- private ModloaderDownloadListener mDestinationListener;
- private Object mProxyResultObject;
- private int mProxyResult = PROXY_RESULT_NONE;
-
- @Override
- public synchronized void onDownloadFinished(File downloadedFile) {
- if(mDestinationListener != null) {
- mDestinationListener.onDownloadFinished(downloadedFile);
- }else{
- mProxyResult = PROXY_RESULT_FINISHED;
- mProxyResultObject = downloadedFile;
- }
- }
-
- @Override
- public synchronized void onDataNotAvailable() {
- if(mDestinationListener != null) {
- mDestinationListener.onDataNotAvailable();
- }else{
- mProxyResult = PROXY_RESULT_NOT_AVAILABLE;
- mProxyResultObject = null;
- }
- }
-
- @Override
- public synchronized void onDownloadError(Exception e) {
- if(mDestinationListener != null) {
- mDestinationListener.onDownloadError(e);
- }else {
- mProxyResult = PROXY_RESULT_ERROR;
- mProxyResultObject = e;
- }
- }
-
- public synchronized void attachListener(ModloaderDownloadListener listener) {
- switch(mProxyResult) {
- case PROXY_RESULT_FINISHED:
- listener.onDownloadFinished((File) mProxyResultObject);
- break;
- case PROXY_RESULT_NOT_AVAILABLE:
- listener.onDataNotAvailable();
- break;
- case PROXY_RESULT_ERROR:
- listener.onDownloadError((Exception) mProxyResultObject);
- break;
- }
- mDestinationListener = listener;
- }
- public synchronized void detachListener() {
- mDestinationListener = null;
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/OFDownloadPageScraper.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/OFDownloadPageScraper.java
deleted file mode 100644
index 62d74b2eb..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/OFDownloadPageScraper.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package net.kdt.pojavlaunch.modloaders;
-
-import org.htmlcleaner.HtmlCleaner;
-import org.htmlcleaner.HtmlNode;
-import org.htmlcleaner.TagNode;
-import org.htmlcleaner.TagNodeVisitor;
-
-import java.io.IOException;
-import java.net.URL;
-
-public class OFDownloadPageScraper implements TagNodeVisitor {
- public static String run(String urlInput) throws IOException{
- return new OFDownloadPageScraper().runInner(urlInput);
- }
-
- private String mDownloadFullUrl;
-
- private String runInner(String url) throws IOException {
- HtmlCleaner htmlCleaner = new HtmlCleaner();
- htmlCleaner.clean(new URL(url)).traverse(this);
- return mDownloadFullUrl;
- }
-
- @Override
- public boolean visit(TagNode parentNode, HtmlNode htmlNode) {
- if(isDownloadUrl(parentNode, htmlNode)) {
- TagNode tagNode = (TagNode) htmlNode;
- String href = tagNode.getAttributeByName("href");
- if(!href.startsWith("https://")) href = "https://optifine.net/"+href;
- this.mDownloadFullUrl = href;
- return false;
- }
- return true;
- }
-
- public boolean isDownloadUrl(TagNode parentNode, HtmlNode htmlNode) {
- if(!(htmlNode instanceof TagNode)) return false;
- if(parentNode == null) return false;
- TagNode tagNode = (TagNode) htmlNode;
- if(!(parentNode.getName().equals("span")
- && "Download".equals(parentNode.getAttributeByName("id")))) return false;
- return tagNode.getName().equals("a") &&
- "onDownload()".equals(tagNode.getAttributeByName("onclick"));
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/OptiFineDownloadTask.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/OptiFineDownloadTask.java
deleted file mode 100644
index c5278340d..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/OptiFineDownloadTask.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package net.kdt.pojavlaunch.modloaders;
-
-import com.kdt.mcgui.ProgressLayout;
-
-import net.kdt.pojavlaunch.JMinecraftVersionList;
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.progresskeeper.ProgressKeeper;
-import net.kdt.pojavlaunch.tasks.AsyncMinecraftDownloader;
-import net.kdt.pojavlaunch.utils.DownloadUtils;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class OptiFineDownloadTask implements Runnable, Tools.DownloaderFeedback, AsyncMinecraftDownloader.DoneListener {
- private static final Pattern sMcVersionPattern = Pattern.compile("([0-9]+)\\.([0-9]+)\\.?([0-9]+)?");
- private final OptiFineUtils.OptiFineVersion mOptiFineVersion;
- private final File mDestinationFile;
- private final ModloaderDownloadListener mListener;
- private final Object mMinecraftDownloadLock = new Object();
- private Throwable mDownloaderThrowable;
-
- public OptiFineDownloadTask(OptiFineUtils.OptiFineVersion mOptiFineVersion, File mDestinationFile, ModloaderDownloadListener mListener) {
- this.mOptiFineVersion = mOptiFineVersion;
- this.mDestinationFile = mDestinationFile;
- this.mListener = mListener;
- }
-
- @Override
- public void run() {
- ProgressKeeper.submitProgress(ProgressLayout.INSTALL_MODPACK, 0, R.string.of_dl_progress, mOptiFineVersion.versionName);
- try {
- if(runCatching()) mListener.onDownloadFinished(mDestinationFile);
- }catch (IOException e) {
- mListener.onDownloadError(e);
- }
- ProgressKeeper.submitProgress(ProgressLayout.INSTALL_MODPACK, -1, -1);
- }
-
- public boolean runCatching() throws IOException {
- String downloadUrl = scrapeDownloadsPage();
- if(downloadUrl == null) return false;
- String minecraftVersion = determineMinecraftVersion();
- if(minecraftVersion == null) return false;
- if(!downloadMinecraft(minecraftVersion)) {
- if(mDownloaderThrowable instanceof Exception) {
- mListener.onDownloadError((Exception) mDownloaderThrowable);
- }else {
- Exception exception = new Exception(mDownloaderThrowable);
- mListener.onDownloadError(exception);
- }
- return false;
- }
- DownloadUtils.downloadFileMonitored(downloadUrl, mDestinationFile, new byte[8192], this);
- return true;
- }
-
- public String scrapeDownloadsPage() throws IOException{
- String scrapeResult = OFDownloadPageScraper.run(mOptiFineVersion.downloadUrl);
- if(scrapeResult == null) mListener.onDataNotAvailable();
- return scrapeResult;
- }
-
- public String determineMinecraftVersion() {
- Matcher matcher = sMcVersionPattern.matcher(mOptiFineVersion.minecraftVersion);
- if(matcher.find()) {
- StringBuilder mcVersionBuilder = new StringBuilder();
- mcVersionBuilder.append(matcher.group(1));
- mcVersionBuilder.append('.');
- mcVersionBuilder.append(matcher.group(2));
- String thirdGroup = matcher.group(3);
- if(thirdGroup != null && !thirdGroup.isEmpty() && !"0".equals(thirdGroup)) {
- mcVersionBuilder.append('.');
- mcVersionBuilder.append(thirdGroup);
- }
- return mcVersionBuilder.toString();
- }else{
- mListener.onDataNotAvailable();
- return null;
- }
- }
-
- public boolean downloadMinecraft(String minecraftVersion) {
- // the string is always normalized
- JMinecraftVersionList.Version minecraftJsonVersion = AsyncMinecraftDownloader.getListedVersion(minecraftVersion);
- if(minecraftJsonVersion == null) return false;
- try {
- synchronized (mMinecraftDownloadLock) {
- new AsyncMinecraftDownloader(null, minecraftJsonVersion, minecraftVersion, this);
- mMinecraftDownloadLock.wait();
- }
- }catch (InterruptedException e) {
- e.printStackTrace();
- }
- return mDownloaderThrowable == null;
- }
-
- @Override
- public void updateProgress(int curr, int max) {
- int progress100 = (int)(((float)curr / (float)max)*100f);
- ProgressKeeper.submitProgress(ProgressLayout.INSTALL_MODPACK, progress100, R.string.of_dl_progress, mOptiFineVersion.versionName);
- }
-
- @Override
- public void onDownloadDone() {
- synchronized (mMinecraftDownloadLock) {
- mDownloaderThrowable = null;
- mMinecraftDownloadLock.notifyAll();
- }
- }
-
- @Override
- public void onDownloadFailed(Throwable throwable) {
- synchronized (mMinecraftDownloadLock) {
- mDownloaderThrowable = throwable;
- mMinecraftDownloadLock.notifyAll();
- }
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/OptiFineScraper.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/OptiFineScraper.java
deleted file mode 100644
index 56a89bd02..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/OptiFineScraper.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package net.kdt.pojavlaunch.modloaders;
-
-import net.kdt.pojavlaunch.utils.DownloadUtils;
-
-import org.htmlcleaner.HtmlCleaner;
-import org.htmlcleaner.TagNode;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class OptiFineScraper implements DownloadUtils.ParseCallback {
- private final OptiFineUtils.OptiFineVersions mOptiFineVersions;
- private List mListInProgress;
- private String mMinecraftVersion;
-
- public OptiFineScraper() {
- mOptiFineVersions = new OptiFineUtils.OptiFineVersions();
- mOptiFineVersions.minecraftVersions = new ArrayList<>();
- mOptiFineVersions.optifineVersions = new ArrayList<>();
- }
-
- @Override
- public OptiFineUtils.OptiFineVersions process(String input) throws DownloadUtils.ParseException {
- HtmlCleaner htmlCleaner = new HtmlCleaner();
- TagNode tagNode = htmlCleaner.clean(input);
- traverseTagNode(tagNode);
- insertVersionContent(null);
- if(mOptiFineVersions.optifineVersions.size() < 1 ||
- mOptiFineVersions.minecraftVersions.size() < 1) throw new DownloadUtils.ParseException(null);
- return mOptiFineVersions;
- }
-
- public void traverseTagNode(TagNode tagNode) {
- if(isDownloadLine(tagNode) && mMinecraftVersion != null) {
- traverseDownloadLine(tagNode);
- } else if(isMinecraftVersionTag(tagNode)) {
- insertVersionContent(tagNode);
- } else {
- for(TagNode tagNodes : tagNode.getChildTags()) {
- traverseTagNode(tagNodes);
- }
- }
- }
-
- private boolean isDownloadLine(TagNode tagNode) {
- return tagNode.getName().equals("tr") &&
- tagNode.hasAttribute("class") &&
- tagNode.getAttributeByName("class").startsWith("downloadLine");
- }
-
- private boolean isMinecraftVersionTag(TagNode tagNode) {
- return tagNode.getName().equals("h2") &&
- tagNode.getText().toString().startsWith("Minecraft ");
- }
-
- private void traverseDownloadLine(TagNode tagNode) {
- OptiFineUtils.OptiFineVersion optiFineVersion = new OptiFineUtils.OptiFineVersion();
- optiFineVersion.minecraftVersion = mMinecraftVersion;
- for(TagNode subNode : tagNode.getChildTags()) {
- if(!subNode.getName().equals("td")) continue;
- switch(subNode.getAttributeByName("class")) {
- case "colFile":
- optiFineVersion.versionName = subNode.getText().toString();
- break;
- case "colMirror":
- optiFineVersion.downloadUrl = getLinkHref(subNode);
- }
- }
- mListInProgress.add(optiFineVersion);
- }
- private String getLinkHref(TagNode parent) {
- for(TagNode subNode : parent.getChildTags()) {
- if(subNode.getName().equals("a") && subNode.hasAttribute("href")) {
- return subNode.getAttributeByName("href").replace("http://", "https://");
- }
- }
- return null;
- }
-
- private void insertVersionContent(TagNode tagNode) {
- if(mListInProgress != null && mMinecraftVersion != null) {
- mOptiFineVersions.minecraftVersions.add(mMinecraftVersion);
- mOptiFineVersions.optifineVersions.add(mListInProgress);
- }
- if(tagNode != null) {
- mMinecraftVersion = tagNode.getText().toString();
- mListInProgress = new ArrayList<>();
- }
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/OptiFineUtils.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/OptiFineUtils.java
deleted file mode 100644
index 32cf9938b..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/OptiFineUtils.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package net.kdt.pojavlaunch.modloaders;
-
-import android.content.Intent;
-
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.utils.DownloadUtils;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-
-public class OptiFineUtils {
-
- public static OptiFineVersions downloadOptiFineVersions() throws IOException {
- try {
- return DownloadUtils.downloadStringCached("https://optifine.net/downloads",
- "of_downloads_page", new OptiFineScraper());
- }catch (DownloadUtils.ParseException e) {
- e.printStackTrace();
- return null;
- }
- }
-
- public static void addAutoInstallArgs(Intent intent, File modInstallerJar) {
- intent.putExtra("javaArgs", "-javaagent:"+ Tools.DIR_DATA+"/forge_installer/forge_installer.jar"
- + "=OFNPS" +// No Profile Suppression
- " -jar "+modInstallerJar.getAbsolutePath());
- intent.putExtra("skipDetectMod", true);
- }
-
- public static class OptiFineVersions {
- public List minecraftVersions;
- public List> optifineVersions;
- }
- public static class OptiFineVersion {
- public String minecraftVersion;
- public String versionName;
- public String downloadUrl;
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/OptiFineVersionListAdapter.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/OptiFineVersionListAdapter.java
deleted file mode 100644
index a63111398..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/OptiFineVersionListAdapter.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package net.kdt.pojavlaunch.modloaders;
-
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseExpandableListAdapter;
-import android.widget.ExpandableListAdapter;
-import android.widget.TextView;
-
-public class OptiFineVersionListAdapter extends BaseExpandableListAdapter implements ExpandableListAdapter {
-
- private final OptiFineUtils.OptiFineVersions mOptiFineVersions;
- private final LayoutInflater mLayoutInflater;
-
- public OptiFineVersionListAdapter(OptiFineUtils.OptiFineVersions optiFineVersions, LayoutInflater mLayoutInflater) {
- mOptiFineVersions = optiFineVersions;
- this.mLayoutInflater = mLayoutInflater;
- }
-
- @Override
- public int getGroupCount() {
- return mOptiFineVersions.minecraftVersions.size();
- }
-
- @Override
- public int getChildrenCount(int i) {
- return mOptiFineVersions.optifineVersions.get(i).size();
- }
-
- @Override
- public Object getGroup(int i) {
- return mOptiFineVersions.minecraftVersions.get(i);
- }
-
- @Override
- public Object getChild(int i, int i1) {
- return mOptiFineVersions.optifineVersions.get(i).get(i1);
- }
-
- @Override
- public long getGroupId(int i) {
- return i;
- }
-
- @Override
- public long getChildId(int i, int i1) {
- return i1;
- }
-
- @Override
- public boolean hasStableIds() {
- return true;
- }
-
- @Override
- public View getGroupView(int i, boolean b, View convertView, ViewGroup viewGroup) {
- if(convertView == null)
- convertView = mLayoutInflater.inflate(android.R.layout.simple_expandable_list_item_1, viewGroup, false);
-
- ((TextView) convertView).setText((String)getGroup(i));
-
- return convertView;
- }
-
- @Override
- public View getChildView(int i, int i1, boolean b, View convertView, ViewGroup viewGroup) {
- if(convertView == null)
- convertView = mLayoutInflater.inflate(android.R.layout.simple_expandable_list_item_1, viewGroup, false);
- ((TextView) convertView).setText(((OptiFineUtils.OptiFineVersion)getChild(i,i1)).versionName);
- return convertView;
- }
-
- @Override
- public boolean isChildSelectable(int i, int i1) {
- return true;
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/plugins/FFmpegPlugin.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/plugins/FFmpegPlugin.java
deleted file mode 100644
index bd1b30812..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/plugins/FFmpegPlugin.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package net.kdt.pojavlaunch.plugins;
-
-import android.content.Context;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.util.Log;
-
-public class FFmpegPlugin {
- public static boolean isAvailable = false;
- public static String libraryPath;
- public static void discover(Context context) {
- PackageManager manager = context.getPackageManager();
- try {
- PackageInfo ffmpegPluginInfo = manager.getPackageInfo("net.kdt.pojavlaunch.ffmpeg", PackageManager.GET_SHARED_LIBRARY_FILES);
- libraryPath = ffmpegPluginInfo.applicationInfo.nativeLibraryDir;
- isAvailable = true;
- }catch (Exception e) {
- Log.i("FFmpegPlugin", "Failed to discover plugin", e);
- }
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/BackButtonPreference.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/BackButtonPreference.java
index 22a4be7f1..7a6678586 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/BackButtonPreference.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/BackButtonPreference.java
@@ -1,13 +1,10 @@
package net.kdt.pojavlaunch.prefs;
-import android.app.Activity;
import android.content.Context;
import android.util.AttributeSet;
-import android.util.Log;
import androidx.preference.Preference;
-import net.kdt.pojavlaunch.LauncherActivity;
import net.kdt.pojavlaunch.R;
import net.kdt.pojavlaunch.extra.ExtraConstants;
import net.kdt.pojavlaunch.extra.ExtraCore;
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/ProfileAdapter.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/ProfileAdapter.java
deleted file mode 100644
index a3a9266da..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/ProfileAdapter.java
+++ /dev/null
@@ -1,137 +0,0 @@
-package net.kdt.pojavlaunch.profiles;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.graphics.drawable.Drawable;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-
-import androidx.core.graphics.ColorUtils;
-
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.prefs.LauncherPreferences;
-import net.kdt.pojavlaunch.value.launcherprofiles.LauncherProfiles;
-import net.kdt.pojavlaunch.value.launcherprofiles.MinecraftProfile;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import fr.spse.extended_view.ExtendedTextView;
-
-/*
- * Adapter for listing launcher profiles in a Spinner
- */
-public class ProfileAdapter extends BaseAdapter {
- private Map mProfiles;
- private final MinecraftProfile dummy = new MinecraftProfile();
- private List mProfileList;
- private final ProfileAdapterExtra[] mExtraEntires;
-
- public ProfileAdapter(Context context, ProfileAdapterExtra[] extraEntries) {
- ProfileIconCache.initDefault(context);
- LauncherProfiles.update();
- mProfiles = new HashMap<>(LauncherProfiles.mainProfileJson.profiles);
- if(extraEntries == null) mExtraEntires = new ProfileAdapterExtra[0];
- else mExtraEntires = extraEntries;
- mProfileList = new ArrayList<>(Arrays.asList(mProfiles.keySet().toArray(new String[0])));
- }
- /*
- * Gets how much profiles are loaded in the adapter right now
- * @returns loaded profile count
- */
- @Override
- public int getCount() {
- return mProfileList.size() + mExtraEntires.length;
- }
- /*
- * Gets the profile at a given index
- * @param position index to retreive
- * @returns MinecraftProfile name or null
- */
- @Override
- public Object getItem(int position) {
- int profileListSize = mProfileList.size();
- int extraPosition = position - profileListSize;
- if(position < profileListSize){
- String profileName = mProfileList.get(position);
- if(mProfiles.containsKey(profileName)) return profileName;
- }else if(extraPosition >= 0 && extraPosition < mExtraEntires.length) {
- return mExtraEntires[extraPosition];
- }
- return null;
- }
-
- public int resolveProfileIndex(String name) {
- return mProfileList.indexOf(name);
- }
-
- @Override
- public long getItemId(int position) {
- return position;
- }
-
- @Override
- public void notifyDataSetChanged() {
- mProfiles = new HashMap<>(LauncherProfiles.mainProfileJson.profiles);
- mProfileList = new ArrayList<>(Arrays.asList(mProfiles.keySet().toArray(new String[0])));
- super.notifyDataSetChanged();
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- View v = convertView;
- if (v == null) v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_version_profile_layout,parent,false);
- Object profileObject = getItem(position);
- if(profileObject instanceof String) setViewProfile(v, (String) profileObject, true);
- else if(profileObject instanceof ProfileAdapterExtra) setViewExtra(v, (ProfileAdapterExtra) profileObject);
- return v;
- }
-
- public void setViewProfile(View v, String nm, boolean displaySelection) {
- ExtendedTextView extendedTextView = (ExtendedTextView) v;
-
- MinecraftProfile minecraftProfile = mProfiles.get(nm);
- if(minecraftProfile == null) minecraftProfile = dummy;
- Drawable cachedIcon = ProfileIconCache.getCachedIcon(nm);
-
- if(cachedIcon == null) {
- cachedIcon = ProfileIconCache.tryResolveIcon(v.getResources(), nm, minecraftProfile.icon);
- }
- extendedTextView.setCompoundDrawablesRelative(cachedIcon, null, extendedTextView.getCompoundsDrawables()[2], null);
-
- if(Tools.isValidString(minecraftProfile.name))
- extendedTextView.setText(minecraftProfile.name);
- else
- extendedTextView.setText(R.string.unnamed);
-
- if(minecraftProfile.lastVersionId != null){
- if(minecraftProfile.lastVersionId.equalsIgnoreCase("latest-release")){
- extendedTextView.setText( String.format("%s - %s", extendedTextView.getText(), v.getContext().getText(R.string.profiles_latest_release)));
- } else if(minecraftProfile.lastVersionId.equalsIgnoreCase("latest-snapshot")){
- extendedTextView.setText( String.format("%s - %s", extendedTextView.getText(), v.getContext().getText(R.string.profiles_latest_snapshot)));
- } else {
- extendedTextView.setText( String.format("%s - %s", extendedTextView.getText(), minecraftProfile.lastVersionId));
- }
-
- } else extendedTextView.setText(extendedTextView.getText());
-
- // Set selected background if needed
- if(displaySelection){
- String selectedProfile = LauncherPreferences.DEFAULT_PREF.getString(LauncherPreferences.PREF_KEY_CURRENT_PROFILE,"");
- extendedTextView.setBackgroundColor(selectedProfile.equals(nm) ? ColorUtils.setAlphaComponent(Color.WHITE,60) : Color.TRANSPARENT);
- }else extendedTextView.setBackgroundColor(Color.TRANSPARENT);
- }
-
- public void setViewExtra(View v, ProfileAdapterExtra extra) {
- ExtendedTextView extendedTextView = (ExtendedTextView) v;
- extendedTextView.setCompoundDrawablesRelative(extra.icon, null, extendedTextView.getCompoundsDrawables()[2], null);
- extendedTextView.setText(extra.name);
- extendedTextView.setBackgroundColor(Color.TRANSPARENT);
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/ProfileAdapterExtra.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/ProfileAdapterExtra.java
deleted file mode 100644
index b09d39b5c..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/ProfileAdapterExtra.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package net.kdt.pojavlaunch.profiles;
-
-import android.graphics.drawable.Drawable;
-
-public class ProfileAdapterExtra {
- public final int id;
- public final int name;
- public final Drawable icon;
-
- public ProfileAdapterExtra(int id, int name, Drawable icon) {
- this.id = id;
- this.name = name;
- this.icon = icon;
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/ProfileIconCache.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/ProfileIconCache.java
deleted file mode 100644
index ccbd05470..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/ProfileIconCache.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package net.kdt.pojavlaunch.profiles;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.BitmapFactory;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
-import android.util.Base64;
-import android.util.Log;
-
-import androidx.core.content.res.ResourcesCompat;
-
-import net.kdt.pojavlaunch.R;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class ProfileIconCache {
- private static final String BASE64_PNG_HEADER = "data:image/png;base64,";
- private static final Map sIconCache = new HashMap<>();
- private static Drawable sDefaultIcon;
-
-
- public static void initDefault(Context context) {
- if(sDefaultIcon != null) return;
- sDefaultIcon = ResourcesCompat.getDrawable(context.getResources(), R.mipmap.ic_launcher_foreground, null);
- if(sDefaultIcon != null) sDefaultIcon.setBounds(0, 0, 10, 10);
- }
-
- public static Drawable getCachedIcon(String key) {
- return sIconCache.get(key);
- }
-
- public static Drawable submitIcon(Resources resources, String key, String base64) {
- byte[] pngBytes = Base64.decode(base64, Base64.DEFAULT);
- Drawable drawable = new BitmapDrawable(resources, BitmapFactory.decodeByteArray(pngBytes, 0, pngBytes.length));
- sIconCache.put(key, drawable);
- return drawable;
- }
-
- public static Drawable tryResolveIcon(Resources resources, String profileName, String b64Icon) {
- Drawable icon;
- if (b64Icon != null && b64Icon.startsWith(BASE64_PNG_HEADER)) {
- icon = ProfileIconCache.submitIcon(resources, profileName, b64Icon.substring(BASE64_PNG_HEADER.length()));
- }else{
- Log.i("IconParser","Unsupported icon: "+b64Icon);
- icon = ProfileIconCache.pushDefaultIcon(profileName);
- }
- return icon;
- }
-
- public static Drawable pushDefaultIcon(String key) {
- sIconCache.put(key, sDefaultIcon);
-
- return sDefaultIcon;
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/VersionListAdapter.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/VersionListAdapter.java
deleted file mode 100644
index 6b54d0474..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/VersionListAdapter.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package net.kdt.pojavlaunch.profiles;
-
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseExpandableListAdapter;
-import android.widget.ExpandableListAdapter;
-import android.widget.TextView;
-
-import net.kdt.pojavlaunch.JMinecraftVersionList;
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.utils.FilteredSubList;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.List;
-
-public class VersionListAdapter extends BaseExpandableListAdapter implements ExpandableListAdapter {
-
- private final LayoutInflater mLayoutInflater;
-
- private final String[] mGroups;
- private final String[] mInstalledVersions;
- private final List>[] mData;
- private final boolean mHideCustomVersions;
- private final int mSnapshotListPosition;
-
- public VersionListAdapter(JMinecraftVersionList.Version[] versionList, boolean hideCustomVersions, Context ctx){
- mHideCustomVersions = hideCustomVersions;
- mLayoutInflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-
- List releaseList = new FilteredSubList<>(versionList, item -> item.type.equals("release"));
- List snapshotList = new FilteredSubList<>(versionList, item -> item.type.equals("snapshot"));
- List betaList = new FilteredSubList<>(versionList, item -> item.type.equals("old_beta"));
- List alphaList = new FilteredSubList<>(versionList, item -> item.type.equals("old_alpha"));
-
- // Query installed versions
- mInstalledVersions = new File(Tools.DIR_GAME_NEW + "/versions").list();
- if(!areInstalledVersionsAvailable()){
- mGroups = new String[]{
- ctx.getString(R.string.mcl_setting_veroption_release),
- ctx.getString(R.string.mcl_setting_veroption_snapshot),
- ctx.getString(R.string.mcl_setting_veroption_oldbeta),
- ctx.getString(R.string.mcl_setting_veroption_oldalpha)
- };
- mData = new List[]{ releaseList, snapshotList, betaList, alphaList};
- mSnapshotListPosition = 1;
- }else{
- mGroups = new String[]{
- ctx.getString(R.string.mcl_setting_veroption_installed),
- ctx.getString(R.string.mcl_setting_veroption_release),
- ctx.getString(R.string.mcl_setting_veroption_snapshot),
- ctx.getString(R.string.mcl_setting_veroption_oldbeta),
- ctx.getString(R.string.mcl_setting_veroption_oldalpha)
- };
- mData = new List[]{Arrays.asList(mInstalledVersions), releaseList, snapshotList, betaList, alphaList};
- mSnapshotListPosition = 2;
- }
- }
-
- @Override
- public int getGroupCount() {
- return mGroups.length;
- }
-
- @Override
- public int getChildrenCount(int groupPosition) {
- return mData[groupPosition].size();
- }
-
- @Override
- public Object getGroup(int groupPosition) {
- return mData[groupPosition];
- }
-
- @Override
- public String getChild(int groupPosition, int childPosition) {
- if(isInstalledVersionSelected(groupPosition)){
- return mInstalledVersions[childPosition];
- }
- return ((JMinecraftVersionList.Version)mData[groupPosition].get(childPosition)).id;
- }
-
- @Override
- public long getGroupId(int groupPosition) {
- return groupPosition;
- }
-
- @Override
- public long getChildId(int groupPosition, int childPosition) {
- return childPosition;
- }
-
- @Override
- public boolean hasStableIds() {
- return true;
- }
-
- @Override
- public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
- if(convertView == null)
- convertView = mLayoutInflater.inflate(android.R.layout.simple_expandable_list_item_1, parent, false);
-
- ((TextView) convertView).setText(mGroups[groupPosition]);
-
- return convertView;
- }
-
- @Override
- public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
- if(convertView == null)
- convertView = mLayoutInflater.inflate(android.R.layout.simple_expandable_list_item_1, parent, false);
- ((TextView) convertView).setText(getChild(groupPosition, childPosition));
- return convertView;
- }
-
- @Override
- public boolean isChildSelectable(int groupPosition, int childPosition) {
- return true;
- }
-
- public boolean isSnapshotSelected(int groupPosition) {
- return groupPosition == mSnapshotListPosition;
- }
-
- private boolean areInstalledVersionsAvailable(){
- if(mHideCustomVersions) return false;
- return !(mInstalledVersions == null || mInstalledVersions.length == 0);
- }
-
- private boolean isInstalledVersionSelected(int groupPosition){
- return groupPosition == 0 && areInstalledVersionsAvailable();
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/VersionSelectorDialog.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/VersionSelectorDialog.java
deleted file mode 100644
index c88714c7f..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/VersionSelectorDialog.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package net.kdt.pojavlaunch.profiles;
-
-import static net.kdt.pojavlaunch.extra.ExtraCore.getValue;
-
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.widget.ExpandableListView;
-
-import androidx.appcompat.app.AlertDialog;
-
-import net.kdt.pojavlaunch.JMinecraftVersionList;
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.extra.ExtraConstants;
-
-public class VersionSelectorDialog {
- public static void open(Context context, boolean hideCustomVersions, VersionSelectorListener listener) {
- AlertDialog.Builder builder = new AlertDialog.Builder(context);
- ExpandableListView expandableListView = (ExpandableListView) LayoutInflater.from(context)
- .inflate(R.layout.dialog_expendable_list_view , null);
- JMinecraftVersionList jMinecraftVersionList = (JMinecraftVersionList) getValue(ExtraConstants.RELEASE_TABLE);
- JMinecraftVersionList.Version[] versionArray;
- if(jMinecraftVersionList == null || jMinecraftVersionList.versions == null) versionArray = new JMinecraftVersionList.Version[0];
- else versionArray = jMinecraftVersionList.versions;
- VersionListAdapter adapter = new VersionListAdapter(versionArray, hideCustomVersions, context);
-
- expandableListView.setAdapter(adapter);
- builder.setView(expandableListView);
- AlertDialog dialog = builder.show();
-
- expandableListView.setOnChildClickListener((parent, v1, groupPosition, childPosition, id) -> {
- String version = adapter.getChild(groupPosition, childPosition);
- listener.onVersionSelected(version, adapter.isSnapshotSelected(groupPosition));
- dialog.dismiss();
- return true;
- });
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/VersionSelectorListener.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/VersionSelectorListener.java
deleted file mode 100644
index 0d48a9207..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/VersionSelectorListener.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package net.kdt.pojavlaunch.profiles;
-
-public interface VersionSelectorListener {
- void onVersionSelected(String versionId, boolean isSnapshot);
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/scoped/FolderProvider.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/scoped/FolderProvider.java
deleted file mode 100644
index 2ce9dc901..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/scoped/FolderProvider.java
+++ /dev/null
@@ -1,335 +0,0 @@
-package net.kdt.pojavlaunch.scoped;
-
-import android.annotation.TargetApi;
-import android.content.res.AssetFileDescriptor;
-import android.database.Cursor;
-import android.database.MatrixCursor;
-import android.graphics.Point;
-import android.os.CancellationSignal;
-import android.os.ParcelFileDescriptor;
-import android.provider.DocumentsContract;
-import android.provider.DocumentsContract.Document;
-import android.provider.DocumentsContract.Root;
-import android.provider.DocumentsProvider;
-import android.util.Log;
-import android.webkit.MimeTypeMap;
-
-import androidx.annotation.Nullable;
-
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-
-import org.apache.commons.io.FileUtils;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * A document provider for the Storage Access Framework which exposes the files in the
- * $HOME/ directory to other apps.
- *
- * Note that this replaces providing an activity matching the ACTION_GET_CONTENT intent:
- *
- * "A document provider and ACTION_GET_CONTENT should be considered mutually exclusive. If you
- * support both of them simultaneously, your app will appear twice in the system picker UI,
- * offering two different ways of accessing your stored data. This would be confusing for users."
- * - ...
- */
-public class FolderProvider extends DocumentsProvider {
-
- private static final String ALL_MIME_TYPES = "*/*";
-
- private static final File BASE_DIR = new File(Tools.DIR_GAME_HOME);
-
-
- // The default columns to return information about a root if no specific
- // columns are requested in a query.
- private static final String[] DEFAULT_ROOT_PROJECTION = new String[]{
- Root.COLUMN_ROOT_ID,
- Root.COLUMN_MIME_TYPES,
- Root.COLUMN_FLAGS,
- Root.COLUMN_ICON,
- Root.COLUMN_TITLE,
- Root.COLUMN_SUMMARY,
- Root.COLUMN_DOCUMENT_ID,
- Root.COLUMN_AVAILABLE_BYTES
- };
-
- // The default columns to return information about a document if no specific
- // columns are requested in a query.
- private static final String[] DEFAULT_DOCUMENT_PROJECTION = new String[]{
- Document.COLUMN_DOCUMENT_ID,
- Document.COLUMN_MIME_TYPE,
- Document.COLUMN_DISPLAY_NAME,
- Document.COLUMN_LAST_MODIFIED,
- Document.COLUMN_FLAGS,
- Document.COLUMN_SIZE
- };
-
- @Override
- public Cursor queryRoots(String[] projection) {
- final MatrixCursor result = new MatrixCursor(projection != null ? projection : DEFAULT_ROOT_PROJECTION);
- final String applicationName = getContext().getString(R.string.app_short_name);
-
- final MatrixCursor.RowBuilder row = result.newRow();
- row.add(Root.COLUMN_ROOT_ID, getDocIdForFile(BASE_DIR));
- row.add(Root.COLUMN_DOCUMENT_ID, getDocIdForFile(BASE_DIR));
- row.add(Root.COLUMN_SUMMARY, null);
- row.add(Root.COLUMN_FLAGS, Root.FLAG_SUPPORTS_CREATE | Root.FLAG_SUPPORTS_SEARCH | Root.FLAG_SUPPORTS_IS_CHILD);
- row.add(Root.COLUMN_TITLE, applicationName);
- row.add(Root.COLUMN_MIME_TYPES, ALL_MIME_TYPES);
- row.add(Root.COLUMN_AVAILABLE_BYTES, BASE_DIR.getFreeSpace());
- row.add(Root.COLUMN_ICON, R.mipmap.ic_launcher);
- return result;
- }
-
- @Override
- public Cursor queryDocument(String documentId, String[] projection) throws FileNotFoundException {
- final MatrixCursor result = new MatrixCursor(projection != null ? projection : DEFAULT_DOCUMENT_PROJECTION);
- includeFile(result, documentId, null);
- return result;
- }
-
- @Override
- public Cursor queryChildDocuments(String parentDocumentId, String[] projection, String sortOrder) throws FileNotFoundException {
- final MatrixCursor result = new MatrixCursor(projection != null ? projection : DEFAULT_DOCUMENT_PROJECTION);
- final File parent = getFileForDocId(parentDocumentId);
- final File[] children = parent.listFiles();
- if(children == null) throw new FileNotFoundException("Unable to list files in "+parent.getAbsolutePath());
- for (File file : children) {
- includeFile(result, null, file);
- }
- return result;
- }
-
- @Override
- public ParcelFileDescriptor openDocument(final String documentId, String mode, CancellationSignal signal) throws FileNotFoundException {
- final File file = getFileForDocId(documentId);
- final int accessMode = ParcelFileDescriptor.parseMode(mode);
- return ParcelFileDescriptor.open(file, accessMode);
- }
-
- @Override
- public AssetFileDescriptor openDocumentThumbnail(String documentId, Point sizeHint, CancellationSignal signal) throws FileNotFoundException {
- final File file = getFileForDocId(documentId);
- final ParcelFileDescriptor pfd = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
- return new AssetFileDescriptor(pfd, 0, file.length());
- }
-
- @Override
- public boolean onCreate() {
- return true;
- }
-
- @Override
- public String createDocument(String parentDocumentId, String mimeType, String displayName) throws FileNotFoundException {
- File newFile = new File(parentDocumentId, displayName);
- int noConflictId = 2;
- while (newFile.exists()) {
- newFile = new File(parentDocumentId, displayName + " (" + noConflictId++ + ")");
- }
- try {
- boolean succeeded;
- if (Document.MIME_TYPE_DIR.equals(mimeType)) {
- succeeded = newFile.mkdir();
- } else {
- succeeded = newFile.createNewFile();
- }
- if (!succeeded) {
- throw new FileNotFoundException("Failed to create document with id " + newFile.getPath());
- }
- } catch (IOException e) {
- throw new FileNotFoundException("Failed to create document with id " + newFile.getPath());
- }
- return newFile.getPath();
- }
-
- @Override
- public String renameDocument(String documentId, String displayName) throws FileNotFoundException {
- File sourceFile = getFileForDocId(documentId);
- File sourceParent = sourceFile.getParentFile();
- if(sourceParent == null) throw new FileNotFoundException("Cannot rename root");
- File targetFile = new File(getDocIdForFile(sourceParent) + "/" + displayName);
- if(!sourceFile.renameTo(targetFile)){
- throw new FileNotFoundException("Couldn't rename the document with id" + documentId);
- }
- return getDocIdForFile(targetFile);
- }
-
- @Override
- public String moveDocument(String sourceDocumentId, String sourceParentDocumentId, String targetParentDocumentId) throws FileNotFoundException {
- File sourceFile = getFileForDocId(sourceParentDocumentId + sourceDocumentId);
- File targetFile = new File(targetParentDocumentId + sourceDocumentId);
- if(!sourceFile.renameTo(targetFile)){
- throw new FileNotFoundException("Failed to move the document with id " + sourceFile.getPath());
- }
- return getDocIdForFile(targetFile);
- }
-
- @Override
- public void removeDocument(String documentId, String parentDocumentId) throws FileNotFoundException {
- deleteDocument(parentDocumentId + "/" + documentId);
- }
-
- @Override
- public void deleteDocument(String documentId) throws FileNotFoundException {
- File file = getFileForDocId(documentId);
- if(file.isDirectory()){
- try {
- FileUtils.deleteDirectory(file);
- } catch (IOException e) {
- throw new FileNotFoundException("Failed to delete document with id " + documentId);
- }
- }else{
- if (!file.delete()) {
- throw new FileNotFoundException("Failed to delete document with id " + documentId);
- }
- }
- }
-
- @Override
- public String getDocumentType(String documentId) throws FileNotFoundException {
- Log.i("FolderPRovider", "getDocumentType("+documentId+")");
- File file = getFileForDocId(documentId);
- return getMimeType(file);
- }
-
- @Override
- public Cursor querySearchDocuments(String rootId, String query, String[] projection) throws FileNotFoundException {
- final MatrixCursor result = new MatrixCursor(projection != null ? projection : DEFAULT_DOCUMENT_PROJECTION);
- final File parent = getFileForDocId(rootId);
-
- // This example implementation searches file names for the query and doesn't rank search
- // results, so we can stop as soon as we find a sufficient number of matches. Other
- // implementations might rank results and use other data about files, rather than the file
- // name, to produce a match.
- final LinkedList pending = new LinkedList<>();
- pending.add(parent);
-
- final int MAX_SEARCH_RESULTS = 50;
- while (!pending.isEmpty() && result.getCount() < MAX_SEARCH_RESULTS) {
- final File file = pending.removeFirst();
- // Avoid directories outside the $HOME directory linked with symlinks (to avoid e.g. search
- // through the whole SD card).
- boolean isInsideHome;
- try {
- isInsideHome = file.getCanonicalPath().startsWith(Tools.DIR_GAME_HOME);
- } catch (IOException e) {
- isInsideHome = true;
- }
- if (isInsideHome) {
- if (file.isDirectory()) {
- File[] listing = file.listFiles();
- if(listing != null) Collections.addAll(pending, listing);
- } else {
- if (file.getName().toLowerCase().contains(query)) {
- includeFile(result, null, file);
- }
- }
- }
- }
-
- return result;
- }
-
- @Override
- public boolean isChildDocument(String parentDocumentId, String documentId) {
- return documentId.startsWith(parentDocumentId);
- }
-
- /**
- * Get the document id given a file. This document id must be consistent across time as other
- * applications may save the ID and use it to reference documents later.
- *
- * The reverse of @{link #getFileForDocId}.
- */
- private static String getDocIdForFile(File file) {
- return file.getAbsolutePath();
- }
-
- /**
- * Get the file given a document id (the reverse of {@link #getDocIdForFile(File)}).
- */
- private static File getFileForDocId(String docId) throws FileNotFoundException {
- final File f = new File(docId);
- if (!f.exists()) throw new FileNotFoundException(f.getAbsolutePath() + " not found");
- return f;
- }
-
- private static String getMimeType(File file) {
- if (file.isDirectory()) {
- return Document.MIME_TYPE_DIR;
- } else {
- final String name = file.getName();
- final int lastDot = name.lastIndexOf('.');
- if (lastDot >= 0) {
- final String extension = name.substring(lastDot + 1).toLowerCase();
- final String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
- if (mime != null) return mime;
- }
- return "application/octet-stream";
- }
- }
-
- /**
- * Add a representation of a file to a cursor.
- *
- * @param result the cursor to modify
- * @param docId the document ID representing the desired file (may be null if given file)
- * @param file the File object representing the desired file (may be null if given docID)
- */
- private void includeFile(MatrixCursor result, String docId, File file)
- throws FileNotFoundException {
- if (docId == null) {
- docId = getDocIdForFile(file);
- } else {
- file = getFileForDocId(docId);
- }
-
- int flags = 0;
- if (file.isDirectory()) {
- if (file.canWrite()) flags |= Document.FLAG_DIR_SUPPORTS_CREATE;
- } else if (file.canWrite()) {
- flags |= Document.FLAG_SUPPORTS_WRITE;
- }
- File parent = file.getParentFile();
- if(parent != null) { // Only fails in one case: when the parent is /, which you can't delete.
- if(parent.canWrite()) flags |= Document.FLAG_SUPPORTS_DELETE;
- }
-
- final String displayName = file.getName();
- final String mimeType = getMimeType(file);
- if (mimeType.startsWith("image/")) flags |= Document.FLAG_SUPPORTS_THUMBNAIL;
-
- final MatrixCursor.RowBuilder row = result.newRow();
- row.add(Document.COLUMN_DOCUMENT_ID, docId);
- row.add(Document.COLUMN_DISPLAY_NAME, displayName);
- row.add(Document.COLUMN_SIZE, file.length());
- row.add(Document.COLUMN_MIME_TYPE, mimeType);
- row.add(Document.COLUMN_LAST_MODIFIED, file.lastModified());
- row.add(Document.COLUMN_FLAGS, flags);
- row.add(Document.COLUMN_ICON, R.mipmap.ic_launcher);
- }
-
- @Override
- @TargetApi(26)
- public DocumentsContract.Path findDocumentPath(@Nullable String parentDocumentId, String childDocumentId) throws FileNotFoundException {
- File source = BASE_DIR;
- if(parentDocumentId != null) source = getFileForDocId(parentDocumentId);
- File destination = getFileForDocId(childDocumentId);
- List pathIds = new ArrayList<>();
- while(!source.equals(destination) && destination != null) {
- pathIds.add(getDocIdForFile(destination));
- destination = destination.getParentFile();
- }
- pathIds.add(getDocIdForFile(source));
- Collections.reverse(pathIds);
- Log.i("FolderProvider", pathIds.toString());
- return new DocumentsContract.Path(getDocIdForFile(source), pathIds);
- }
-}
\ No newline at end of file
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/services/GameService.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/services/GameService.java
deleted file mode 100644
index 00babeca1..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/services/GameService.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package net.kdt.pojavlaunch.services;
-
-import android.app.PendingIntent;
-import android.app.Service;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Build;
-import android.os.IBinder;
-import android.os.Process;
-
-import androidx.annotation.Nullable;
-import androidx.core.app.NotificationCompat;
-import androidx.core.content.ContextCompat;
-
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-
-import java.lang.ref.WeakReference;
-
-public class GameService extends Service {
- private static final WeakReference sGameService = new WeakReference<>(null);
- public static void startService(Context context) {
- Intent intent = new Intent(context, GameService.class);
- ContextCompat.startForegroundService(context, intent);
- }
-
- @Override
- public void onCreate() {
- Tools.buildNotificationChannel(getApplicationContext());
- }
-
- @Override
- public int onStartCommand(Intent intent, int flags, int startId) {
- if(intent != null && intent.getBooleanExtra("kill", false)) {
- stopSelf();
- Process.killProcess(Process.myPid());
- return START_NOT_STICKY;
- }
- Intent killIntent = new Intent(getApplicationContext(), GameService.class);
- killIntent.putExtra("kill", true);
- PendingIntent pendingKillIntent = PendingIntent.getService(this, 0, killIntent, Build.VERSION.SDK_INT >=23 ? PendingIntent.FLAG_IMMUTABLE : 0);
- NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "channel_id")
- .setContentTitle(getString(R.string.lazy_service_default_title))
- .setContentText(getString(R.string.notification_game_runs))
- .addAction(android.R.drawable.ic_menu_close_clear_cancel, getString(R.string.notification_terminate), pendingKillIntent)
- .setSmallIcon(R.drawable.notif_icon)
- .setNotificationSilent();
- startForeground(2, notificationBuilder.build());
- return START_NOT_STICKY; // non-sticky so android wont try restarting the game after the user uses the "Quit" button
- }
-
- @Override
- public void onTaskRemoved(Intent rootIntent) {
- //At this point in time only the game runs and the user poofed the window, time to die
- stopSelf();
- Process.killProcess(Process.myPid());
- }
-
- @Nullable
- @Override
- public IBinder onBind(Intent intent) {
- return null;
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/tasks/AsyncMinecraftDownloader.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/tasks/AsyncMinecraftDownloader.java
deleted file mode 100644
index 74112fefd..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/tasks/AsyncMinecraftDownloader.java
+++ /dev/null
@@ -1,435 +0,0 @@
-package net.kdt.pojavlaunch.tasks;
-
-import static net.kdt.pojavlaunch.PojavApplication.sExecutorService;
-import static net.kdt.pojavlaunch.utils.DownloadUtils.downloadFileMonitored;
-
-import android.app.Activity;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-
-import com.kdt.mcgui.ProgressLayout;
-
-import net.kdt.pojavlaunch.JAssetInfo;
-import net.kdt.pojavlaunch.JAssets;
-import net.kdt.pojavlaunch.JMinecraftVersionList;
-import net.kdt.pojavlaunch.JRE17Util;
-import net.kdt.pojavlaunch.R;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.extra.ExtraConstants;
-import net.kdt.pojavlaunch.extra.ExtraCore;
-import net.kdt.pojavlaunch.prefs.LauncherPreferences;
-import net.kdt.pojavlaunch.progresskeeper.ProgressKeeper;
-import net.kdt.pojavlaunch.utils.DownloadUtils;
-import net.kdt.pojavlaunch.value.DependentLibrary;
-import net.kdt.pojavlaunch.value.MinecraftClientInfo;
-import net.kdt.pojavlaunch.value.MinecraftLibraryArtifact;
-
-import org.apache.commons.io.IOUtils;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicInteger;
-
-public class AsyncMinecraftDownloader {
- private static final float BYTE_TO_MB = 1024 * 1024;
- public static final String MINECRAFT_RES = "https://resources.download.minecraft.net/";
-
- /* Allows each downloading thread to have its own RECYCLED buffer */
- private final ConcurrentHashMap mThreadBuffers = new ConcurrentHashMap<>(5);
-
- public AsyncMinecraftDownloader(Activity activity, JMinecraftVersionList.Version version, String realVersion,
- @NonNull DoneListener listener){ // this was there for a reason
- sExecutorService.execute(() -> {
- try {
- downloadGame(activity, version, realVersion);
- listener.onDownloadDone();
- }catch (DownloaderException e) {
- listener.onDownloadFailed(e.getCause());
- }
- });
- }
- /* we do the throws DownloaderException thing to avoid blanket-catching Exception as a form of anti-lazy-developer protection */
- private void downloadGame(Activity activity, JMinecraftVersionList.Version verInfo, String versionName) throws DownloaderException {
- final String downVName = "/" + versionName + "/" + versionName;
-
- //Downloading libraries
- String minecraftMainJar = Tools.DIR_HOME_VERSION + downVName + ".jar";
- JAssets assets = null;
- try {
- File verJsonDir = new File(Tools.DIR_HOME_VERSION + downVName + ".json");
- if (verInfo != null && verInfo.url != null) {
- downloadVersionJson(versionName, verJsonDir, verInfo);
- }
- JMinecraftVersionList.Version originalVersion = Tools.getVersionInfo(versionName, true);
- if(Tools.isValidString(originalVersion.inheritsFrom)) {
- Log.i("Downloader", "probe: inheritsFrom="+originalVersion.inheritsFrom);
- String version = originalVersion.inheritsFrom;
- String downName = Tools.DIR_HOME_VERSION+"/"+version+"/"+version+".json";
- JMinecraftVersionList.Version listedVersion = getListedVersion(originalVersion.inheritsFrom);
- if(listedVersion != null) {
- Log.i("Downloader", "probe: verifying "+version);
- downloadVersionJson(version, new File(downName), listedVersion);
- }else{
- Log.i("Downloader", "failed to test source version before downloading.");
- Log.i("Downloader", "Inheriting from versions not in the Mojang list?");
- Log.i("Downloader", "If so, feel free to open a PR at our GitHub repository to add this feature!");
- }
- }
-
- verInfo = Tools.getVersionInfo(versionName);
-
- // THIS one function need the activity in the case of an error
- if(activity != null && !JRE17Util.installNewJreIfNeeded(activity, verInfo)){
- ProgressKeeper.submitProgress(ProgressLayout.DOWNLOAD_MINECRAFT, -1, -1);
- throw new DownloaderException();
- }
-
- try {
- if(verInfo.assets != null)
- assets = downloadIndex(verInfo, new File(Tools.ASSETS_PATH, "indexes/" + verInfo.assets + ".json"));
- } catch (IOException e) {
- Log.e("AsyncMcDownloader", e.toString(), e);
- throw new DownloaderException(e);
- }
-
- File outLib;
-
- // Patch the Log4J RCE (CVE-2021-44228)
- if (verInfo.logging != null) {
- outLib = new File(Tools.DIR_DATA + "/security", verInfo.logging.client.file.id.replace("client", "log4j-rce-patch"));
- boolean useLocal = outLib.exists();
- if (!useLocal) {
- outLib = new File(Tools.DIR_GAME_NEW, verInfo.logging.client.file.id);
- }
- if (outLib.exists() && !useLocal) {
- if(LauncherPreferences.PREF_CHECK_LIBRARY_SHA) {
- if(!Tools.compareSHA1(outLib,verInfo.logging.client.file.sha1)) {
- outLib.delete();
- ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT, 0, R.string.dl_library_sha_fail,verInfo.logging.client.file.id);
- }else{
- ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT, 0, R.string.dl_library_sha_pass,verInfo.logging.client.file.id);
- }
- } else if (outLib.length() != verInfo.logging.client.file.size) {
- // force updating anyways
- outLib.delete();
- }
- }
- if (!outLib.exists()) {
- ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT, 0, R.string.mcl_launch_downloading, verInfo.logging.client.file.id);
- JMinecraftVersionList.Version finalVerInfo = verInfo;
- downloadFileMonitored(
- verInfo.logging.client.file.url, outLib, getByteBuffer(),
- (curr, max) -> ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT,
- (int) Math.max((float)curr/max*100,0), R.string.mcl_launch_downloading_progress, finalVerInfo.logging.client.file.id, curr/BYTE_TO_MB, max/BYTE_TO_MB)
- );
- }
- }
-
-
- for (final DependentLibrary libItem : verInfo.libraries) {
- if(libItem.name.startsWith("org.lwjgl")){ //Black list
- ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT, 0, "Ignored " + libItem.name);
- continue;
- }
-
- String libArtifact = Tools.artifactToPath(libItem);
- outLib = new File(Tools.DIR_HOME_LIBRARY + "/" + libArtifact);
- outLib.getParentFile().mkdirs();
-
- if (!outLib.exists()) {
- downloadLibrary(libItem,libArtifact,outLib);
- }else{
- if(libItem.downloads != null && libItem.downloads.artifact != null && libItem.downloads.artifact.sha1 != null && !libItem.downloads.artifact.sha1.isEmpty()) {
- if(!Tools.compareSHA1(outLib,libItem.downloads.artifact.sha1)) {
- outLib.delete();
- ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT, 0, R.string.dl_library_sha_fail,libItem.name);
- downloadLibrary(libItem,libArtifact,outLib);
- }else{
- ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT, 0, R.string.dl_library_sha_pass,libItem.name);
- }
- }else{
- ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT, 0, R.string.dl_library_sha_unknown,libItem.name);
- }
- }
- }
- File minecraftMainFile = new File(minecraftMainJar);
- Log.i("Downloader", "originalVersion.inheritsFrom="+originalVersion.inheritsFrom);
- Log.i("Downloader", "originalVersion.downloads="+originalVersion.downloads);
- MinecraftClientInfo originalClientInfo;
- if(originalVersion.inheritsFrom == null) {
- if (originalVersion.downloads != null && (originalClientInfo = originalVersion.downloads.get("client")) != null) {
- verifyAndDownloadMainJar(originalClientInfo.url, originalClientInfo.sha1, minecraftMainFile);
- }
- }else if(!minecraftMainFile.exists() || minecraftMainFile.length() == 0) {
- File minecraftSourceFile = new File(Tools.DIR_HOME_VERSION + "/" + verInfo.id + "/" + verInfo.id + ".jar");
- MinecraftClientInfo inheritedClientInfo;
- if(verInfo.downloads != null && (inheritedClientInfo = verInfo.downloads.get("client")) != null) {
- verifyAndDownloadMainJar(inheritedClientInfo.url, inheritedClientInfo.sha1, minecraftSourceFile);
- }
- if(minecraftSourceFile.exists()) {
- FileInputStream is = new FileInputStream(minecraftSourceFile);
- FileOutputStream os = new FileOutputStream(minecraftMainFile);
- IOUtils.copy(is, os);
- is.close();
- os.close();
- }
- }
- } catch (DownloaderException e) {
- throw e;
- } catch (Throwable e) {
- Log.e("AsyncMcDownloader", e.toString(),e );
- ProgressKeeper.submitProgress(ProgressLayout.DOWNLOAD_MINECRAFT, -1, -1);
- throw new DownloaderException(e);
- }
-
- ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT, 0, R.string.mcl_launch_cleancache);
- new File(Tools.DIR_HOME_VERSION).mkdir();
- for (File f : new File(Tools.DIR_HOME_VERSION).listFiles()) {
- if(f.getName().endsWith(".part")) {
- Log.d(Tools.APP_NAME, "Cleaning cache: " + f);
- f.delete();
- }
- }
-
-
- try {
- if(assets != null)
- downloadAssets(assets, verInfo.assets, assets.mapToResources ? new File(Tools.OBSOLETE_RESOURCES_PATH) : new File(Tools.ASSETS_PATH));
- } catch (Exception e) {
- Log.e("AsyncMcDownloader", e.toString(), e);
- ProgressKeeper.submitProgress(ProgressLayout.DOWNLOAD_MINECRAFT, -1, -1);
- throw new DownloaderException(e);
- }
- ProgressKeeper.submitProgress(ProgressLayout.DOWNLOAD_MINECRAFT, -1, -1);
- }
-
- public void verifyAndDownloadMainJar(String url, String sha1, File destination) throws Exception{
- while(!destination.exists() || (destination.exists() && !Tools.compareSHA1(destination, sha1))) downloadFileMonitored(
- url,
- destination, getByteBuffer(),
- (curr, max) -> ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT,
- (int) Math.max((float)curr/max*100,0), R.string.mcl_launch_downloading_progress, destination.getName(), curr/BYTE_TO_MB, max/BYTE_TO_MB));
- }
-
- public void downloadAssets(final JAssets assets, String assetsVersion, final File outputDir) {
- LinkedBlockingQueue workQueue = new LinkedBlockingQueue<>();
- final ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 5, 500, TimeUnit.MILLISECONDS, workQueue);
-
-
- Log.i("AsyncMcDownloader","Assets begin time: " + System.currentTimeMillis());
- ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT, 0, R.string.mcl_launch_download_assets);
-
- Map assetsObjects = assets.objects;
- int assetsSizeBytes = 0;
- AtomicInteger downloadedSize = new AtomicInteger(0);
- AtomicBoolean localInterrupt = new AtomicBoolean(false);
-
- File objectsDir = new File(outputDir, "objects");
- ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT, 0, R.string.mcl_launch_downloading, "assets");
-
- for(String assetKey : assetsObjects.keySet()) {
- JAssetInfo asset = assetsObjects.get(assetKey);
- assetsSizeBytes += asset.size;
- String assetPath = asset.hash.substring(0, 2) + "/" + asset.hash;
- File outFile = assets.mapToResources ? new File(outputDir,"/"+assetKey) : new File(objectsDir, assetPath);
- boolean skip = outFile.exists();// skip if the file exists
-
- if(LauncherPreferences.PREF_CHECK_LIBRARY_SHA && skip)
- skip = Tools.compareSHA1(outFile, asset.hash);
-
- if(skip) {
- downloadedSize.addAndGet(asset.size);
- continue;
- }
-
- if(outFile.exists())
- ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT, 0, R.string.dl_library_sha_fail, assetKey);
-
- executor.execute(()->{
- try {
- if (!assets.mapToResources) downloadAsset(asset, objectsDir, downloadedSize);
- else downloadAssetMapped(asset, assetKey, outputDir, downloadedSize);
- }catch (IOException e) {
- Log.e("AsyncMcManager", e.toString());
- localInterrupt.set(true);
- }
- });
- }
- executor.shutdown();
-
- try {
- Log.i("AsyncMcDownloader","Queue size: " + workQueue.size());
- while ((!executor.awaitTermination(1000, TimeUnit.MILLISECONDS))&&(!localInterrupt.get()) /*&&mActivity.mIsAssetsProcessing*/) {
- int DLSize = downloadedSize.get();
- ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT,(int) Math.max((float) DLSize/assetsSizeBytes*100, 0),
- R.string.mcl_launch_downloading_progress, "assets", (float)DLSize/BYTE_TO_MB, (float)assetsSizeBytes/BYTE_TO_MB);
- }
-
-
- executor.shutdownNow();
- while (!executor.awaitTermination(250, TimeUnit.MILLISECONDS)) {}
- Log.i("AsyncMcDownloader","Fully shut down!");
- }catch(InterruptedException e) {
- Log.e("AsyncMcDownloader", e.toString());
- }
- Log.i("AsyncMcDownloader", "Assets end time: " + System.currentTimeMillis());
- }
-
-
- public void downloadAsset(JAssetInfo asset, File objectsDir, AtomicInteger downloadCounter) throws IOException {
- String assetPath = asset.hash.substring(0, 2) + "/" + asset.hash;
- File outFile = new File(objectsDir, assetPath);
- downloadFileMonitored(MINECRAFT_RES + assetPath, outFile, getByteBuffer(),
- new Tools.DownloaderFeedback() {
- int prevCurr;
- @Override
- public void updateProgress(int curr, int max) {
- downloadCounter.addAndGet(curr - prevCurr);
- prevCurr = curr;
- }
- });
- }
-
- public void downloadAssetMapped(JAssetInfo asset, String assetName, File resDir, AtomicInteger downloadCounter) throws IOException {
- String assetPath = asset.hash.substring(0, 2) + "/" + asset.hash;
- File outFile = new File(resDir,"/"+assetName);
- downloadFileMonitored(MINECRAFT_RES + assetPath, outFile, getByteBuffer(),
- new Tools.DownloaderFeedback() {
- int prevCurr;
- @Override
- public void updateProgress(int curr, int max) {
- downloadCounter.addAndGet(curr - prevCurr);
- prevCurr = curr;
- }
- });
- }
-
- protected void downloadLibrary(DependentLibrary libItem, String libArtifact, File outLib) throws Throwable{
- String libPathURL;
- boolean skipIfFailed = false;
-
- if (libItem.downloads == null || libItem.downloads.artifact == null) {
- MinecraftLibraryArtifact artifact = new MinecraftLibraryArtifact();
- artifact.url = (libItem.url == null
- ? "https://libraries.minecraft.net/"
- : libItem.url.replace("http://","https://")) + libArtifact;
- libItem.downloads = new DependentLibrary.LibraryDownloads(artifact);
-
- skipIfFailed = true;
- }
-
- try {
- libPathURL = libItem.downloads.artifact.url;
- boolean isFileGood = false;
- byte timesChecked=0;
- while(!isFileGood) {
- timesChecked++;
- if(timesChecked > 5) throw new RuntimeException("Library download failed after 5 retries");
-
- downloadFileMonitored(libPathURL, outLib, getByteBuffer(),
- (curr, max) -> ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT,
- (int) Math.max((float)curr/max*100,0), R.string.mcl_launch_downloading_progress, outLib.getName(), curr/BYTE_TO_MB, max/BYTE_TO_MB)
- );
-
- isFileGood = (libItem.downloads.artifact.sha1 == null
- || LauncherPreferences.PREF_CHECK_LIBRARY_SHA)
- || Tools.compareSHA1(outLib,libItem.downloads.artifact.sha1);
-
- ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT, 0,
- isFileGood ? R.string.dl_library_sha_pass : R.string.dl_library_sha_unknown
- ,outLib.getName());
- }
- } catch (Throwable th) {
- Log.e("AsyncMcDownloader", th.toString(), th);
- if (!skipIfFailed) {
- throw th;
- } else {
- th.printStackTrace();
- }
- }
- }
-
- public JAssets downloadIndex(JMinecraftVersionList.Version version, File output) throws IOException {
- if (!output.exists()) {
- output.getParentFile().mkdirs();
- DownloadUtils.downloadFile(version.assetIndex != null
- ? version.assetIndex.url
- : "https://s3.amazonaws.com/Minecraft.Download/indexes/" + version.assets + ".json", output);
- }
-
- return Tools.GLOBAL_GSON.fromJson(Tools.read(output.getAbsolutePath()), JAssets.class);
- }
-
- public void downloadVersionJson(String versionName, File verJsonDir, JMinecraftVersionList.Version verInfo) throws IOException {
- if(!LauncherPreferences.PREF_CHECK_LIBRARY_SHA) Log.w("Chk","Checker is off");
-
- boolean isManifestGood = verJsonDir.exists()
- && (!LauncherPreferences.PREF_CHECK_LIBRARY_SHA
- || verInfo.sha1 == null
- || Tools.compareSHA1(verJsonDir, verInfo.sha1));
-
- if(!isManifestGood) {
- ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT, 0, R.string.mcl_launch_downloading, versionName + ".json");
- verJsonDir.delete();
- downloadFileMonitored(verInfo.url, verJsonDir, getByteBuffer(),
- (curr, max) -> ProgressLayout.setProgress(ProgressLayout.DOWNLOAD_MINECRAFT,
- (int) Math.max((float)curr/max*100,0), R.string.mcl_launch_downloading_progress, versionName + ".json", curr/BYTE_TO_MB, max/BYTE_TO_MB)
- );
- }
- }
-
- public static String normalizeVersionId(String versionString) {
- JMinecraftVersionList versionList = (JMinecraftVersionList) ExtraCore.getValue(ExtraConstants.RELEASE_TABLE);
- if(versionList == null || versionList.versions == null) return versionString;
- if("latest-release".equals(versionString)) versionString = versionList.latest.get("release");
- if("latest-snapshot".equals(versionString)) versionString = versionList.latest.get("snapshot");
- return versionString;
- }
-
- public static JMinecraftVersionList.Version getListedVersion(String normalizedVersionString) {
- JMinecraftVersionList versionList = (JMinecraftVersionList) ExtraCore.getValue(ExtraConstants.RELEASE_TABLE);
- if(versionList == null || versionList.versions == null) return null; // can't have listed versions if there's no list
- for(JMinecraftVersionList.Version version : versionList.versions) {
- if(version.id.equals(normalizedVersionString)) return version;
- }
- return null;
- }
-
-
- /**@return A byte buffer bound to a thread, useful to recycle it across downloads */
- private byte[] getByteBuffer(){
- byte[] buffer = mThreadBuffers.get(Thread.currentThread());
- if (buffer == null){
- buffer = new byte[8192];
- mThreadBuffers.put(Thread.currentThread(), buffer);
- }
-
- return buffer;
- }
-
-
-
-
-
- public interface DoneListener{
- void onDownloadDone();
- void onDownloadFailed(Throwable throwable);
- }
-
- private static class DownloaderException extends Exception {
- public DownloaderException() {}
- public DownloaderException(Throwable e) {
- super(e);
- }
- }
-
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/tasks/AsyncVersionList.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/tasks/AsyncVersionList.java
deleted file mode 100644
index 0a18ac0fb..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/tasks/AsyncVersionList.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package net.kdt.pojavlaunch.tasks;
-
-import static net.kdt.pojavlaunch.PojavApplication.sExecutorService;
-import static net.kdt.pojavlaunch.utils.DownloadUtils.downloadString;
-
-import android.util.Log;
-
-import androidx.annotation.Nullable;
-
-import com.google.gson.JsonIOException;
-import com.google.gson.JsonSyntaxException;
-import com.google.gson.stream.JsonReader;
-
-import net.kdt.pojavlaunch.JMinecraftVersionList;
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.prefs.LauncherPreferences;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.IOException;
-
-/** Class getting the version list, and that's all really */
-public class AsyncVersionList {
-
- public void getVersionList(@Nullable VersionDoneListener listener, boolean secondPass){
- sExecutorService.execute(() -> {
- File versionFile = new File(Tools.DIR_DATA + "/version_list.json");
- JMinecraftVersionList versionList = null;
- try{
- if(!versionFile.exists() || (System.currentTimeMillis() > versionFile.lastModified() + 86400000 )){
- versionList = downloadVersionList(LauncherPreferences.PREF_VERSION_REPOS);
- }
- }catch (Exception e){
- Log.e("AsyncVersionList", "Refreshing version list failed :" + e);
- e.printStackTrace();
- }
-
- // Fallback when no network or not needed
- if (versionList == null) {
- try {
- versionList = Tools.GLOBAL_GSON.fromJson(new JsonReader(new FileReader(versionFile)), JMinecraftVersionList.class);
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (JsonIOException | JsonSyntaxException e) {
- e.printStackTrace();
- versionFile.delete();
- if(!secondPass)
- getVersionList(listener, true);
- }
- }
-
- if(listener != null)
- listener.onVersionDone(versionList);
- });
- }
-
-
- @SuppressWarnings("SameParameterValue")
- private JMinecraftVersionList downloadVersionList(String mirror){
- JMinecraftVersionList list = null;
- try{
- Log.i("ExtVL", "Syncing to external: " + mirror);
- String jsonString = downloadString(mirror);
- list = Tools.GLOBAL_GSON.fromJson(jsonString, JMinecraftVersionList.class);
- Log.i("ExtVL","Downloaded the version list, len=" + list.versions.length);
-
- // Then save the version list
- //TODO make it not save at times ?
- FileOutputStream fos = new FileOutputStream(Tools.DIR_DATA + "/version_list.json");
- fos.write(jsonString.getBytes());
- fos.close();
-
-
-
- }catch (IOException e){
- Log.e("AsyncVersionList", e.toString());
- }
- return list;
- }
-
- /** Basic listener, acting as a callback */
- public interface VersionDoneListener{
- void onVersionDone(JMinecraftVersionList versions);
- }
-
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java
index 27455879e..e7a926463 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/JREUtils.java
@@ -24,7 +24,6 @@ import net.kdt.pojavlaunch.extra.ExtraConstants;
import net.kdt.pojavlaunch.extra.ExtraCore;
import net.kdt.pojavlaunch.multirt.MultiRTUtils;
import net.kdt.pojavlaunch.multirt.Runtime;
-import net.kdt.pojavlaunch.plugins.FFmpegPlugin;
import net.kdt.pojavlaunch.prefs.*;
import org.lwjgl.glfw.*;
@@ -145,9 +144,6 @@ public class JREUtils {
String libName = is64BitsDevice() ? "lib64" : "lib";
StringBuilder ldLibraryPath = new StringBuilder();
- if(FFmpegPlugin.isAvailable) {
- ldLibraryPath.append(FFmpegPlugin.libraryPath).append(":");
- }
ldLibraryPath.append(jreHome)
.append("/").append(Tools.DIRNAME_HOME_JRE)
.append("/jli:").append(jreHome).append("/").append(Tools.DIRNAME_HOME_JRE)
@@ -195,9 +191,6 @@ public class JREUtils {
envMap.put("LD_LIBRARY_PATH", LD_LIBRARY_PATH);
envMap.put("PATH", jreHome + "/bin:" + Os.getenv("PATH"));
- if(FFmpegPlugin.isAvailable) {
- envMap.put("PATH", FFmpegPlugin.libraryPath+":"+envMap.get("PATH"));
- }
envMap.put("REGAL_GL_VENDOR", "Android");
envMap.put("REGAL_GL_RENDERER", "Regal");
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/DependentLibrary.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/DependentLibrary.java
deleted file mode 100644
index b014bc16e..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/DependentLibrary.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package net.kdt.pojavlaunch.value;
-
-import androidx.annotation.Keep;
-import net.kdt.pojavlaunch.JMinecraftVersionList.Arguments.ArgValue.ArgRules;
-
-@Keep
-public class DependentLibrary {
- public ArgRules[] rules;
- public String name;
- public LibraryDownloads downloads;
- public String url;
-
- @Keep
- public static class LibraryDownloads {
- public final MinecraftLibraryArtifact artifact;
- public LibraryDownloads(MinecraftLibraryArtifact artifact) {
- this.artifact = artifact;
- }
- }
-}
-
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/MinecraftAccount.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/MinecraftAccount.java
deleted file mode 100644
index ae133e44f..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/MinecraftAccount.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package net.kdt.pojavlaunch.value;
-
-
-import android.graphics.BitmapFactory;
-import android.util.Log;
-
-import net.kdt.pojavlaunch.*;
-import java.io.*;
-import com.google.gson.*;
-import android.graphics.Bitmap;
-import android.util.Base64;
-
-import androidx.annotation.Keep;
-
-import org.apache.commons.io.IOUtils;
-
-@SuppressWarnings("IOStreamConstructor")
-@Keep
-public class MinecraftAccount {
- public String accessToken = "0"; // access token
- public String clientToken = "0"; // clientID: refresh and invalidate
- public String profileId = "00000000-0000-0000-0000-000000000000"; // profile UUID, for obtaining skin
- public String username = "Steve";
- public String selectedVersion = "1.7.10";
- public boolean isMicrosoft = false;
- public String msaRefreshToken = "0";
- public String xuid;
- public String skinFaceBase64;
- public long expiresAt;
-
- void updateSkinFace(String uuid) {
- try {
- File skinFile = File.createTempFile("skin", ".png", new File(Tools.DIR_DATA, "cache"));
- Tools.downloadFile("https://mc-heads.net/head/" + uuid + "/100", skinFile.getAbsolutePath());
- skinFaceBase64 = Base64.encodeToString(IOUtils.toByteArray(new FileInputStream(skinFile)), Base64.DEFAULT);
-
- Log.i("SkinLoader", "Update skin face success");
- } catch (IOException e) {
- // Skin refresh limit, no internet connection, etc...
- // Simply ignore updating skin face
- Log.w("SkinLoader", "Could not update skin face", e);
- }
- }
-
- public boolean isLocal(){
- return accessToken.equals("0");
- }
-
- public void updateSkinFace() {
- updateSkinFace(profileId);
- }
-
- public String save(String outPath) throws IOException {
- Tools.write(outPath, Tools.GLOBAL_GSON.toJson(this));
- return username;
- }
-
- public String save() throws IOException {
- return save(Tools.DIR_ACCOUNT_NEW + "/" + username + ".json");
- }
-
- public static MinecraftAccount parse(String content) throws JsonSyntaxException {
- return Tools.GLOBAL_GSON.fromJson(content, MinecraftAccount.class);
- }
-
- public static MinecraftAccount load(String name) {
- if(!accountExists(name)) return null;
- try {
- MinecraftAccount acc = parse(Tools.read(Tools.DIR_ACCOUNT_NEW + "/" + name + ".json"));
- if (acc.accessToken == null) {
- acc.accessToken = "0";
- }
- if (acc.clientToken == null) {
- acc.clientToken = "0";
- }
- if (acc.profileId == null) {
- acc.profileId = "00000000-0000-0000-0000-000000000000";
- }
- if (acc.username == null) {
- acc.username = "0";
- }
- if (acc.selectedVersion == null) {
- acc.selectedVersion = "1.7.10";
- }
- if (acc.msaRefreshToken == null) {
- acc.msaRefreshToken = "0";
- }
- if (acc.skinFaceBase64 == null) {
- // acc.updateSkinFace("MHF_Steve");
- }
- return acc;
- } catch(IOException | JsonSyntaxException e) {
- Log.e(MinecraftAccount.class.getName(), "Caught an exception while loading the profile",e);
- return null;
- }
- }
-
- public Bitmap getSkinFace(){
- if(skinFaceBase64 == null){
- return null;
- }
- byte[] faceIconBytes = Base64.decode(skinFaceBase64, Base64.DEFAULT);
- return BitmapFactory.decodeByteArray(faceIconBytes, 0, faceIconBytes.length);
- }
-
- private static boolean accountExists(String username){
- return new File(Tools.DIR_ACCOUNT_NEW + "/" + username + ".json").exists();
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/MinecraftClientInfo.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/MinecraftClientInfo.java
deleted file mode 100644
index 653d289ff..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/MinecraftClientInfo.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package net.kdt.pojavlaunch.value;
-
-import androidx.annotation.Keep;
-
-@Keep
-public class MinecraftClientInfo {
- public String sha1;
- public int size;
- public String url;
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact.java
deleted file mode 100644
index ca81364af..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package net.kdt.pojavlaunch.value;
-
-import androidx.annotation.Keep;
-
-@Keep
-public class MinecraftLibraryArtifact extends MinecraftClientInfo {
- public String path;
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/LauncherProfiles.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/LauncherProfiles.java
deleted file mode 100644
index 7d7f826d2..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/LauncherProfiles.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package net.kdt.pojavlaunch.value.launcherprofiles;
-
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-
-import net.kdt.pojavlaunch.Tools;
-import net.kdt.pojavlaunch.prefs.LauncherPreferences;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.UUID;
-
-public class LauncherProfiles {
- public static MinecraftLauncherProfiles mainProfileJson;
- public static final File launcherProfilesFile = new File(Tools.DIR_GAME_NEW, "launcher_profiles.json");
- public static MinecraftLauncherProfiles update() {
- try {
- if (mainProfileJson == null) {
- if (launcherProfilesFile.exists()) {
- mainProfileJson = Tools.GLOBAL_GSON.fromJson(Tools.read(launcherProfilesFile.getAbsolutePath()), MinecraftLauncherProfiles.class);
- if(mainProfileJson.profiles == null) mainProfileJson.profiles = new HashMap<>();
- else if(LauncherProfiles.normalizeProfileIds(mainProfileJson)){
- LauncherProfiles.update();
- }
- } else {
- mainProfileJson = new MinecraftLauncherProfiles();
- mainProfileJson.profiles = new HashMap<>();
- }
- } else {
- Tools.write(launcherProfilesFile.getAbsolutePath(), mainProfileJson.toJson());
- }
-
- // insertMissing();
- return mainProfileJson;
- } catch (Throwable th) {
- throw new RuntimeException(th);
- }
- }
-
- public static @NonNull MinecraftProfile getCurrentProfile() {
- if(mainProfileJson == null) LauncherProfiles.update();
- String defaultProfileName = LauncherPreferences.DEFAULT_PREF.getString(LauncherPreferences.PREF_KEY_CURRENT_PROFILE, "");
- MinecraftProfile profile = mainProfileJson.profiles.get(defaultProfileName);
- if(profile == null) throw new RuntimeException("The current profile stopped existing :(");
- return profile;
- }
-
- /**
- * For all keys to be UUIDs, effectively isolating profile created by installers
- * This avoids certain profiles to be erased by the installer
- * @return Whether some profiles have been normalized
- */
- private static boolean normalizeProfileIds(MinecraftLauncherProfiles launcherProfiles){
- boolean hasNormalized = false;
- ArrayList keys = new ArrayList<>();
-
- // Detect denormalized keys
- for(String profileKey : launcherProfiles.profiles.keySet()){
- try{
- if(!UUID.fromString(profileKey).toString().equals(profileKey)) keys.add(profileKey);
- }catch (IllegalArgumentException exception){
- keys.add(profileKey);
- Log.w(LauncherProfiles.class.toString(), "Illegal profile uuid: " + profileKey);
- }
- }
-
- // Swap the new keys
- for(String profileKey: keys){
- String uuid = UUID.randomUUID().toString();
- while(launcherProfiles.profiles.containsKey(uuid)) {
- uuid = UUID.randomUUID().toString();
- }
-
- launcherProfiles.profiles.put(uuid, launcherProfiles.profiles.get(profileKey));
- launcherProfiles.profiles.remove(profileKey);
- hasNormalized = true;
- }
-
- return hasNormalized;
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftAuthenticationDatabase.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftAuthenticationDatabase.java
deleted file mode 100644
index d1c70619e..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftAuthenticationDatabase.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package net.kdt.pojavlaunch.value.launcherprofiles;
-
-import androidx.annotation.Keep;
-
-@Keep
-public class MinecraftAuthenticationDatabase {
- public String accessToken;
- public String displayName;
- public String username;
- public String uuid;
- // public MinecraftProfile[] profiles;
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftLauncherProfiles.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftLauncherProfiles.java
deleted file mode 100644
index c9b8fcea8..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftLauncherProfiles.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package net.kdt.pojavlaunch.value.launcherprofiles;
-import androidx.annotation.Keep;
-
-import java.util.*;
-import net.kdt.pojavlaunch.*;
-
-@Keep
-public class MinecraftLauncherProfiles {
- public Map profiles = new HashMap<>();
- public boolean profilesWereMigrated;
- public String clientToken;
- public Map authenticationDatabase;
- // public Map launcherVersion;
- public MinecraftLauncherSettings settings;
- // public Map analyticsToken;
- public int analyticsFailcount;
- public MinecraftSelectedUser selectedUser;
-
- public String toJson() {
- return Tools.GLOBAL_GSON.toJson(this);
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftLauncherSettings.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftLauncherSettings.java
deleted file mode 100644
index 14330b3e6..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftLauncherSettings.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package net.kdt.pojavlaunch.value.launcherprofiles;
-
-import androidx.annotation.Keep;
-
-@Keep
-public class MinecraftLauncherSettings {
- public boolean enableSnapshots;
- public boolean enableAdvanced;
- public boolean keepLauncherOpen;
- public boolean showGameLog;
- public String locale;
- public boolean showMenu;
- public boolean enableHistorical;
- public String profileSorting;
- public boolean crashAssistance;
- public boolean enableAnalytics;
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftProfile.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftProfile.java
deleted file mode 100644
index 18b4d82d4..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftProfile.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package net.kdt.pojavlaunch.value.launcherprofiles;
-
-import androidx.annotation.Keep;
-
-@Keep
-public class MinecraftProfile {
-
- public String name;
- public String type;
- public String created;
- public String lastUsed;
- public String icon;
- public String lastVersionId;
- public String gameDir;
- public String javaDir;
- public String javaArgs;
- public String logConfig;
- public boolean logConfigIsXML;
- public String pojavRendererName;
- public String controlFile;
- public MinecraftResolution[] resolution;
-
-
- public static MinecraftProfile createTemplate(){
- MinecraftProfile TEMPLATE = new MinecraftProfile();
- TEMPLATE.name = "New";
- TEMPLATE.lastVersionId = "latest-release";
- return TEMPLATE;
- }
-
- public MinecraftProfile(){}
-
- public MinecraftProfile(MinecraftProfile profile){
- name = profile.name;
- type = profile.type;
- created = profile.created;
- lastUsed = profile.lastUsed;
- icon = profile.icon;
- lastVersionId = profile.lastVersionId;
- gameDir = profile.gameDir;
- javaDir = profile.javaDir;
- javaArgs = profile.javaArgs;
- logConfig = profile.logConfig;
- logConfigIsXML = profile.logConfigIsXML;
- pojavRendererName = profile.pojavRendererName;
- controlFile = profile.controlFile;
- resolution = profile.resolution;
- }
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftResolution.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftResolution.java
deleted file mode 100644
index 33bed42b0..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftResolution.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package net.kdt.pojavlaunch.value.launcherprofiles;
-
-import androidx.annotation.Keep;
-
-@Keep
-public class MinecraftResolution {
- public int width;
- public int height;
-}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftSelectedUser.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftSelectedUser.java
deleted file mode 100644
index cc92c978f..000000000
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/value/launcherprofiles/MinecraftSelectedUser.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package net.kdt.pojavlaunch.value.launcherprofiles;
-
-import androidx.annotation.Keep;
-
-@Keep
-public class MinecraftSelectedUser {
- public String account;
- public String profile;
-}
diff --git a/app_pojavlauncher/src/main/res/layout-land/activity_pojav_launcher.xml b/app_pojavlauncher/src/main/res/layout-land/activity_pojav_launcher.xml
deleted file mode 100644
index f16b15206..000000000
--- a/app_pojavlauncher/src/main/res/layout-land/activity_pojav_launcher.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app_pojavlauncher/src/main/res/layout-land/fragment_launcher.xml b/app_pojavlauncher/src/main/res/layout-land/fragment_launcher.xml
deleted file mode 100644
index ec97c0358..000000000
--- a/app_pojavlauncher/src/main/res/layout-land/fragment_launcher.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app_pojavlauncher/src/main/res/layout/activity_import_control.xml b/app_pojavlauncher/src/main/res/layout/activity_import_control.xml
deleted file mode 100644
index a6d93ff84..000000000
--- a/app_pojavlauncher/src/main/res/layout/activity_import_control.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app_pojavlauncher/src/main/res/layout/activity_pojav_launcher.xml b/app_pojavlauncher/src/main/res/layout/activity_pojav_launcher.xml
deleted file mode 100644
index 78a6963e0..000000000
--- a/app_pojavlauncher/src/main/res/layout/activity_pojav_launcher.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app_pojavlauncher/src/main/res/layout/fragment_fabric_install.xml b/app_pojavlauncher/src/main/res/layout/fragment_fabric_install.xml
deleted file mode 100644
index cf75586d0..000000000
--- a/app_pojavlauncher/src/main/res/layout/fragment_fabric_install.xml
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app_pojavlauncher/src/main/res/layout/fragment_file_selector.xml b/app_pojavlauncher/src/main/res/layout/fragment_file_selector.xml
deleted file mode 100644
index b8e313fee..000000000
--- a/app_pojavlauncher/src/main/res/layout/fragment_file_selector.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app_pojavlauncher/src/main/res/layout/fragment_launcher.xml b/app_pojavlauncher/src/main/res/layout/fragment_launcher.xml
deleted file mode 100644
index 6cb31bd99..000000000
--- a/app_pojavlauncher/src/main/res/layout/fragment_launcher.xml
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app_pojavlauncher/src/main/res/layout/fragment_local_login.xml b/app_pojavlauncher/src/main/res/layout/fragment_local_login.xml
deleted file mode 100644
index fcc8cd191..000000000
--- a/app_pojavlauncher/src/main/res/layout/fragment_local_login.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app_pojavlauncher/src/main/res/layout/fragment_microsoft_login.xml b/app_pojavlauncher/src/main/res/layout/fragment_microsoft_login.xml
deleted file mode 100644
index ed483c141..000000000
--- a/app_pojavlauncher/src/main/res/layout/fragment_microsoft_login.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/app_pojavlauncher/src/main/res/layout/fragment_mod_version_list.xml b/app_pojavlauncher/src/main/res/layout/fragment_mod_version_list.xml
deleted file mode 100644
index 0c644ba71..000000000
--- a/app_pojavlauncher/src/main/res/layout/fragment_mod_version_list.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app_pojavlauncher/src/main/res/layout/fragment_profile_editor.xml b/app_pojavlauncher/src/main/res/layout/fragment_profile_editor.xml
deleted file mode 100644
index 435b4d8f1..000000000
--- a/app_pojavlauncher/src/main/res/layout/fragment_profile_editor.xml
+++ /dev/null
@@ -1,264 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app_pojavlauncher/src/main/res/layout/fragment_profile_type.xml b/app_pojavlauncher/src/main/res/layout/fragment_profile_type.xml
deleted file mode 100644
index 8624645c5..000000000
--- a/app_pojavlauncher/src/main/res/layout/fragment_profile_type.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app_pojavlauncher/src/main/res/layout/fragment_select_auth_method.xml b/app_pojavlauncher/src/main/res/layout/fragment_select_auth_method.xml
deleted file mode 100644
index 359564867..000000000
--- a/app_pojavlauncher/src/main/res/layout/fragment_select_auth_method.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app_pojavlauncher/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app_pojavlauncher/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
index 036d09bc5..4ae7d1237 100644
--- a/app_pojavlauncher/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ b/app_pojavlauncher/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app_pojavlauncher/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app_pojavlauncher/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
index 036d09bc5..4ae7d1237 100644
--- a/app_pojavlauncher/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ b/app_pojavlauncher/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app_pojavlauncher/src/main/res/mipmap-hdpi/ic_launcher.png b/app_pojavlauncher/src/main/res/mipmap-hdpi/ic_launcher.png
index c8289d5fb..5dba6c3c0 100644
Binary files a/app_pojavlauncher/src/main/res/mipmap-hdpi/ic_launcher.png and b/app_pojavlauncher/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-hdpi/ic_launcher_background.png b/app_pojavlauncher/src/main/res/mipmap-hdpi/ic_launcher_background.png
new file mode 100644
index 000000000..95da10ad8
Binary files /dev/null and b/app_pojavlauncher/src/main/res/mipmap-hdpi/ic_launcher_background.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/app_pojavlauncher/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
index 46ffb8141..a7ff7fde0 100644
Binary files a/app_pojavlauncher/src/main/res/mipmap-hdpi/ic_launcher_foreground.png and b/app_pojavlauncher/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app_pojavlauncher/src/main/res/mipmap-hdpi/ic_launcher_round.png
index 521f7cdb4..76ba4630c 100644
Binary files a/app_pojavlauncher/src/main/res/mipmap-hdpi/ic_launcher_round.png and b/app_pojavlauncher/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-mdpi/ic_launcher.png b/app_pojavlauncher/src/main/res/mipmap-mdpi/ic_launcher.png
index df3a2a478..b3da73704 100644
Binary files a/app_pojavlauncher/src/main/res/mipmap-mdpi/ic_launcher.png and b/app_pojavlauncher/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-mdpi/ic_launcher_background.png b/app_pojavlauncher/src/main/res/mipmap-mdpi/ic_launcher_background.png
new file mode 100644
index 000000000..6633a13e5
Binary files /dev/null and b/app_pojavlauncher/src/main/res/mipmap-mdpi/ic_launcher_background.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/app_pojavlauncher/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
index 767a72d22..1314ddf1c 100644
Binary files a/app_pojavlauncher/src/main/res/mipmap-mdpi/ic_launcher_foreground.png and b/app_pojavlauncher/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app_pojavlauncher/src/main/res/mipmap-mdpi/ic_launcher_round.png
index ac0dfb5be..437a31f87 100644
Binary files a/app_pojavlauncher/src/main/res/mipmap-mdpi/ic_launcher_round.png and b/app_pojavlauncher/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-xhdpi/ic_launcher.png b/app_pojavlauncher/src/main/res/mipmap-xhdpi/ic_launcher.png
index 7c24ed4e8..7ccd6e78f 100644
Binary files a/app_pojavlauncher/src/main/res/mipmap-xhdpi/ic_launcher.png and b/app_pojavlauncher/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-xhdpi/ic_launcher_background.png b/app_pojavlauncher/src/main/res/mipmap-xhdpi/ic_launcher_background.png
new file mode 100644
index 000000000..5eb490a89
Binary files /dev/null and b/app_pojavlauncher/src/main/res/mipmap-xhdpi/ic_launcher_background.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/app_pojavlauncher/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
index 7ff014648..98f00e0ce 100644
Binary files a/app_pojavlauncher/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png and b/app_pojavlauncher/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app_pojavlauncher/src/main/res/mipmap-xhdpi/ic_launcher_round.png
index a9fdd6b36..6e21fa6ae 100644
Binary files a/app_pojavlauncher/src/main/res/mipmap-xhdpi/ic_launcher_round.png and b/app_pojavlauncher/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app_pojavlauncher/src/main/res/mipmap-xxhdpi/ic_launcher.png
index a427b92c3..2fa3d027c 100644
Binary files a/app_pojavlauncher/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/app_pojavlauncher/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-xxhdpi/ic_launcher_background.png b/app_pojavlauncher/src/main/res/mipmap-xxhdpi/ic_launcher_background.png
new file mode 100644
index 000000000..419ed9956
Binary files /dev/null and b/app_pojavlauncher/src/main/res/mipmap-xxhdpi/ic_launcher_background.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/app_pojavlauncher/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
index 282330827..5611e340f 100644
Binary files a/app_pojavlauncher/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png and b/app_pojavlauncher/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app_pojavlauncher/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
index d019d548b..1d16e84f0 100644
Binary files a/app_pojavlauncher/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and b/app_pojavlauncher/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app_pojavlauncher/src/main/res/mipmap-xxxhdpi/ic_launcher.png
index 32c071097..c107b2d2c 100644
Binary files a/app_pojavlauncher/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/app_pojavlauncher/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png b/app_pojavlauncher/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png
new file mode 100644
index 000000000..62217b5b7
Binary files /dev/null and b/app_pojavlauncher/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/app_pojavlauncher/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
index 6f0c41a46..fdaface5c 100644
Binary files a/app_pojavlauncher/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png and b/app_pojavlauncher/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ
diff --git a/app_pojavlauncher/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app_pojavlauncher/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
index d0d7a84ce..e3c876487 100644
Binary files a/app_pojavlauncher/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and b/app_pojavlauncher/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/app_pojavlauncher/src/main/res/values-af/strings.xml b/app_pojavlauncher/src/main/res/values-af/strings.xml
deleted file mode 100644
index d6e3e577a..000000000
--- a/app_pojavlauncher/src/main/res/values-af/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app_pojavlauncher/src/main/res/values-ar/strings.xml b/app_pojavlauncher/src/main/res/values-ar/strings.xml
deleted file mode 100644
index 131fccb89..000000000
--- a/app_pojavlauncher/src/main/res/values-ar/strings.xml
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition for Android)
- PojavLauncher
- تشغيل Minecraft: Java Edition على جهازك!
-
-
-
- البريد الإلكتروني أو اسم المستخدم
- كلمة المرور
- أبق تسجيل دخولي
- تسجيل الدخول
- اسم المستخدم غير صالح. اسم المستخدم يجب أن يكون في نطاق 3-16 حرفاً، يجب أن يحتوي فقط على A-Z، a-z، 0-9 وتسطير سفلي.
- هذا الاسم موجود مسبقا
- تسجيل دخول بحساب مايكروسوفت
- اختر الحساب
- لم يتم العثور على الحساب!
- ليس لديك أي حساب محفوظ.\nاستخدم الخيار \"تذكر تسجيل دخولي\" لحفظ حساب عند تسجيل الدخول الأول.
-
-
- سيتم إزالة هذا الحساب!
-
- تثبيت محرك تشغيل جافا %s (.tar.xz)
- حدد مشغل مودات للتثبيت
-
- لقد توقف PojavLauncher بشكل غير متوقع
- لا يوجد إصدار!
- اظهر المزيد
- أظهِر أقل
-
- مطلوب إذن القراءة و الكتابة للتخزين!
- تم التثبيت بنجاح
- تم إلغاء تثبيت محرك تشغيل جافا
-
-
- وحدة التحكم البرمجية
- سجل توقف العمل
-
- متصل
- محلي
-
- جاهز للعب ماين كرافت %s
- تنظيف ملفات ذاكرة التخزين المؤقت
- التحميل جارٍ %s
- "جارٍ تنزيل %s (%.2f ميغابايت / %.2f ميغابايت)"
- جار الاستعداد لتنزيل الموارد
- لا يمكن تثبيت Minecraft بشكل قانوني عند تسجيل الدخول مع حساب محلي. الرجاء التحويل إلى حساب فعلي والمتابعة.
- الخيارات
- تشغيل مثبت مود (Forge, LabyMod, Fabric, الخ...)
- تشغيل مثبت مود (مع حجج مخصصة)
- تخصيص التحكم
- الاعدادات
- حول التطبيق
- استخدام عرض الأسطح البديل
- قد تساعد الأداء في سيناريوهات gpu
- إلغاء تثبيت محرك جافا
- [يتطلب إعادة تشغيل التطبيق] هذا يسمح لك بإعادة تثبيت محرك تشغيل جافا
- تشغيل ماينكرافت في وضع حر
- تشغيل ماينكرافت في النافذة العائمة. يتطلب أندرويد 7.0+
- أخفِ الشّريط الجانبيّ
- قد يعجب الأشخاص الذين يفضلون واجهة المستخدم القديمة v1 بهذا. يمنحك تجربة ملء الشاشة بشكل أكبر.
- تجاهل notch
- تجاهل النبرة وتوسيع الشاشة أسفلها.\nيعطيك تجربة أكثر انغماساً.
- مقياس الدقة
- يسمح لك بتقليل دقة اللعبة. 100% هي دقة كاملة
- كم من الوقت سيتم تشغيله بعد الضغط المطول
- تغيير وقت التشغيل للضغط المطول في كتلة التحطيم وإسقاط الموارد.
- التعامل مع زر الرجوع كزر الفأرة اليمنى
- بعض الأجهزة تتعامل مع زر الفأرة الخارجية اليمنى كزر للعودة. إذا كنت تستخدم فأرة خارجية، ينبغي عليك تفعيل هذا.
- نمط زر مسطح
- قم بتمكين هذا لتغيير نمط زر التحكم إلى مسطح.
- ضبط حجم أزرار التحكم
- قم بتكبير الأزرار إذا كانت صغيرة جداً.
- توسيع حجم الفأرة
- تغيير حجم الفأرة الافتراضية.
- حجج إطلاق JVM
- كن حذرا، قد يجعل هذا اللعبة تتوقف إذا تم تعديلها بدون علم.
- إعدادات عامة
- إعدادات الحجم
- العارض
- GL4ES المقدس - (جميع الإصدارات بسرعة)
- virglrenderer - (release 1.7+, slow)
- نوع الإصدار سيكون في قائمة الإصدارات
- إصدار نهائي
- اللمحات (سنابشوت)
- نسخ ألفا قديمة
- نسخ بيتا قديمة
- نسخ
-
- تعديل
- خطأ
- تحذير
- تحميل
- الاسم
- إزالة
- نسخ
- اعادة تشغيل
- حفظ
- جاري فك الضغط %s
- لا يمكن لهذه الخانة ان تكون فارغة
- انتظر
-
- تم الخروج من التطبيق/اللعبة بخلل %d، تحقق من latestlog.txt لمزيد من التفاصيل.
- خروج
- هل أنت متأكد من أنك تريد الإغلاق؟
- لم يتم تثبيت LWJGL3!
- رندر فولكان زينك غير مدعوم على هذا الجهاز!
-
- واجهة المستخدم الرسومية
- لوحة المفاتيح
- دردشة
- Debug
- Pri
- Sec
- Inv
- 3rd
- Tab
- الفأرة
- وضع الفأرة: موقفة
- وضع الفأرة: مفعلة
-
- فرض الإغلاق
- سجل الإخراج
- مدخل التصحيح
- إرسال رمز مفتاحي مخصص
- رفع المستوى التحكم
- خفض مستوى التحكم
-
- استيراد ازرار التحكم
- المِلَفّ غير صالح أو تالف
- استيراد ازرار التحكم
- يتم التحقق من الملف، الرجاء الانتظار والمحاولة مرة أخرى…
- الاسم غير صالحا و المِلَفّ موجود مسبقًا
- تم الاستيراد
-
- يتم تعديل %s
- حذف %s؟
- رمز مفتاحي
- تبديلي
- الحجم
- العرض
- الارتفاع
- تخطيط الأزرار
- الإتجاة
- لون الخلفية
- تقوس الزاوية
- عرض الخط
- لون الخط
- الموضع الديناميكي
- ديناميكية X
- ديناميكية Y
- شفافيه الخلفية
- شفافية الزر
- مجموعة المفاتيح
- Alt
- Ctrl
- Shift
- إضافة زر
- اضافة زر بعدة ازرار
- إضافة زر فرعي
- تم إضافة الزر الفرعي n°%d!
- حدد رمز تحكم اعتيادي بصيغة json
- تثبيت ملف .jar
- الخيارات
- إبدأ اللعب
- مرحباً %s
- معلومات (المطورين)
- تبديل الحساب
- الإصدار:
- لم يتم اكتشاف توقف
- لا توجد سجلات.
- فشل في جلب موجز الأخبار!
- تمكين ذاكرة الوصول العشوائي التلقائي
- ذاكرة الوصول العشوائية التلقائية
- تم تعيين الذاكرة إلى %d ميغابايت
- التحقق من المكتبات بعد التحميل
- يفرض هذا الخيار على المشغل التحقق من تجزئة المكتبة إذا كانت متوفرة. يمنع التنزيلات المعطلة.
- المكتبة %s تالفة وسيتم إعادة تحميلها
- لا يمكن التحقق من الملفات المكتبية %s ، يجب أن تفترض أنها جيدة
- المكتبة %s جيدة وقابلة للاستخدام
- تعطيل الإيماءات
- تعطيل الإيماءات، مثل تثبيت الضغط لكسر كتلة، والنقر لوضع كتلة.
- سرعة الفأرة
- يغير سرعة الفأرة البرمجية
- سماح تحريك أزرار الشاشة
- قابل للسحب
- مدوّر
- الكمية الحالية من ذاكرة الوصول العشوائي المجانية (%d) أقل من ذاكرة الوصول العشوائي المحددة (%d)، مما قد يؤدي إلى حدوث أعطال. قم بتغيير التخصيص إذا تحطمت اللعبة.
- تخصيص الذاكرة.
- يتحكم في كمية الذاكرة المعطاة لـ Minecraft
- مشغل جافا فاسد
- بنية غير متوافقة: %s
- مشغلات جافا
- أضف واحدًا جديدا
- اضف محرك جافا جديدة
- مدير مشغلات الجافا
- إدارة مشغلات جافا المثبتة
- تخزين اامعلومات...
- تعيين لإستخدام دائم
- مستخدم دائما
- يجب أن يكون لديك على الأقل مشغل جافا واحد مثبت
- لا يمكن العثور على أي اصدار جافا صالح. هذا الإصدار يتطلب جافا %d أو أحدث.
- لا يمكن العثور على Java 8. لاستخدام هذا الخيار، تحتاج إلى تثبيت Java 8.
- ماينكرافت 21w10a+ يتطلب ملف التعريف الأساسي OpenGL 3.2 من المحزن أن لوحة الرسومات الخاصة بك لا يدعم GL4ES بشكل كامل في الوقت الحالي، ولكن هناك بعض الموارد الإضافية التي يمكنك تثبيتها لتشغيل هذه الإصدارات اضغط على OK لتأكيد التثبيت، واضغط على Cancel لعدم المتابعه.
- تشغيل على أي حال
- مكان تخزين اللعبة
- مدخلات JVM
- إعدادات لكل إصدار
- تغييرات التخزين
- المجلد الجديد لملفات Pojav هو Android/data/%s/files/ (يمكن الوصول إليه أيضًا باستخدام موفر تخزين في مستكشف الملفات الخاص بك). إذا كنت بحاجة إلى نسخ ملفات اللعبة الخاصة بك، يرجى نسخ كل شيء من المجلد الأصلي في الألعاب/ojavLauncher يدويا.]]>
- إزاحة التحكم
- التعويض العلوي:
- التعويض المباشر:
- التعويض السفلي:
- التعويض الأيسر:
- التحكم في التعويضات الجنبيه
- قم بتعيين إزاحة مخصصة لكل جانب من الشاشة
- البَدْء بالفأرة الافتراضية مشغله
- الفيديو والعرض
- الاستدانة، نوع التوسيع، والعرض
- تخصيص التحكم
- أنواع الإيماءات ومفعلاتها و الأحجام
- تعديلات جافا
- أعدادات متنوعة
- قائمة الإصدار، والتحقق من المكاتب
- أشياء تجريبيه
- استخدام الأشياء هناك مع الحذر، لا يوجد مساعده او دعم.
- تمكين وضع الأداء المستقر
- الحد من الاختناق الحراري عن طريق الحد من أداء الذروة
- الحد من الاختناق الحراري عن طريق الحد من أداء الذروة
- العودة إلى الشاشة الأخيرة
- لا تقلص Textures
- تقسم كل textures على 2
- تقسم textures الكبيرة بمقدار /2 أو /4
- بلا اسم
- أحدث اصدار تجريبي
- أحدث إصدار
- تعديل الحساب
- الاسم
- الإصدار
- حذف
- Java Runtime
- العارض
- Cosmetica Capes
- يفعل أوشحه من Cosmetica, (المعروفة مسبقًا ب Arc). لمزيد من المعلومات، يرجى زيارة https://cosmetica.cc, يتطلب Optifine لكي يعمل.
- إعدادات الإصدار %s
- مثبت
-
diff --git a/app_pojavlauncher/src/main/res/values-az-rAZ/strings.xml b/app_pojavlauncher/src/main/res/values-az-rAZ/strings.xml
deleted file mode 100644
index 5597c3bd7..000000000
--- a/app_pojavlauncher/src/main/res/values-az-rAZ/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
- Microsoft girişi
- Hesab tapılmadı !
-
-
-
-
-
-
-
-
- Əlagədar
-
-
- Gözləyin
-
-
-
-
-
-
diff --git a/app_pojavlauncher/src/main/res/values-ba/strings.xml b/app_pojavlauncher/src/main/res/values-ba/strings.xml
deleted file mode 100644
index 01eb7182d..000000000
--- a/app_pojavlauncher/src/main/res/values-ba/strings.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
- PojavLauncher (Android өсөн Minecraft: Java Edition)
- PojavLauncher
- Minecraft: Java Edition үҙегеҙҙең яйланмала ебәрегеҙ!
-
-
-
- Email йәки ҡулланыусы исеме
- Серһүҙ
- Хәтерҙә ҡалдырырға
- Керергә
- Был ҡулланыусы исеме инде бар
- Microsoft менән керергә
- Хисап яҙмалар
-
-
- Был хисап яҙма юйыла!
-
-
- Версиялар юҡ!
- Күберәк
- Әҙерәк
-
- Урынлаштырылды
-
-
-
-
- Йөкләү %s
- Опциялар
- Көйләүҙәр
- Лаунчер тураһында
- Рендерер
- Релиздар
- Снапшотттар
- Иҫке альфалар
- Иҫке беталар
-
- Үҙгәртергә
- Хата
- Иҫкәртеү
- Йөкләү
- Исем
- Юйырға
- Һаҡларға
- Көтөп тороғоҙ
-
- Сығырға
-
- GUI
- Сүбхәт
- ҺСТ
- УСТ
- ◇
- ▲
- ◀
- ▶
- ▼
- ⬛
- F5
- Tab
- Сысҡан
- Сысҡан: Һүн
- Сысҡан: Ҡаб
-
- Журнал
-
-
- «%s» үҙгәртеү
- «%s» юйырғамы?
- Төймәне булдырырға
- Опциялар
- Уйнарға
- %s, рәхим итегеҙ
- Инфо (Эшк.)
- Ҡулланыусыны алмаштырырға
- Версия:
- Исем
- Рендерер
-
diff --git a/app_pojavlauncher/src/main/res/values-bn-rBD/strings.xml b/app_pojavlauncher/src/main/res/values-bn-rBD/strings.xml
deleted file mode 100644
index c1abcc6b6..000000000
--- a/app_pojavlauncher/src/main/res/values-bn-rBD/strings.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
- পোজাভলন্চার(মাইনক্রাফট: জাভা এডিশন আ্যন্ডরয়েডের জন্য)
- পোজাভলন্চার
- লন্চ করুন মাইনক্রাফট: জাভা এডিশন আপনার ডিভাইসে!
-
-
-
- ব্যবহারকারীর নাম বা ইমেল
- পাসওয়ার্ড
- আমাকে লগ ইন করে রাখুন
- লগইন
- ব্যবহারকারীর নাম আগে থেকেই আছে
- আ্যকাউন্ট নির্বাচন করুন
-
-
-
-
-
-
-
-
-
-
- Jidan minecraft
-
-
-
- লগ আউটপুট
-
-
-
diff --git a/app_pojavlauncher/src/main/res/values-bn-rIN/strings.xml b/app_pojavlauncher/src/main/res/values-bn-rIN/strings.xml
deleted file mode 100644
index d90f93ef0..000000000
--- a/app_pojavlauncher/src/main/res/values-bn-rIN/strings.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
- অবৈধ নাম, নামটি 3-16 অক্ষরের মধ্যে হওয়া উচিত, শুধুমাত্র A-Z, A-Z, 0-9 এবং আন্ডারস্কোর থাকা উচিত.
- মাইক্রোসফট লগইন
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app_pojavlauncher/src/main/res/values-ca/strings.xml b/app_pojavlauncher/src/main/res/values-ca/strings.xml
deleted file mode 100644
index 69935aa12..000000000
--- a/app_pojavlauncher/src/main/res/values-ca/strings.xml
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition per Android)
- PojavLauncher
- Juga a Minecraft: edició de Java al teu dispositiu!
-
-
-
- Email o usuari
- Contrasenya
- Mantenir-me connectat
- Iniciar sessió
- Nom d\'usuari invàlid. El nom d\'usuari deu tindre de 3-16 caràcters, sols pot contenir A-Z, a-z, 0-9 i subratllat.
- Aquet nom d’usuari ja existeix
- Inici de sessió amb Microsoft
- Seleccioneu un compte
- No s\'ha trobat un conter!
- No tens cap conter guardat.\nUtilitza la opcio \"Mantín-me iniciat\" per a guardar un conter en la primera connexió.
-
-
- Aquesta conta sera eliminada!
-
- Instala Java Runtime %s (.tar.xz)
- Selecciona un mod per afegir
-
- PojavLauncher s’ha parat inesperadament
- Cap versio!
- Mostra més
- Mostrar menys
-
- Es requireix el permis de llegir/escriure!
- Instalació completada
- Desinstalació de Java Runtime completa
-
-
- Consola de desenvolupador
- Registre de crashes
-
- Connectat
- Local
-
- Apunt de jugar Minecraft %s
- Cleaning cache files
- Downloading %s
- "Descarregant %s (%.2f MB / %.2f MB)"
- Preparing to download resources
- Minecraft no es pot instal·lar legalment quan estigui connectat en el mode local. Per favor, inicia a un conter en línia per a continuar.
- Options
- Inicia un instal·lador de mods (Forge, LabyMod, Fabric, etc...)
- Inicia un instal·lador de mods (amb arguments propis)
- Custom controls
- Settings
- About
- Utilitza la renderització de superfície alternativa
- Pots ajudar al rendiment en escenaris lligats al GPU
- Desinstala Java Runtime
- [Cal reiniciar el llançador] Això us permetrà tornar a instal·lar Java Runtime
- Launch Minecraft in Freeform mode
- Launch Minecraft in floating window. Requires Android 7.0+
- Amagar barra lateral
- Ignorar notch
- Escalador de resolució
- Permet reduir la resolució del joc. 100% és resolució completa
- How long will trigger after long press
- Change trigger time for long press in destroy block and drop item.
- Vés amb compte, això podria provocar un bloqueig del joc si es modifica sense coneixement.
- General settings
- Renderitzador
- Version type will be in version list
- Release
- Snapshot
- Old-alpha
- Old-beta
- Clone
-
- Edit
- Error
- Perill
- Load
- Name
- Remove
- Clone
- Restart
- Save
- S\'està desempaquetant %s
- This field can\'t be empty
- Espera
-
- Exit
- Are you sure want to force close?
- LWJGL3 no s\'ha instal·lat!
- El renderitzador VULKAN Zink no esta suportat en aquest dispositiu!
-
- GUI
- Keyboard
- Chat
- Debug
- Pri
- Sec
- ◇
- Inv
- ▲
- ◀
- ▶
- ▼
- ⬛
- 3rd
- Tab
- Mouse
- Mouse: off
- Mouse: on
-
- Force close
- Registra la sortida
- PointerCapture Debug
- Send custom keycode
- Amplia
- Redueix
-
-
- Keycode
- Mida
- Amplada
- Add button
- Select default Control json
- Options
- Play
- Info (DEV)
- Switch user
- Version:
- No crash detected
- No log.
- Name
- Renderitzador
-
diff --git a/app_pojavlauncher/src/main/res/values-cs/strings.xml b/app_pojavlauncher/src/main/res/values-cs/strings.xml
deleted file mode 100644
index ebe72c076..000000000
--- a/app_pojavlauncher/src/main/res/values-cs/strings.xml
+++ /dev/null
@@ -1,319 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition pro Android)
- PojavLauncher
- Spusť Minecraft: Java Edici ve svém zařízení!
-
-
-
- Email či uživatelské jméno
- Heslo
- Zůstat přihlášen/a
- Přihlásit se
- Neplatné uživatelské jméno. Uživatelské jméno musí být v rozsahu 3-16 znaků, musí obsahovat pouze A-Z, a-z, (bez diakritiky) 0-9 a podtržítko.
- Toto uživatelské jméno již existuje
- Přihlásit Microsoftem
- Vybrat účet
- Nenalezen žádný účet!
- Nemáš žádný uložený účet. \nPoužij možnost \"Zůstat přihlášen/a\", aby se účet uložil při prvním přihlášení.
-
- "Klikněte na ikonu ozubeného kola nahoře na středu pro otevření kontextového menu ⚙\nKlikněte na tlačítko pro přispůsobení: úpravu, změnu velikosti, smazání či přispůsobení jeho klávesové vazby."
-
- Tento účet bude odstraněn!
-
- Nainstalovat Java Runtime %s (.tar.xz)
- Vyber instalatér módu
-
- PojavLauncher neočekávaně spadl
- Žádná verze!
- Zobrazit více
- Zobrazit méně
-
- Je vyžadováno oprávnění pro čtení/zápis do úložiště!
- Instalace byla úspěšná
- Odinstalování Java Runtime dokončeno
-
-
- Wiki
- Vývojářská konzole
- Záznam pádu
-
- Připojen/a
- Místní
-
- Připraveno k spuštení Minecraftu %s
- Čištění souborů mezipaměti
- Stahování %s
- "Stahování %s (%.2f MB / %.2f MB)"
- Příprava ke stažení prostředků
- Minecraft nemůže být legálně nainstalován, používáš-li lokální účet. Prosím přepni na online účet pro pokračování.
- Možnosti
- Spusť instalátor módů (Forge, LabyMod, Fabric, atd...)
- Spustit instalátor módů (s vlastními argumenty)
- Vlastní ovládací prvky
- Nastavení
- O aplikaci
- Použít jiné vykreslování povrchu
- Může pomoci výkonu ve scénářích vázaných na Grafickém Procesoru (GPU)
- Odinstalovat Java Runtime
- [Restart launcheru vyžadován] Toto umožní přeinstalovat Java Prostředí
- Spustit Minecraft v režimu Volného okna
- Spustit Minecraft v plovoucím okně. Vyžaduje Android 7.0+
- Skrýt boční panel
- Nostalgičtí lidé upřednostňujíce v1 rozhraní, možná budou mít tuto možnost rádi. Dává více celo-obrazné prostředí.
- Ignorovat výřez
- Ignorovat výřez a rozšířit obrazovku pod ním.\nDá více celo-obrazný zážitek.
- Škála rozlišení
- Umožňuje snížit rozlišení hry. 100% je plné rozlišení
- Jak dlouho bude trvat dlouhé stisknutí
- Změň čas pro rozbití bloku a vyhození itemu.
- Považovat tlačítko zpět za tlačítko pravé myši
- Některá zařízení berou externí pravé tlačítku jako tlačítko zpět. Používáte-li externí myš, měli byste toto zapnout.
- Styl plochých tlačítek
- Povol pro změnu stylu ovládacího tlačítka na ploché.
- Škálování kontrolních tlačítek
- Zvětšit je, jsou-li tlačítka příliš malá.
- Škálování myši
- Změnit velikost virtuální myši.
- JVM spouštěcí argumenty
- Pozor, toto může způsobit pád hry, jeli upraveno bez znalostí.
- Obecná nastavení
- Nastavení měřítka
- Vykreslovač
- Svatá GL4ES - (všechny verze, rychlá)
- virglrenderer - (verze 1.7+, pomalý)
- vgpu - (do verze 1.16.5, rychlá)
- zink - (stará beta b1.8+, pomalý)
- ANGLE - (verze 1.17+, středně rychlý)
- Jaké typy verzí budou v seznamu verzí
- Vydání
- Snapshot
- Stará alfa
- Stará beta
- Instalátorové pískoviště .jar
- Ovládá dostupnost správce pískoviště při spouštění .jar instalátoru.
- Klonovat
-
- Editovat
- Chyba
- Varování
- Načíst
- Název
- Odstranit
- Klonovat
- Restart
- Uložit
- Rozbalování %s
- Toto pole nemůže být prázdné
- Čekejte
- Vybrat
-
- Aplikace/Hra spadla s kódem %d, zkontroluj latestlog.txt pro více informací.
- Odejít
- Opravdu chcete vynutit ukončení?
- LWJGL3 nebyla nainstalována!
- Vykreslovač Vulkánu Zink není v tomto zařízení podporován!
-
- GUI
- Klávesnice
- Chat
- Ladění
- Pri
- Sek
- ◇
- Inv
- ▲
- ◀
- ▶
- ▼
- ⬛
- Třetí
- Tab
- Myš
- Myš: ne
- Myš: ano
-
- Vynutit zavření
- Záznam výstupu
- Ladění Vstupu
- Poslat vlastní klávesu
- Zvětšit
- Zmenšit
-
- Importovat ovládací prvky
- Neplatný nebo poškozený soubor
- importovat ovládací prvky
- Soubor se ověřuje, počkejte a zkuste to znovu…
- Neplatný název nebo soubor již existuje
- Import dokončen
-
- Upravuji %s
- Odstranit %s?
- Kód znaku
- Přepnutelné
- Velikost
- Šířka
- Výška
- Mapování
- Orientace
- Barva pozadí
- Poloměr rohu
- Šířka obrysu
- Barva obrysu
- Manuální Dynamická pozice
- Dynamický X
- Dynamický Y
- Průhlednost pozadí
- Průhlednost tlačítka
- Kombinace kláves
- Alt
- Ctrl
- Shift
- Přidat tlačítko
- Přidat šuplík tlačítek
- Přidat podtlačítko
- Podtlačítko č.%d bylo přidáno!
- Vybrat .json výchozího ovládání
- Exportovat ovládání
- Sdílet záznamový soubor
- Instalovat .jar
- Možnosti
- Hrát
- Vítej, %s
- Údaje (DEV)
- Přepnout uživatele
- Verze:
- Nenalezen žádný pád
- Žádný záznam.
- Nepodařily se načíst novinky!
- Automaticky bude měnit množství RAM
- Auto RAM
- RAM byla nastavena na %d MB
- Zkontrolovat knihovny po stažení
- Tato možnost donutí spouštěč zkontrolovat hash knihovny, jsou-li k dispozici. Zabraňuje rozbitému stažení.
- Knihovna %s je poškozena a bude znovu stažena
- Knihovna %s nemůže být kontrolována, musíme předpokládat, že je v pořádku
- Knihovna %s je v pořádku a použitelná
- Vypnout gesta
- Zakáže gesta, například podržení pro rozbití bloku a klepnutí pro položení bloku.
- Vypnout dvojité klepnutí pro výměnu rukou
- Vypne dvojité kliknutí na předmět v hotbaru pro vyměnění do druhé ruky
- Rychlost myši
- Změní rychlost softwarové myši
- Převést dotyk
- Povolit přejíždění
- Zaoblené
- Aktuální množství volné RAM (%d) je nižší než přidělená RAM (%d), což může vést k pádu. Spadne-li hra, změňte alokaci.
- Přidělení paměti
- Určete kolik paměti bude mít Minecraft
- Poškozená Java Runtime
- Nekompatibilní architektura: %s
- Java VMy
- Přidat
- Naimportovat novou Java VM
- Runtime Manažer
- Spravovat nainstalované Java VMy
- Kešování...
- Nastavit výchozí
- Výchozí
- Musíš mít nainstalovanou alespoň jednu Java Runtime
- Nelze najít žádnou podporovanou Java Runtime. Tato verze vyžaduje Javu %d nebo novější.
- Nelze najít Javu 8. Chceš-li používat tuto možnost, musíš mít nainstalovanou Java 8.
- Minecraft 21w10a+ vyžaduje jádrový profil OpenGL 3.2. Bohužel, tvůj grafický čip nepodporuje OpenGL ES 3.0 nebo novější, ale existují další možnosti jež můžeš použít pro spuštění těchto verzí. Stisknutím tlačítka OK potvrď použít a stisknutím tlačítka Zrušit ukončíš spouštění.
- I tak hrát
- Složka hry
- JVM argumenty
- Nastavení ku verzím
- Změny úložiště
- Ta nová složka souborů Pojavu je Android/data/%s/files/ (též přístupná z výběru poskytovatele úložiště ve vašem prohlížeči souborů. Potřebujete-li zkopírovat svých souborů hry, prosíme zkopírujte vše z originální složky games/PojavLauncher manuálně.]]>
- Odsazení ovládání
- Horní odsazení:
- pravé odsazení:
- spodní odsazení:
- levé odsazení:
- Strana odsazení ovládání
- Nastavit vlastní odsazení na každou stranu obrazovky
- Spouštět s zapnutou virtuální myší
- Při spuštění se objeví virtuální myš, je-li tato možnost zapnuta
- Video a vykreslovač
- Rozlišení, typ škálování, a vykreslovač
- Přizpůsobení ovládání
- Typy gest, spouštěče a škálování
- Vyladění Javy
- Verze Javy, Argumenty JVM, Množství RAM a pískoviště
- Jiná nastavení
- Seznam verzí, a kontroly knihoven
- Experimentální Věci
- Používej tyto věci s uvážením, nepodporujeme.
- Zapnout režim zmenšeného výkonu
- Limitujíc termální zpomalování, limituje maximální výkon
- Vynutit zapnutí vsync
- Limitujíc termální zpomalování, limituje maximální výkon
- Vynutit angličtinu
- Umožňuje mít originální text, jak byl vymyšlen vývojáři. Vyžaduje restart
- Upravit vlastní ovládací prvky
- Vylaďte ovládací schéma dle vaších potřeb
- Ovládání gyroskopem
- Virtuální myš
- Invertovat osu X
- Invertovat osu Y
- Invertovat vodorovnou osu
- Invertovat svislou osu
- Zpět na předchozí obrazovku
- Nezmenšit textury
- Vydělit všechny textury dvěma
- Vydělit velké textury dvěma či čtyřmi
- Bez názvu
- Poslední Snapshot
- Poslední Release
- Upravování profilu
- Název
- Verze
- Odstranit
- Java Runtime
- Vykreslovač
- Kápě Cosmetica
- Zapne kápě z Cosmeticy (dřiv Arc), vyžadujíc OptiFine. Pro více informací navštivte https://cosmetica.cc.
- Konfigurace verze %s
- Všeobecné
- Popřední Služba Pojavu
- Tato služba je užívána k provádění dlouze běžících čiností
- Nainstalováno
- (Užít globální výchozí nastavení)
- Výchozí ovládání
- Vykonává se %d čiností
- Ukončit
- Hra je spuštěna!
- Stvořit
- Zadat název složky
- Přihlášení bylo dokončeno
- Přidat účet
- Probíhají činosti, prosím počkejte
- Žádné přihlášené účty
- Stahování seznamu verzí…
- Selhalo stahování Minecraftu! Mohlo se tak stát kvůli špatnému internetovému připojení, nesprávně umístěnými soubory apod.
- Neznámá Chyba API Xbox Live %d
- Zdá se že nemáte účet Xbox Live. Jednou se přihlašte na https://minecraft.net/ a zkuste to znovu.
- Váš účet musí být ověřen dospělým.
- Váš účet je dětský, tudíž je potřeba jej přidat do Family pro přihlášení.
- Tento účet nejspíše nemá profil Minecraftu. Máte-li Xbox Game Pass, přihlašte se na https://minecraft.net/ a nastavte jej.
- Xbox Live není ve vaší zemi dostupné
- Zapnout gyroskopové ovládání
- Zapnutí vám umožní otáčet se ve hře otočením telefonu
- Citlivost gyroskopového ovládání
- Upravit citlivost gyroskopového ovládání
- Pro použití tohoto zapněte gyroskopové ovládání!
- Vzorkovací kmitočet gyroskopu
- Máte-li problémy výkonu, užívajíce gyroskopové ovládání, zvyšte toto
- Příliš mnoho požadavků, zkuste to znovu později.
- PojavLauncher vyžaduje mít připojeno externí úložiště. Prosím znovu připojte své úložiště a restartujte aplikaci.
- Zobrazovat pouze velká písmena v textě tlačítek
- Vypněte toto, chcete-li užívat malá písmena ve vlastních ovládání
- Vytvořit nový profil
-
diff --git a/app_pojavlauncher/src/main/res/values-da/strings.xml b/app_pojavlauncher/src/main/res/values-da/strings.xml
deleted file mode 100644
index 931b7144f..000000000
--- a/app_pojavlauncher/src/main/res/values-da/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
-
-
- Ugyldigt brugernavn. Brugernavn skal være mellem 3-16 tegn langt, bør kun indeholde A-Z, a-z, 0-9 og understregning.
- Microsoft login
- Ingen konto fundet!
- Du har ikke nogen gemt konto.\nBrug indstillingen \"Hold mig logget ind\" for at gemme en konto ved første login.
-
-
-
- Installer Java Runtime %s (.tar.xz)
- Vælg et mod-installationsprogram
-
-
- Udført afinstallationen af Java RunTime
-
-
-
- Tilsuttet
- Lokal
-
- "Henter %s (%.2f MB / %.2f MB)"
- Minecraft kan ikke lovligt installeres, når du er logget ind med en lokal konto. Skift til en online konto for at fortsætte.
- Start et mod-installationsprogram (Forge, LabyMod, Fabric, osv...)
- Start et mod-installationsprogram (med brugerdefinerede argumenter)
- Brug alternativ overflade rendering
- Kan hjælpe ydeevne i gpu bundne scenarier
- Afinstaller Java Runtime
- [Launcher genstart påkrævet] Dette giver dig mulighed for at geninstallere Java Runtime
- Skjul sidepanel
- Nostalgiske folk foretrækker den gamle v1 brugerflade kan måske lide dette. Giver dig en mere fuld skærm oplevelse.
- Ignorer kamerahak
- Ignorer kamerahakket og udvider skærmen under det.\nGiver dig en mere fordybende oplevelse.
-
-
-
-
-
- Filen er ugyldig eller beskadiget
-
- Størrelse
- Bredde
- Højde
- Orientering
- Baggrundsfarve
-
diff --git a/app_pojavlauncher/src/main/res/values-de/strings.xml b/app_pojavlauncher/src/main/res/values-de/strings.xml
deleted file mode 100644
index 7f0bf3a7d..000000000
--- a/app_pojavlauncher/src/main/res/values-de/strings.xml
+++ /dev/null
@@ -1,319 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition für Android)
- PojavLauncher
- Spiele Minecraft: Java Edition auf deinem Gerät!
-
-
-
- E-Mail oder Benutzername
- Passwort
- Angemeldet bleiben
- Anmelden
- Ungültiger Benutzername. Der Benutzername muss zwischen 3-16 Zeichen lang sein und sollte nur A-Z, a-z, 0-9 und Unterstriche enthalten.
- Dieser Benutzername ist bereits vergeben
- Microsoft-Login
- Konto auswählen
- Es konnte kein Konto gefunden werden!
- Sie haben keine Konten eingespeichert.\nWähle die Option \"Angemeldet bleiben\" während des Anmeldens aus, um das Konto einzuspeichern.
-
- "Tippe auf das Zahnradsymbol mittig oben, um das Kontextmenü zu öffnen ⚙\nTippe auf eine Schaltfläche, um sie anzupassen: Bearbeiten, Vergrößern, Löschen oder ihre Tastenzuordnung anpassen."
-
- Dieses Konto wird entfernt!
-
- Java Runtime %s (.tar.xz) installieren
- Wähle einen Mod-Installer
-
- PojavLauncher ist unerwartet abgestürzt
- Keine Version!
- Mehr anzeigen
- Weniger anzeigen
-
- Die Lese-/Schreib-Berechtigung für den Speicher ist erforderlich!
- Installation erfolgreich
- Deinstallation der Java Runtime fertiggestellt
-
-
- Wiki
- Entwickler-Konsole
- Absturzbericht
-
- Verbunden
- Lokal
-
- Bereit um Minecraft %s zu spielen
- Cache-Dateien bereinigen
- Lade %s herunter
- "Lade %s herunter (%.2f MB / %.2f MB)"
- Bereite das Herunterladen der Ressourcen vor
- Minecraft kann nicht legal installiert werden, wenn du mit einem lokalen Konto angemeldet sind. Bitte wechsel zu einem Online-Konto, um fortzufahren.
- Optionen
- Starte einen Mod-Installer (Forge, LabyMod, Fabric, u.s.w.)
- Starte einen Mod-Installer (Mit eigenen Argumenten)
- Benutzerdefinierte Steuerung
- Einstellungen
- Über
- Verwende alternatives Oberflächen-Rendering
- Kann die Leistung in GPU-gebundenen Szenarien verbessern
- Java Runtime deinstallieren
- [Launcher Neustart erforderlich] Mit dieser Option können Sie Java Runtime erneut installieren
- Minecraft im Freiform-Modus starten
- Minecraft im schwebenden Fenster starten. Benötigt Android 7.0+
- Seitenleiste ausblenden
- Nostalgiker, die die alte v1-Benutzeroberfläche bevorzugen, könnten dies mögen. Gibt dir ein besseres Vollbild-Erlebnis.
- Ignoriere die Kameraeinkerbung
- Ignoriert die Einbuchtung im Bildschirm und erweitert das Bild unter ihr.\nDie Spielerfahrung wird dadurch immersiver.
- Auflösungsskalator
- Ermöglicht es dir die Spielauflösung zu verringern. 100% ist die normale Auflösung
- Auslösezeit für langes Drücken
- Ändere die Auslösezeit für langes Drücken beim Zerstören des Blocks und Ablegen des Gegenstandes.
- Die Zurück-Taste als Rechte Maustaste werten
- Manche Geräte werten den Rechtsklick einer externen Maus als Zurück-Taste. Solltest du eine externe Maus verwenden, solltest du diese Einstellung aktivieren.
- Flacher Schalflächen-Stil
- Wenn diese Einstellung aktiviert ist, ändert sich der Style der Steuerungsschaltflächen zu einem flachen Style.
- Größe der Steuerelemente
- Vergrößere zu kleine Steuerelemente.
- Größe der Maus
- Ändere die Größe der virtuellen Maus.
- JVM-Start-Argumente
- Passe auf. Sollten die Argumente ohne Fachwissen einfach verändert werden, kann dies zu Abstürzen führen.
- Allgemeine Einstellungen
- Einstellungen für die Größe der Benutzeroberfläche
- Renderer
- Holy GL4ES - (alle Versionen, schnell)
- virglrenderer - (Release 1.7+, langsam)
- vgpu - (bis 1.16.5, schnell)
- zink - (old_beta b1.8+, langsam)
- ANGLE - (Vollversion 1.17+, mittel schnell)
- Versionsarten, welche in der Versionsliste sind:
- Vollversionen
- Entwicklungsversionen
- Old-Alpha
- Old-Beta
- Sandbox-.jar-Installer
- Steuern Sie die Verfügbarkeit des Sandbox-Sicherheitsmanagers beim Starten des .jar-Installers.
- Duplizieren
-
- Bearbeiten
- Fehler
- Warnung
- Laden
- Name
- Entfernen
- Duplizieren
- Neustart
- Speichern
- Entpacke %s
- Dieses Feld darf nicht leer sein
- Bitte warte einen kleinen Moment
- Auswählen
-
- Anwendung/Spiel mit dem Code %d beendet, für weitere Details, latestlog.txt lesen.
- Beenden
- Sind Sie sicher, dass Sie das Beenden erzwingen möchten?
- LWJGL3 wurde nicht installiert!
- Vulkan Zink-Renderer wird auf diesem Gerät nicht unterstützt!
-
- GUI
- Tastatur
- Chat
- Debug
- Pri
- Sek
- ◇
- Inv
- ▲
- ◀
- ▶
- ▼
- ⬛
- 3. Person
- Tab
- Maus
- Maus: Aus
- Maus: An
-
- Erzwinge das Beenden
- Protokoll-Ausgabe
- Eingabe-Debug
- Sende Keycode
- Vergrößern
- Verkleinern
-
- Steuerung importieren
- Ungültige oder beschädigte Datei
- Steuerung importieren
- Datei wird verifiziert, bitte warten und erneut versuchen…
- Ungültiger Dateiname oder Datei bereits vorhanden
- Import abgeschlossen
-
- Editiere %s
- Soll %s entfernt werden?
- Tastencode
- Umschaltbar
- Größe
- Breite
- Höhe
- Zuordnung
- Ausrichtung
- Hintergrundfarbe
- Eckenradius
- Strichbreite
- Strichfarbe
- Dynamische Position
- Dynamische X-Achse
- Dynamische Y-Achse
- Hintergrund-Transparenz
- Deckkraft der Schaltflächen
- Tastenkombination
- Alt
- Strg
- Shift
- Taste hinzufügen
- Schaltflächengruppe hinzufügen
- Sub-Schaltfläche hinzufügen
- Unter-Schaltfläche Nr. %d wurde hinzugefügt!
- Wähle die Standardsteuerung
- Steuerung exportieren
- Protokoll-/Logdatei teilen
- .jar installieren
- Optionen
- Spielen
- Willkommen, %s
- Info (DEV)
- Benutzer wechseln
- Version:
- Es wurde kein Spiel-Absturz festgestellt
- Kein Protokoll.
- Nachrichtenfeed konnte nicht geladen werden!
- Aktiviert automatische RAM-Einstellungen
- Auto-RAM
- Der maximale RAM-Verbrauch ist aktuell auf %d MB gesetzt
- Bibliotheken nach dem Download überprüfen
- Diese Option zwingt den Launcher dazu, den Hash der Bibliothek zu überprüfen, falls er verfügbar ist. Verhindert fehlerhafte Downloads.
- Die Bibliothek %s ist beschädigt und wird erneut heruntergeladen
- Die Bibliothek %s konnte nicht überprüft werden. Wir gehen davon aus, dass sie nicht beechädigt ist
- Die Bibliothek %s ist unbeschädigt und verwendbar
- Gesten deaktivieren
- Diese Einstellung deaktiviert Gesten, wie zum Beispiel gedrückt halten, um einen Block zu zerstören und eine kurze Berührung, um einen Block zu platzieren.
- Doppeltes Tippen zum Tauschen der Hände deaktivieren
- Deaktiviert doppeltes Tippen auf einen Hotbar-Gegenstand, um ihn in der zweiten Hand zu tauschen
- Geschwindigkeit der Maus
- Ändert die Geschwindigkeit der Software-Maus
- Maus ignoriert Schaltflächen
- Wischbar
- Abgerundet
- Die aktuelle Menge an freiem RAM (%d) ist niedriger als zugewiesener RAM (%d), was zu Abstürzen führen kann. Ändere die Zuordnung, wenn das Spiel abstürzt.
- Zugewiesener RAM
- Legt fest, wie viel RAM Minecraft gegeben wird
- Beschädigte Java-Runtime
- Inkompatible Architektur: %s
- Java-VMs
- Hinzufügen
- Neue Java-VM importieren
- Runtime-Verwaltung
- Installierte Java-VMs verwalten
- Caching läuft...
- Als Standard festlegen
- Standard
- Es muss mindestens eine Java-Runtime installiert sein
- Es wurde keine kompatible Java Runtime gefunden. Diese Version benötigt Java %d oder neuer.
- Java 8 kann nicht gefunden werden. Um diese Option nutzen zu können, musst du Java 8 installieren.
- Minecraft 21w10a+ benötigt das OpenGL 3.2-Kernprofil. Dein Grafikchip unterstützt leider nicht OpenGL ES 3.0 oder höher, jedoch gibt es einige zusätzliche Ressourcen, die du installieren kannst, um diese Versionen zu spielen. Drücke OK, um die Installation zu bestätigen, und drücke Abbrechen, um den Start abzubrechen.
- Trotzdem starten
- Spielverzeichnis
- JVM-Argumente
- Einstellungen pro Version
- Änderungen des Speichers
- Der neue Ordner für Pojav-Dateien ist Android/data/%s/files/ (auch über einen Speicheranbieter in deinem Datei-Explorer erreichbar). Wenn du deine Spieldateien kopieren musst, kopiere bitte alles aus dem ursprünglichen Ordner unter games/PojavLauncher manuell.]]>
- Steuerungs-Verschiebung
- Oberere Verschiebung:
- Rechte Verschiebung:
- Untere Verschiebung:
- Linke Verschiebung:
- Seitliche Verschiebungen steuern
- Setzte für jede Seite des Bildschirms eine benutzerdefinierte Verschiebung
- Mit virtueller Maus starten
- Virtuelle Maus wird beim Start angezeigt, wenn diese Option aktiviert ist
- Grafik und Renderer
- Auflösung, Skalierungstyp und Renderer
- Steuerung anpassen
- Gestentypen, Auslöser und Skalierung
- Java-Optimierungen
- Java-Versionen, JVM-Argumente, RAM und Sandbox
- Sonstige Einstellungen
- Versionsliste und Bibliotheksüberprüfungen
- Experimentell
- Benutze diese Einstellungen mit Bedacht, wir leisten keinen Support für diese Features.
- Dauerhaften Leistungsmodus aktivieren
- Begrenzung der thermischen Drosselung durch Begrenzung der Spitzenleistung
- Erzwinge vsync
- Begrenzung der thermischen Drosselung durch Begrenzung der Spitzenleistung
- Englische Sprache erzwingen
- Ermöglicht es dir, die ursprünglichen Texte zu sehen, wie sie von Entwicklern vorgesehen sind. Benötigt einen Neustart
- Benutzerdefinierte Steuerung bearbeiten
- Passe die Steuerung deinen Ansprüchen an
- Gyroskop-Steuerung
- Virtuelle Maus
- X-Achse invertieren
- Y-Achse invertieren
- Invertiert die horizontale Achse
- Invertiert die vertikale Achse
- Zum übergeordneten Menü gehen
- Texturen nicht verkleinern
- Teilt alle Texturen durch 2
- Teilt große Texturen durch /2 oder /4
- Unbenannt
- Neuste Entwicklungsversion
- Neuste Vollversion
- Profil bearbeiten
- Name
- Version
- Löschen
- Java Runtime
- Renderer
- Cosmetica-Umhänge
- Aktiviert Umhänge von Cosmetica (früher Arc). Für weitere Informationen https://cosmetica.cc besuchen. OptiFine wird benötigt.
- %s Versionskonfiguration
- Allgemein
- Pojav-Vordergrunddienst
- Der Dienst wird verwendet, um lange laufende Operationen auszuführen
- Installiert
- (Standardvorgaben verwenden)
- Standardsteuerung
- %d Aufgaben in Bearbeitung
- Beenden
- Das Spiel läuft!
- Erstellen
- Ordnernamen eingeben
- Anmeldung abgeschlossen
- Konto hinzufügen
- Mehrere Aufgaben im Gange, bitte warten
- Keine eingespeicherten Konten
- Lade Versionsliste herunter…
- Fehler beim Herunterladen von Minecraft! Dies kann aufgrund einer schlechte Netzwerkverbindung, falsch platzierter Dateien, etc. passiert sein.
- Unbekannter Xbox-Live-API-Fehler %d
- Du scheinst kein Xbox-Live-Konto zu haben. Bitte melde dich einmal auf https://minecraft.net/ an und versuche es erneut.
- Ein Erwachsener muss dein Konto verifizieren.
- Dein Konto ist ein Kinderkonto und muss in einer Familie hinzugefügt werden, um sich anzumelden.
- Es scheint, als hätte dieses Konto kein Minecraft-Profil. Wenn du den Xbox-Game-Pass hast, logge dich bitte auf https://minecraft.net/ ein und stelle ihn ein.
- Xbox-Live ist in deinem Land nicht verfügbar
- Aktiviere Gyroskop-Steuerung
- Wenn du dies aktivierst, kannst du dich im Spiel umsehen, indem du dein Telefon dreht
- Gyroskop-Steuerungs-Empfindlichkeit
- Passe die Empfindlichkeit der Gyroskop-Steuerung an
- Aktiviere zuerst die Gyro-Steuerung, um dies zu verwenden!
- Gyroskop-Abtastrate
- Wenn du Performanceprobleme mit der Gyroskop-Steuerung hast, erhöhe diese Einstellung
- Zu viele Anfragen – bitte versuche es später erneut.
- PojavLauncher benötigt einen angeschlossenen externen Speicher. Bitte verbinde deinen Speicher erneut und starte die App neu.
- Nur Großbuchstaben in Button-Labels verwenden
- Deaktiviere dies, wenn du Kleinbuchstaben in deinen Steuerelementen verwenden möchtest
- Neues Profil erstellen
-
diff --git a/app_pojavlauncher/src/main/res/values-el/strings.xml b/app_pojavlauncher/src/main/res/values-el/strings.xml
deleted file mode 100644
index ab4c598a7..000000000
--- a/app_pojavlauncher/src/main/res/values-el/strings.xml
+++ /dev/null
@@ -1,200 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition για Android)
- PojavLauncher
- Εκκινήστε το Minecraft: Java Edition στη συσκευή σας!
-
-
-
- Ηλεκτρονικό ταχυδρομείο ή όνομα χρήστη
- Κωδικός Πρόσβασης
- Να παραμείνω συνδεδεμένος
- Είσοδος
- σφάλμα_σύνδεσης_μη_έγκυρο_όνομα_χρήστη
- Αυτό το όνομα χρήστη υπάρχει ήδη
- Microsoft Είσοδος
- Επιλέξτε λογαριασμό
- Δεν βρέθηκε κανένας λογαριασμός !
- Δεν έχετε αποθηκευμένο λογαριασμό.\nΧρησιμοποιήστε την επιλογή \"Κρατήστε με συνδεδεμένο\" για να αποθηκεύσετε έναν λογαριασμό κατά την πρώτη σύνδεση.
-
-
- Αυτός ο λογαριασμός θα αφαιρεθεί!
-
- Εγκατάστησε Java Runtime %s (.tar.xz)
- Επιλέξτε ένα πρόγραμμα εγκατάστασης mod
-
- Ο PojavLauncher κατέρρευσε απροσδόκητα
- Καμία έκδοση!
- Εμφάνιση περισσότερων
- Εμφάνιση λιγότερων
-
- Απαιτείται η ανάγνωση/εγγραφή στον χώρο αποθήκευσης!
- Επιτυχής εγκατάσταση
- Έγινε κατάργηση εγκατάστασης Java Runtime
-
-
- Κονσόλα προγραμματιστή
- Αρχείο καταγραφής κατάρρευσης
-
- Συνδεδεμένος
- Τοπικό
-
- Ετοιμο για να παίξεις Minecraft %s
- Εκκαθάριση χώρου προσωρινής αποθήκευσης αρχείων
- Γίνεται λήψη %s
- "Λήψη %s (%.2f MB / %.2f MB)"
- Προετοιμασία για λήψη πόρων
- Το Minecraft δεν μπορεί να εγκατασταθεί νόμιμα όταν είναι συνδεδεμένο με έναν τοπικό λογαριασμό. Μεταβείτε σε έναν διαδικτυακό λογαριασμό για να συνεχίσετε.
- Ρυθμίσεις
- Εκκινήστε ένα πρόγραμμα εγκατάστασης mod (Forge, LabyMod, Fabric, κλπ...)
- Εκκινήστε ένα πρόγραμμα εγκατάστασης mod (με προσαρμοσμένες παραμέτρους)
- Προσαρμοσμένα controls
- Ρυθμίσεις
- Σχετικά
- Χρησιμοποιήστε εναλλακτική απόδοση επιφανειών
- Μπορεί να βοηθήσει στην απόδοση σε σενάρια με δεσμευμένο gpu
- Απεγκατάστησε το Java Runtime
- [Απαιτείται επανεκκίνηση Launcher] Αυτό σας επιτρέπει να επανεγκαταστήσετε το Java Runtime
- Εκκινήστε το Minecraft σε λειτουργία ελεύθερης μορφής
- Εκκινήστε το Minecraft σε αιωρούμενο παράθυρο. Απαιτεί Android 7.0+
- Απόκρυψη πλευρικής μπάρας
- Νοσταλγικοί άνθρωποι που προτιμούν το παλιό περιβάλλον χρήστη v1 μπορεί να τους αρέσει. Σας δίνει μια πιο πλήρη εμπειρία οθόνης.
- Αγνόηση εγκοπής
- Αγνοήστε την εγκοπή και επεκτείνετε την οθόνη κάτω από αυτήν.\nΣας δίνει μια πιο συναρπαστική εμπειρία.
- Κλίμακα Ανάλυσης
- Σας επιτρέπει να μειώσετε την ανάλυση του παιχνιδιού. Το 100% είναι πλήρης ανάλυση
- Πόση ώρα θα ενεργοποιηθεί μετά από παρατεταμένο πάτημα
- Αλλαγή χρόνου ενεργοποίησης για παρατεταμένο πάτημα σε μπλοκ και απόθεση αντικειμένου.
- Αντιμετωπίστε το κουμπί πίσω ως δεξί ποντίκι
- Ορισμένες συσκευές αντιμετωπίζουν το εξωτερικό δεξί ποντίκι ως πίσω κουμπί. Αν χρησιμοποιείτε εξωτερικό ποντίκι, θα πρέπει να το ενεργοποιήσετε.
- Στύλ επίπεδου κουμπιού
- Ενεργοποιήστε αυτό για να αλλάξετε το στυλ κουμπιού ελέγχου σε επίπεδο.
- Κλίμακα των κουμπιών ελέγχου
- Μεγάλωσε τα κουμπιά αν είναι πολύ μικρά.
- Κλιμάκωση ποντικιού
- Αλλαγή μεγέθους εικονικού ποντικιού.
- JVM Εντολές εκκίνησης
- Να είστε προσεκτικοί, αυτό μπορεί να προκαλέσει συντριβή στο παιχνίδι αν τροποποιηθεί χωρίς γνώση.
- Γενικές ρυθμίσεις
- Ρυθμίσεις κλιμάκωσης
- Απόδοση
- Holy GL4ES - (όλες οι εκδόσεις, γρήγορα)
- virglrenderer - (έκδοση 1.7+, αργή)
- Ο τύπος έκδοσης θα είναι στη λίστα εκδόσεων
- Κυκλοφορία
- Στιγμιότυπο
- Παλιά-alpha
- Παλιά-Beta
- Κλώνος
-
- Επεξεργασία
- Σφάλμα
- Προειδοποίηση
- Φόρτωση
- Όνομα
- Αφαίρεσε
- Κλώνος
- Επανεκκίνηση
- Αποθήκευση
- Αποσυμπίεση %s
- Αυτό το πεδίο δεν μπορεί να είναι κενό
- Περιμένετε
-
- Έξοδος
- Είστε βέβαιοι ότι θέλετε να αναγκάσετε το κλείσιμο;
- Το LWJGL3 δεν έχει εγκατασταθεί!
- Το Vulkan Zink renderer δεν υποστηρίζεται σε αυτήν τη συσκευή!
-
- GUI
- Πληκτρολόγιο
- Συνομιλία
- Αποσφαλμάτωση
- Pri
- Sec
- Κατα
- 3ος
- Καρτέλα
- Ποντίκι
- Ποντίκι: ανενεργό
- Ποντίκι: ενεργό
-
- Αναγκαστικό κλείσιμο εφαρμογής
- Αρχείο Καταγραφής
- Είσοδος Σφάλματος
- Αποστολή προσαρμοσμένου κωδικού κλειδιού
- Κλιμάκωση πάνω
- Κλιμάκωση προς τα κάτω
-
-
- Επεξεργάζεστε %s
- Αφαίρεση %s;
- Κωδικός κλειδί
- Εναλλασσόμενο
- Μέγεθος
- Πλάτος
- Ύψος
- Χαρτογράφηση
- Προσανατολισμός
- Χρώμα φόντου
- Ακτίνα γωνίας
- Πλάτος περιγράμματος
- Χρώμα περιγράμματος
- Δυναμική θέση
- Δυναμικό Χ
- Δυναμικό Υ
- Διαφάνεια φόντου
- Αδιαφάνεια Κουμπιού
- Συνδυασμός πλήκτρων
- Προσθήκη κουμπιού
- Προσθήκη συρταριού πλήκτρων
- Προσθήκη κουμπιού
- Επιλογή προεπιλεγμένου ελέγχου json
- Ρυθμίσεις
- Παίξε
- Καλωσόρισες, %s
- Πληροφορίες (DEV)
- Εναλλαγή χρήστη
- Έκδοση:
- Δεν εντοπίστηκε κατάρρευση
- Δεν υπάρχουν αρχεία καταγραφής.
- Απέτυχε η λήψη της ροής ειδήσεων!
- Ενεργοποιεί τον αυτόματο ρυθμιστή RAM
- Αυτόματη RAM
- Η μνήμη ορίστηκε σε %d MB
- Έλεγχος βιβλιοθηκών μετά τη λήψη
- Αυτή η επιλογή αναγκάζει το launcher να ελέγξει την βιβλιοθήκη hash αν είναι διαθέσιμο. Αποτρέπει τις κατεστραμμένες λήψεις.
- Η βιβλιοθήκη %s έχει υποστεί ζημιά και θα γίνει ξανά λήψη
- Η βιβλιοθήκη %s δεν μπορεί να ελεγχθεί, πρέπει να υποθέσουμε ότι είναι καλή
- Η βιβλιοθήκη %s είναι καλή και χρησιμοποιήσιμη
- Απενεργοποίηση χειρονομιών
- Απενεργοποιεί χειρονομίες, όπως κράτημα για να σπάσεις έναν κύβο και πατήστε για να τοποθετήσετε κύβο.
- Ταχύτητα Ποντικιού
- Αλλάζει την ταχύτητα του ποντικιού του λογισμικού
- Pass-thru ποντικιού
- Ευέλικτο
- Στρογγυλεμένο
- Το τρέχον ποσό της δωρεάν μνήμης RAM (%d) είναι μικρότερο από το κατανεμημένο RAM (%d), το οποίο μπορεί να οδηγήσει σε καταρρεύσεις. Αλλάξτε την κατανομή αν το παιχνίδι καταρρεύσει.
- Κατανομή μνήμης
- Ελέγχει πόση μνήμη δίνεται στο Minecraft
- Κατεστραμμένο Java Runtime
- Java VMs
- Προσθήκη νέου
- Εισαγωγή νέου Java VM
- Διαχειριστής Runtime
- Διαχείριση εγκατεστημένων Java VMs
- Προσωρινή αποθήκευση...
- Ορισμός ως προεπιλογή
- Προεπιλογή
- Πρέπει να έχετε τουλάχιστον ένα Java Runtime εγκατεστημένο
- Κατάλογος παιχνιδιού
- Παράμετροι εκκίνησης JVM
- Ρυθμίσεις Per-version
- Όνομα
- Απόδοση
-
diff --git a/app_pojavlauncher/src/main/res/values-en-rGB/strings.xml b/app_pojavlauncher/src/main/res/values-en-rGB/strings.xml
deleted file mode 100644
index 02d70b238..000000000
--- a/app_pojavlauncher/src/main/res/values-en-rGB/strings.xml
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-
- PojavLauncher(Minecraft: Java Edition for Android)
- PojavLauncher
- Launch Minecraft: Java Edition in your device!
-
-
-
- Email or username
- Password
- Keep me logged in
- Login
- This username already exist
- Microsoft login
- Select account
- No account found !
- You don\'t have any saved account.\nUse the option \"Keep me logged in\" to save an account upon first login.
-
-
- This account will be removed!
-
- Install Java Runtime %s (.tar.xz)
- Select a mod installer
-
- PojavLauncher has unexpectedly crashed
- No version!
- Show more
- Show less
-
- The read/write to storage permission is required!
- Install successful
- Done uninstall Java Runtime
-
-
- Development console
- Crash log
-
- Connected
-
- Ready to play Minecraft %s
- Cleaning cache files
- Downloading %s
- "Downloading %s (%.2f MB / %.2f MB)"
- Preparing to download resources
- Options
- Launch a mod installer (Forge, LabyMod, Fabric, etc...)
- Launch a mod installer (with custom arguments)
- Custom controls
- Settings
- About
- Uninstall Java Runtime
- [Launcher restart required] This let you re-install Java Runtime
- Launch Minecraft in Freeform mode
- Launch Minecraft in floating window. Requires Android 7.0+
- Hide Sidebar
- Nostalgic folks preferring the old v1 UI might like this. Gives you a more fullscreen experience.
- Ignore notch
- Ignore the notch and extends the screen under it.\nGives you a more immersive experience.
- Resolution Scaler
- Allows you to decrease the game resolution. 100% is full resolution
- How long will trigger after long press
- Change trigger time for long press in destroy block and drop item.
- Treat back button as right mouse
- Some devices treats external right mouse as back button. If you are using external mouse, you should enable this.
- Flat button style
- Enable this to change control button style to flat.
- Control buttons scaling
- Upscale them if buttons are too small.
- Mouse scaling
- Change size of virtual mouse.
- JVM Launch arguments
- Be careful, this may make game crash if modified without knowledge.
- General settings
- Scaling settings
- Renderer
- Version type will be in version list
- Release
- Snapshot
- Old-alpha
- Old-alpha
- Clone
-
- Edit
- Error
- Warning
- Load
- Name
- Remove
- Clone
- Restart
- Save
- Unpacking %s
- This field can\'t be empty
- Wait
-
- Exit
- Are you sure want to force close?
- LWJGL3 was not installed!
- Vulkan Zink renderer is not supported on this device!
-
- GUI
- Keyboard
- Chat
- Debug
- Pri
- Sec
- ◇
- Inv
- ▲
- ◀
- ▶
- ▼
- ⬛
- 3rd
- Tab
- Mouse
- Mouse: off
- Mouse: on
-
- Force close
- Log output
- Input Debug
- Send custom keycode
- Scale up
- Scale down
-
-
- Editing %s
- Remove %s?
- Keycode
- Toggleable
- Size
- Width
- Height
- Manual Dynamic position
- Dynamic X-axis
- Dynamic Y-axis
- Background transparency
- Key combination
- Alt
- Ctrl
- Shift
- Add button
- Select default control (.json)
- Options
- Play
- Welcome, %s
- Info (DEV)
- Switch user
- Version:
- No crash detected
- No log.
- Failed to fetch the news feed !
- Enables automatic RAM adjuster
- Auto RAM
- Memory set to %d MB
- Check libraries after downloading
- This option forces launcher to check the library hash if it\'s available. Prevents broken downloads.
- Library %s is damaged and will be redownloaded
- Library %s can\'t be checked, have to assume it\'s good
- Library %s is fine and usable
- Disable gestures
- Disables gestures, such as hold to break block, and tap to place a block.
- Mouse Speed
- Changes the speed of the software mouse
- Mouse pass-thru
- Rounded
- The current amount of free RAM (%d) is lower than allocated RAM (%d), which may lead to crashes. Change the allocation if the game crashes.
- Memory allocation
- Controls how much memory is given to Minecraft
- Corrupted Java Runtime
- Java VMs
- Add new
- Import new Java VM
- Runtime Manager
- Manage installed Java VMs
- Caching...
- Set default
- Default
- Name
- Renderer
-
diff --git a/app_pojavlauncher/src/main/res/values-en-rPS/strings.xml b/app_pojavlauncher/src/main/res/values-en-rPS/strings.xml
deleted file mode 100644
index 335014f0f..000000000
--- a/app_pojavlauncher/src/main/res/values-en-rPS/strings.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition fer Android)
- PojavLauncher
- Launch Minecraft: Java Edition in yer device!
-
-
-
- Email or passport
- Secret Key
- Be keepin\' ye on board fer next time
- Get Aboard
- This passport already \'ere
- Hop aboard with Microsoft
- Be usin\' buccaneer
- We can\'t be findin\' ye bucaneer !
-
-
- This buccaneer will be Marooned!
-
- Settle Java Runtime %s (.tar.xz)
- Be selectin\' a mod settler
-
- PojavLauncher has unfortunately sunk
- No Date o\' creation!
- Keep th\' knowledge out on table
- Keep th\' knowledge inside th\' table
-
- The read/write t\' hold permission be required!
- Success in th\' ship
- Finished unsettlin\' Java Runtime
-
-
- Captain\'s Log
- Sunk ship log
-
- Settled
-
- Be Ready to sail dock %s
- Downloadin %s
- "Building ship %s (%.2f MB / %.2f MB)"
- Gettin\' th\' treasure ready
- Set sail on a mod settler (Forge, LabyMod, Fabric, etc...)
- Set sail on a mod settler (with yer\' codes)
- custom trigger
- Settings
- \'Bout me
- Unsettle Java Runtime
- Don\'t see notch
- Don\'t see notch and extend th\' screen under it.\nGives you more treasure.
- Map size scaler
- Release
- Snapshot
- Ol\'-alpha
- Ol\'-beta
-
- Beware
- Title on yer forhead
- Yar ship needs a lookover
- Unpackin\' %s
- Stay Here
-
- Your boat drown with number %d, check debris for more detail (lastestlog.txt).
- True Story
-
- Keyboard
- Chat
-
- Crow\'s Nest
-
-
- Editin\' %s
- Keelhaul %s?
- Add buttn
- Choose normal Control json
- Sail
- Ahoy, %s
- Info (DEV)
- Change bucaneer
- Dock:
- No sunk ship found
- No Diary.
- RAM by magic
- Sail nevertheless
- Latest prototype
- Latest ship
- Title on yer forhead
- Dock
- Keelhaul
- Cosmetica Mantles
- Enables mantles from Cosmetica (previously Arc). Fer mor\' information be visitin\' https://cosmetica.cc. Requires OptiFine.
-
diff --git a/app_pojavlauncher/src/main/res/values-es/strings.xml b/app_pojavlauncher/src/main/res/values-es/strings.xml
deleted file mode 100644
index 5860cedfe..000000000
--- a/app_pojavlauncher/src/main/res/values-es/strings.xml
+++ /dev/null
@@ -1,273 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition para Android)
- PojavLauncher
- ¡Juega Minecraft: Java Edition en tu celular!
-
-
-
- Correo o nombre de usuario
- Contraseña
- Mantener la sesión iniciada
- Iniciar sesión
- Nombre de usuario inválido. Los nombres de usuario deben tener entre 3-16 caracteres, y solo contienen: A-Z, a-z, 0-9 y guión bajo.
- Este nombre de usuario ya existe
- Cuenta de Microsoft
- Seleccione una cuenta
- ¡Cuenta no encontrada!
- No tienes ninguna cuenta guardada.\nUsa la opción \"Mantenme conectado\" para guardar una cuenta al iniciar sesión por primera vez.
-
-
- ¡Esta cuenta será borrada!
-
- Instalar Java Runtime %s (.tar.xz)
- Selecciona un instalador de mods
-
- PojavLauncher se ha detenido inesperadamente
- ¡No hay versiones!
- Mostrar más
- Mostrar menos
-
- ¡Se requiere el permiso de lectura/escritura al almacenamiento!
- Instalación completada
- Java Runtime exitosamente desinstalado!
-
-
- Consola de desarrollador
- Registro de errores
-
- Conectado
- Local
-
- Listo para jugar Minecraft %s
- Limpiando archivos caché
- Descargando %s
- "Descargando %s (%.2f MB / %.2f MB)"
- Preparando para descargar los recursos
- Minecraft no puede instalarse legalmente debido a que ha iniciado sesión con una cuenta local. Por favor, cambie a una cuenta en línea para continuar.
- Opciones
- Usar un instalador de mods (Forge, LabyMod, Fabric, etc...)
- Iniciar un instalador de mods (con argumentos personalizados)
- Controles personalizados
- Ajustes
- Acerca de
- Usar representación de superficie alternativa
- Puede ayudar al rendimiento en escenarios enlazados por tarjeta gráfica
- Desinstalar Java runtime
- [Reiniciar el lanzador] Esto te permitirá reinstalar Java Runtime
- Lanzar Minecraft en ventana flotante
- Lanzar Minecraft en ventana flotante. Requiere Android 7.0 o superior
- Ocultar barra lateral
- A la gente nostálgica que prefiere la antigua interfaz de usuario v1 le podría gustar. Te da una experiencia más a pantalla completa.
- Ignorar notch (Para teléfonos con pantalla irregular)
- Ignora el notch y extiende la pantalla debajo de él.\nTe da una experiencia más inmersiva.
- Escalador de resolución
- Te permite reducir la resolución del juego. 100% es resolución completa
- Cuanto tiempo hasta que se active la pulsación larga
- Cambia el tiempo de activación durante una pulsación larga en destruir bloques y soltar objetos.
- Tratar el botón de atrás como el ratón derecho
- Algunos dispositivos tratan al ratón derecho externo como el botón de atrás. Si está usando un ratón externo, debería habilitarlo.
- Estilo de botón plano
- Habilita esto para cambiar el estilo de los botones de control a plano.
- Escala de botones del control
- Auméntales el tamaño si los botones son muy pequeños.
- Escala del ratón
- Cambiar el tamaño del ratón virtual.
- JRE Argumentos de lanzamiento
- Ten cuidado, esto puede hacer que el juego se cuelgue si se modifica sin saber.
- Configuración general
- Ajustes de escala
- Renderizador
- Hola, GASES - (ay versión, fase)
- virglrenderer - (release 1.7+, slow)
- vgpu - (up to 1.16.5, fast)
- Zinc - (antiguo b1.8+, lento)
- Java edieditio
- El tipo de versión aparecerá en la lista de versiones
- Lanzamientos
- Snapshots
- Alphas
- Betas
- Clonar
-
- Editar
- Error
- Advertencia
- Cargar
- Nombre
- Eliminar
- Clonar
- Reiniciar
- Guardar
- Descomprimiendo
- Este campo es obligatorio
- Espere
-
- La aplicación/juego ha finalizado con el código %d, mira el archivo latestlog.txt para más detalles.
- Salir
- ¿Estás seguro de que quieres forzar el cierre?
- ¡LWJGL3 no ha sido instalado!
- El renderizador de Vulkan Zink no es compatible en este dispositivo!
-
- Interfaz
- Teclado
- Chat
- Debug
- Pri
- Seg
- ◇
- Inv
- ▲
- ◀
- ▶
- ▼
- ⬛
- 3ra
- Tab
- Ratón
- Ratón: Apagado
- Ratón: Encendido
-
- Forzar el cierre
- Registro de salida
- Ingresar Debug
- Enviar tecla personalizada
- Ampliar
- Reducir
-
- Importar controles
- Archivo inválido o dañado
- importar controles
- El archivo está siendo verificado, por favor espere y vuelva a intentarlo…
- El nombre es inválido o el archivo ya existe
- Importación hecha
-
- Editando %s
- ¿Eliminar %s?
- Tecla
- Activable
- Tamaño
- Anchura
- Altura
- Mapeado
- Orientación
- Color de fondo
- Radio de las esquinas
- Tamaño del trazo
- Color del trazo
- Posición dinámica manual
- X Dinámica
- Y Dinámica
- Transparencia del fondo
- Opacidad del botón
- Combinación de teclas
- Alt
- Ctrl
- Shift
- Añadir botón
- Añadir cajón de botones
- Añadir sub-botón
- ¡El sub-botón n°%d ha sido añadido!
- Seleccionar controles por defecto
- Exporte control
- Instalar .jar
- Opciones
- Jugar
- Bienvenido, %s
- Información (DEV)
- Cambiar de usuario
- Versión:
- No se han detectado fallos
- Sin registros.
- ¡Error al obtener el feed de noticias!
- Habilita el ajuste automático de RAM
- Auto RAM
- Memoria establecida a %d MB
- Comprobar las librerías después de descargar
- Esta opción fuerza al lanzador a comprobar si el hash de la librería está disponible. Evita descargas rotas.
- La librería %s está dañada y se volverá a descargar
- La librería %s no puede ser revisada, se asumirá que está en buen estado
- La librería %s está en buen estado y se puede utilizar
- Desactivar gestos
- Deshabilita gestos, como mantener pulsado para romper el bloque y tocar para colocar un bloque.
- Velocidad del ratón
- Cambia la velocidad del ratón de software
- Passthrough del ratón
- Deslizable
- Redondeado
- La cantidad actual de memoria RAM libre (%d) es menor que la memoria RAM asignada (%d), lo que puede provocar cierres forzados. Cambia la asignación si el juego se cierra.
- Asignación de memoria
- Controla cuánta memoria se le da a Minecraft
- Java Runtime Corrupto
- Arquitectura incompatible: %s
- Java VMs
- Añadir
- Importar un nuevo Java VM
- Administrador de Runtimes
- Gestionar Java VMs instaladas
- Cacheando...
- Establecer como predeterminado
- Predeterminado
- Debes tener al menos un Java Runtime instalado
- No se pudo encontrar ningun runtime de Java compatible. Esta versión requiere Java %d o posterior.
- No se puede encontrar Java 8. Para utilizar esta opción, necesita instalar Java 8.
- Minecraft 21w10a+ requiere el módulo de OpenGL 3.2. Tristemente tu chip gráfico no soporta OpenGL ES 3.0 o superior, pero hay algunos recursos adicionales que tu puedes instalar para iniciar estas versiones. Presione OK para confirmar la instalación, o presione Cancelar para detener el inicio.
- Jugar de todos modos
- Directorio del juego
- Argumentos JVM
- Configuración para esta versión
- Cambio de almacenamiento
- La nueva carpeta para los archivos de PojavLauncher es Android/data/%s/files/ (también accesible usando un proveedor de almacenamiento en su explorador de archivos). Si necesitas copiar tus archivos del juego, por favor copia todo desde la carpeta original en juegos/PojavLauncher manualmente.]]>
- Desplazamiento de control
- Desplazamiento superior:
- desplazamiento derecho:
- desplazamiento inferior:
- desplazamiento izquierdo:
- Control de desplazamiento lateral
- Establecer un desplazamiento personalizado a cada lado de la pantalla
- Iniciar con el ratón virtual encendido
- Video y renderizador
- Resolución, tipo de escalado y renderizador
- Personalización del control
- Tipos de gestos, disparadores y escalado
- Ajustes de Java
- Ajustes varios
- Lista de versiones, y comprobación de librerías
- Cosas experimentales
- Utilice las cosas con consideración, sin apoyo.
- Activar el modo de rendimiento sostenido
- Limita la velocidad térmica limitando el rendimiento máximo
- Limita la velocidad térmica limitando el rendimiento máximo
- Forzar idioma a ingles
- Ratón virtual
- Invertir eje X
- Invertir eje Y
- Invertir el eje horizontal
- Invertir el eje vertical
- Regresar a la pantalla anterior
- No reducir las texturas
- Divida todas las texturas por 2
- Divida grandes texturas por /2 o /4
- Sin nombre
- Snapshot más reciente
- Versión más reciente
- Editando perfil
- Nombre
- Versión
- Eliminar
- Java Runtime
- Renderizador
- Capas de Comestica
- Activa las capas de Cosmetica (anteriormente Arc). Para más información ve a esta página https://cosmetica.cc. Necesitas Optifine.
- %s Configuración de la versión
- Instalada
- Tareas en curso, por favor espere
- No hay cuentas guardadas
- Xbox Live no está disponible en su país
-
diff --git a/app_pojavlauncher/src/main/res/values-et-rEE/strings.xml b/app_pojavlauncher/src/main/res/values-et-rEE/strings.xml
deleted file mode 100644
index 8b3267044..000000000
--- a/app_pojavlauncher/src/main/res/values-et-rEE/strings.xml
+++ /dev/null
@@ -1,176 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition Androidile)
- PojavLauncher
- Käivita oma seadmes Minecraft: Java Edition!
-
-
-
- E-post või kasutajanimi
- Parool
- Hoia mind sisselogituna
- Logi sisse
- Vali konto
-
-
-
-
- Versioon puudub!
- Kuva rohkem
- Kuva vähem
-
-
-
-
- Ühendatud
- Kohalik
-
- Valikud
- Kohandatud juhtnupud
- Seaded
- Teave
- Kasuta alternatiivset pinnarenderdust
- Võib jõudlust aidata graafikamootorit tugevalt kasutavatel olukordadel
- Peida külgriba
- Ignoreeri kulmu
- Ignoreerib kulmu, laiendades ekraaniala selle alla.\nAnnab kaasahaaravama kogemuse.
- Eraldusvõime skaala
- Võimaldav vähendada mängu eraldusvõimet. 100% on täielik eraldusvõime
- Kui kiiresti reageeritakse pärast pikka vajutust
- Muuda pika vajutuse reageerimisaega plokkide lõhkumiseks ja esemete viskamiseks.
- Juhtnuppude suurus
- Kursori suurus
- Renderdaja
- Holy GL4ES - (kõik versioonid, kiire)
- virglrenderer - (väljalase 1.7+, aeglane)
- vgpu - (kuni 1.16.5, kiire)
- zink - (vana beeta b1.8+, aeglane)
- ANGLE - (väljalase 1.17+, keskm.)
- Väljalase
- Katsetus
- Vana alfa
- Vana beeta
- Klooni
-
- Muuda
- Viga
- Hoiatus
- Laadi
- Nimi
- Eemalda
- Klooni
- Taaskäivita
- Salvesta
- %s lahtipakkimine
- See väli ei tohi olla tühi
- Ootamine
-
- Välju
- Vulkan Zink renderdaja ei ole selles seadmes toetatud!
-
- NUPUD
- Klaviat.
- Vestlus
- Silur
- Vasak
- Parem
- Kott
- Keskmine
- Mängijad
- Hiir
- Hiir: väljas
- Hiir: sees
-
- Sundsulge
- Logiväljund
- Sisendite silumine
- Saada kohandatud klahvikood
- Suurendamine
- Vähendamine
-
-
- %s redigeerimine
- Eemaldad %s?
- Klahvikood
- Lülitatav
- Suurus
- Laius
- Kõrgus
- Kaardistamine
- Orientatsioon
- Dünaamiline X
- Dünaamiline Y
- Lisa nupp
- Vali vaikimisi juhtnuppude json
- Paigalda .jar
- Valikud
- Mängi
- Tere tulemast, %s
- Info (arendus)
- Vaheta kasutajat
- Versioon:
- Krahhi ei tuvastatud
- Logi puudub.
- Automaatne RAM
- Muutmäluks seatud %d MB
- Kontrolli teeke pärast allalaadimist
- See valik sunnib käivitajat teekide räsisid kontrollima, kui need on saadaval. Väldib katkiseid allalaadimisi.
- Keela viiped
- Keelab viiped, s.h. ploki lõhkumiseks hoidmine ja asetamiseks koputamine.
- Kursori kiirus
- Kursori läbivus
- Viibatav
- Ümardatud
- Hetkel saadaolev muutmälu (%d) on madalam kui eraldatud muutmälu (%d), mis võib krahhe põhjustada. Kui mäng jookseb kokku, muuda mälueraldust.
- Mälueraldus
- Juhib, kui palju mälu Minecraftile antakse
- Java virtuaalmasinad
- Lisa uus
- Runtime-haldur
- Halda paigaldatud Java virtuaalmasinaid
- Määra vaikimisi
- Vaikimisi
- Mängi siiski
- JVM argumendid
- Käivita lubatud virtuaalse hiirega
- Video ja renderdaja
- Eraldusvõime, skaleerimistüüp ja renderdaja
- Juhtnuppude kohandamine
- Viibete liigid, päästikud ja suurused
- Java trikid
- Java versioonid, JVM argumendid, RAMi kogus ja liivakast
- Mitmesugused seaded
- Versiooniloend ja teekide kontrollid
- Jätkusuutliku jõudluse režiimi sisselülitamine
- Vähenda termilist aeglustamist, piirates tippjõudlust
- Vähenda termilist aeglustamist, piirates tippjõudlust
- Sunni inglise keele kasutus
- Võimaldab sul näha originaalseid väljendeid, nagu arendajad need loonud on. Nõuab taaskäivitust
- Virtuaalne hiir
- Tagasi viimasele kuvale
- Nimetu
- Viimatine katsetus
- Viimatine väljalase
- Nimi
- Versioon
- Kustuta
- Java Runtime
- Renderdaja
- Cosmetica keebid
- Lubab Cosmetica (endine Arc) keebid. Rohkema teabe saamiseks külasta https://cosmetica.cc. Nõuab OptiFine\'i.
- Üldine
- Pojav esiplaaniteenus
- Vaikimisi juhtnupud
- Sundsulge
- Mäng on käimas!
- Loo
- Sisenemine õnnestus
- Lisa konto
- Loo uus profiil
-
diff --git a/app_pojavlauncher/src/main/res/values-fa-rIR/strings.xml b/app_pojavlauncher/src/main/res/values-fa-rIR/strings.xml
deleted file mode 100644
index 7ffcd8530..000000000
--- a/app_pojavlauncher/src/main/res/values-fa-rIR/strings.xml
+++ /dev/null
@@ -1,295 +0,0 @@
-
-
-
- پوجاو لانچر (ماینکرفت: جاوا ادیشن برای اندروید)
- پوجاو لانچر
- ماینکرفت: جاوا ادیشن را روی دستگاه خود اجرا کنید!
-
-
-
- ایمیل یا یوزرنیم
- رمز عبور
- مرا وارد شده نگه دار
- ورود
- نام کاربری نامعتبر است. نام کاربری باید در محدوده 3 تا 16 کاراکتر باشد، فقط باید شامل A-Z، a-z، 0-9 و زیر خط (_) باشد.
- این یوزرنیم قبلا استفاده شده
- ورود با مایکروسافت
- انتخاب اکانت
- هیچ حساب کاربری پیدا نشد!
- شما هیچ حساب ذخیرهشدهای ندارید.\nاز گزینه \"من را وارد سیستم نگه دارید\" برای ذخیره یک حساب در اولین ورود به سیستم استفاده کنید.
-
- "روی نماد چرخ دنده بالا ضربه بزنید تا منو باز شود ⚙\nبرای سفارشی کردن روی دکمه ضربه بزنید: ویرایش، تغییر اندازه، حذف یا سفارشی کردن keybind آن."
-
- این اکانت حذف خواهد شد!
-
- نصب Java Runtime %s (tar.xz.)
- یک نصب کننده ماد را انتخاب کنید
-
- پوجاو لانچر بصورت غیرمنتظره کرش خورد
- بدون ورژن!
- نمایش بیشتر
- نمایش کمتر
-
- دسترسی خواندن/نوشتن حافظه مورد نیاز است!
- نصب موفقیت آمیز بود
- حذف نصب جاوا ران تایم کامل شد
-
-
- کنسول توسعه
- گزارش (لاگ) کرش
-
- متصل
- محلی
-
- آماده برای اجرای ماینکرفت %s
- پاکسازی فایلهای کَش
- در حال دانلود %s
- "درحال دانلود %s (%.2f MB / %.2f MB)"
- آمادهسازی برای دانلود منابع
- وقتی با یک حساب محلی وارد سیستم شوید، ماینکرفت به طور قانونی قابل نصب نیست. لطفاً برای ادامه به یک حساب آنلاین بروید.
- گزینهها
- نصب کننده مد (فورج، لبیماد، فبریک، و غیره) را راهاندازی کنید
- نصب کننده ماد را راه اندازی کنید (با آرگومان های سفارشی)
- کنترلهای شخصی
- تنظیمات
- درباره
- از رندر گیر سطوح جایگزین استفاده کنید
- ممکن است به عملکرد در سناریوهای محدود به پردازنده گرافیکی کمک کند
- جاوا Runtime را حذف نصب کنید
- [راهاندازی مجدد لازم است] این به شما امکان میدهد جاوا Runtime را دوباره نصب کنید
- بازکردن ماینکرفت در حالت Freeform
- بازکردن ماینکرفت در پنجره شناور. نیازمند اندروید 7.0 به بالا
- پنهان کردن نوار کناری
- افراد قدیمی که رابط کاربری قدیمی v1 را ترجیح می دهند ممکن است این را دوست داشته باشند. تجربه تمام صفحه بیشتری را به شما می دهد.
- حفره دوربین را نادیده بگیر
- حفره دوربین را نادیده میگیرد و صفحه زیر آن را گسترش میدهد.\nتجربه ای فراگیرتر به شما می دهد.
- تغییر مقیاس وضوح (رزولوشن)
- به شما امکان می دهد وضوح بازی را کاهش دهید. 100% وضوح کامل است
- زمان مورد نیاز برای فعال کردن فشردن طولانی
- تغییر زمان برای فعال شدن فشردن طولانی جهت کَندَن بلاک و دراپ کردن آیتم.
- دکمه برگشت به عنوان راست کلیک ماوس
- بعضی دستگاهها راست کلیک خارجی را به عنوان دکمه برگشت در نظر میگیرند. اگر شما نیز از ماوس خارجی استفاده میکنید، باید این را فعال کنید.
- سبک دکمه صاف
- برای تغییر سبک دکمه کنترل به صاف، این را فعال کنید.
- تغییر مقیاس دکمه های کنترل
- اگر دکمه ها خیلی کوچک هستند، آنها را بزرگتر کنید.
- تغییر مقیاس موس
- تغییر اندازه ماوس مجازی.
- آرگومانهای جاوا در هنگام اجرا
- مراقب باشید، این ممکن است باعث از کار افتادن بازی در صورت اصلاح بدون اطلاع شود.
- تنظیمات عمومی
- تنظیمات مقیاس
- رندر کننده
- Holy GL4ES - (همه ی نسخه ها، سریع)
- virglrenderer - (نسخه 1.7 به بالا، کُند)
- vgpu - (تا نسخه 1.16.5 سریع)
- zink - (old_beta b1.8 به بعد، آهسته)
- ANGLE - (ورژن 1.17 به بالا، متوسط)
- نوع ورژن برای نمایش در لیست ورژنها
- ریلیز
- اسنپشات
- آلفای-قدیمی
- بتای-قدیمی
- نصب کننده ی .jar در محیط امن
- هنگام راهاندازی فایل jar، در دسترس بودن sandbox security manager را کنترل کنید.
- شبیهسازی
-
- ویرایش
- خطا
- هشدار
- بارگذاری
- نام
- حذف
- شبیهسازی
- راهاندازی مجدد
- ذخیره
- در حال باز کردن %s
- این فیلد نمیتواند خالی باشد
- صبر کنید
- انتخاب
-
- برنامه یا بازی با کد مرجوعی %d خارج شد. برای جزئیات بیشتر به lastlog.text مراجعت کنید.
- خروج
- آیا از خروج اجباری اطمینان دارید؟
- LWJGL3 نصب نشده است!
- رندر کننده Vulkan Zink در این دستگاه پشتیبانی نمیشود!
-
- GUI
- کیبورد
- چت
- دیباگ
- LMB
- RMB
- Inv
- 3rd
- Tab
- ماوس
- ماوس: خاموش
- ماوس: روشن
-
- توقف اجباری
- خروجی گزارش (لاگ)
- ورودی دیباگ
- ارسال keycode شخصی
- بزرگنمایی
- کوچک نمایی
-
- کننترلر ها را وارد کنید
- فایل نامعتبر یا آسیب دیده هست
- کنترلر ها را وارد نمایید
- فایل در حال تأیید است، لطفاً صبر کنید و دوباره امتحان کنید…
- اسم نامعتبر است یا نام فایل از قبل وجود دارد
- وارد کردن انجام شد
-
- ویرایش %s
- حذف %s?
- Keycode
- حالت فعال/غیرفعال
- اندازه
- طول
- ارتفاع
- نقشهبرداری
- جهت
- رنگ پسزمینه
- شعاع گوشه
- ضخامت حاشیه
- رنگ حاشیه
- موقعیت متحرک دستی
- X متحرک
- Y متحرک
- شفافیت پسزمینه
- شفافیت دکمه
- ترکیب کلید
- اضافه کردن دکمه
- افزودن دکمه کشویی
- افزودن زیر-دکمه
- زیر دکمهی %d اضافه شد!
- انتخاب json کنترل پیشفرض
- استخراج کنترلر
- اشتراک گذاری فایل log
- نصب .jar
- گزینهها
- شروع بازی
- خوش آمدید، %s
- اطلاعات (DEV)
- تغییر کاربر
- ورژن:
- هیچ کرشی شناسایی نشد
- بدون لاگ.
- خطا در دریافت اخبار!
- تنظیمکننده اتوماتیک رم را فعال میکند
- رم اتوماتیک
- مموری تنظیم شد روی %d مگابایت
- بررسی کتابخانهها پس از دانلود
- این گزینه لانچر را برای بررسی هَش کتابخانه مجبور میکند. از دانلود های نیمهکاره جلوگیری میکند.
- کتابخانه %s آسیب دیده است و نیاز به دانلود مجدد دارد
- کتابخانه %s نمیتواند بررسی شود، باید فرض کرد که سالم است
- کتابخانه %s سالم و قابل استفاده است
- غیرفعال کردن حسگر ها
- حسگر ها را غیرفعال میکند، مانند نگه دارید تا بلاک کَنده شود و روی صفحه بزنید تا بلاک قرار داده شود.
- سرعت ماوس
- سرعت ماوس نرمافزاری را تغییر میدهد
- ماوس از آن رد شود
- قابل سوایپ
- گرد شده
- میزان رم آزاد فعلی (%d) از میزان رم اختصاص یافته (%d) کمتر است، که ممکن است باعث کرش شود. رم اختصاص یافته را تغییر دهید اگر بازی کرش خورد.
- میزان رم اختصاص یافته
- میزان مموری اختصاص یافته به ماینکرفت را کنترل میکند
- جاوا ران تایم خراب
- معماری ناسازگار: %s
- VM های جاوا
- افزودن جدید
- وارد کردن VM جاوا جدید
- مدیریت ران تایم
- مدیریت VM های نصبشده جاوا
- در حال اعمال کَش...
- تنظیم پیشفرض
- پیشفرض
- شما باید حداقل یک جاوا ران تایم را نصب داشته باشید
- هیچ جاوا سازگاری پیدا نمی شود. این نسخه به جاوای %d یا جدیدتر نیاز دارد.
- جاوا 8 را نمی توان پیدا کرد. برای استفاده از این قابلیت باید جاوا 8 را نصب کنید.
- ماینکرفت 21w10a به بالا، به OpenGL 3.2 نیاز دارد. متأسفانه، تراشه گرافیکی شما از OpenGL ES 3.0 یا بالاتر پشتیبانی نمی کند، اما برخی منابع وجود دارد که می توانید برای اجرای این نسخه ها نصب کنید. برای تأیید نصب، OK را فشار دهید و برای لغو راهاندازی، Cancel را فشار دهید.
- در هر صورت باز کن
- پوشه بازی
- آرگومانهای JVM
- تنظیمات مختص هر ورژن
- تغییرات محل ذخیرهسازی
- پوشه جدید برای فایلهای پوجاو لانچر این است: Android/data/%s/files/ (اجازه دسترسی به مرورگر فایل خود، میتوانید به این فایلها دسترسی پیدا کنید). اگر میخواهید فایلهای بازی را کپی کنید، باید فایلهای پوشه games/PojavLauncher را به صورت دستی کپی کنید.]]>
- حاشیه کنترلر
- حاشیه بالا:
- حاشیه راست:
- حاشیه پایین:
- حاشیه چپ:
- حاشیه کناره های کنترلر
- برای هر سمت صفحه یک مقدار حاشیهی سفارشی تنظیم کنید
- شروع با موسِ مجازیِ روشن
- ویدئو و رندر کننده
- وضوح(رزولوشن)، نوع بزرگنمایی، و رندر کننده
- شخصی سازی کنترلر
- انواع حرکت ها، تریگر ها و بزرگنمایی
- ترفند های جاوا
- نسخه های جاوا، آرگومان های جاوا، مقدار رم و sandbox
- تنظیمات متفرقه
- لیست نسخه و بررسی کتابخانه های جاوا
- چیز های تستی
- از چیزهایی که در آنجا هست با ملاحظه استفاده کنید، بدون پشتیبانی.
- حالت عملکرد پایدار را فعال کنید
- با محدود کردن عملکرد اوج، فشار حرارتی را محدود کنید
- با محدود کردن عملکرد اوج، فشار حرارتی را محدود کنید
- اجبار کردن به زبان انگلیسی
- به شما امکان می دهد رشته های اصلی را همانطور که توسعه دهندگان در نظر گرفته اند مشاهده کنید. نیاز به راهاندازی مجدد دارد
- ویرایش کنترل های شخصی
- طرح کنترل را متناسب با نیازهای خود تغییر دهید
- ماوس مجازی
- بازگشت به صفحه آخر
- تکسچر ها را کوچک نکن
- نصف کردن تکسچر ها
- تقسیم تکسچر های بزرگ در 2 یا 4 قسمت
- بی نام
- جدیدترین اسنپ شات
- جدیدترین نسخه
- ویرایش مشخصات کاربری
- نام
- نسخه
- حذف
- Java Runtime
- رندر کننده
- شنل های Cosmetica
- شنل های Cosmetica (قبلاً Arc) را فعال می کند. برای اطلاعات بیشتر لطفاً به https://cosmetica.cc مراجعه کنید. به OptiFine نیاز دارد.
- کانفیگ نسخه %s
- عمومی
- سرویس پیشزمینه Pojav
- این سرویس برای انجام عملیات طولانی مدت استفاده می شود
- نصب شد
- (از پیشفرض استفاده کنید)
- کنترلر پیش فرض
- %d وظیفه در حال انجام
- خاتمه
- بازی در حال اجراست!
- ایجاد
- نام پوشه را بنویسید
- ورود انجام شد
- اضافه کردن حساب کاربری
- وظایف درحال انجام است، لطفا صبر کنید
- هیچ حساب ذخیره شده ای وجود ندارد
- در حال دانلود لیست نسخهها…
- دانلود Minecraft انجام نشد! این می تواند به دلیل عدم اتصال به اینترنت، فایل های خراب دانلود شده و غیره باشد
- خطای ناشناخته API ایکس باکس لایو %d
- به نظر می رسد که شما حساب Xbox Live ندارید. لطفا در https://minecraft.net/ وارد شوید و دوباره امتحان کنید.
- یک بزرگسال باید حساب شما را تأیید کند.
- حساب شما یک حساب کودک است و برای ورود به سیستم باید به حساب خانواده اضافه شود.
- به نظر می رسد این اکانت، پروفایلِ ماینکرفت ندارد. اگر گیم پسِ ایکس باکس دارید، لطفاً در https://minecraft.net/ وارد شوید و آن را تنظیم کنید.
- ما تو ایرانیم. تحریمیم. با فیلترشکن دوباره وارد شو
- فعال کردن کنترل های ژیروسکوپ
- فعال کردن این امکان به شما امکان می دهد تا با چرخاندن گوشی خود، بازی را کنترل کنید
- حساسیت کنترلر های ژیروسکوپ
- حساسیت کنترل های ژیروسکوپ را تنظیم کنید
- برای استفاده از این، ابتدا کنترل های ژیروسکوپ را فعال کنید!
- نرخ نمونه برداری ژیروسکوپ
- اگر با کنترل های ژیروسکوپ مشکلی دارید، این را افزایش دهید
-
diff --git a/app_pojavlauncher/src/main/res/values-fi/strings.xml b/app_pojavlauncher/src/main/res/values-fi/strings.xml
deleted file mode 100644
index 8f17fcc20..000000000
--- a/app_pojavlauncher/src/main/res/values-fi/strings.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition Androidille)
- PojavLauncher
- Käynnistä Minecraft: Java-versio laitteellasi!
-
-
-
- Sähköposti tai Käyttäjätunnus
- Salasana
- Pidä minut sisäänkirjautuneena
- Kirjaudu sisään
- Tämä käyttäjätunnus on varattu
- Valitse tili
-
-
-
-
- Näytä lisää
- Näytä vähemmän
-
-
-
- Kaatumisloki
-
-
- Valmiina pelaamaan Minecraft %s-versiota
- Asetukset
- Asetukset
- Yleiset asetukset
-
- Varoitus
- Tallenna
-
- Poistu
-
- Hiiri
-
- tallenna tulos
-
-
- Asetukset
- Vaihda käyttäjää
- Versio:
- Nimetön
- VIimeisin snapshot
- Viimeisin julkaisu
- Versio
- Poista
-
diff --git a/app_pojavlauncher/src/main/res/values-fil/strings.xml b/app_pojavlauncher/src/main/res/values-fil/strings.xml
deleted file mode 100644
index 31d44b65c..000000000
--- a/app_pojavlauncher/src/main/res/values-fil/strings.xml
+++ /dev/null
@@ -1,276 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition for Android) Translation By Justine Victorino or EnderProJustine
- PojavLauncher
- Ilunsad ang Minecraft: Java Edition sa iyong device!
-
-
-
- Email o Username
- Ang Password
- Panatilihin akong naka-log in
- Mag-login
- Di-wastong username. Ang username ay dapat nasa hanay ng 3-16 character, dapat ay naglalaman lamang ng A-Z, a-z, 0-9 at underscore.
- Mayroon nang username nakagamit nito
- Pag-login sa Microsoft
- Piliin ng account
- Walang account na natagpuan!
- Wala kang anumang naka-save na account.\nGamitin ang opsyon na \"Panatilihin akong naka-log in\" upang mag-save ng account sa unang pag-log in.
-
- "Pindutin ang nasa gitnang taas na icon para buksan ang menu \nMagpindot ng pindutan para ibahin, palakihin/paliitin, alisin, o ibahin ang keybind nito."
-
- Aalisin ang account na ito!
-
- I-install ang Java Runtime %s (.tar.xz)
- Pumili ng mod installer
-
- Ang PojavLauncher ay hindi inaasahang nag-crash
- Walang bersyon!
- Magpakita ng higit pa
- Magpakita ng kaunti
-
- Kinakailangan ang basahin / sumulat sa pahintulot sa pag-iimbak!
- Ang pag-install ay matagumpay
- Tapos na i-uninstall ang Java Runtime
-
-
- Development console
- Crash log
-
- Connected
- Lokal
-
- Handa nang maglaro ng Minecraft %s
- Nililinis ang mga file ng cache
- Nagda-download %s
- "Dina-download ang %s (%.2f MB / %.2f MB)"
- Naghahanda upang mag-download ng mga mapagkukunan
- Hindi maaaring legal na mai-install ang Minecraft kapag naka-log in gamit ang isang lokal na account. Mangyaring lumipat sa isang online na account upang magpatuloy.
- Mga pilian
- Maglunsad ng mod installer (Forge, LabyMod, Fabric, atbp...)
- Maglunsad ng mod installer (na may mga custom na argumento)
- Pasadyang mga kontrol
- Mga Setting
- Tungkol sa app
- Gumamit ng alternatibong surface rendering
- Maaaring makatulong sa performance sa gpu bound scenario
- I-uninstall ang Java Runtime
- [Kinakailangan ang pag-restart ng launcher] Hinahayaan ka nitong muling i-install ang Java Runtime
- Ilunsad ang Minecraft sa Freeform mode
- Ilunsad ang Minecraft sa lumulutang na window. Nangangailangan ng Android 7.0+
- Itago ang Sidebar
- Maaaring magustuhan ito ng mga nostalhik na mas gusto ang lumang v1 UI. Nagbibigay sa iyo ng mas fullscreen na karanasan.
- Huwag pansinin ang notch
- Huwag pansinin ang notch at i-extend ang screen sa ilalim nito.\nBinibigyan ka ng mas nakaka-engganyong karanasan.
- Resolution Scaler
- Binibigyang-daan kang bawasan ang resolution ng laro. 100% ay full resolution
- Gaano katagal magti-trigger pagkatapos ng mahabang pindutin
- Baguhin ang oras ng pag-trigger para sa mahabang pindutin sa destroy block at drop item.
- Tratuhin ang back button bilang kanang mouse
- Tinatrato ng ilang device ang panlabas na kanang mouse bilang back button. Kung gumagamit ka ng panlabas na mouse, dapat mong paganahin ito.
- Estilo ng flat button
- I-enable ito para gawing flat ang istilo ng control button.
- Pagkontrol sa pag-scale ng mga pindutan
- I-Upgrade ang mga ito kung ang mga pindutan ay masyadong maliit.
- Pag-scale ng mouse
- Baguhin ang laki ng virtual mouse.
- JVM Launch arguments
- Mag-ingat, maaari itong mag-crash ng laro kung babaguhin nang walang kaalaman.
- Mga pangkalahatang setting
- Mga setting ng pag-scale
- Renderer
- Holy Gl4ES - (lahat ng bersyon, mabilis)
- virglrenderer - (bersyong 1.7+, mabagal)
- vgpu - (hangang 1.16.5, mabilis)
- zink - (old_beta b1.8+, mabagal)
- ANGLE - (bersyong 1.17+, medyo ang bilis)
- Ang uri ng bersyon ay nasa listahan ng bersyon
- Release
- Snapshot
- Lumang-alpha
- Lumang-beta
- Pang-install ng Sandbox .jar
- Kontrolin ang availability ng sandbox security manager pag nilalaunch ang .jar installer.
- I-Clone
-
- I-Edit
- Error
- Babala
- Ikarga
- Pangalan
- Tanggalin
- I-Clone
- I-Restart
- I-Save
- Ina-unpack ang %s
- Hindi maaaring walang laman ang field na ito
- Maghintay
- Iselekta
-
- Lumabas ang application/Laro na may code na %d, tingnan ang latestlog.txt para sa higit pang mga detalye.
- Umalis
- Sigurado ka bang gusto mong pilitin na isara?
- Ang LWJGL3 ay hindi na-install!
- Hindi sinusuportahan ang Vulkan Zink renderer sa device na ito!
-
- GUI
- Keyboard
- Mag-usap
- Debug
- Pri
- Sec
- Inv
- 3rd
- Tab
- Mouse
- Mouse: naka-off
- Mouse: naka-on
-
- Piliting isara
- Output ng log
- Input Debug
- Magpadala ng pasadyang keycode
- Scale up
- Scale down
-
- Mag Import ng mga kontrol
- Di-wasto o sira ang file
- Mag import ng mga kontrol
- Bine-verify ang file, mangyaring maghintay at subukang muli…
- Mayroon nang pangalan o file nito
- Tapos na ang pag-import
-
- Ine-edit ang %s
- Tanggalin %s?
- Keycode
- Nai-itoggle
- Sukat
- Lapad
- Taas
- Pag mapa
- Oryentasyon
- Kulay ng likuran
- Corner radius
- Lapad ng stroke
- Kulay ng stroke
- Manu-manong Dynamic na posisyon
- Dynamic X
- Dynamic Y
- Transparency ng Background
- Opacity ng Pindutan
- Key kumbinasyon
- Alt
- Ctrl
- Shift
- Magdagdag ng pindutan
- Magdagdag ng button drawer
- Lagyan ng sub-button
- Naidagdag ang sub-button n°%d !
- Piliin ang default Control json
- I-export ang control
- I-pasa ang log file
- Install .jar
- Mga pilian
- Maglaro
- Maligayang pagdating, %s
- Info (DEV)
- Paglipat ng gumagamit
- Ang Bersyon:
- Walang nakitang pag-crash
- Walang log.
- Nabigong makuha ang news feed!
- Pinapagana ang awtomatikong RAM adjuster
- Awtomatikong RAM
- Nakatakda ang memorya sa %d MB
- Suriin ang mga libraries pagkatapos mag-download
- Pinipilit ng opsyong ito ang launcher na suriin ang hash ng library kung magagamit ito. Pinipigilan ang mga sirang pag-download.
- Ang library ay nasira %s at mai-download
- Hindi masuri ang library %s, kailangang ipalagay na mabuti ito
- Ang library %s ay mabuti at magagamit
- Paganahin ang mga galaw
- Hindi pinagagana ang mga kilos, tulad ng pagpindot upang masira ang bloke, at i-tap upang maglagay ng isang bloke.
- Bilis ng Mouse
- Binabago ang bilis ng mouse ng software
- Mouse pass-thru
- Pwede ma swipe
- Rounded
- Ang kasalukuyang dami ng libreng RAM (%d) ay mas mababa kaysa sa inilalaan na RAM (%d), na maaaring humantong sa mga pag-crash. Baguhin ang paglalaan kung ang laro ay nag-crash.
- Paglalaan ng memorya
- Kinokontrol kung magkano ang memorya na ibinibigay sa Minecraft
- Sirang Java Runtime
- Hindi tugmang arkitektura: %s
- Java VMs
- Magdagdag ng bago
- Mag-import ng bagong Java VM
- Runtime Manager
- Pamamahala sa na-install na mga Java VMs
- Pag-cache...
- Itakda ang default
- Default
- Dapat ay mayroon kang kahit isang Java Runtime na naka-install
- Walang mahanap na anumang katugmang Java Runtime. Ang bersyon na ito ay nangangailangan ng Java %d o mas bago.
- Hindi mahanap ang Java 8. Upang magamit ang opsyong ito, kailangan mong i-install ang Java 8.
- Ang Minecraft 21w10a+ ay nangangailangan ng OpenGL 3.2 core profile. Nakalulungkot, hindi sinusuportahan ng iyong graphics chip ang OpenGL ES 3.0 o mas mataas, ngunit may ilang karagdagang mapagkukunan na maaari mong i-install upang patakbuhin ang mga bersyong ito. Pindutin ang OK upang kumpirmahin ang pag-install, at pindutin ang Kanselahin upang i-abort ang paglulunsad.
- Maglaro pa rin
- Direktoryo ng laro
- Argumento ng JVM
- Mga setting ng bawat bersyon
- Mga pagbabago sa storage
- Ang bagong folder para sa mga Pojav file ay Android/data/%s/files/ (maa-access din gamit ang storage provider sa iyong file explorer). Kung kailangan mong kopyahin ang iyong mga file ng laro, mangyaring kopyahin ang lahat mula sa orihinal na folder sa games/PojavLauncher nang manu-mano.]]>
- Offset ng Control
- Offset ng taas ng controller:
- Offset ng kanang controller:
- Offset ng babang controller:
- Offset ng Kaliwang controller:
- Kontrolin ang mga side offset
- Magtakda ng custom na offset sa bawat panig ng screen
- Magsimula sa virtual na mouse
- Video at renderer
- Resolution, scaling type, at renderer
- Kontrolin ang customization
- Gestures types, triggers, at scaling
- Mga tweaks sa Java
- Bersyon ng Java, Argument ng JVM, Amount ng RAM at sandbox
- Karagdagang setting
- Listahan ng bersyon, at mga checke ng mga libs
- Pang-eksperimentong ng bagay
- Gamitin ang mga bagay doon nang may considerasyon, walang suporta.
- I-enable ang sustained performance mode
- Limitahan ang pang iinit ng device sa pamamagitan ng paglilimita sa peak performance
- Limitahan ang pang iinit ng device sa pamamagitan ng paglilimita sa peak performance
- Pilitin ang wika sa ingles
- Pinepwede kang makita ang original na \"strings\", na intended ng mga gumawa. Kailangan ng restart
- Ibahin ang pasadyang mga kontrol
- Ibahin ang kontrol para sa gusto mo
- Gyro\'ng kontrol
- Virtual mouse
- Baliktarin ang X axis
- Baliktarin ang Y axis
- Baliktarin ang pahalang na aksis
- Baliktarin ang patayong aksis
- Bumalik sa huling screen
- Wag paliitin ang Textures
- I pag-hati ang lahat na texture
- Hinahati ang malalaking texture sa Dalawa (2) o Apat (4)
- Walang pangalan
- Pinakabagong snapshot
- Pinakabagong na nai-release
- I-edit ang profile
- Pangalan
- Bersyon
- Burahin
- Java Runtime
- Renderer
- Capes galing sa Cosmetica
- Pinapagana ang mga kapa mula sa Cosmetica (ang dating Arc). Para sa karagdagang impormasyon mangyaring bisitahin ang https://cosmetica.cc Kinagangailangan ng OptiFine.
- %s pagsasaayos ng bersyon
- Pangkalahatan
- Serbisyong Harapan ng Pojav
- Naka-Install
-
diff --git a/app_pojavlauncher/src/main/res/values-fr/strings.xml b/app_pojavlauncher/src/main/res/values-fr/strings.xml
deleted file mode 100644
index f57b581d9..000000000
--- a/app_pojavlauncher/src/main/res/values-fr/strings.xml
+++ /dev/null
@@ -1,291 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition pour Android)
- PojavLauncher
- Lancez Minecraft: Java Edition sur votre appareil !
-
-
-
- Adresse e-mail ou nom d\'utilisateur
- Mot de passe
- Rester connecté
- Se connecter
- Nom d\'utilisateur invalide. Le nom d\'utilisateur doit être compris entre 3 et 16 caractères, ne doit contenir que A-Z, a-z, 0-9 et underscore.
- Ce nom d\'utilisateur est déjà pris
- Connexion Microsoft
- Choisir un compte
- Aucun compte trouvé !
- Vous n\'avez pas de compte enregistré.\nUtilisez l\'option \"Rester connecté\" pour enregistrer un compte lors de la première connexion.
-
-
- Ce compte sera retiré !
-
- Installer l\'environnement d\'exécution Java %s (.tar.xz)
- Sélectionnez un installateur de mods
-
- PojavLauncher a cessé de fonctionner de façon inattendue
- Aucune version !
- Afficher plus
- Afficher moins
-
- L\'autorisation de lecture/écriture sur le stockage est requise !
- Installation réussie
- Désinstallation de l\'environnement d\'exécution Java terminée
-
-
- Wiki
- Console de développement
- Journal d\'erreurs
-
- Connecté
- Local
-
- Prêt à jouer à Minecraft %s
- Nettoyage des fichiers cache
- Téléchargement de %s
- "Téléchargement de %s (%.2f Mo / %.2f Mo)"
- Préparation du téléchargement des ressources
- Minecraft ne peut pas être installé légalement en étant connecté avec un compte local. S\'il vous plaît changez vers un compte en ligne pour continuer.
- Options
- Lancer un installateur de mods (Forge, LabyMod, Fabric, etc.)
- Lancer un installateur de mods (avec des arguments personnalisés)
- Contrôles personnalisés
- Paramètres
- À propos
- Utiliser un rendu sur une surface alternative
- Peut aider lorsque le GPU contraint la performance
- Désinstaller l\'environnement d\'exécution Java
- [Redémarrage du Launcher requis] Cela vous permet de réinstaller l\'environnement d\'exécution Java
- Lancer Minecraft en mode libre
- Lance Minecraft dans une fenêtre flottante. Requiert Android 7.0 +
- Masquer la barre latérale
- Les gens nostalgiques qui préfèrent l\'ancienne interface utilisateur (v1) peuvent aimer cette option. Vous donne une expérience orienté plein écran.
- Ignorer l\'encoche
- Ignore l\'encoche et étend l\'écran en dessous de celle ci.\nVous donne une expérience plus immersive.
- Échelle de résolution
- Vous permet de diminuer la résolution du jeu. 100% représente la pleine résolution
- Le temps nécessaire pour déclencher une action après un appui long
- Changez le temps de déclenchement pendant un appui long durant la destruction de bloc et lâcher l\'objet.
- Traiter le bouton Retour comme la souris droite
- Certains appareils traitent le clic droit externe comme un bouton retour. Si vous utilisez une souris externe, vous devriez l\'activer.
- Style de bouton plat
- Activez cette option pour changer le style des boutons virtuels pour être plat.
- Mise à l\'échelle des boutons de contrôle
- Mettre à l\'échelle si les boutons sont trop petits.
- Mise à l\'échelle de la souris
- Change la taille de la souris virtuelle.
- Arguments de lancement JVM
- Attention, cela peut faire planter le jeu si ce paramètre est modifié sans connaissance.
- Paramètres généraux
- Paramètres de mise à l\'échelle
- Moteur de rendu
- Holy GL4ES - (toutes les versions, rapide)
- virglrenderer - (version 1.7+, lent)
- vgpu - (jusqu\'à 1.16.5, rapide)
- zink - (ancienne_beta b1.8+, lent)
- ANGLE - (version 1.17+, moyen)
- Type de versions visible dans la liste des versions
- Version officielle
- Snapshot
- Alpha
- Bêta
- Dupliquer
-
- Modifier
- Erreur
- Avertissement
- Charger
- Nom
- Supprimer
- Dupliquer
- Redémarrer
- Sauvegarder
- Décompression de %s
- Ce champ ne peut pas être vide
- Patientez
- Sélectionner
-
- L\'Application/Jeu a quitté avec le code %d, vérifiez le fichier latestlog.txt pour plus de détails.
- Quitter
- Voulez-vous vraiment forcer la fermeture ?
- LWJGL3 n\'a pas été installé !
- Le moteur de rendu Vulkan Zink n\'est pas pris en charge sur cet appareil!
-
- GUI
- Clavier
- Tchat
- Débog.
- Pri
- Sec
- ◇
- Inv
- ▲
- ◀
- ▶
- ▼
- ⬛
- F5
- Tab
- Souris
- Souris : Non
- Souris : Oui
-
- Forcer la fermeture
- Sortie du journal
- Entrée de débogage
- Envoyer une touche personnalisée
- Agrandir
- Réduire
-
- Importer des contrôles
- Fichier invalide ou corrompu
- importation de contrôles
- Le fichier est en cours de vérification, veuillez patienter et réessayer…
- Nom ou fichier non valide déjà existant
- Importation effectuée avec succès
-
- Modification de %s
- Supprimer %s ?
- Touche
- Basculable
- Taille
- Largeur
- Hauteur
- Mapping
- Orientation
- Couleur d\'arrière-plan
- Rayon des coins
- Épaisseur du contour
- Couleur du contour
- Position dynamique
- X dynamique
- Y dynamique
- Transparence de l\'arrière-plan
- Opacité du bouton
- Combinaison de touches
- Alt
- Ctrl
- Maj
- Ajouter un bouton
- Ajouter un tiroir à boutons
- Ajouter un sous-bouton
- Le sous-bouton n°%d a été ajouté !
- Choisir json contrôle par défaut
- Exporter les contrôles
- Partager le fichier journal
- Installer le .jar
- Options
- Jouer
- Bienvenue, %s
- Infos (DEV)
- Changer d\'utilisateur
- Version :
- Aucune erreur détectée.
- Pas de journal.
- Impossible de récupérer le fil d\'actualités !
- Active le régulateur automatique de la mémoire vive
- Mémoire RAM automatique
- Mémoire définie à %d Mo
- Vérifier les bibliothèques après téléchargement
- Cette option force le lanceur à vérifier le hachage de la bibliothèque s\'il est disponible. Empêche les téléchargements défectueux.
- La bibliothèque %s est endommagée et sera retéléchargée
- La bibliothèque %s ne peut pas être vérifiée, et est supposée bonne
- La bibliothèque %s est en bon état et utilisable
- Désactiver les gestes
- Désactive les gestes tels que maintenir enfoncé pour casser le bloc, et appuyer pour placer un bloc.
- Désactiver le double appui pour échanger de mains
- Désactive le double appui sur un item de la barre de l\'inventaire pour l\'échanger dans la seconde main
- Vitesse du curseur
- Change la vitesse de la souris logicielle
- Souris pass-thru
- Balayable
- Arrondi
- La quantité actuelle de RAM libre (%d) est inférieure à la RAM allouée (%d), ce qui peut entraîner des plantages. Changez l\'allocation si le jeu plante.
- Allocation de mémoire
- Contrôle la quantité de mémoire donnée à Minecraft
- Java Runtime corrompu
- Architecture incompatible : %s
- Machine virtuelle Java
- Ajouter un nouveau
- Importer une nouvelle machine virtuelle Java
- Gestionnaire d\'exécution
- Gérer les machines virtuelles Java installées
- Mise en cache...
- Définir par défaut
- Par défaut
- Vous devez avoir au moins un Java Runtime installé
- Impossible de trouver une version de Java compatible. Cette version nécessite au moins Java %d.
- Java 8 est introuvable. Pour utiliser cette option, vous devez installer Java 8.
- Minecraft 21w10a+ requiert d\'OpenGL 3.2 core. Malheureusement, votre GPU ne supporte pas OpenGL ES 3 ou plus, mais il y a des ressources supplémentaires que vous pouvez installer pour exécuter ces versions. Appuyez sur OK pour confirmer l\'installation et appuyez sur Annuler pour annuler le lancement.
- Jouer quand même
- Répertoire du jeu
- Arguments de la JVM
- Réglages par version
- Changements liés au stockage
- The répertoire est maintenant présent dans Android/data/%s/files/ (aussi accessible via l\'explorateur de fichier) Si vous avez besoin de vos anciens fichiers, deplacez les depuis games/PojavLauncher manuellement.]]>
- Marge sur les contrôles
- Marge supérieure:
- Marge de droite:
- Marge inférieure:
- Marge de gauche:
- Marges sur les contrôles
- Définir une marge personnalisé pour chaque côté de l\'écran
- Démarrer avec la souris virtuelle activée
- La souris virtuelle apparaît au démarrage quand cette option est activée
- Vidéo et moteur de rendu
- Résolution, mise à échelle et moteur de rendu
- Contrôlez la customisation
- Gestes, déclencheurs et mise à l\'échelle
- Réglages Java
- Paramètres divers
- Liste des versions, et vérifications des librairies
- Trucs Expérimentaux
- Utilisez ces options avec parcimonie, aucun support.
- Activer le mode de performances soutenues
- Limiter la limitation thermique en limitant les performances maximales
- Forcer l\'activation du vsync
- Limiter la limitation thermique en limitant les performances maximales
- Forcer la langue en anglais
- Modifier les contrôles personnalisés
- Souris virtuelle
- Retour au dernier écran
- Ne pas rétrécir les textures
- Divise toutes les textures par 2
- Divise les grosses textures par 2 ou par 4
- Unnamed
- Dernière snapshot
- Dernière version
- Éditer le profil
- Nom
- Version
- Supprimer
- Exécutable Java
- Moteur de rendu
- Capes Cosmetica
- Active les capes Cosmetica. Pour plus d\'informations visitez https://cosmetica.cc. Nécessite OptiFine.
- Configuration de la version %s
- Général
- Installés
- Contrôle par défaut
- Le jeu est en cours d\'exécution !
- Créer
- Insérer le nom du dossier
- Connexion effectuée
- Ajouter un compte
- Aucun compte enregistré
- Téléchargement de la liste des versions…
- Échec du téléchargement de Minecraft ! Cela peut être dû à une mauvaise connexion réseau, des fichiers mal placés, etc..
- Erreur de l\'API Xbox Live inconnue %d
- Vous ne semblez pas avoir de compte Xbox Live. Veuillez vous connecter une fois sur https://minecraft.net/ et réessayer.
- Un adulte doit vérifier votre compte.
- Vous avez un compte enfant, pour vous connecter vous devez être relié à une famille.
- Il semble que ce compte n\'ait pas de profil Minecraft. Si vous avez le Xbox Game Pas, connectez-vous sur https://minecraft.net/ et configurez-le.
- Xbox Live n\'est pas disponible dans votre pays
- Activer ceci vous permettra de tourner dans le jeu en tournant votre téléphone
-
diff --git a/app_pojavlauncher/src/main/res/values-hi/strings.xml b/app_pojavlauncher/src/main/res/values-hi/strings.xml
deleted file mode 100644
index b8c66ee39..000000000
--- a/app_pojavlauncher/src/main/res/values-hi/strings.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition Android के लिए)
- PojavLauncher
- Launch Minecraft: Java Edition in your device!
-
-
-
- ईमेल या उपयोगकर्ता का नाम
- पासवर्ड/कुंजिका
- मुझे लोग्ड इन रखें
- लॉगिन
- लॉगिन समस्या अवैध वापरकर्ता नाम
- यह उपयोगकर्तानाम/username पहले से मौजूद है।
- लॉगिन माइक्रोसॉफ्ट
- एकाउंट का चयन करें
- खाता नहीं मिला
-
-
- यह खाता हटा दिया जाएगा!
-
-
- पोजावलांचर अप्रत्याशित क्रैश हो गया है
- कोई संस्करण नहीं!
- ज्यादा देखे
- कम देखे
-
- भंडारण अनुमति को पढ़ने/लिखने की आवश्यकता है!
- सफल स्थापित करें
-
-
- विकास कंसोल
- क्रैश लॉग
-
-
- Minecraft खेलने के लिए तैयार %s
- कैशे फ़ाइलों की सफाई
- %s डाउनलोड हो रहा है
- बैक बटन को दाये माउस बटन की तरह इस्तेमाल करे
-
- चेतावनी
-
- बाहर जाएं
-
-
- लॉग आउटपुट
-
-
-
diff --git a/app_pojavlauncher/src/main/res/values-hu/strings.xml b/app_pojavlauncher/src/main/res/values-hu/strings.xml
deleted file mode 100644
index d6e3e577a..000000000
--- a/app_pojavlauncher/src/main/res/values-hu/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app_pojavlauncher/src/main/res/values-in/strings.xml b/app_pojavlauncher/src/main/res/values-in/strings.xml
deleted file mode 100644
index 89615dd19..000000000
--- a/app_pojavlauncher/src/main/res/values-in/strings.xml
+++ /dev/null
@@ -1,308 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition untuk Android)
- PojavLauncher
- Mainkan Minecraft: Java Edition di perangkat Anda!
-
-
-
- Email atau nama pengguna
- Kata sandi
- Buat saya tetap masuk
- Login
- Nama pengguna tidak valid. Nama pengguna harus berada dalam jangka 3-16 karakter, dan hanya bisa berisi A-Z, a-z, 0-9, dan garis bawah.
- Nama pengguna ini sudah ada
- Login Microsoft
- Pilih akun
- Tidak ada akun yang ditemukan!
- Anda tidak punya akun yang sudah disimpan.\nGunakan opsi \"Tetap masuk\" untuk menyimpan sebuah akun waktu login pertama kali.
-
- "Ketuk ikon beroda gigi untuk membuka menu konteks \nKetuk tombol untuk menyesuaikan: ubah, ubah ukuran, atau ubah tombol pintasannya."
-
- Akun ini akan dihapus!
-
- Pasang Runtime Java %s (.tar.xz)
- Pilih sebuah instaler mod
-
- PojavLauncher tiba-tiba crash tanpa diduga
- Versi tidak ada!
- Selengkapnya
- Tampilkan Sedikit
-
- Izin untuk membaca/menulis ke penyimpanan dibutuhkan!
- Pemasangan berhasil
- Selesai mencopot Runtime Java
-
-
- Gili
- Konsol pengembangan
- Catatan crash
-
- Terhubung
- Lokal
-
- Siap untuk bermain Minecraft %s
- Membersihkan file cache
- Mengunduh %s
- "Mengunduh %s (%.2f MB / %.2f MB)"
- Bersiap-siap untuk mengunduh sumber
- Minecraft tidak dapat dipasang secara legal saat masuk dengan akun lokal. Silakan beralih ke akun online untuk melanjutkan.
- Opsi
- Luncurkan sebuah installer mod (Forge, LabyMod, Fabric, etc...)
- Luncurkan sebuah installer mod (dengan argumen buatan sendiri)
- Kontrol kustom
- Pengaturan
- Tentang
- Gunakan alternatif rendering surface
- Mungkin membantu perfoma dalam skenario gpu bound
- Copot Runtime Java
- [Peluncur butuh di buka ulang] Ini membiarkan kamu memasang ulang Runtime Java
- Jalankan Minecraft dalam mode Freeform
- Jalankan Minecraft di jendela mengambang. Membutuhkan Android 7.0+
- Sembunyikan sidebar
- Orang-orang yang bernostalgia lebih memilih UI v1 lama mungkin menyukai ini. Memberi Anda pengalaman layar penuh.
- Abaikan notch
- Abaikan notch dan perluas layar dibawah notch itu.\nMemberi kamu experimen yang lebih luas.
- Pengskala resolusi
- Membolehkan anda untuk menurunkan resolusi permainan. 100% itu resolusi penuh
- Berapa lama untuk melakukan trigger setelah dipencet dengan ditahan
- Ganti waktu trigger setelah melakukan pencetan dengan ditahan untuk menghancurkan dan menjatuhkan item.
- Perlakukan tombol kembali sebagai mouse kanan
- Beberapa perangkat memperlakukan mouse kanan eksternal sebagai tombol kembali. Jika kamu menggunakan mouse eksternal, kamu harus mengaktifkan ini.
- Gaya tombol flat
- Aktifkan ini untuk mengganti gaya tombol kontrol ke flat.
- Penskalaan tombol kontrol
- Tingkatkan skala jika tombol terlalu kecil.
- Penskalaan mouse
- Ubah ukuran mouse virtual.
- Argumen peluncuran JVM
- Hati-hati, ini bisa membuat game crash jika dimodifikasi tanpa sepengetahuan.
- Pengaturan umum
- Pengaturan penskalaan
- Renderer
- Holy GL4ES - (semua versi, cepat)
- virglrenderer - (rilis 1.7+, lambat)
- vgpu - (bisa sampai 1.16.5, cepat)
- zink - (old_beta b1.8+, lambat)
- ANGLE - (rilis 1.17+, pertengahan)
- Jenis versi akan ada dalam daftar versi
- Rilis
- Snapshot
- Alpha-lama
- Beta-lama
- Icelo0896
- icel098875.
- Klon
-
- Edit
- Eror
- Peringatan
- Memuat
- Nama
- Hapus
- Klon
- Restart
- Simpan
- Membongkar %s
- Kolom ini tidak boleh kosong
- Tunggu
- Pilih
-
- Aplikasi/permainan keluar dengan kode %d, cek latestlog.txt untuk detail lebih lanjut.
- Keluar
- Apa anda yakin mau tutup secara paksa?
- LWJGL3 tidak dipasang!
- Renderer Vulkan Zink tidak didukung di perangkat ini!
-
- GUI
- Keyboard
- Chat
- Debug
- Pri
- Sec
- ◇
- Inv
- ▲
- ◀
- ▶
- ▼
- ⬛
- Ke-3
- Tab
- Mouse
- Mouse: mati
- Mouse: nyala
-
- Tutup secara paksa
- Catatan log
- Input Debug
- Kirim keycode kustom
- Besarkan skala
- Kecilkan skala
-
- Impor kontrol
- File tidak valid atau rusak
- Impor kontrol
- File sedang diverifikasi, harap tunggu dan coba lagi…
- Nama tidak valid atau file sudah ada
- Impor selesai
-
- Mengedit %s
- Hapus %s?
- Keycode
- Bisa dialihkan
- Ukuran
- Lebar
- Tinggi
- Mapping
- Orientasi
- Warna background
- Radius sudut
- Tebal garis
- Warna garis
- Posisi Dinamis Manual
- Dinamis X
- Dinamis Y
- Transparansi latar belakang
- Opasitas Tombol
- Kombinasi kunci
- Alt
- Ctrl
- Shift
- Tambah tombol
- Tambahkan tombol drawer
- Tambahkan tombol
- Sub-tombol n°%d telah ditambahkan!
- Pilih \". json\" kontrol default
- Ekspor kontrol
- Bagikan file log
- Install .jar
- Opsi
- Main
- Selamat datang, %s
- Info (DEV)
- Beralih/ganti pengguna
- Versi:
- Tidak ada crash terdeteksi
- Tidak ada catatan log.
- Gagal mengambil umpan berita !
- Mengaktifkan pengatur RAM otomatis
- RAM otomatis
- Memori disetel ke %d MB
- Periksa library setelah mendownload
- Opsi ini memaksa launcher untuk memeriksa hash library jika tersedia. Mencegah unduhan yang rusak.
- Library %s rusak dan akan di-unduh ulang
- Librry %s tidak dapat diperiksa, harus dianggap bagus
- Library %s baik-baik saja dan dapat digunakan
- Matikan gestures
- Mematikan gestures, seperti tahan lama untuk menghancurkan block, dan pencet untuk menempatkan block.
- icelo098875
- Icel098875
- Kecepatan Mouse
- Mengubah kecepatan perangkat lunak mouse
- Mouse pass-thru
- Bisa digesek
- Melengkung
- Jumlah RAM kosong saat ini (%d) lebih rendah dari RAM yang dialokasikan (%d), yang dapat menyebabkan crash. Ubah alokasi jika game crash.
- Alokasi Memori
- Mengkontrol berapa banyak memori yang diberikan ke Minecraft
- Java Runtime Rusak
- Architecture tidak kompatibel: %s
- Java VM
- Tambah baru
- Impor Java VM yang baru
- Pengelola Runtime
- Kelola Java VM yang terpasang
- Menyimpan cache...
- Set default
- Default
- Kamu harus menginstal setidaknya satu Java Runtime
- Tidak dapat menemukan Java Runtime yang kompatibel. Versi ini membutuhkan Java %d atau yang lebih baru.
- Tidak dapat menemukan Java 8. Untuk menggunakan opsi ini, kamu perlu menginstal Java 8.
- Minecraft 21w10a+ membutuhkan profil inti OpenGL 3.2. Sayangnya chip grafis anda tidak sepenuhnya mendukung OpenGL ES 3.0 atau lebih tinggi, tetapi ada beberapa sumber daya tambahan yang dapat kamu instal untuk menjalankan versi ini. Tekan OK untuk mengkonfirmasi penginstalan, dan tekan Batal untuk membatalkan peluncuran.
- Mainkan saja
- Direktori game
- Argumen JVM
- Pengaturan per-versi
- Perubahan penyimpanan
- Folder baru untuk file Pojav berada di Android/data/%s/files/ (juga bisa diakses menggunakan provider penyimpanan di file explorer anda). Jika anda butuh mengkopi file permainan, mohon mengkopi semuanya dari folder original di games/PojavLauncher secara manual.]]>
- Kontrol offset
- Offset atas:
- Offset kanan:
- Offset bawah:
- Offset kiri:
- Kontrol sisi offset
- Atur offset khusus ke setiap sisi layar
- Mulai dengan mouse virtual nyala
- La souris virtuelle apparaît au démarrage quand cette option est activée
- Video dan renderer
- Resolusi, jenis penskalaan, dan renderer
- Kustomisasi kontrol
- Jenis gerakan, pemicu, dan penskalaan
- Tweak Java
- Versi java, JVM Arguments, Jumlah RAM dan sandbox
- Pengaturan lain-lain
- Daftar versi, dan pemeriksaan lib
- Barang Eksperimental
- Gunakan hal-hal di sana dengan pertimbangan, tanpa dukungan.
- Aktifkan mode kinerja berkelanjutan
- Limit thermal throttling dengan menglimit perfoma maksimal
- Paksa nyalakan vsync
- Limit thermal throttling dengan menglimit perfoma maksimal
- Paksa bahasa menggunakan Bahasa Inggris
- Memperbolehkan anda untuk melihat string asli, seperti diinginkan oleh para pengembang. Membutuhkan sebuah restart
- Ubah kontrol kustom
- Kontrol giro
- Mouse virtual
- Balikkan sumbu X
- Balikkan sumbu Y
- Kembali ke layar terakhir
- Jangan mengecilkan tekstur
- Membagi semua tekstur dengan 2
- Membagi tekstur besar dengan /2 atau /4
- Tidak dinamai
- Snapshot terbaru
- Rilis terbaru
- Mengubah profil
- Nama
- Versi
- Hapus
- Runtime Java
- Renderer
- Capes Cosmetica
- Mengaktifkan capes dari Cosmetica (sebelumnya Arc). Untuk informasi lebih lanjut silahkan kunjungi https://cosmetica.cc. Membutuhkan OptiFine.
- Versi konfigurasi %s
- Umum
- Pojav Foreground Service
- Service ini digunakan untuk menjalankang operasi berjalan lama
- Terpasang
- (Gunakan global bawaan)
- Kontrol bawaan
- %d tugas sedang berjalan
- Hentikan
- Permainannya sedang berjalan!
- Buat
- Masukkan nama folder
- Masuk selesai
- Tambah akun
- Ada tugas yang sedang berjalan, mohon menunggu
- Tidak ada akun yang tersimpan
- Mengunduh daftar versi…
- Gagal mengunduh Minecraft! Ini mungkin karena jaringan yang buruk, file yang salah ditempatkan, dll..
- Kamu sepertinya tidak memiliki akun Xbox Live. Tolong login ke https://minecraft.net/ dan ulang kembali.
- Orang tua perlu memverifikasikan akunmu.
- Akunmu adalah akun anak, dan perlu ditambahkan ke keluarga agar dapat masuk.
- Sepertinya akun ini tidak mempunyai profil Minecraft. Jika kamu memiliki Xbox Game Pass, tolong login ke https://minecraft.net/ dan mengaturnya.
- Xbox Live tidak tersedia dinegaramu
- Hidupkan kontrol giroskop
- Nyalakan kontrol giro sebelum menggunakan ini!
- PojavLauncher memerlukan penyimpanan eksternal. Mohon hubungkan ulang penyimpanan Anda dan mulai ulang aplikasi.
- Matikan ini jika Anda hanya ingin menggunakan huruf kecil dalam kontrol Anda
- Buat profil baru
-
diff --git a/app_pojavlauncher/src/main/res/values-it/strings.xml b/app_pojavlauncher/src/main/res/values-it/strings.xml
deleted file mode 100644
index b30fd8120..000000000
--- a/app_pojavlauncher/src/main/res/values-it/strings.xml
+++ /dev/null
@@ -1,317 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition su Android)
- PojavLauncher
- Avvia Minecraft: Java Edition sul tuo dispositivo!
-
-
-
- Indirizzo email o nome utente
- Password
- Resta collegato
- Accedi
- Nome utente non valido. Il nome utente deve essere lungo tra i 3-16 caratteri, dovrebbe contenere solamente valori compresi tra A-Z, a-z, 0-9 e trattini bassi.
- Nome utente già esistente
- Accedi con Microsoft
- Seleziona account
- Nessun account trovato!
- Non hai account salvati.\nUsa l\'opzione \"ricordami\" per salvare un account al primo login.
-
- "Tocca l'icona dell'ingranaggio in alto al centro per aprire il menu contestuale ⚙\nTocca un pulsante da personalizzare: modifica, ridimensiona, eliminare o cambia l'assegnazione di tasti."
-
- L\'account sarà cancellato!
-
- Installa Runtime Java %s (.tar.xz)
- Seleziona un installer mod
-
- PojavLauncher è crashato inaspettatamente
- Nessuna versione!
- Mostra altro
- Mostra meno
-
- Permesso di scrittura/lettura sulla memoria necessario!
- Installato con successo
- Disinstallazione Runtime Java completato
-
-
- Console sviluppatore
- Crash log
-
- Connesso
- Locale
-
- Minecraft %s pronto
- Pulizia dei file di cache in corso
- Scaricando %s
- "Scaricando %s (%.2f MB / %.2f MB)"
- Preparazione per il download delle risorse
- Minecraft non può essere legalmente installato quando accedi con un account locale. Passa a un account online per continuare.
- Impostazioni
- Avvia un mod installer (Forge, LabyMod, Fabric, ecc...)
- Avvia un mod installer (personalizzato)
- Controlli personalizzati
- Impostazioni
- Informazioni
- Usa alternate surface rendering
- Può migliorare le prestazioni in caso di uso della gpu
- Disinstalla Java Runtime
- [Riavvio del launcher necessario] Questo ti lascerà reinstallare il Runtime Java
- Avvia Minecraft in modalità finestra
- Avvia Minecraft in finestra fluttuante. Necessario Android 7.0+
- Nascondi barra laterale
- Potrebbe piacere alle persone che preferiscono la vecchia interfaccia utente v1. Offre un\'esperienza migliore a schermo intero.
- Ignora notch
- Estende lo schermo al di sotto del notch.\nOffre un\'esperienza più immersiva.
- Scala Risoluzione
- Ti permette di diminuire la risoluzione del gioco. 100% è la risoluzione massima
- Per quanto tempo rimarrà attivo dopo una pressione prolungata
- Cambia il tempo di attivazione per una pressione prolungata nel rompimento di un blocco e il drop di un item.
- Usa il pulsante indietro come destro mouse
- Alcuni dispositivi utilizzano come pulsante indietro il tasto destro del mouse. Se stai usando un mouse esterno, dovresti abilitarlo.
- Stile pulsante piatto
- Abilita l\'opzione per impostare lo stile piatto dei pulsanti di controllo.
- Dimensione controlli
- Aumenta le dimensioni se i pulsanti sono troppo piccoli.
- Dimensioni mouse
- Cambia dimensioni mouse virtuale.
- Argomenti di avvio della JVM
- Attenzione, il gioco potrebbe crashare se effettui modifiche senza sapere quello che fai.
- Impostazioni generali
- Impostazioni dimensioni
- Renderer
- Holy GL4ES - (Tutte le versioni, veloce)
- virglrenderer - (versione 1.7+, lento)
- vgpu - (fino alla 1.16.5, veloce)
- zink - (old_beta b1.8+, lento)
- ANGLE - (versione 1.17+, mediamente veloce)
- Tipo di versioni che saranno nell\'elenco delle versioni
- Finale
- Snapshot
- Vecchie-alpha
- Vecchie-beta
- Programma installazione sandbox .jar
- Controlla la disponibilità del gestore della sicurezza sandbox all\'avvio del programma di installazione .jar.
- Clona
-
- Modifica
- Errore
- Avviso
- Carica
- Nome
- Rimuovi
- Clona
- Riavvia
- Salva
- Estrazione %s
- Questo campo non può essere vuoto
- Attendere
- Seleziona
-
- L\'applicazione/gioco si è chiuso con il codice %d, controlla il lastlog.txt per più dettagli.
- Esci
- Sei sicuro di voler eseguire una chiusura forzata?
- LWJGL3 non installato!
- Il renderer Vulkan Zink non è supportato su questo dispositivo!
-
- GUI
- Tastiera
- Chat
- Debug
- Pri
- Sec
- ◇
- Inv
- ▲
- ◀
- ▶
- ▼
- ⬛
- 3°
- Tab
- Mouse
- Mouse: off
- Mouse: on
-
- Chiusura forzata
- Registro log
- Debug input
- Invia keycode personalizzato
- Aumenta
- Diminuisci
-
- Importa controlli
- File corrotto o non valido
- importa controlli
- Verifica del file in corso, per favore attendi e riprova…
- Nome non valido o file già esistente
- Importazione completata
-
- Modificando %s
- Rimuovere %s?
- Keycode
- Attivabile
- Dimensione
- Larghezza
- Altezza
- Mapping
- Orientamento
- Colore di sfondo
- Raggio dell\'angolo
- Spessore tratto
- Colore tratto
- Posizione dinamica
- Altezza dinamica
- Larghezza dinamica
- Trasparenza sfondo
- Opacità pulsante
- Combinazione di tasti
- Alt
- Ctrl
- Shift
- Aggiungi pulsante
- Aggiungi drawer pulsanti
- Aggiungi sotto-pulsante
- Il sotto-pulsante n°%d è stato aggiunto!
- Seleziona Controllo di default json
- Esporta controlli
- Condividi file di log
- Installa .jar
- Impostazioni
- Gioca
- Benvenuto/a, %s
- Info (DEV)
- Cambia utente
- Versione:
- Nessun crash rilevato
- Nessun log.
- Scaricamento ultime novità fallito!
- Attiva regolatore RAM automatico
- RAM automatica
- RAM impostata a %dMB
- Controlla le librerie dopo il download
- Questa opzione forza il launcher a controllare l\'integrità della libreria se è possibile. Previene i download corrotti.
- La libreria %s è danneggiata e sarà scaricata nuovamente
- La libreria %s non può essere controllata, sarà ignorata e applicata comunque
- La libreria %s va bene ed è usabile
- Disattiva gestures
- Disattiva gestures, ad esempio premere per rompere un blocco, e cliccare per piazzarlo.
- Velocità mouse
- Cambia la velocità del mouse
- Bypassa mouse
- Swipeabile
- Arrotondato
- L\'attuale quantità di RAM libera (%d) è minore di quella allocata (%d), la quale potrebbe portare a crash inaspettati. Modifica la quantità di RAM allocata in caso di crash.
- Memoria allocata
- Controlla quanta memoria dedicare a Minecraft
- Runtime Java corrotta
- Architettura non compatibile: %s
- Java VM
- Aggiungi
- Importa nuova Java VM
- Runtime Manager
- Gestisci Java VM installate
- Memorizzando nella cache...
- Imposta predefinito
- Predefinito
- Devi avere almeno un Runtime Java installato
- Impossibile trovare Java Runtime compatibili. Questa versione richiede almeno Java %d o successiva.
- Impossibile trovare Java 8. Per usare questa opzione, è necessario installare Java 8.
- Minecraft 12w10a+ richiede il profilo OpenGL 3.2 core. Sfortunatamente, la tua GPU non supporta versioni di OpenGL ES 3.0 o successive, ma ci sono alcune risorse aggiuntive che puoi installare per usare queste versioni. Premi OK per confermare l\'installazione, oppure Cancel per annullare.
- Gioca comunque
- Cartella gioco
- Argomenti JVM
- Impostazioni per versione
- Modifiche archiviazione
- La nuova cartella per i file Pojav è Android/data/%s/files/ (anche accessibile tramite un provider di archiviazione nel tuo file explorer). Se hai bisogno di copiare i file di gioco, copia tutto dalla cartella originale a giochi/PojavLauncher manualmente.]]>
- Offset controlli
- Offset superiore:
- Offset destro:
- Offset inferiore:
- Offset sinistro:
- Controllo offset laterali
- Imposta un offset personalizzato ad ogni lato dello schermo
- Inizia con il mouse virtuale attivo
- Il mouse virtuale appare all\'avvio quando questa opzione è attiva
- Video e renderer
- Risoluzione, ridimensionamento, e renderer
- Personalizza controlli
- Gestures, trigger, e scala
- Tweaks Java
- Versioni Java, argomenti JVM, quantità RAM e sandbox
- Impostazioni varie
- Lista versioni, e controlli librerie
- Funzioni sperimentali
- Usa queste funzioni a tuo rischio, nessun supporto.
- Attiva modalità performance sostenute
- Limita il thermal throttling limitando le performance massime
- Forza sincronia verticale
- Limita il thermal throttling limitando le performance massime
- Forza lingua Inglese
- Ti consente di vedere le stringhe originali, come previsto dagli sviluppatori. Richiede un riavvio dell\'app
- Modifica i controlli personalizzati
- Regola lo schema di controllo per soddisfare le tue esigenze
- Controlli giroscopio
- Mouse virtuale
- Inverti l\'asse X
- Inverti l\'asse Y
- Inverti l\'asse orizzontale
- Inverti l\'asse verticale
- Ritorna alla schermata precedente
- Non rimpicciolire le textures
- Dividi tutte le texture di 2
- Dividi le texture più grandi di /2 o /4
- Senza nome
- Ultimo Snapshot
- Ultima Release
- Modifica profilo
- Nome
- Versione
- Elimina
- Runtime Java
- Renderer
- Mantelli Cosmetica
- Abilità i mantelli di Cosmetica (precedentemente Arc). Per ulteriori informazioni visita https://cosmetica.cc. Necessita OptiFine.
- Configurazione versione %s
- Generale
- Servizio di Foreground Pojav
- Il servizio viene utilizzato per eseguire delle operazioni di lunga durata
- Installato
- (Utilizza il predefinito globale)
- Controlli predefiniti
- %d operazioni in corso
- Termina
- Il gioco è in esecuzione!
- Crea
- Inserisci il nome della cartella
- Login effettuato
- Aggiungi un account
- Operazioni in corso, attendi
- Nessun account salvato
- Download lista versioni…
- Impossibile scaricare Minecraft! Questo può essere dovuto a una scarsa connessione a internet, file posizionati in modo errato, ecc..
- Errore sconosciuto di Xbox Live API %d
- Sembra che tu non abbia un account Xbox Live.
-Accedi almeno una volta su https://minecraft.net/ e riprova.
- Un adulto deve verificare il tuo account.
- Il tuo account è un account bambino e deve essere aggiunto in una famiglia per poter accedere.
- Sembra che questo account non abbia un profilo Minecraft. Se hai Xbox Game Pass, accedi su https://minecraft.net/ e impostalo.
- Xbox Live non è disponibile nel tuo paese
- Abilita controlli giroscopio
- Abilitando questo potrai girare in gioco ruotando il telefono
- Sensibilità giroscopio
- Regola la sensibilità del giroscopio
- Abilita i controlli del giroscopio prima di usarli!
- Frequenza di campionamento giroscopio
- Se avete problemi di prestazioni con i controlli del giroscopio, aumentare questo
- Troppe richieste, riprova più tardi.
- PojavLauncher richiede una memoria esterna collegata. Ricollega la memoria e riavvia l\'applicazione.
- Usa solo lettere maiuscole nelle etichette dei pulsanti
- Disabilita questa opzione se vuoi usare lettere minuscole nei tuoi controlli
- Crea nuovo profilo
-
diff --git a/app_pojavlauncher/src/main/res/values-iw/strings.xml b/app_pojavlauncher/src/main/res/values-iw/strings.xml
deleted file mode 100644
index e62dec3ea..000000000
--- a/app_pojavlauncher/src/main/res/values-iw/strings.xml
+++ /dev/null
@@ -1,240 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition for Android)
- PojavLauncher
- פתח את Minecraft: Java edition במכשירך!
-
-
-
- דוא\"ל או שם משתמש
- סיסמה
- השאר אותי מחובר
- התחבר
- שם המשתמש לא תקין. שם המשתמש צריך להיות בטווח של 3-16 תווים, לכלול רק A-Z, a-z, 0-9 וקו תחתון.
- שם המשתמש כבר קיים
- התחברות Microsoft
- בחר חשבון
- לא נמצאו חשבונות!
- אין לך אף חשבון שמור.\nהשתמש באפשרות \"השאר אותי מחובר\" כדי לשמור חשבון בכניסה הראשונה.
-
-
- החשבון יוסר!
-
- התקן Java Runtime %s (.tar.xz)
- בחר מתקין mod
-
- PojavLauncher קרס באופן בלתי צפוי
- אין גרסה!
- הצג עוד
- הצג פחות
-
- הרשאה לקריאה/כתיבה לאחסון נדרשת!
- ההתקנה הסתיימה בהצלחה
- הסרת ההתקנה של Java Runtime בוצעה
-
-
- מסוף מפתחים
- רשומת קריסה
-
- מחובר
- מקומי
-
- מוכן להפעיל Minecraft %s
- מנקה קבצי מטמון
- מוריד %s
- "מתקין %s (%.2f MB / %.2f MB)"
- מתכונן להורדת משאבים
- לא ניתן להתקין מיינקראפט כאשר מתחברים לחשבון מקומי. הנכם מתבקשים להתחבר לחשבונכם על מנת להמשיך בהתקנה.
- אפשרויות
- הפעל אשף התקנה ל-mod (למשל: Forge, LabyMod, Fabric, וכדומה)
- הפעל אשף התקנה ל-mod (עם פרמטרים מותאמים אישית)
- פקדים מותאמים אישית
- הגדרות
- על אודות
- עשוי להועיל בביצועי ה-GPU בתנאים מסוימים
- הסר התקנת Java Runtime
- [אתחול נדרש] זה ייאפשר להתקין מחדש את Java Runtime
- פתח Minecraft במצב Freeform
- פתח Minecraft בחלון מרחף. Android 7.0 ומעלה נדרש
- הסתר את סרגל הצד
- אנשים נוסטלגיים שמעדיפים את ממשק המשתמש v1 הישן עשויים לחבב זאת. נותן לך חוויה במסך מלא יותר.
- התעלם מהחתך
- מתעלם מהחתך ומאריך את המסך מתחתיו.\nמעניק חוויה יותר סוחפת.
- קנה מידה של רזולוציה
- מאפשר לשנות את רזולוציית המשחק. 100% הינה רזולוציה מלאה
- אחרי כמה זמן יופעל הטריגר לאחר לחיצה ארוכה
- שנה את הזמן ללחיצה ארוכה בעת שבירת בלוקים וזריקת חפצים.
- התייחס ל\"אחורה\" ככפתור ימני בעכבר
- מספר מכשירים מתייחסים לכפתור הימני בעכבר חיצוני ככפתור \"אחורה\". אם את/ה משתמש/ת בעכבר חיצוני, עליך להפעיל זאת.
- סגנון כפתור שטוח
- הפעל זאת כדי לשנות את סגנון כפתורי השליטה לשטוחים.
- קנה המידה של כפתורי השליטה
- הגדל את הכפתורים אם הם קטנים מדי.
- קנה המידה של העכבר
- שנה את גודלו של העכבר הוירטואלי.
- פרמטרים להפעלת JVM
- זהירות! שינוי ערכים אלה ללא ידע מתאים עלול לגרום למשחק לקרוס.
- הגדרות כלליות
- הגדרות קנה מידה
- רינדור
- סוג הגרסה שיופיע ברשימת הגרסאות
- הפצה
- סנאפשוט
- אלפא: גרסה ישנה
- בטא: גרסה ישנה
- שכפול
-
- ערוך
- שגיאה
- אזהרה
- טען
- שם
- הסר
- שכפול
- אתחול
- שמור
- מחלץ את %s
- שדה זה אינו יכול להיות ריק
- המתן
-
- היישומון / המשחק קרס, עם קוד שגיאה %d, בדוק את latestlog.txt למידע נוסף.
- צא
- האם אתה בטוח שאתה רוצה לכפות כיבוי?
- LWJGL3 לא הותקן!
- מרנדר Vulkan Zink לא נתמך במכשיר זה!
-
- ממשק משתמש(GUI)
- מקלדת
- צ\'אט
- נפה באגים
- Pri
- Sec
- Inv
- 3rd
- Tab
- עכבר
- עכבר: מושבת
- עכבר: פעיל
-
- כפה כיבוי
- לוג פלט
- ניפוי שגיאות קלט
- שלח קוד מקש מותאם אישית
- הגדל
- הקטן
-
- ייבוא פקדים
- קובץ שגוי או פגום
- ייבוא פקדים
- הקובץ נמצא באימות, אנא המתן ונסה שוב…
- שם שגוי או שהקובץ כבר קיים
- ייבוא בוצע
-
- עורך %s
- למחוק %s?
- קוד מקש
- מתג
- גודל
- רוחב
- גובה
- מיפוי
- כיוון
- צבע הרקע
- רדיוס פינה
- עובי קו המתאר
- צבע קו המתאר
- מיקום דינמי
- X דינמי
- Y דינמי
- שקיפות רקע
- שקיפות הכפתור
- צירוף מקשים
- Alt
- Ctrl
- Shift
- הוסף כפתור
- הוסף צייר של כפתור
- הוסף תת-כפתור
- בחר קובץ שליטה כברירת מחדל
- התקנת .jar
- אפשרויות
- הפעל
- ברוך הבא, %s
- מידע (מפתח)
- החלף משתמש
- גרסה:
- לא זוהתה קריסה
- אין רשומה.
- לא הצלחנו לקבל את עדכוני חדשות המשגר!
- מפעיל התאמת RAM אוטומטית
- זיכרון אוטומטי
- זיכרון הוגדר ל %d MB
- בדוק ספריות לאחר ההורדה
- אפשרות זו מכריחה בדיקה של מהימנות הספריות. מונע הורדות פגומות.
- הספרייה %s פגומה ולכן תורד מחדש
- לא ניתן לבדוק את הספרייה %s, אנו מניחים שהיא בסדר
- הספרייה %s תקינה ואפשר להשתמש בה
- השבת מחוות
- השבת מחוות, למשל: החזק כדי לשבור בלוק, וגע כדי לשים בלוק.
- מהירות העכבר
- משנה את המהירות של העכבר הווירטואלי
- עכבר עובר דרך
- ניתן להחלקה
- מעוגל
- הכמות הנוכחית של RAM פנוי (%d) נמוכה מכמות ה-RAM שהוקצתה (%d), מה שעלול לגרום למשחק לקרוס. הנך מתבקש לשנות את ההקצאה במידה והמשחק קורס.
- הקצאת זיכרון
- שולט בכמות הזיכרון הניתנת ל- Minecraft
- %s (Java %d)
- Java Runtime פגומה
- ארכיטקטורה לא נתמכת: %s
- Java VMs
- הוסף חדש
- ייבוא Java VM חדשה
- מנהל Runtime
- ניהול Java VMs מותקנות
- שומר במטמון...
- הגדר כברירת מחדל
- ברירת מחדל
- נדרש שיהיה לך לפחות Java Runtime אחת מותקנת
- לא ניתן למצוא Java Runtime נתמכת. גרסת Java %d ומעלה נדרשת.
- לא מצאתי את Java 8. על מנת להשתמש באפשרות זו, עליך להתקין Java 8.
- הפעל בכל זאת
- תיקיית המשחק
- פרמטרים של JVM
- הגדרות לפי גירסה
- שינויי אחסון
- התיקיה החדשה לקובצי Pojav היא Android/data/%s/files/ (נגיש גם באמצעות ספק אחסון בסייר הקבצים שלך). אם אתה צריך להעתיק את קבצי המשחק שלך, העתק הכל מהתיקיה המקורית ב games/PojavLauncher באופן ידני.]]>
- התחל עם עכבר וירטואלי מופעל
- וידאו ועיבוד
- רזולוציה, סוג קנה מידה, ומעבד (וידאו)
- התאמה אישית של פקדים
- סוגי מחוות, טריגרים, וקנה מידה
- התאמות ל- Java
- הגדרות שונות
- רשימת גירסאות, ובדיקת ספריות
- דברים ניסיוניים
- אין תמיכה, יש להשתמש באפשרויות לפי שיקול דעתכם.
- הפעל \"מצב מאוזן\"
- מגביל התחממות טרמית (של המכשיר) ע\"י הפחתת ביצועים
- מגביל התחממות טרמית (של המכשיר) ע\"י הפחתת ביצועים
- חזרה אל המסך האחרון
- אל תכווץ טקסטורות
- חלק את כל הטקסטורות ב2
- חלק טקסטורות גדולות ב-2 או 4
- ללא שם
- הסנאפשוט העדכני
- מהדורה עדכנית
- עריכת פרופיל
- שם
- גרסא
- מחיקה
- Java Runtime
- רינדור
- %s גרסת תצורה
-
diff --git a/app_pojavlauncher/src/main/res/values-ja/strings.xml b/app_pojavlauncher/src/main/res/values-ja/strings.xml
deleted file mode 100644
index 8c60d2ddc..000000000
--- a/app_pojavlauncher/src/main/res/values-ja/strings.xml
+++ /dev/null
@@ -1,277 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition for Android)
- PojavLauncher
- Minecraft: Java Edition をお使いのデバイスで楽しもう
-
-
-
- メールアドレスまたはユーザー名
- パスワード
- ログインを保持する
- ログイン
- ユーザー名が無効です。ユーザー名は 3〜16 文字でなければなりません。半角英数字 (A-Z, a-z, 0-9) およびアンダースコア (_) のみで構成されてる必要があります。
- このユーザー名は既に存在しています
- Microsoft でログイン
- アカウントを選択
- アカウントが見つかりません!
- 保存されたアカウントがありません。\n \"ログイン状態を保持\" オプションを使用して、最初にログインするとアカウントを保存します。
-
-
- このアカウントが削除されます!
-
- Java Runtime %s (.tar.xz) をインストールします
- Mod インストーラーを選択
-
- PojavLauncher が異常終了しました
- バージョンがありません
- 詳細を表示
- 詳細を閉じる
-
- ストレージへの読み書き権限が必要です
- インストールが完了しました
- Java Runtime のアンインストールが完了しました
-
-
- 開発コンソール
- クラッシュログ
-
- 接続済
- ローカル
-
- Minecraft %s をプレイする準備ができました
- キャッシュファイルを消去中
- %s をダウンロード中
- "%s (%.2f MB / %.2f MB) をダウンロードしています"
- リソースのダウンロードを準備中
- ローカルアカウントでログインすると、Minecraft を合法的にインストールすることはできません。続行するにはオンライン アカウントに切り替えてください
- 設定
- Modインストーラ(Forge、LabyMod、Fabricなど)を起動します
- Modインストーラを起動(カスタム引数付き)
- カスタムコントロール
- 設定
- このアプリについて
- 別のサーフェスレンダリングを使用する
- GPUバインドシナリオでのパフォーマンスに役立つ可能性があります
- Java Runtime をアンインストールする
- [ランチャー再起動必須] Java Runtime を再インストールできます
- Freeform モードで Minecraft を起動
- Minecraft をフローティングウィンドウで起動します。Android 7.0以上が必要です。
- サイドバーを隠す
- ノスタルジックな方は昔のバージョン1のUIを好むかもしれません。フルスクリーンのエクスペリエンスを提供します。
- ノッチを無視する
- ノッチを無視してその下に画面を拡張します。\nより没入感のあるエクスペリエンスを提供します。
- 解像度のスケール
- ゲームの解像度を下げることができます。 100%がフル解像度です
- 長押しとして判定するまでの時間 (ミリ秒)
- 長押しでブロックを破壊したりアイテムを捨てたりできますが、タッチし始めてから長押しと判定するまでの時間を変更します。
- 戻るボタンをマウスの右クリックとして扱う
- 一部のデバイスでは右クリックを戻るボタンとして扱うので、外部マウスを使用している場合はこれを有効にする必要があります。
- デフォルトのボタンスタイル
- コントロールボタンのスタイルをフラットに変更するには、有効にします。
- 制御ボタンの拡大縮小
- ボタンが小さすぎる場合は、それらを上方にスケールしましょう。
- カーソルのサイズ
- 仮想カーソルのサイズを変更します。
- JVM 起動引数
- 注意してください, 知識がない場合、ゲームがクラッシュすることがあります。
- 一般的な設定
- スケーリングの設定
- レンダラー
- Holy GL4ES - (全バージョン対応、動作が軽い)
- virglenderer - (リリース 1.7+、遅い)
- vgpu - (最大1.16.5、高速)
- zink - (old_b1.8+, 遅い)
- ANGLE - (リリース 1.17以上, 中)
- バージョンリストに表示する種類
- 正式
- スナップショット
- Alpha 版
- Beta 版
- 複製
-
- 編集
- エラー
- 注意
- 読み込む
- 名前
- 消去
- 複製
- 再起動
- 保存
- %s を解凍中
- このフィールドは入力必須です
- お待ちください
- 選択...
-
- アプリケーション/ゲームはコード %dで終了しました。詳細についてはlatestlog.txtをご確認ください
- 閉じる
- 強制終了しますか?
- LWJGL3 がインストールされていません!
- Vulkan Zink レンダラーはこのデバイスでサポートされていません!
-
- UI
- キーボード
- チャット
- デバッグ
- 左
- 右
- 持ち物
- 三人称
- プレイヤー
- カーソル
- カーソル: OFF
- カーソル: ON
-
- 強制終了
- ログ
- 入力デバッグ
- カスタムキーコードを送信する
- 拡大
- 縮小
-
- 操作の読み込み
- ファイルが無効または破損しています。
- 操作の読み込み
- ファイルが検証されています。しばらくしてからもう一度お試し下さい。。。
- 無効な名前またはファイルがすでに存在します
- 読み込み完了
-
- %s を編集中
- %s を削除しますか?
- キーコード
- 切り替え可能
- サイズ
- 横幅
- 縦幅
- 割り当て
- 向き
- 背景色
- 角の半径
- 線の幅
- 線の色
- 手動で動的位置
- ダイナミックX
- ダイナミックY
- 背景の透明度
- ボタンの不透明度
- キーの組み合わせ
- ボタンを追加
- ボタンドロワーの追加
- サブボタンを追加
- サブボタンn°%d が追加されました!
- デフォルトの Control json を選択
- コントロールをエクスポート
- ログファイルを共有する
- .jarをインストール
- 設定
- プレイ
- ようこそ、 %s さん
- 高度な情報
- ユーザー切替
- バージョン:
- クラッシュは検出されていません
- ログは空です。
- ニュースフィードでニュースを取得できませんでした!!
- メモリの自動調整を有効にする
- 自動RAM調整
- メモリを %d MB に設定しました
- ダウンロード後にライブラリを確認する
- このオプションは、ランチャーにライブラリハッシュが利用可能であるかどうかをチェックするよう強制します。ダウンロードが壊れているのを防ぎます。
- ライブラリ %s が破損しているため、再ダウンロードされます
- ライブラリ %s が破損しているため、再ダウンロードされます
- ライブラリ %s は問題なく使用できます
- ジェスチャーの無効化
- ブロックを壊すためのホールドなどのジェスチャーを無効にしたり、タップしてブロックを配置します。
- カーソルの速度
- 仮想カーソルの速度を変更します
- マウスパススルー
- スワイプする
- 角丸
- 現在の空きメモリ量(%d)は割り当てられたRAM(%d)よりも低く、クラッシュする可能性があります. ゲームがクラッシュした場合は割り当てを変更します。
- メモリ割り当て
- Minecraftに与えられるメモリの量を制御します
- Javaのランタイムが破損しています
- 互換性のないアーキテクチャ: %s
- Java仮想マシン
- 新規追加
- 新しいJava VMをインポート
- ランタイムマネージャ
- インストールされている Java VM を管理
- キャッシュ中...
- デフォルトに設定
- デフォルト
- 少なくとも1つのJavaランタイムがインストールされている必要があります
- 比較可能なJavaランタイムが見つかりません。このバージョンはJava %d 以降が必要です。
- Java 8が見つかりません。このオプションを使用するには、Java 8をインストールする必要があります。
- Minecraft21w10a+ではOpenGL 3.2のコアプロファイルが必要です。残念ながら、グラフィックスチップはOpenGL ES 3をサポートしていません またはそれ以上ですが、これらのバージョンを実行するためにインストールできるいくつかの追加のリソースがあります 「OK」を押してインストールを確認し、「キャンセル」を押して起動を中止します
- 再試行してください
- ゲームのディレクトリ
- JVM 引数
- バージョン毎の設定
- ストレージの変更
- Pojavファイルの新しいフォルダはAndroid/data/%s/files/ (ファイルエクスプローラーでストレージプロバイダーを使用してアクセスすることもできます). ゲームファイルをコピーする必要がある場合は、 games / PojavLauncherの元のフォルダからすべてを手動でコピーしてください。]]>
- オフセットを制御する
- 上辺のオフセット:
- 右辺のオフセット:
- 下辺のオフセット:
- 左辺のオフセット:
- オフセットを制御する
- 画面のそれぞれの側にカスタムオフセットを設定します
- 仮想マウスをオンにして開始
- ビデオとレンダラー
- 解像度、スケーリングタイプ、レンダラー
- 制御のカスタマイズ
- ジェスチャーの種類、トリガー、およびスケーリング
- Java の調整
- その他の設定
- バージョンリストとlibsチェック
- 実験的なもの
- そこにあるものを考慮し、サポートなしで使用してください。
- 持続的なパフォーマンスモードを有効にする
- ピーク性能を制限することでサーマルスロットリングを制限
- ピーク性能を制限することでサーマルスロットリングを制限
- 強制的に言語を英語にする
- 開発者向けのオリジナルの文字列を表示できます。再起動が必要です
- カスタムコントロールの編集
- コントロールスキームを調整する
- 仮想マウス
- 最後の画面に戻る
- テクスチャを縮小しない
- すべてのテクスチャを2で分割
- 大きなテクスチャを/2または/4で分割
- 名前なし
- 最新のスナップショット
- 最新のリリース
- プロファイルを編集
- 名前
- バージョン
- 削除
- Javaランタイム
- レンダラー
- コスメチカ・ケープズ
- Cosmetica(以前のArc)のケープを有効にします。詳細については、https://cosmetica.ccをご覧ください。 OptiFineが必要です。
- %s バージョンの設定
- 一般
- Pojav フォアグラウンドサービス
- このサービスは、長時間の実行操作を実行するために使用されます
- インストール済み
- (グローバル既定値を使用する)
- デフォルトコントロール
- %d タスクが進行中
- 終了
- ゲームを起動しました!
- 新規作成
- フォルダー名を挿入
- ログイン完了
- アカウントを追加
- タスクが進行中です。しばらくお待ちください。
- 保存されたアカウントはありません
- バージョンリストをダウンロード中…
-
diff --git a/app_pojavlauncher/src/main/res/values-kk/strings.xml b/app_pojavlauncher/src/main/res/values-kk/strings.xml
deleted file mode 100644
index 6cc9dbdc0..000000000
--- a/app_pojavlauncher/src/main/res/values-kk/strings.xml
+++ /dev/null
@@ -1,165 +0,0 @@
-
-
-
- PojavLauncher (Android-ке арналған Minecraft: Java Edition)
- PojavLauncher
- Minecraft: Java Edition-ді өз құрылғыңызда қосыңыз!
-
-
-
- Emailнемесеқолданушы аты
- Құпиясөз
- Мені кірген күйде қалдыру
- Кіру
- Бұл ат бос емес
- Microsoft-пен кіру
- Тіркелгі таңдау
- Тіркелгі табылмады!
- Сақталған тіркелгіңіз жоқ.\n\"Мені кірген күйде қалдыру\" функциясын қолданып, кірген күйде қала беріңіз.
-
-
- Бұл тіркелгі жойылады!
-
- Java Runtime-ді орнату %s (.tar.xz)
- Мод орнатқыш таңдау
-
- PojavLauncher кенет іркілді
- Нұсқа жоқ!
- Көрсету
- Жасыру
-
- Қоймадан оқу/жазу рұқсаты керек!
- Орнату сәтті өтті
- Java Runtime жойылды
-
-
- Әзірлеу консолі
- Іркіліс жорналы
-
- Желіде
-
- Minecraft %s қосылуға дайын
- Кәш файлдары жойылуда
- %s жүктелуде
- "%s жүктелуде (%.2f МБ / %.2f МБ)"
- Ресурс жүктеуге дайындалуда
- Баптау
- Мод орнатқышты қосу (Forge, LabyMod, Fabric, т. б.)
- Мод орнатқышты қосу (өңделген аргументпен)
- Өңделген басқару
- Баптау
- Лаунчер жайлы
- Java Runtime-ды жойып тастау
- [Лаунчерді жаңадан жүктеу керек] Бұл әрекет Java Runtime-ді жаңадан орнатуға мүмкіндік береді
- Minecraft\'ті терезе режімінде қосу
- Minecraft\'ті терезе режімінде қосу. Android 7.0+ керек
- Бүйір пәнелін жасыру
- Ностальгиялы адамдарға бұл ескі v1 интерфейсі ұнауы керек. Көбірек толық экран тәжірибесін береді.
- Камера ойығын елемеу
- Камера ойығын елемей, экранды астына шығарып кеңейтеді.\nКүштірек тәжірибе береді.
- Өлшем масштабтау
- Ойын өлшемін азайтуға мүмкіндік береді. 100% деген толық өлшем
- Басып ұстау ұзақтығы
- Блок сындыру мен зат лақтыру үшін басып ұстау ұзықтығын өзгерту.
- Тегіс батырма стилі
- Батырма стилін тегіс стильге өзгерту үшін мұны қосыңыз.
- Батырма масштабы
- Батырма тым кішкентай болса, үлкейтіңіз.
- Меңзер масштабы
- Меңзер көлемін өзгертеді.
- JVM қосу аргументі
- Абайлаңыз, мұны түсінбей баптасаңыз, ойын іркілуі мүмкін.
- Негізгі баптамалар
- Масштаб
- Рендерер
- Нұсқа тізімінде көрсетілетін нұсқа түрлері
- Релиз
- Снапшот
- Ескі альфа
- Ескі бета
- Клондау
-
- Өңдеу
- Қате
- Назар аударыңыз
- Жүктеу
- Атауы
- Алып тастау
- Клондау
- Қайта жүктеу
- Сақтау
- %s ашылуда
- Бұл өріс бос бола алмайды
- Күте тұрыңыз
-
- Шығу
- Мәжбүрлеп жапқыңыз келе ме?
- LWJGL3 орнатылмаған!
-
- GUI
- Пернетақта
- Чат
- Оңдау
- Pri
- Sec
- ◇
- Инв
- ▲
- ◀
- ▶
- ▼
- ⬛
- F5
- Tab
- Тінтуір
- Тінтуір: өшір.
- Тінтуір: қос.
-
- Мәжбүрлеп жабу
- Жорнал шығысы
- Кіріс оңдау
- Өзгертілген жайманы жіберу
- Үлкейту
- Кішірейту
-
-
- %s өңделуде
- %s алып тастайсыз ба?
- Перне коды
- Ауысқыш
- Көлемі
- Ені
- Биіктігі
- Динамикалық позиция
- Динамикалық X
- Динамикалық Y
- Фон мөлдірлігі
- Перне комбинациясы
- Alt
- Ctrl
- Shift
- Батырма қосу
- Әдепкі басқару json-ын таңдау
- Баптау
- Ойнау
- Сәлем, %s
- Ақпар (Әзірлеуші)
- Пайдаланушы ауыстыру
- Нұсқасы:
- Іркіліс табылмады
- Лог жоқ.
- Жаңалық легін алу мүмкін емес!
- Автоматты түрде ОЕСҚ-ны басқарады
- Авто ОЕСҚ
- %d МБ жад берілді
- Жүктегеннен кейін кітапханаларды тексереді
- %s кітапханасы жақсы және қолдануға жарамды
- Тінтуір жылдамдығы
- Атауы
- Рендерер
-
diff --git a/app_pojavlauncher/src/main/res/values-ko/strings.xml b/app_pojavlauncher/src/main/res/values-ko/strings.xml
deleted file mode 100644
index aa6e8431a..000000000
--- a/app_pojavlauncher/src/main/res/values-ko/strings.xml
+++ /dev/null
@@ -1,290 +0,0 @@
-
-
-
- PojavLauncher (Android용 Minecraft 자바 에디션 버전 구동기)
- PojavLauncher
- 내 기기에서 Minecraft 자바 에디션을 실행해 보세요!
-
-
-
- 이메일 또는 사용자명
- 비밀번호
- 로그인 상태 유지
- 로그인
- 잘못된 사용자 이름입니다. 사용자 이름은 3~16글자여야 하며, 대/소문자 알파벳과 숫자, _로 구성되어야 합니다.
- 이미 존재하는 사용자명이에요
- Microsoft 로그인
- 계정 선택
- 계정을 찾지 못했어요!
- 저장된 계정이 없습니다.\n \"로그인 상태 유지\" 옵션은 처음으로 로그인 할 시 계정을 저장합니다.
-
- "컨텍스트 메뉴를 열려면 가운데 아이콘을 누르세요⚙\n단축키를 수정, 크기 조정, 삭제하려면 버튼을 누르세요"
-
- 이 계정이 제거될 거예요!
-
- Java 런타임 설치 %s (.tar.xz)
- 모드 설치기를 선택하세요
-
- PojavLauncher에 예기치 못한 충돌이 발생했어요
- 버전이 없습니다!
- 더 보기
- 간략히 보기
-
- 저장소 읽고 쓰기 권한이 필요합니다!
- 설치 성공
- Java 런타임 삭제 완료
-
-
- 개발자 콘솔
- 충돌 로그
-
- 연결됨
- 내부
-
- Minecraft %s 를 시작할 준비가 되었습니다.
- 캐시 비우기
- %s 다운로드 중
- "%s 다운로드 중 (%.2f MB / %.2f MB)"
- 다운로드 준비 중
- 마인크래프트는 로컬 계정으로 로그인 했을때 합법적으로 설치 할 수 없습니다. 온라인 계정으로 계속하세요.
- 설정
- 모드 설치기 실행 (Forge, LabyMod, Fabric 등...)
- 모드 설치기 실행 (사용자 지정 설치 스크립트)
- 사용자 지정 조작
- 설정
- 정보
- 대체 표면 렌더링을 사용합니다
- GPU 바운드 상황에서 성능에 도움이 될 수 있습니다
- Java 런타임 삭제
- [Launcher 재 실행 요구] Java 런타임 재 설치하기
- Minecraft를 Freeform mode로 실행하기
- Minecraft를 floating window에서 실행합니다. Android 7.0 이상을 요구합니다.
- 사이드바 숨기기
- 과거 v1 UI를 선호하는 사람을 위한 설정입니다.
- 노치 무시하기
- 노치를 무시하여 넓은 화면으로 플레이할 수 있습니다.\n
- 해상도 비율
- 최대 해상도 100% 이하로 게임 해상도를 낮출 수 있습니다.
- 길게 누르기 시간
- 블록 파괴와 아이템 던지기 등의 동작을 위한 길게 누르기 시간 변경
- 마우스 우클릭으로 뒤로가기
- 몇몇 기기들은 외장 마우스 우클릭을 뒤로 가기 버튼으로 이용합니다. 외장 마우스를 이용하시면 활성화해주세요.
- 플랫 버튼 스타일
- 컨트롤 버튼을 플랫 스타일로 변경
- 컨트롤 버튼 크기
- 버튼이 너무 작다면 크기를 키우세요.
- 마우스 크기
- 가상 마우스 크기 변경.
- JVM 시작 스크립트
- 조심하세요, 정보 없이 수정하면 게임 충돌이 발생할 수 있습니다.
- 일반 설정
- 크기 설정
- 렌더러
- Holy GL4ES - (모든 버전 호환, 빠릅니다)
- virglrenderer - (1.7 이후 버전 호환, 느립니다)
- vgpu - (1.16.5 이후 버전 호환, 빠릅니다)
- zink - (old_beta b1.8 이후 버전 호환, 느립니다)
- ANGLE - (1.17 이후 버전 호환, 보통입니다)
- 버전 타입 리스트
- 릴리즈
- 스냅숏
- Old-alpha
- Old-beta
- 샌드박스 .jar 설치
- .jar 설치를 실행할때 샌드박스 보안 관리자의 유효성 통제
- 복제
-
- 수정
- 오류
- 경고
- 불러오기
- 이름
- 제거
- 복제
- 재시작
- 저장
- 압축 해제 중 %s
- 이 칸은 비워둘 수 없습니다
- 기다려주세요
- 선택
-
- 애플리케이션/게임이 코드 %d와 함께 종료되었습니다, lastestlog.txt를 확인하여 추가 정보를 확인하세요.
- 나가기
- 강제로 종료하시겠습니까?
- LWJGL3 이 설치되지 않았습니다!
- Vulkan Zink 렌더러는 해당 기기를 지원하지 않습니다!
-
- GUI
- 키보드
- 챗
- 디버그
- LMB
- RMB
- ◇
- Inv
- ▲
- ◀
- ▶
- ▼
- ⬛
- 3인칭
- Tab
- 마우스
- 마우스: 끔
- 마우스: 켬
-
- 강제 종료
- 로그 확인
- 디버그 표시
- 사용자 지정 키 보내기
- 확장
- 축소
-
- 컨트롤 가져오기
- 잘못되거나 손상된 파일입니다
- 컨트롤 가져오기
- 파일을 확인하는 중, 나중에 다시 시도하세요...
- 이름이 잘못되었거나 파일이 이미 존재합니다
- 가져오기 완료
-
- %s(을)를 수정하는 중
- %s(을)를 제거하시겠습니까?
- 키
- 토글
- 크기
- 너비
- 높이
- 매핑
- 방향
- 배경 색상
- 모서리 반지름
- 선 굵기
- 강조 색
- 동적 위치
- 동적 X 값
- 동적 Y 값
- 배경 투명도
- 버튼 투명도
- 키 조합
- Alt
- Ctrl
- Shift
- 버튼 추가
- 버튼 드로어 추가
- 부속 버튼 추가
- 부속 버튼 n°%d가 추가됐습니다!
- 기본 조작 프리셋 선택하기
- 컨트롤 설정 가져오기
- 기록 파일 공유
- .jar 설치
- 설정
- 시작하기
- 환영합니다, %s!
- 정보 (DEV)
- 사용자 전환
- 버전:
- 발견된 충돌 없음
- 기록 없음.
- 소식을 불러오지 못했습니다 !
- 자동 RAM 할당 활성화하기
- 자동 RAM 할당
- 메모리가 %dMB 할당되었습니다.
- 다운로드 후 라이브러리 확인
- 이 옵션은 라이브러리 해시를 강제로 확인합니다. 잘못된 다운로드를 막을 수 있습니다.
- 라이브러리 %s가 손상되었기 때문에 다시 다운로드 합니다
- %s 라이브러리를 확인할 수 없습니다.
- %s 라이브러리를 이용할 수 있습니다.
- 제스쳐 비활성화
- 탭하여 블록 설치, 길게 눌러 블록 파괴와 같은 제스쳐를 비활성화 합니다
- 마우스 속도
- 소프트웨어 마우스 속도 변경
- 마우스 패스스루
- 끌어당기기
- 둥글게
- 현재 사용 가능한 RAM 크기(%d) 가 할당된 RAM 크기(%d) 보다 낮습니다. 게임이 충돌할 경우 할당량을 변경하세요.
- 메모리 할당
- Minecraft 메모리 할당 조절
- 사용 불가능한 Java 런타임
- 호환되지 않는 아키텍쳐: %s
- Java 가상 머신
- 새로 추가
- 새로운 Java 가상 머신 가져오기
- 런타임 관리자
- 설치된 Java 가상 머신 관리
- 캐시 중...
- 기본으로 설정
- 기본값
- 하나 이상의 Java 런타임이 필요합니다
- 호환되는 Java 런타임을 찾지 못했습니다. 이 버전은 Java %d 이상이 필요합니다.
- Java 8을 찾지 못했습니다. 이 옵션을 사용하려면, Java 8을 설치해야 합니다.
- 마인크래프트 21w10a 이후 버전은 OpenGL 3.2 코어 프로필이 필요합니다. 하지만, 당신의 그래픽 칩은 OpenGL ES 3.0 이상 버전을 지원하지 않습니다. 그러나, 이 버전을 실행하기 위해 설치할수 있는 다른 리소스팩들이 있습니다. 설치하시려면 확인을 누르세요. 실행을 중단하시려면 취소를 눌러주세요.
- 무시하고 플레이
- 게임 디렉토리
- JVM 실행 설정
- 버전마다 설정
- 저장공간 변경
- Pojav 파일의 새 폴더는 Android/data/%s/files/ 입니다 (파일 탐색기의 콘텐츠 제공자를 사용하여 액세스할 수도 있습니다). 게임 파일을 복사해야 하는 경우, 원래 폴더인 games/PojavLauncher 에서 모든 파일을 수동으로 복사하십시오.]]>
- 조작 오프셋
- 상단 시작점:
- 우측 시작점:
- 하단 시작점:
- 좌측 시작점:
- 조작 사이드 오프셋
- 화면의 사이드 부분에 사용자 지정 오프셋을 지정합니다
- 가상마우스가 켜진 상태로 시작합니다
- 비디오와 렌더러
- 해상도, 스케일링 타입, 렌더러
- 사용자 지정 조작
- 제스쳐 타입, 트리거, 스케일링
- Java 기능
- Java 버전, JVM 매개변수, RAM 크기 와 샌드박스
- 기타 설정
- 버전 목록, 라이브러리 확인
- 실험적 기능
- 여러 실험적 기능을 사용, 지원 안함
- 성능 유지 모드를 활성화합니다
- 최고 성능을 제한함으로써, 쓰로틀링을 제어합니다
- 최고 성능을 제한함으로써, 쓰로틀링을 제어합니다
- 강제로 영어 사용
- 개발자가 의도한 기본 문자열을 볼 수 있도록 해 줍니다. 재시작 필요
- 사용자 지정 조작 편집
- 원하는대로 조작을 변경하기
- 이전 화면으로
- 텍스쳐 축소하지 않기
- 모든 텍스쳐를 반으로 줄이기
- 큰 텍스쳐를 반 또는 반의 반으로 줄이기
- 이름없음
- 최신 스냅샷
- 최신 버전
- 프로필 편집
- 이름
- 버전
- 삭제
- 자바 런타임
- 렌더러
- 코스메티카 망토
- 코스메티카 망토를 활성화합니다 (구 아크)
-더 많은 정보를 위해
-https://cosmetica.cc 를 방문해주세요.
-옵티파인 모드가 필요합니다.
- %s 버전 설정
- 일반
- Pojav 포그라운드 서비스
- (글로벌 기본값 사용)
- 기본 조작
- 작업 %d개 진행 중
- 종료
- 게임이 실행 중이에요!
- 생성
- 폴더 이름 입력
- 로그인 완료
- 계정 추가
- 작업이 진행 중이에요. 기다려 주세요
- 저장된 계정 없음
- 버전 목록 다운로드 중...
-
diff --git a/app_pojavlauncher/src/main/res/values-la/strings.xml b/app_pojavlauncher/src/main/res/values-la/strings.xml
deleted file mode 100644
index 3c48862f9..000000000
--- a/app_pojavlauncher/src/main/res/values-la/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition quia Android)
- PojavLauncher
- Lorem Minecraft: Java Edition in vestra fabrica!
-
-
-
- Email uel vos
- Signum
- Custodi me apud log
- Login
- Hoc nomen iam exi
- Ob selectos
-
-
- Et ob hoc remotus!
-
-
- Pojav launcher crashed subito
-
-
-
-
-
-
- Monitum
-
- Exitus
-
-
- Log output
-
-
-
diff --git a/app_pojavlauncher/src/main/res/values-lol-rAA/strings.xml b/app_pojavlauncher/src/main/res/values-lol-rAA/strings.xml
deleted file mode 100644
index 06d66b1ca..000000000
--- a/app_pojavlauncher/src/main/res/values-lol-rAA/strings.xml
+++ /dev/null
@@ -1,241 +0,0 @@
-
-
-
- pajaw launcher (Mc4Android)
- PojawLunchr
- go MC at your mobile!
-
-
-
- Emol or osornoim
- passwd
- kep i kog inside
- logout
- Invalid catz\' neim. Catz\' neim hav tu be in rein\'g uf 3-16 kerekturs, shud only kontainz A-Z, a-z, 0-9 and undrskore.
- ohno, this uzrname iz regiztered:(
- Microsoft entrunz
- what acc?
- No akownt findz !
- U doan has any savd akownt.\nUse teh opshun \"Keep me loggd in\" 2 save an akownt upon furst login.
-
-
- Dis akownt wil be removed!
-
- Install Coffee Cupz’ Runtime %s (.tar.xz)
- Chooz mod installr
-
- Pojaw Launcher haz unexpectadly crashd
- No vershun!
- Show mor
- Show les
-
- Teh riid/rite 2 storage permishun iz requird!
- Instal succesful
- Dun uninstall Coffee Cupz’ Runtime
-
-
- Developmnt consol
- Crash trunk
-
- Connectd
- LOCAL
-
- Ready 2 pulay minecraft %s
- Cleanin cache filez
- Downloadin %s
- "Downloadin %s (%.2f MB / %.2f MB)"
- Preparin 2 download resourcez
- MINECRAFT CANT BE LEGALLY INSTALLD WHEN LOGGD IN WIF LOCAL AKOWNT. PLZ SWITCH 2 AN ONLINE AKOWNT 2 CONTINUE.
- Opshuns
- L’unch mod installr (Forge, LabyMod, Fabric, etc...)
- L’unch mod installr (wif cuztoum argumentz)
- Custom controls
- Settinz
- Bout
- USE ALTERNATE SURFACE RENDERIN
- CUD HALP PERFORMANCE IN GPU BOUND SCENARIOS
- Uninstall Coffee Cupz’ Runtime
- [Launchah restart requird] dis letz u re-install Coffee Cupz’ Runtime
- Launch Minecraft in Freeform moed
- Launch minecraft in floatin window. Requirez android 7.0+
- Dunt’ Show Sidebar
- Nostalgic folkz preferring teh old v1 UI miet likes dis. Srsly givez u moar fullscreen experienec.
- Ignoer notch
- Ignoer teh notch an extendz teh screen undr it, Srsly.\nGivez u moar immersiev experienec.
- Resolushun Scalah
- Allowz u 2 decreaes teh gaem resolushun. 100% iz fol resolushun
- How long will triggr aftr long pres
- Change triggr tiem 4 long pres in destroy block an drop item.
- Treat bak butn as rite mouse
- Sum devicez treats external rite mouse as bak butn. If u r usin external mouse, u shud enable dis.
- Flat button styel
- Enabel dis 2 chaneg control button styel 2 flat.
- Control buttons scalin
- Upscael dem if buttons r 2 small.
- Mouse scalin
- Chaneg siez ov vurtual moues.
- CCz’UM L’unch argumentz
- Bees careful, dis can mak teh game crash if modified witout knowledge.
- General settingz
- Scalin settingz
- Renderer
- Vershun type will be in vershun list
- RELEASD
- Snapshot
- Old-alaf
- Old-beat
- Cloen
-
- Edit
- Eror
- Aelert!!!
- Load
- Naym
- Remoev
- Cloen
- Re-start
- Saev
- Unpacking %s
- Dis field can\'t bees empty
- Waitin’, meow~
-
- Applicashun/game exitd wif code %d, chek lastestlog.txt 4 moar details.
- Exit
- R u suer u wantz 2 forec cloes?
- LWJGL3 wuz not installd!
- Catz mobile cant’ handel Vulkan Zink renderer!
-
- GUI
- Keyboard
- Chat
- Debug
- Pri
- Sec
- Inv
- 3rd
- Tab
- Mouse
- Mouse: off
- Mouse: on
-
- Force close
- tree input
- Input Debug
- Send custom keycoed
- Bigging go up
- Bigging go down
-
- Import controls
- Invalid or coruptd file
- import controls
- File iz bean verifid plz wait an try again…
- Invalid naym ir file alerdy exists
- Importatshun dun
-
- Editin %s
- Remoev %s?
- Keycoed
- Toggleabel
- Siez
- Width
- Hait
- Mappin’
- Direksion
- Bakground colour
- Cornur round saiz
- Strok witz
- Strok colour
- Skratchy Dynamic pozishun
- Movin’ X pozision
- Movin’ Y pozision
- Bakground tranzperensi
- Buton Owpacity
- Ki combinasion
- Add button
- Add buton drawr’
- Add b’low-buton
- Sub-butn %d haz bean addd !
- Select defaul Control json
- Install .jar
- Opshuns
- Pulay
- Welcom, catz %s
- Info (DEV)
- Switch usr
- Vershun:
- No crash detected
- No log.
- Faild 2 fetch teh newz fed !
- Enablez automatic RAM adjustah
- Auto RAM
- Memori setd 2 %d MB
- Check libraries aftr downloadin
- Dis opshun forcez launchah 2 check teh library hash if iz’ availabel. Preventz brekd downloadz.
- Library %s iz breakd and wil’ be redownloaded
- Library %s cant’ be checkd, haz 2 assuem iz’ gud
- Library %s iz prfekt an usabel
- Disabel gesturez
- Disablez gesturez, laik hold 2 break block, an tap 2 plaec block.
- Mice speed
- Changez teh speed of teh software mice
- Mouses pas-thur
- Scratchable
- Rounded
- WURNING: Catz iz becomin’ une of teh Memory Muncherz, wich may leid tu game crash! (Free %d, munch’d %d MB) Change teh allocasion if teh game crashez.
- RAM allocasion
- Controls how mutch RAM iz given 2 Minecraft
- Derti Coffee Cup
- Incompatible architecchur: %s
- Coffee Cupz’ Unreal Machinez
- Add new
- Add new Coffee Cupz’ Unreal Machine
- Coffee Cupz klecsion
- Maniz drunk Coffee Cupz
- Storin’ tu cache memori...
- Set favoritz
- My favritz
- Catz cant’ si any Coffee Cup’s Runtime in kleksion
- Ken´t find any compatibl Java Runtime. Dis vershun reqirez Java %d or newr.
- Ken´t find Java 8. In ordr 2 use dis opshun, u ned 2 install Java 8.
- Cat stil\' won tu play
- Gamez’ direktory
- CCz’UM argumentz
- Itch-version settinz’
- Starags changez
- Teh new foldr 4 pojav filez iz Android/data/%s/filez/ (Also akcesible usin storage providr in ur file explorr). If u ned 2 copy ur game filez, plz copy evrythin frum teh original foldr at gamez/pojavlaunchr manually.]]>
- Control offset
- Top offset:
- right offset:
- bottom offset:
- left offset:
- Control side offsetz
- Set a custom offset 2 each side ov teh screen
- Gesturez typez, triggers, an scalin
- Java Tweakz
- Miscellaneous settings
- Vershun list, an libz checkz
- Experimental Stuff
- Use things thar wif considerashun, no support.
- Enable sustaind performance mode
- Limit thermal thrittlin by limitin peak performance
- Limit thermal thrittlin by limitin peak performance
- Bak 2 teh last screen
- Doan shrink texturez
- Dividez all texturez by 2
- Dividez big texturez by /2 or /4
- No named
- last snap shot
- latest releez
- Editin cat
- Naym
- Type of cat
- Delete
- Java runtime
- Renderer
- %s vershun configuration
-
diff --git a/app_pojavlauncher/src/main/res/values-lt/strings.xml b/app_pojavlauncher/src/main/res/values-lt/strings.xml
deleted file mode 100644
index 410a51b63..000000000
--- a/app_pojavlauncher/src/main/res/values-lt/strings.xml
+++ /dev/null
@@ -1,262 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition skirta Android)
- PojavLauncher
- Paleiskite Minecraft:Java Edition savo įrenginyje!
-
-
-
- El. paštas arba slapyvardis
- Slaptažodis
- Likti prisijungus
- Prisijungti
- Netinkamas slapyvardis. Slapyvardis turi būti nuo 3 iki 16 simbolių, turėti tik simbolius A-Z, a-z, 0-9 ir brūkšnius.
- Šis slapyvardis jau egzistuoja
- Microsoft prisijungimas
- Pasirinkti paskyrą
- Paskyra nerasta!
- Jūs neturite išsaugotų paskyrų.\nPasinaudokite funkcija \"Likti prisijungus\" jei norite išsaugoti savo paskyrą.
-
-
- Ši paskyra bus pašalinta!
-
- Instaliuoti Java Runtime %s (.tar.xz)
- Pasirinkite modifikacijų įdiegimui
-
- PojavLauncher netikėtai išsijungė arba užlužo
- Nėra versijos!
- Rodyti daugiau
- Rodyti mažiau
-
- Skaitymo/rašymo atmintyje leidimas yra būtinas!
- Instaliavimas sėkmingas
- Baigta instaliuoti Java Runtime
-
-
- Kūrėjo konsolė
- Išsijungimo įrašai
-
- Prisijungta
- Vietinė
-
- Pasiruošta žaisti Minecraft %s
- Valomi nereikalingi failai
- Atsisiunčiama %s
- "Atsisiunčiama %s (%.2f MB / %.2f MB)"
- Rengiamasi atsisiųsti resursus
- \"Minecraft\" negali būti legaliai instaliuotas prisijungus su vietine paskyra. Prašau prisijunti prie interneto prieigą turinčios paskyros kad testumėte.
- Pasirinkimai
- Paleisti modifikacijų įdiegimui (Forge, LabyMod, Fabric, kt.)
- Paleisti modifikacijų įdiegimui (su pasirinktinais argumentais)
- Kontrolės
- Nustatymai
- Apie
- Naudoti alternatyvų atvaizdų vaizdavimą
- Gali pagerinti našumą GPU surištuose scenarijuose
- Ištrinti Java Runtime
- [Reikia paleisti iš naujo] Tai leis perinstaliuoti Java Runtime
- Paleisti laisvoje formoje
- Paleisti Minecraft skraidančiame lange. Reikia Android 7.0+
- Slėpti lentelę šone
- Gali atrodyti nostalgiškai kaip senasis v1 UI. Duoda pilnesnio ekrano išvaizdą.
- Ignoruoti kamerą
- Ignoruojant kamerą ištempia vaizdą po ja.\nDuodą geresnį vaizdą.
- Rezoliucijos redagavimas
- Leidžia keisti ekrano rezoliuciją. 100% yra pilna rezoliucija
- Kaip ilgai suveiks po palaikymo
- Pakeisti veikimo laiką po palaikymo panaikinti ir išmesti daiktą.
- Laikyti atgal mygtuką kaip dešinįjį pelės mygtuką
- Kai kurie įrenginiai laiko išorinės pelės dešinįjį mygtuką kaip atgal mygtuką. Jei naudojate išorinę pelę, jūs tūretūmėtė įjungti šį nustatymą.
- Plokščias Mygtukų Stilius
- Įjungti, kad pakeisti kontrolių stilių į plokščią.
- Kontroliuoti mygtukų dydį
- Padidinkite jei mygtukai per maži.
- Pelės dydis
- Pakeisti virtualios pelės dydį.
- JVM Paleidimo argumentai
- Būkite atsargūs, tai gali paveikti žaidimą jei modifikuota be išmonės.
- Pagrindiniai nustatymai
- Didinimo nustatymai
- Vaizdo generatorius
- Holy GL4ES - (visos versijos, greičiausias)
- virglrenderer - (versija, skirta 1.7+, lėčiausias)
- vgpu - (tinka iki 1.16.5, greičiausias)
- zink - (senoji_beta b1.8+, lėčiausias)
- ANGLE - (versija 1.17+, vidutinio greitumo)
- Versijų tipai bus versijų sąraše
- Leidimai
- Naujinimai
- Alpha
- Beta
- Smėlio dežės .jar įdiegtuvas
- Klonuoti
-
- Redaguoti
- Klaida
- Įspėjimas
- Įjungti
- Pavadinimas
- Pašalinti
- Klonuoti
- Perkrauti
- Išsaugoti
- Išpakuojama %s
- Šis laukas negali būti tuščias
- Palaukite
- Pasirinkti
-
- Applikacija išsijungė su kodu %d, patikrinkite latestlog.txt kad gautumėte detalių.
- Išeiti
- Ar jūs tikrai norite priverstinai išjungti?
- LWJGL3 nebuvo instaliuota!
- Vulkan Zink atvaizduotojas nėra palaikomas ant šio įrenginio!
-
- GUI
- Klaviatūra
- Pokalbiai
- Taisyti
- Pro.
- Deš
- Inv
- 3
- TAB
- Pelė
- Pelė: išjungta
- Pelė: įjungta
-
- Priverstinai išjungti
- Žurnalo įrašai
- Input Debug
- Siųsti mygtuko kodą
- Padidinti
- Sumažinti
-
- Importuoti kontroles
- Netinkamas arba sugedęs failas
- importuoti kontroles
- Failas tikrinamas, prašome palaukti ir bandyti dar kartą…
- Netinkamas pavadinimas arba failas jau egzistuoja
- Importavimas baigtas
-
- Redaguojama %s
- Panaikinti %s?
- Mygtuko kodas
- Perjungiama
- Dydis
- Plotis
- Aukštis
- Mygtukų sąrašas
- Orientacija
- Fono spalva
- Kampo spinduliuotė
- Linijos plotis
- Linijos spalva
- Dinamiška pozicija
- Dinamiška X
- Dinamiška Y
- Fono skaidrumas
- Mygtuko skaidrumas
- Mygtukų kombinacija
- Alt
- Ctrl
- Shift
- Pridėti mygtuką
- Pridėti mygtukų spintą
- Pridetį mygtukų spintos mygtuką
- Mygtukas n°%d buvo pridėtas !
- Pasirinkti pagrindinį kontrolių JSON
- Instaliuoti .jar
- Pasirinkimai
- Žaisti
- Sveiki, %s
- Informacija
- Perjungti žaidėją
- Versija:
- Nerasta netikėtų išsijungimų
- Nėra įrašų.
- Nepavyko pakrauti žinių!
- Įjungia automatišką RAM keitėją
- Automatiškas RAM
- Atmintis pakeista į %d MB
- Patikrinti depozitoriumo bibliotekas po atsisiuntimo
- Šis nustatymas priverčia PojavLauncher patikrintį depozitoriumo bibliotekos hashą jeigu jis pasiekiamas. Neleidžia blogų atsisiuntimų.
- Depozitoriumo biblioteka %s yra sugedusi ir būs persiųsta
- Depozitoriumo biblioteka %s negali būti patikrinta, privaloma tikėti kad ji gera
- Depozitoriumo biblioteka %s yra gera ir naudojama
- Išjungti gestus
- Išjungti gestus, kaip prilaikyti, kad griautum bloką, ir paspausti, kad pastatytum bloką.
- Pelės Greitis
- Pakeičia virtualios pelės greitį
- Pelės praileidimas
- Perbraukiamas
- Suapvalinta
- Dabartinis kiekis laisvo RAM (%d) yra mažesnis negu paskirtas RAM (%d), kas gali baigtis išsijungimais. Pakeiskite paskirtą kiekį jeigu išsijungia žaidimas.
- Atminties skirtstymas
- Kontroliuoja kiek RAM atminties duodama Minecraft
- Sugadintas Java Modulis
- Netinkama architektūra: %s
- Java Moduliai
- Pridėti naują
- Importuoti naują Java Modulį
- Java Modulių Tvarkytojas
- Valdyti įdiegtus Java modulius
- Talpinama...
- Nustatyti numatytą
- Numatytasis
- Jūs privalote turėti bent vieną Java Modulį įdiegtą
- Nerasta tinkamos Java Runtine. Šiai versijai reikalinga Java %d arba naujesnė.
- Nerasta Java 8. Kad naudotumėte šią funkciją, naudokite Java 8.
- Minecraft 21w10+ reikalauja OpenGL 3.2 branduolio profilio. Gaila, GL4ES wrapperis dabar pilnai nepalaiko jo, bet yra dar pridėtinių resursų kuriuos galima įdiegti, kad būtų galima paleisti šias versijas. Paspauskite Gerai, kad patvirtintumėte įdiegimą, paspauskite Atšaukti, kad sustabdytumėte įdiegimą.
- Žaisti vistiek
- Žaidimo failų vieta
- JVM argumentai
- Individualios versijos nustatymai
- Saugyklos pakeitimai
- Naujasis folderis yra Android/data/%s/files/ (pasiekiamas naudojant failų naršyklę) Jei norėsite perkelti savo žaidimo failus, prašau kopijuoti viską į originalų folderį, kuris yra games/PojavLauncher rankiniu būdu.]]>
- Kontrolių offset\'as
- Viršaus offset\'as:
- Dešinės offset\'as:
- Apačios offset\'as:
- Kairės offset\'as:
- Controlių šoninis offset\'as
- Nustatytį offset\'ą kiekvienai ekrano pusei pasirinktinai
- Pradėti su virtualia įjungta
- Vaizdas
- Rezoliucija, skalių tipas ir vaizdavimas
- Kontrolių redagavimas
- Gestų tipai, trigger\'ai ir skaliavimas
- Java redagavimas
- Kiti nustatymai
- Versijų sąrašas ir bibliotekų tikrinimas
- Eksperimentiniai dalykai
- Naudokite šiuos dalykus atsargiai, jokio palaikymo.
- Įjungti nuolatinio našumo režimą
- Apriboti terminį limitą limituojant didžiausią našumą
- Priversti įjungti vSync
- Apriboti terminį limitą limituojant didžiausią našumą
- Priversti Anglų kalbą
- Gyro kontrolės
- Atgal į paskutinį ekraną
- Nemažinti tekstūrų
- Dalinti visas tekstūras per pusę.
- Naudoti antradalį arba ketvirtadalį tekstūrų
- Be pavadinimo
- Naujausias Snapshotas
- Naujausias Leidinys
- Redaguojamas profilis
- Pavadinimas
- Versija
- Ištrinti
- Java Runtime
- Vaizdo generatorius
- \"Cosmetica\" apvalkalai
- Įjungia apvalkalus iš \"Cosmetica\" (anksčiau \"Arc\"). Daugiau informacijos rasite https://cosmetica.cc. Reikalingas OptiFine.
- %s versijos konfiguracija
- Pagrindinis
-
diff --git a/app_pojavlauncher/src/main/res/values-ms/strings.xml b/app_pojavlauncher/src/main/res/values-ms/strings.xml
deleted file mode 100644
index 0588c62bd..000000000
--- a/app_pojavlauncher/src/main/res/values-ms/strings.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition untuk Android)
- PojavLauncher
- Lancarkan Minecraft: Java Edition di dalam peranti anda!
-
-
-
- E-mel atau nama pengguna
- Kata Laluan
- Kekalkan saya dilog masuk
- Log masuk
- Nama pengguna tidak sah. Nama pengguna mestilah dalam lingkungan 3-16 aksara, hanya boleh mengandungi A-Z, a-z, 0-9 dan garis bawah.
- Nama pengguna ini sudah diguna
- Log masuk Microsoft
- Pilih akaun
- Tiada akaun dijumpai!
- Kamu tidak mempunyai sebarang akaun yang disimpan.\nGunakan pilihan \"Kekalkan saya terlog masuk\" untuk menyimpan sebuah akaun pada log masuk pertama.
-
-
- Akaun ini akan dihapus!
-
- Pasang Java Runtime %s (.tar.xz)
- Pilih sebuah pemasang mod
-
- PojavLauncher terhenti tanpa diduga
- Tiada versi!
- Tunjuk lebih banyak
- Tunjuk lebih sedikit
-
- Kebenaran untuk membaca/menulis kepada storan diperlukan!
- Pemasangan berjaya
- Selesai menyahpasang Java Runtime
-
-
- Konsol development
- Log ranap
-
- Tersambung
- Tempatan
-
- Bersedia untuk bermain Minecraft %s
- Membersihkan fail cache
- Memuat turun %s
- "Memuat turun %s (%.2f MB / %.2f MB)"
- Bersedia untuk memuat turun sumber
- Minecraft tidak boleh dipasang secara sah apabila mengelog masuk dengan akaun tempatan. Sila tukar ke akaun dalam talian untuk teruskan.
- Pilihan
- Lancarkan sebuah pemasang mod (Forge, LabyMod, Fabric, dll...)
- Lancarkan sebuah pemasang mod (dengan argumen custom)
- Kawalan custom
- Tetapan
- Tentang
- Nyahpasang Java Runtime
- [Pemulaan semula Pelancar diperlukan] Ini membenarkan anda untuk memasang semula Java Runtime
- Lancarkan Minecraft dalam mod Freeform
- Lancarkan Minecraft di dalam mod window melayang. Memerlukan Android 7.0+
- Sembunyi Palang sisi
- Orang bernostalgia yang lebih memilih UI v1 yang lama mungkin akan menyukai ini. Memberikan anda lebih banyak pengalaman skrin penuh.
- Abaikan takik
- Abaikan takik dan panjangkan skrin dibawahnya.\nMemberikan anda pengalaman yang lebih mengasyikkan.
- Pengskala Resolusi
- Membenarkan anda untuk menurunkan resolusi permainan. 100% adalah resolusi penuh
- Berapa lama akan dicetus setelah tekanan yang lama
- Tukar masa cetusan untuk tekanan lama dalam penghancuran blok dan pelemparan item.
- Anggap butang kembali sebagai butang tetikus kanan
- Sesetengah peranti menganggap butang tetikus kanan eksternal sebagai butang kembali. Jikalau anda menggunakan tetikus eksternal, kamu harus mengaktifkan ini.
- Gaya butang datar
- Aktifkan ini untuk menukar gaya butang kawalan kepada datar.
- Skala butang kawalan
- Naikkan skala mereka jika butangnya terlalu kecil.
- Skala tetikus
- Tukar saiz tetikus virtual.
- JVM Launch arguments
- Berhati-hati, ini mungkin menyebabkan permainan menjadi ranap jika diubah tanpa pengetahuan.
- Tetapan umum
- Tetapan Skala
- Renderer
- vgpu - (hingga 1.16.5, pantas)
- zink - (old_beta b1.+, perlahan)
- ANGLE - (terbitan 1.17+, sederhana)
- Jenis versi akan ada di dalam senarai versi
- Rilis
- Petikan
- Alfa-lama
- Beta-lama
- Klon
-
- Sunting
- Ralat
- Amaran
- Memuat
- Nama
- Hapus
- Klon
- Mula Semula
- Simpan
- Menyahpek %s
- Medan ini tidak boleh dibiarkan kosong
- Tunggu
-
- Aplikasi/Permainan keluar dengan kod %d, semak latestlog.txt untuk butiran lebih lanjut.
- Keluar
- Adakah anda mahu paksa tutup aplikasi?
- LWJGL3 tidak terpasang!
- Renderer Vulkan Zink tidak disokong pada peranti ini!
-
- GUI
- Papan Kekunci
- Sembang
- Nyahpepijat
- Pri
- Sec
- Inv
- 3rd
- Tab
- Tetikus
- Tetikus: tutup
- Tetikus: buka
-
- Paksa tutup
- Log output
- Nyahpepijat Input
- Hantar kod kunci custom
- Naikkan skala
- Turunkan skala
-
- Import Kawalan
- Fail tidak sah atau rosak
- import kawalan
- Fail sedang disahkan, sila tunggu dan cuba lagi…
- Nama tidak sah atau fail sudah wujud
- Pengimportan selesai
-
- Menyunting %s
- Hapus %s?
- Kod kunci
- Boleh Ditukar
- Saiz
- Lebar
- Tinggi
- Pemetaan
- Orientasi
- Warna Latar Belakang
- Posisi Dinamik
- Dinamik X
- Dinamik Y
- Ketelusan latar belakang
- Kelegapan Butang
- Kombinasi kunci
- Tambah butang
- Pilih json Kawalan lalai
- Pasang .jar
- Pilihan
- Main
- Selamat Datang, %s
- Info (DEV)
- Tukar pengguna
- Versi:
- Tiada ranap dikesan
- Tiada log.
- Gagal mendapatkan berita !
- Membenarkan pelaras RAM automatik
- Auto RAM
- Memori ditetapkan kepada %d MB
- Periksa library selepas muat turun
- Pilihan ini memaksa pelancar untuk memeriksa hash library jika ianya tersedia. Boleh mencegah muat turun yang rosak.
- Library %s ini rosak dan akan dimuat turun semula
- Library %s tidak boleh diperiksa, harus menganggap bahawa ianya baik
- Library %s adalah baik dan boleh digunakan
- Nyahdayakan gerak isyarat
- Menyahdayakan gerak isyarat, seperti menahan untuk menhancurkan blok, dan tekan untuk meletakkan blok.
- Kecepatan Tetikus
- Ubah kelajuan tetikus software
- Mouse pass-thru
- Dibundar
- Bilangan RAM yang ada (%d) lebih rendah daripada RAM yang diperuntuk (%d), yang mungkin akan menyebabkan ranap. Tukar peruntukan jikalau permainan ranap.
- Peruntukan memori
- Mengawal berapa banyak memori yang diberikan kepada Minecraft
- Java Runtime Rosak
- Seni bina tidak serasi: %s
- Tetapkan lalai
- Lalai
- Anda mesti mempunyai sekurang-kurangnya satu Java Runtime dipasang
- Tidak menemui sebarang Java Runtime yang serasi. Versi ini memerlukan Java %d atau lebih baru.
- Tidak menemui Java 8. Untuk menggunakan pilihan ini, anda perlu memasang Java 8.
- Minecraft 21w10a+ memerlukan profil teras OpenGL 3.2. Malangnya, cip grafik anda tidak menyokong OpenGL ES 3.0 atau lebih tinggi, tetapi terdapat beberapa sumber tambahan yang boleh anda pasang untuk menjalankan versi ini. Tekan OK untuk mengesahkan pemasangan, dan tekan Batal untuk membatalkan pelancaran.
- Mainkan saja
- Direktori permainan
- Argumen JVM
- Tetapan per-versi
- Tetapan Storan
- Folder baru untuk fail Pojav adalah Android/data/%s/files/ (juga dapat diakses menggunakan penyedia penyimpanan di penjelajah fail anda). Sekiranya anda perlu menyalin fail permainan anda, sila salin semuanya dari folder asal di games/PojavLauncher secara manual.]]>
- Ofset atas:
- ofset kanan:
- ofset bawah:
- ofset kiri:
- Tetapan lain-lain
- Benda Uji Kaji
- Paksa bahasa menjadi bahasa inggeris
- Membenarkan anda melihat teks asal, seperti yang ditentukan oleh pembangun. Memerlukan pemulaan semula
- Kembali ke skrin terakhir
- Jangan mengecilkan tekstur
- Membahagi semua textur dengan 2
- Membahagikan tekstur yang besar dengan /2 atau /4
- Tidak dinamakan
- Petikan Terkini
- Terbitan terkini
- Menyunting profil
- Nama
- Versi
- Hapus
- Java Runtime
- Renderer
- Mantel Cosmetica
- Mendayakan jubah daripada Cosmetica (sebelum ini Arc). Untuk maklumat lanjut sila layari https://cosmetica.cc. Memerlukan OptiFine.
- Konfigurasi versi %s
- Umum
- %d tugas sedang dijalankan
- Tamatkan
-
diff --git a/app_pojavlauncher/src/main/res/values-nl/strings.xml b/app_pojavlauncher/src/main/res/values-nl/strings.xml
deleted file mode 100644
index 50e6c4334..000000000
--- a/app_pojavlauncher/src/main/res/values-nl/strings.xml
+++ /dev/null
@@ -1,173 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition voor Android)
- PojavLauncher
- Start Minecraft: Java editie op je apparaat!
-
-
-
- E-mail of gebruikersnaam
- Wachtwoord
- Ingelogd blijven
- Aanmelden
- Deze gebruikersnaam bestaat al
- Microsoft-login
- Selecteer account
- Geen account gevonden!
- U hebt geen opgeslagen account.\nGebruik de optie \"Ingelogd blijven\" om een account op te slaan bij de eerste aanmelding.
-
-
- Dit account wordt verwijderd!
-
- Installeer Java Runtime %s (.tar.xz)
- Selecteer een mod installatie
-
- PojavLauncher is onverwacht gecrasht
- Geen versie!
- Meer weergeven
- Minder weergeven
-
- De rechten om te lezen/schrijven naar opslag zijn vereist!
- Installatie geslaagd
- Java Runtime verwijderen voltooid
-
-
- Ontwikkelings console
- Crash-logbestand
-
- Verbonden
-
- Klaar om Minecraft %s te spelen
- Cache bestanden opschonen
- Downloaden %s
- "%s downloaden (%.2fMB / %.2fMB)"
- Voorbereiden om bronnen te downloaden
- Opties
- Start een mod installatie (Forge, LabyMod, Fabric, etc...)
- Start een mod installatie (met aangepaste argumenten)
- Aangepaste controles
- Instellingen
- Over deze app
- Java Runtime verwijderen voltooid
- [Launcher herstart vereist] Hiermee kunt u Java Runtime opnieuw installeren
- Start Minecraft in Freeform modus
- Start Minecraft in zwevend venster. Vereist Android 7.0+
- Zijbalk verbergen
- Mensen die liever de v1-interface gebruiken vinden dit wellicht leuk. Dit geeft je het volledig scherm-gevoel.
- Negeer notch
- Negeer de notch en verbreed het scherm.\ngeeft je een meer meeslepende ervaring.
- Resolutie Schaaler
- sta toe om de resolutie van het spel te verlagen. 100% is de volledige resolutie
- Hoe lang zal starten na lange indrukken
- Verander de triggertijd voor lang indrukken van vernietig blok en laten vallen.
- Behandel de terugknop als rechter muis
- Sommige apparaten behandelen externe rechtermuis als terugknop. Als u een externe muis gebruikt, moet u dit activeren.
- Verander knopstijl
- Schakel dit in om de control-knop stijl te veranderen naar plat.
- Controle knoppen schalen
- Vergroot ze als knoppen te klein zijn.
- Muis schaling
- Wijzig de grootte van de virtuele muis.
- JVM Launch argumenten
- Wees voorzichtig, dit kan een spelcrash maken als het is aangepast zonder kennis.
- Algemene instellingen
- Schaalinstellingen
- Renderer
- Versietype zal in de versielijst staan
- Release
- Snapshot
- Old-alpha
- Old-beta
- Dupliceren
-
- Bewerken
- Foutmelding
- Waarschuwing
- Lading
- Naam
- Verwijderen
- Dupliceren
- Opnieuw starten
- Opslaan
- Uitpakken %s
- Dit veld mag niet leeg zijn
- Wacht
-
- Afsluiten
- Weet je zeker dat je sluiting wilt forceren?
- LWJGL3 is niet geïnstalleerd!
-
- GUI
- Toetsenbord
- Chat
- Foutoplossing
- Pri
- Sec
- ◇
- Inv
- ▲
- ◀
- ▶
- ▼
- ⬛
- 3de
- Tab
- Muis
- Mouse: uit
- Mouse: aan
-
- Geforceerd sluiten
- Logboek output
- Input Debug
- Verstuur aangepaste sleutelcode
-
-
- Bewerken %s
- Verwijderen %s?
- Sleutelcode
- Omschakelbaar
- Grootte
- Breedte
- Hoogte
- Dynamische positie
- Dynamisch X
- Dynamisch Y
- Achtergrondtransparantie
- Toetsencombinatie
- Alt
- Ctrl
- Shift
- Knop toevoegen
- Selecteer standaard control json
- Opties
- Speel
- Welkom, %s
- Informatie (DEV)
- Gebruiker wijzigen
- Versie:
- Geen crash gedetecteerd
- Geen log.
- Kon nieuwsfeed niet ophalen!
- Schakel in de automatische RAM aanpasser in
- Automatische RAM
- Geheugen ingesteld op %d MB
- Bibliotheken controleren na het downloaden
- Deze optie zorgt ervoor dat launcher de bibliotheek hash controleert als deze beschikbaar is. Voorkomt defecte downloads.
- Bibliotheek %s is beschadigd en zal opnieuw worden gedownload
- Bibliotheek %s kan niet worden gecontroleerd, we nemen aan dat het goed is
- Bibliotheek %s is prima en bruikbaar
- Gebaren uitschakelen
- Schakelt gebaren uit, zoals vasthouden om blok te breken en tikken om een blok te plaatsen.
- Muis Snelheid
- Veranderd de snelheid van de virtuele muis
- Muis pass-thru
- Afgerond
- Naam
- Renderer
-
diff --git a/app_pojavlauncher/src/main/res/values-no/strings.xml b/app_pojavlauncher/src/main/res/values-no/strings.xml
deleted file mode 100644
index 47722ba18..000000000
--- a/app_pojavlauncher/src/main/res/values-no/strings.xml
+++ /dev/null
@@ -1,179 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition for Android)
- PojavLauncher
- Start Minecraft: Java Edition på enheten din!
-
-
-
- E-post eller brukernavn
- Passord
- Hold meg pålogget
- Logg inn
- Dette brukernavn er allerede i bruk
- Logg inn med Microsoft
- Velg konto
- Ingen konto funnet!
- Du har ingen lagrede konto.\nBruk alternativet \"Hold meg logget inn\" for å lagre en konto ved første innlogging.
-
-
- Denne kontoen blir fjernet!
-
- Installer Java Runtime %s (.tar.xz)
- Velg en mod installasjonprogram
-
- PojavLauncher har uventet krasjet
- Ingen versjon!
- Vis mer
- Vis mindre
-
- Trenger tillatelse til å lese/skrive data!
- Installasjonen var vellykket
- Ferdig med å avinstallere Java Runtime
-
-
- Utviklerkonsoll
- Krasj logg
-
- Tilkoblet
-
- Klar til å spille Minecraft %s
- Tømmer cache-filer
- Laster ned %s
- "Laster ned %s (%.2f MB / %.2f MB)"
- Forbereder å laste ned ressurser
- Innstillinger
- Start en modinstallasjonprogram (Forge, Labymod, Fabric...)
- Start en modinstallasjonprogram (med tilpassede argumenter)
- Tilpassede kontroller
- Innstillinger
- Om
- Avinstaller Java Runtime
- [Omstart kreves] Dette lar deg installer Java Runtime på nytt
- Start Minecraft i Freeform-modus
- Start Minecraft i flytender vindu. Krever Android 7.0+
- Skjul sidestolpe
- Nostalge folks å foretrekke de gamle v1 brukergrensesnittet kanskje slik som dette. Gir deg en mer fullskjerm-opplevelse.
- Ignorer \"notch\"
- Ignorer \"notch\" og utvider skjermen under det.\nGir deg en mer fullskjermende opplevelse.
- Oppløsnings Skaler
- Lar deg redusere spillets oppløsning. 100% er full oppløsning
- Hvor lenge vil utløse etter langt trykk
- Endre utløsertid for langt trykk i ødelegge blokk og slipp-gjenstand.
- Behadle tilbake-knappen som RMB
- Noen enheter behandler ytre høyre mus som tilbakeknapp. Hvis du bruker en ekstern mus, bør du aktivere dette.
- Flat knapp-stil
- Aktiver dette for å endre kontroll-stilen till flat.
- Krontrollknapper skalering
- Oppskalere dem hvis knappene er for små.
- Mus skalering
- Endre størrelsen på virtuell mus.
- JVM Launch Arguments
- Vær forsiktig, dette kan gjøre spillet krasj dersom det endres uten kunnskap.
- Generelle innstillinger
- Innstillinger for skalering
- Gjengir
- Versjonstype vil være i versjonslisten
- Release
- Snapshot
- Old-alpha
- Old-beta
- Klone
-
- Rediger
- Feil
- Advarsel
- Last inn
- Navn
- Slett
- Klone
- Start på nytt
- Lagre
- Pakker ut %s
- Feltet kan ikke stå tomt
- Vent
-
- Avslutt
- Er du sikker på at du vil tvinge avslutte?
- LWJGL3 ble ikke installert!
- Vulkan Zink gjengir støttes ikke på denne enheten!
-
- GUI
- Tastatur
- Chat
- Avlusing
- LMB
- RMB
- INV
- 3RD
- TAB
- Mus
- Mus: av
- Mus: på
-
- Tving avslutt
- Logg utdata
- Input Debug
- Send tilpasset kode
- Skaler opp
- Skalere ned
-
-
- Rediger %s
- Slett %s?
- Kode
- Byttbar
- Størrelse
- Bredde
- Høyde
- Dynamisk posisjon
- Dynamisk X
- Dynamisk Y
- Gjennomsiktighet på bakgrunn
- Knapp kombinasjon
- Legg til knapp
- Velg standard krontroll json
- Innstillinger
- Spill
- Velkommen, %s
- Info (DEV)
- Bytt bruker
- Versjon:
- Ingen krasj oppdaget
- Ingen logg.
- Kunne ikke hente nyhetsmatingen!
- Aktiverer automatisk RAM-justering
- Auto RAM
- Minne satt til %d MB
- Sjekk libaryer etter nedlasting
- Dette valget fremtvinger launcheren for å sjekke bibliotek hash hvis den er tilgjengelig. Hindrer ødelagte nedlastinger.
- Library %s er skadet og vil bli lastet på nytt
- Library %s kan ikke skjekkes, må anta det er bra
- Library %s er bra og kan brukes
- Deaktiver gester
- Deaktiverer gester, som for å knuse blokker og trykk for å plassere en blokk.
- Mus Hastighet
- Endrer hastigheten på programvare-musen
- Mus passe-thru
- Avrundet
- Den nåværende mengden ledig RAM (%d) er lavere enn allokert RAM (%d), noe som kan føre til krasj. Endre allokeringen hvis spillet krasjer.
- Minne tildeling
- Kontrollerer hvor mye minne som blir gitt til Minecraft
- Korrupt Java Runtime
- Java VMs
- Legg til ny
- Importer ny Java VM
- Runtime Manager
- Administrere installerte Java VMs
- Bufrer...
- Sett som standard
- Standard
- Navn
- Gjengir
-
diff --git a/app_pojavlauncher/src/main/res/values-pl/strings.xml b/app_pojavlauncher/src/main/res/values-pl/strings.xml
deleted file mode 100644
index 9ce1a42ec..000000000
--- a/app_pojavlauncher/src/main/res/values-pl/strings.xml
+++ /dev/null
@@ -1,290 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition dla Androida)
- PojavLauncher
- Uruchom Minecraft: Java Edition na swoim urządzeniu!
-
-
-
- E-mail lub nazwa użytkownika
- Hasło
- Zapamiętaj dane logowania
- Zaloguj się
- Nieprawidłowa nazwa użytkownika. Nazwa użytkownika musi zawierać od 3 do 16 znaków oraz składać się tylko z: A-Z, a-z, 0-9 oraz znaku podkreślenia.
- Ta nazwa użytkownika już istnieje
- Logowanie Microsoft
- Wybierz konto
- Nie znaleziono żadnego konta!
- Nie masz zapisanego żadnego konta.\nZaznacz opcję \"Zapamiętaj dane logowania\", aby zapisać konto po pierwszym zalogowaniu.
-
- "Naciśnij na ikonę koła zębatego, aby otworzyć menu kontekstowe ⚙\nNaciśnij na przycisk, aby dostosować: edytuj, zmień rozmiar, usuń lub zmień przypisanie klawiszy."
-
- To konto zostanie usunięte!
-
- Zainstaluj środowisko wykonawcze Java %s (.tar.xz)
- Wybierz instalator modyfikacji
-
- PojavLauncher uległ nieoczekiwanej awarii
- Brak wersji!
- Pokaż więcej
- Pokaż mniej
-
- Należy zezwolić aplikacji na dostęp do pamięci wewnętrznej!
- Instalacja powiodła się
- Odinstalowano środowisko wykonawcze Java
-
-
- Konsola
- Rejestr awarii
-
- Połączono
- Lokalne
-
- Minecraft %s jest gotowy do uruchomienia
- Czyszczenie plików pamięci podręcznej
- Pobieranie %s
- "Pobieranie %s (%.2f MB / %.2f MB)"
- Przygotowywanie do pobrania zasobów
- Nie można legalnie zainstalować Minecraft, gdy używane jest konto lokalne. Przełącz na konto online, aby kontynuować.
- Opcje
- Zainstaluj modyfikację (Forge, LabyMod, Fabric itp.)
- Zainstaluj modyfikację (z niestandardowymi argumentami)
- Sterowanie
- Ustawienia
- Informacje
- Użyj alternatywnego renderowania powierzchni
- Ta opcja może okazać się pomocna w przypadku problemów z wydajnością
- Odinstaluj środowisko wykonawcze Java
- [Wymagane ponowne uruchomienie launchera] Umożliwi to ponowną instalację środowiska wykonawczego Java
- Funkcja \"Obraz w obrazie\"
- Uruchom Minecraft w pływającym oknie. Wymagany Android 7.0 lub nowszy
- Ukryj pasek boczny
- Może to przypaść do gustu osobom preferującym starszy interfejs v1. Uzyskasz lepsze doświadczenie pełnoekranowe.
- Ignoruj wcięcie
- Ignoruje wcięcie i rozszerza ekran pod nim.\nUzyskasz głębsze doświadczenie.
- Skalowanie rozdzielczości
- Umożliwia zmniejszenie rozdzielczości gry. 100% odpowiada natywnej rozdzielczości
- Czas wywołania akcji po długim naciśnięciu
- Zmień czas wywołania akcji długiego naciśnięcia dla niszczenia bloków i wyrzucania przedmiotów.
- Poprawka prawego przycisku myszy
- Prawy przycisk niektórych myszy jest traktowany jako przycisk Wstecz. Włącz tę opcję, jeśli używasz zewnętrznej myszy.
- Płaskie przyciski
- Jeśli włączone, przyciski sterujące wyświetlą się jako płaskie.
- Skalowanie przycisków sterujących
- Zwiększ wartość, jeśli przyciski są zbyt małe.
- Skalowanie myszy
- Zmienia rozmiar wirtualnej myszy.
- Argumenty uruchomienia JVM
- Zachowaj ostrożność, ponieważ wprowadzenie zmian bez odpowiedniej wiedzy może doprowadzić do awarii.
- Ustawienia ogólne
- Ustawienia skalowania
- Silnik renderujący
- Holy GL4ES - (wszystkie wersje, szybki)
- virglrenderer - (wersja 1.7+, wolny)
- vgpu - (do wersji 1.16.5, szybki)
- zink - (old_beta b1.8+, wolny)
- ANGLE - (wersja 1.17+, zrównoważony)
- Opcje widoczne na liście wersji
- Oficjalne wydanie
- Wersja deweloperska
- Dawna Alpha
- Dawna Beta
- Izolacja instalatora .jar
- Klonuj
-
- Edytuj
- Błąd
- Ostrzeżenie
- Wczytaj
- Nazwa
- Usuń
- Klonuj
- Uruchom ponownie
- Zapisz
- Wypakowywanie %s
- To pole nie może być puste
- Czekaj
-
- Aplikacja/gra zakończyła się błędem o kodzie %d, sprawdź latestlog.txt, aby uzyskać więcej informacji.
- Wyjdź
- Czy na pewno chcesz wymusić zamknięcie?
- LWJGL3 nie został zainstalowany!
- Renderer Vulkan Zink nie jest obsługiwany na tym urządzeniu!
-
- GUI
- Klawiatura
- Czat
- Debug
- LPM
- PPM
- ◇
- Ekw
- ▲
- ◀
- ▶
- ▼
- ⬛
- Widok
- Gracze
- Mysz
- Mysz: wyłączona
- Mysz: włączona
-
- Wymuś zamknięcie
- Wyjście danych
- Wejście debugowania
- Wyślij własny klawisz
- Powiększ
- Zmniejsz
-
- Importuj sterowanie
- Nieprawidłowy lub uszkodzony plik
- importuj sterowanie
- Plik jest weryfikowany. Zaczekaj i spróbuj ponownie…
- Nieprawidłowa nazwa lub plik już istnieje
- Importowanie zakończone
-
- Edytowanie %s
- Usunąć %s?
- Klawisz
- Aktywowane
- Rozmiar
- Szerokość
- Wysokość
- Mapowanie
- Orientacja
- Kolor tła
- Zaokrąglenie narożników
- Szerokość obrysu
- Kolor obrysu
- Dynamiczna pozycja
- Dynamiczne X
- Dynamiczne Y
- Przezroczystość tła
- Przezroczystość przycisku
- Kombinacja klawiszy
- Alt
- Ctrl
- Shift
- Dodaj przycisk
- Dodaj panel przycisków
- Dodaj przycisk podrzędny
- Dodano przycisk podrzędny n°%d !
- Wybierz domyślny plik json dla sterowania
- Eksportuj ustawienia sterowania
- Zainstaluj .jar
- Opcje
- Graj
- Witaj, %s
- Info (DEV)
- Konta
- Wersja:
- Nie wykryto awarii
- Brak rejestru.
- Błąd pobierania aktualności !
- Włącza automatyczny przydział pamięci RAM
- Automatyczny RAM
- Przydzielono %d MB pamięci
- Sprawdź biblioteki po pobraniu
- Ta opcja wymusza na launcherze sprawdzanie sumy kontrolnej biblioteki, jeśli jest dostępna. Umożliwia to wykrycie uszkodzonych pobrań.
- Biblioteka %s jest uszkodzona i zostanie pobrana ponownie
- Biblioteka %s nie może zostać sprawdzona i należy założyć, że jest dobra
- Biblioteka %s jest dobra i nadaje się do użytku
- Wyłącz gesty
- Wyłącza gesty, takie jak \"Przytrzymaj, aby niszczyć blok\" oraz \"Naciśnij, aby postawić blok\".
- Prędkość myszy
- Zmienia prędkość wirtualnej myszy
- Przekaz sygnału myszy
- Przesuwalny
- Zaokrąglony
- Bieżąca ilość wolnej pamięci RAM (%d) jest mniejsza od przydzielonej pamięci RAM (%d), co może prowadzić do awarii. Zmień ilość, jeśli gra ulegnie awarii.
- Przydział pamięci
- Kontroluje ilość pamięci przydzielonej Minecraft
- %s (Java %d)
- Uszkodzone środowisko wykonawcze Java
- Niezgodna architektura: %s
- Maszyny wirtualne Java
- Dodaj nową
- Importuj nową maszynę wirtualną Java
- Menedżer środowiska wykonawczego
- Zarządzaj zainstalowanymi maszynami wirtualnymi Java
- Buforowanie...
- Ustaw jako domyślny
- Domyślny
- Należy mieć zainstalowane co najmniej jedno środowisko wykonawcze Java
- Nie można znaleźć żadnej zgodnej wersji środowiska Java. Ta wersja wymaga Java %d lub nowszych.
- Nie można znaleźć Java 8. Aby korzystać z tej opcji, należy zainstalować Java 8.
- Minecraft 21w10a+ wymaga OpenGL 3.2. Niestety twoja karta graficzna nie obsługuje OpenGL ES 3.0 lub wyższych, ale możesz zainstalować dodatkowe zasoby, dzięki którym możesz uruchomić te wersje. Naciśnij OK, aby potwierdzić instalacje lub Anuluj, aby ją przerwać.
- Uruchom mimo to
- Katalog gry
- Argumenty JVM
- Ustawienia dla wersji
- Zmiany w przechowywaniu
- Nowy folder Pojav to Android/data/%s/files/ (do którego możesz uzyskać dostęp poprzez przeglądarkę plików). Jeśli potrzebujesz kopii swoich plików gry, skopiuj wszystko ręcznie z oryginalnego folderu games/PojavLauncher.]]>
- Przesunięcie sterowania
- Górne przesunięcie:
- prawe przesunięcie:
- dolne przesunięcie:
- lewe przesunięcie:
- Przesunięcia boczne sterowania
- Ustaw niestandardowe przesunięcie na każdą stronę ekranu
- Uruchom z włączoną myszą wirtualną
- Grafika i silnik renderujący
- Rozdzielczość, typ skalowania i renderowanie
- Sterowanie
- Typy gestów, wyzwalacze i skalowanie
- Konfiguracja Java
- Pozostałe ustawienia
- Lista wersji oraz sprawdzanie bibliotek
- Eksperymentalne
- Nie pomożemy Ci, jeśli coś zepsujesz używając tych opcji.
- Włącz tryb zrównoważonej wydajności
- Zmniejsz nagrzewanie urządzenia ograniczając górny próg wydajności
- Zmniejsz nagrzewanie urządzenia ograniczając górny próg wydajności
- Wymuś język angielski
- Umożliwia wyświetlanie zdań w oryginalnym języku produkcyjnym. Wymagane ponowne uruchomienie
- Sterowanie ruchem
- Wirtualna mysz
- Odwróć oś X
- Odwróć oś Y
- Odwróć oś poziomą
- Odwróć oś pionową
- Powrót do ostatniego ekranu
- Nie zmniejszaj tekstur
- Dzieli wszystkie tekstury przez 2
- Dzieli wszystkie tekstury przez /2 lub /4
- Bez nazwy
- Najnowsza wersja deweloperska
- Najnowsze wydanie
- Edytowanie profilu
- Nazwa
- Wersja
- Usuń
- Środowisko wykonawcze Javy
- Silnik renderujący
- Peleryny Cosmetica
- Aktywuje peleryny z Cosmetica (wcześniej Arc). Aby dowiedzieć się więcej, odwiedź https://cosmetica.cc. Wymaga OptiFine.
- %s konfiguracja wersji
- Ogólne
- Usługa Pojav Foreground
- Ta usługa jest używana do wykonywania długich operacji
- Zainstalowane
- (Użyj ustawień domyślnych)
- Domyślne sterowanie
- %d zadań w toku
- Przerwij
- Gra jest uruchomiona!
- Utwórz
- Wpisz nazwę folderu
- Logowanie zakończone
- Dodaj konto
- Zadania są w toku, proszę czekać
- Brak zapisanych kont
- Pobieranie listy wersji…
-
diff --git a/app_pojavlauncher/src/main/res/values-pt-rBR/strings.xml b/app_pojavlauncher/src/main/res/values-pt-rBR/strings.xml
deleted file mode 100644
index b5015eeb0..000000000
--- a/app_pojavlauncher/src/main/res/values-pt-rBR/strings.xml
+++ /dev/null
@@ -1,311 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition para Android)
- PojavLauncher
- Jogue Minecraft: Java Edition em seu dispositivo!
-
-
-
- Email ou nome de usuário
- Senha
- Manter conectado
- Iniciar sessão
- Nome de usuário inválido. O nome de usuário deve conter 3-16 caracteres, contendo apenas A-Z, a-z, 0-9 e subtraço.
- Este nome de usuário já existe
- Entrar com uma conta Microsoft
- Selecionar conta
- Nenhuma conta encontrada!
- Você não tem nenhuma conta salva.\nUse a opção \"Manter conectado\" para salvar uma conta após o primeiro início de sessão.
-
- "Toque na engrenagem no topo e centro para abrir as opções ⚙\nToque em um botão para customizar: editar, redimensionar, deletar, ou customizar o mapeamento."
-
- Esta conta será removida!
-
- Instalar Java Runtime %s (.tar.xz)
- Selecione um instalador de mod
-
- O PojavLauncher parou de funcionar inesperadamente
- Nenhuma versão!
- Mostrar mais
- Mostrar menos
-
- É necessário conceder permissão para ler/modificar armazenamento!
- Instalação concluída
- Desinstalação do Java Runtime concluída
-
-
- Documentação
- Console de desenvolvedor
- Registro de falhas
-
- Conectado
- Local
-
- Pronto para jogar Minecraft %s
- Limpando arquivos em cache
- Baixando %s
- "Baixando %s (%.2f MB / %.2f MB)"
- Preparando para baixar os recursos
- Minecraft não pode ser normalmente instalado com uma conta local. Entre com uma conta online para continuar.
- Opções
- Executa um instalador de mods (Forge, LabyMod, Fabric, etc...)
- Executar um instalador de mods (com argumentos personalizados)
- Controles personalizados
- Configurações
- Sobre
- Usar renderização de superfície alternativa
- Pode ajudar na performance em cenários de GPU limitada
- Desinstalar Java Runtime
- [Reinicialização necessária] Isto permite você reinstalar o Java Runtime
- Iniciar o Minecraft no modo de janela flutuante
- Executar o Minecraft em janela flutuante. Requer Android 7.0+
- Ocultar barra lateral
- As pessoas nostálgicas que preferem a antiga UI v1 podem gostar disto. Dá a você uma experiência de tela cheia.
- Ignorar entalhe
- Ignorar o entalhe e estender a tela por baixo dele.\nGarante uma experiência mais envolvente.
- Escala de resolução
- Permite que você reduza a resolução do jogo. 100% é a resolução total
- Quanto tempo será acionado depois de manter pressionado
- Tempo para acionar a função de destruir bloco e largar item.
- Usar o botão voltar como o botão direito
- Alguns dispositivos usam o botão direito do mouse externo como botão voltar. Se você estiver usando um mouse externo, você deve ativar isso.
- Estilo de botão plano
- Ative isto para trocar o estilo do botão para plano.
- Escala dos botões
- Aumenta os botões caso estiverem muito pequenos.
- Escala do mouse
- Alterar o tamanho do mouse virtual.
- Argumentos JVM
- Cuidado, isto pode causar falhas no seu jogo caso modificado sem conhecimento.
- Configurações gerais
- Configurações de escala
- Renderizador
- Holy GL4ES - (todas as versões, rápido)
- virglrenderer - (versão 1.7+, lento)
- vgpu - (até 1.16.5, rápido)
- zink - (antigo beta b1.8+, lento)
- ANGLE - (versão 1.17+, meio)
- Tipos de versões que serão mostradas na lista de versões
- Versões finais
- Snapshot
- Alpha antiga
- Beta antiga
- Instalador de .jar sandbox
- Controla a disponibilidade do gerenciador de segurança da sandbox ao iniciar o instalador de .jar.
- Clonar
-
- Editar
- Erro
- Aviso
- Carregar
- Nome
- Remover
- Clonar
- Reiniciar
- Salvar
- Descompactando %s
- Este campo não pode ficar vazio
- Aguarde
- Selecionar
-
- Aplicativo/jogo fechou com o código %d, verifique latestlog.txt para mais detalhes.
- Sair
- Tem certeza que deseja forçar o encerramento?
- LWJGL3 não foi instalado!
- O renderizador Vulkan Zink não é suportado neste dispositivo!
-
- Interface
- Teclado
- Chat
- Depuração
- Esq
- Dir
- ◇
- Inv
- ▲
- ◀
- ▶
- ▼
- ⬛
- visão
- Tab
- Mouse
- Mouse: desligado
- Mouse: ligado
-
- Forçar encerramento
- Registro de saída
- Depuração de entrada
- Enviar tecla personalizada
- Ampliar
- Diminuir
-
- Importar controles
- Arquivo inválido ou corrompido
- Importar controles
- O arquivo está sendo verificado, por favor aguarde e tente novamente…
- Nome inválido ou o arquivo já existe
- Importação concluída
-
- Editando %s
- Remover %s?
- Tecla
- Alternável
- Tamanho
- Largura
- Altura
- Mapeamento
- Orientação
- Cor de fundo
- Raio dos cantos
- Largura do traçado
- Cor do traçado
- Posição dinâmica manual
- X dinâmico
- Y dinâmico
- Transparência do fundo
- Opacidade do botão
- Combinação de teclas
- Alt
- Ctrl
- Shift
- Adicionar botão
- Adicionar botão gaveta
- Adicionar sub-botão
- Sub-botão n°%d foi adicionado!
- Selecionar o json de controle padrão
- Exportar controle
- Compartilhar arquivo de registro
- Instalar .jar
- Opções
- Jogar
- Bem-vindo(a), %s
- Informação (DEV)
- Trocar usuário
- Versão:
- Nenhuma falha detectada
- Sem registros.
- Não foi possível obter o feed de notícias!
- Ativa o ajuste automático de RAM
- RAM automática
- Memória definida para %d MB
- Verificar as bibliotecas depois de baixar
- Esta opção força o launcher a verificar o hash da biblioteca se ele estiver disponível. Impede baixar arquivos com problemas.
- Biblioteca %s está danificada e será baixada novamente
- A biblioteca %s não pôde ser verificada, vamos assumir que está boa
- Biblioteca %s está boa e utilizável
- Desativar gestos
- Desativa gestos, como segurar para quebrar blocos e tocar para colocar um bloco.
- Desativar toque duplo para trocar as mãos
- Desativa o toque duplo em um item da hotbar para trocá-lo na segunda mão
- Velocidade do mouse
- Altera a velocidade do mouse do software
- Mouse pode atravessar
- Deslizável
- Arredondado
- A quantidade atual de RAM livre (%d) é menor que a RAM alocada (%d), no qual pode causar falhas. Altere a quantidade se o jogo apresentar alguma falha.
- Alocação de memória
- Controla o quanto de RAM será usado pelo Minecraft
- %s (Java %d)
- Java Runtime corrompido
- Arquitetura incompatível: %s
- Máquina virtual Java
- Adicionar nova
- Importar nova Java VM
- Gerenciador do Runtime
- Gerenciar Java VMs instalados
- Armazenando...
- Definir como padrão
- Padrão
- Você precisa ter pelo menos um Java Runtime instalado
- Não foi possível encontrar um Java Runtime compatível. Esta versão requer Java %d ou mais recente.
- Não foi possível encontrar o Java 8. Para usar esta opção, você precisa instalar o Java 8.
- Minecraft 21w10a+ requer o núcleo do OpenGL 3.2. Infelizmente, seu chip gráfico não suporta OpenGL ES 3.0 ou superior, mas há alguns recursos adicionais que você pode instalar para executar estas versões. Pressione em OK para confirmar a instalação, pressione Cancelar para abortar a inicialização.
- Jogar mesmo assim
- Diretório do jogo
- Argumentos JVM
- Configurações da versão
- Alterações de armazenamento
- A nova pasta para os arquivos do Pojav é Android/data/%s/files/ (também acessível usando um explorador de arquivos). Se você precisar copiar os arquivos do seu jogo, copie tudo da pasta original em games/PojavLauncher manualmente.]]>
- Deslocamento do controle
- Deslocamento superior:
- Deslocamento direito:
- Deslocamento inferior:
- Deslocamento esquerdo:
- Deslocamento lateral dos controles
- Defina um deslocamento personalizado para cada lado da tela
- Iniciar com o mouse virtual ligado
- Mouse Virtual aparece na inicialização quando esta opção está ativada
- Vídeo e renderizador
- Resolução, tipo de escala e renderizador
- Personalização dos controles
- Tipos de gestos, gatilhos e escala
- Ajustes do Java
- Versões do Java, argumentos JVM, quantidade de RAM e sandbox
- Configurações diversas
- Lista de versões e verificação das bibliotecas
- Opções experimentais
- Use estas opções com cuidado, não daremos suporte.
- Ativar o modo de desempenho sustentado
- Limitar redução térmica limitando o pico de desempenho
- Forçar ativação do vsync
- Limitar redução térmica limitando o pico de desempenho
- Forçar linguagem ao inglês
- Permite que você veja frases originais, como esperado por desenvolvedores. Requer uma reinicialização
- Editar controles personalizados
- Ajuste o esquema de controle para atender às suas necessidades
- Controles giroscópicos
- Mouse virtual
- Inverter eixo X
- Inverter eixo Y
- Inverter o eixo horizontal
- Inverter o eixo vertical
- Voltar para última tela
- Não encolher texturas
- Dividir todas texturas por 2
- Dividir texturas grandes por 2 ou 4
- Sem nome
- Última snapshot
- Última versão
- Editando perfil
- Nome
- Versão
- Excluir
- Java Runtime
- Renderizador
- Capas da Cosmetica
- Ativa capas da Cosmetica (anteriormente Arc). Para mais informações visite https://cosmetica.cc. Requer OptiFine.
- Configuração da versão %s
- Geral
- Serviço de primeiro plano
- O serviço é usado para executar operações de longo prazo
- Instalado
- Use o padrão global
- Controle padrão
- Tarefa em andamento
- terminar
- O jogo está sendo executado!
- Criar
- Insira o novo nome da pasta
- ‘Login’ efetuado
- Adicionar conta
- Tarefas em andamento, por favor aguarde
- Não há contas salvas
- Baixando a versão ${version}…
- Falha ao baixar o Minecraft! Isso pode ser devido a uma conexão de rede ruim, arquivos colocados incorretamente, etc..
- Erro desconhecido na API do Xbox Live %d
- Parece que você não tem uma conta Xbox Live. Por favor, faça login em https://minecraft.net/ e tente novamente.
- Um adulto precisa verificar sua conta.
- Sua conta é uma conta de criança, e precisa ser colocada em uma família para poder entrar.
- Parece que esta conta não tem um perfil do Minecraft. Se você tiver o Xbox Game Pass, faça login em https://minecraft.net/ e configure-o.
- Xbox Live não está disponível em seu país
- Habilitar controles do gyrocópio
- Habilitar isto permitirá que você visualize o jogo girando o seu telefone
- Sensibilidade de controles do Giroscópio
-
diff --git a/app_pojavlauncher/src/main/res/values-pt/strings.xml b/app_pojavlauncher/src/main/res/values-pt/strings.xml
deleted file mode 100644
index f6d24f6db..000000000
--- a/app_pojavlauncher/src/main/res/values-pt/strings.xml
+++ /dev/null
@@ -1,249 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition para Android)
- PojavLauncher
- Joga o Minecraft: Java Edition no teu dispositivo!
-
-
-
- E-mail ou nome de utilizador
- Palavra-passe
- Manter a sessão iniciada
- Iniciar sessão
- Nome de utilizador inválido. Um nome de utilizador deve ser entre 3 e 16 caracteres, deve conter apenas A-Z, a-z, 0-9 e underscore.
- Esse nome já existe
- Iniciar sessão pela Microsoft
- Seleciona a conta
- Nenhuma conta encontrada!
- Tu não tens nenhuma conta guardada.\nUsa a opção \"Manter a sessão iniciada\" para guardar uma conta depois do primeiro início de sessão.
-
-
- Esta conta será removida!
-
- Instalar Runtime do Java %s (.tar.xz)
- Seleciona um Instalador de mods
-
- O PojavLauncher falhou inesperadamente
- Não existem versões!
- Mostrar mais
- Mostrar menos
-
- A permissão de leitura/escrita no armazenamento é necessária!
- Instalação completa com sucesso
- Desinstalação da Runtime do Java concluída
-
-
- Consola de Desenvolvedor
- Registro de falhas
-
- Conectado
- Local
-
- Pronto para jogar Minecraft %s
- A limpar os ficheiros em cache
- A transferir %s
- "A transferir %s (%.2f MB / %.2f MB)"
- A preparar para transferir os recursos
- Minecraft não pode ser instalado legalmente quando conectado numa conta local. Por favor, mude para uma conta original para continuar.
- Opções
- Executa um instalador de mods (Forge, LabyMod, Fabric, etc...)
- Executa um instalador de mods (com argumentos personalizados)
- Controlos personalizados
- Definições
- Acerca
- Usar renderização de superfície alternada
- Pode ajudar no desempenho em cenários de vínculo da GPU
- Desinstalar Runtime do Java
- [Reinicio do lançador requirido] Isto te permite reinstalar a Runtime do Java
- Executar o Minecraft no modo Freeform
- Executar o Minecraft numa janela flutuante. Requere Android 7.0+
- Esconder a barra lateral
- Pessoas nostálgicas preferem a interface antiga da v1 parecida com isto.
-Dá-te uma experiência de tela cheia melhorada.
- Ignorar o entalhe
- Ignorar o entalhe e estender a tela até lá. \nDá-te uma experiência mais imersiva.
- Escala da Resolução
- Permite-te reduzir a resolução do jogo. 100% é a resolução total
- Quanto tempo será acionado depois de pressionar e segurar
- Alterar o tempo de ativação de um toque longo entre destruir um bloco e soltar itens.
- Tratar o botão voltar como o botão direito do rato
- Alguns dispositivos tratam o botão direito externo como o botão voltar. Se tu estás a usar um rato externo, tu deves ativar isto.
- Estilo de botão plano
- Ativa isto para trocar o estilo do botão para plano.
- Escala dos botões
- Aumenta o tamanho dos botões caso estejam muito pequenos.
- Escala do rato
- Alterar o tamanho do rato virtual.
- Argumentos JVM
- Tem cuidado, isto pode fazer o jogo falhar se modificado sem conhecimento.
- Definições gerais
- Definições de escala
- Renderizador
- O tipo de versões que estarão na lista de versões
- Oficial
- Snapshot
- Alpha antiga
- Beta antiga
- Clonar
-
- Editar
- Erro
- Aviso
- Carregar
- Nome
- Remover
- Clonar
- Reiniciar
- Guardar
- A descompactar %s
- Este campo não pode estar vazio
- Aguarda
-
- Aplicação/Jogo saiu com código %d, verifique latestlog.txt para mais detalhes.
- Sair
- Tu tens a certeza que queres forçar o encerramento do jogo?
- O LWJGL3 não foi instalado!
- O renderizador Vulkan Zink não é suportado neste dispositivo!
-
- Interface
- Teclado
- Chat
- Depuração
- Pri
- Seg
- Inv
- terceira
- Tab
- Rato
- Rato: desligado
- Rato: ligado
-
- Forçar encerramento
- Registro de saída
- Inserir Depuração
- Enviar tecla personalizada
- Ampliar
- Diminuir
-
- Importar Controlos
- Ficheiro inválido ou corrompido
- importar controlos
- O ficheiro está a ser verificado, por favor aguarda e tenta outra vez…
- Nome inválido ou o ficheiro já existe
- Importação concluída
-
- A editar %s
- Remover %s?
- Tecla
- Alternável
- Tamanho
- Largura
- Altura
- Mapeamento
- Orientação
- Cor do fundo
- Raio dos cantos
- Espessura do traçado
- Cor do traçado
- Posição Dinâmica manual
- X Dinâmico
- Y Dinâmico
- Transparência do fundo
- Opacidade do botão
- Combinação de teclas
- Adicionar botão
- Adicionar desenhador de botão
- Adicionar sub-botão
- Sub-botão n°%d foi adicionado!
- Selecionar o json de controlo padrão
- Instalar .jar
- Opções
- Jogar
- Bem-vindo(a), %s
- Informação (DEV)
- Trocar de utilizador
- Versão:
- Nenhuma falha detetada
- Sem registros.
- Não foi possível obter o feed de notícias!
- Ativa o ajuste automático de RAM
- RAM automática
- Memória definida para %d MB
- Verificar as bibliotecas depois de transferir
- Esta opção força o lançador a verificar o banco de bibliotecas se este estiver disponível. Previne transferências com problemas.
- A biblioteca %s está danificada e irá ser transferida novamente
- A biblioteca %s não pôde ser verificada, vamos assumir que está utilizável
- Biblioteca %s está bem e utilizável
- Desativar gestos
- Desativa gestos, como segurar para quebrar blocos e tocar para colocar um bloco.
- Velocidade do rato
- Altera a velocidade do rato do software
- Rato pode passar através
- Deslizável
- Arredondado
- A quantidade atual de memória RAM livre (%d) é menor do que a memória RAM alocada (%d), o que pode levar a falhas. Altera a alocação se o jogo falhar.
- Alocação de memória
- Controla quanta memória é dada ao Minecraft
- Runtime do Java corrompida
- Arquitetura incompatível: %s
- VMs do Java
- Adicionar nova
- Importar uma nova VM do Java
- Gestor de Runtimes
- Gerir as VMs do Java instaladas
- A colocar em cache...
- Definir como padrão
- Padrão
- Tu deves ter pelo menos uma Runtime do Java instalada
- Não foi possível encontrar uma Runtime do Java compatível. Esta versão requere Java %d ou superior.
- Não foi possível encontrar o Java 8. Para usar esta opção, tu precisas de instalar o Java 8.
- O Minecraft 21w10a+ requer o perfil essencial OpenGL 3.2. Infelizmente, o seu processador de vídeo não suporta o OpenGL ES 3. ou superior, mas há alguns recursos adicionais que você pode instalar para executar essas versões. Pressione OK para confirmar a instalação e pressione Cancelar para abortar a execução.
- Jogar mesmo assim
- Diretório do jogo
- Argumentos JVM
- Definições da versão
- Alterações de armazenamento
- A nova pasta para os ficheiros do Pojav é Android/data/%s/files/ (também acessível usando um explorador de ficheiros). Se tu precisares de copiar os ficheiros do teu jogo, por favor copia tudo da página original em games/PojavLauncher manualmente.]]>
- Deslocamento dos controles
- Deslocar superior:
- Deslocar para direita:
- deslocamento inferior:
- Descolar para esquerda:
- Deslocamento lateral dos controles
- Definir um deslocamento personalizado para cada lado da tela
- Iniciar com o rato virtual ligado
- Vídeo e renderizador
- Resolução, tipo de escala, e renderizador
- Customização dos controlos
- Tipos de Gestos, triggers e escala
- Ajustes do Java
- Definições diversas
- Lista de versões, e verificações das bibliotecas
- Coisas experimentais
- Use estas coisas com consideração, sem suporte.
- Habilitar modo de desempenho constante
- Limitar a Redução Térmica limitando o pico do desempenho
- Limitar a Redução Térmica limitando o pico do desempenho
- Voltar à tela anterior
- Não diminuir texturas
- Divide todas as texturas por 2
- Divide texturas grandes por 2 ou por 4
- Sem Nome
- Snapshot mais recente
- Versão mais recente
- Edição Do Perfil
- Nome
- Versão
- Eliminar
- Runtime do Java
- Renderizador
- Capas da \'Comestica\'
- Habilitar capas da Cosmetica(antigamente Arc). Para mais informações por favor visite https://cosmetica.cc. Isto Requer OptiFine.
- %s definições da versão
-
diff --git a/app_pojavlauncher/src/main/res/values-ro/strings.xml b/app_pojavlauncher/src/main/res/values-ro/strings.xml
deleted file mode 100644
index 880c5f932..000000000
--- a/app_pojavlauncher/src/main/res/values-ro/strings.xml
+++ /dev/null
@@ -1,251 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition pentru Android)
- PojavLauncher
- Lanseaza Minecraft: Java Edition in propriul dispozitiv!
-
-
-
- Email-ul sau numele de utilizator
- Parola
- Ține-mă logat
- Autentificare
- Nume de utilizator invalid. Numele de utilizator trebuie să aibă între 3-16 caractere, trebuie să conțină doar A-Z, a-z, 0-9 și underscore.
- Acest nume de utilizator există deja
- Autentificare Microsoft
- Selectează contul
- Nu s-a găsit nici un cont!
- Nu ai niciun cont salvat.\nUtilizează opțiunea \"Ține-mă logat\" pentru a salva un cont la prima autentificare.
-
-
- Acest cont va fi eliminat!
-
- Se instalează Java Runtime %s (.tar.xz)
- Selectează un instalator de mod
-
- PojavLauncher s-a oprit neașteptat
- Fără versiune!
- Arată mai mult
- Arată mai puțin
-
- Este necesară permisiunea de citire/scriere în memorie!
- Instalare reușită
- S-a terminat de dezinstalat Java Runtime
-
-
- Consolă de dezvoltare
- Jurnal de erori
-
- Conectat
- Local
-
- Pregătit de a juca Minecraft %s
- Se șterg fișierele cache
- Se descarcă %s
- "Se descarcă %s (%.2f MB / %.2f MB)"
- Se pregătește pentru descărcarea resurselor
- Minecraft nu poate fi instalat în mod legal atunci când ești conectat cu un cont local. Pentru a continua, schimbă la un cont online.
- Opțiuni
- Deschide un instalator de mod (Forge, LabyMod, Fabric, etc...)
- Deschide un instalator de mod (cu argument personalizat)
- Controale personalizate
- Setări
- Despre
- Folosește randarea alternativă a suprafețelor
- Poate ajuta performanța în cazul în care jocul este limitat de GPU
- Dezinstalează Java Runtime
- [Repornirea lansatorului necesară] Acest lucru îți permite să reinstalezi Java Runtime
- Deschide Minecraft în modul de fereastră
- Deschide Minecraft în modul de fereastră plutitoare. Necesită Android 7.0+
- Ascunde Bara Laterală
- Oamenilor nostalgici care preferă vechea interfață v1 le-ar putea plăcea acest lucru. Oferă o experiență mai mult pe tot ecranul.
- Ignoră notch-ul
- Ignoră notch-ul și extinde ecranul sub el.\nÎți oferă o experiență mai captivantă.
- Scaler de rezoluție
- Permite reducerea rezoluției jocului. 100% este rezoluția maximă
- În cât timp se va declanșa după o apăsare lungă
- Modifică timpul de declanșare pentru apăsarea lungă a butonului de distrugere a blocului și de aruncare a obiectului.
- Tratează butonul înapoi ca butonul click dreapta
- Unele dispozitive tratează butonul drept al mouse-ului extern ca fiind butonul înapoi. Dacă folosești un mouse extern, trebuie să activezi această opțiune.
- Stil de buton plat
- Activează această opțiune pentru a schimba stilul butonului de control în plat.
- Redimensionare butoane de control
- Mărește-le dacă butoanele sunt prea mici.
- Redimensionarea mouse-ului
- Schimbă dimensiunea mouse-ului virtual.
- Argumente de lansare JVM
- Ai grijă, acest lucru poate face ca jocul să se oprească dacă este modificat fără cunoștințe.
- Setări generale
- Setări de scalare
- Randator
- Tipul de versiune va fi în lista de versiuni
- Lansat oficial
- Lansat pentru testare
- Alpha-vechi
- Beta-vechi
- Clonă
-
- Editează
- Eroare
- Avertisment
- Incarcă
- Nume
- Șterge
- Clonă
- Repornire
- Salvează
- Se despachetează %s
- Acest câmp nu poate fi gol
- Așteptați
-
- Aplicația/Jocul a fost închis cu codul %d, vezi latestlog.txt pentru mai multe detalii.
- Ieșire
- Ești sigur că vrei să oprești forțat?
- LWJGL3 nu a fost instalat!
- Vulkan Zink renderer nu este suportat pe acest dispozitiv!
-
- GUI
- Tastatură
- Mesaje
- Depanare
- Pri
- Sec
- Inv
- 3rd
- Tab
- Mouse
- Mouse: oprit
- Mouse: pornit
-
- Oprește forțat
- Ieșire jurnal
- Depanare intrare
- Trimite personalizat cod cheie
- Mărire
- Reducere
-
- Importă controale
- Fișier invalid sau corupt
- importă controale
- Fișierul este în curs de verificare, te rugăm să aștepți și să încerci din nou…
- Nume invalid sau fișierul există deja
- Importul efectuat
-
- Editează %s
- Ștergi %s?
- Cod cheie
- Comutabil
- Dimensiune
- Lățime
- Înălţime
- Asocieri
- Orientare
- Culoarea de fundal
- Raza de colț
- Lățimea conturului
- Culoarea conturului
- Poziție dinamică
- Dinamica X
- Dinamica Y
- Transparenţa fundalului
- Opacitate Buton
- Combinația de butoane
- Alt
- Ctrl
- Shift
- Adaugă buton
- Adauga buton sertar
- Adaugă sub-buton
- Subbutonul nr. %d a fost adăugat!
- Selectați controlul implicit json
- Instalează .jar
- Opțiuni
- Joacă
- Bun venit, %s
- Info (DEV)
- Comută utilizatorul
- Versiune:
- Nicio eroare detectată
- Niciun jurnal.
- Preluarea fluxului de știri a eșuat!
- Activează ajustarea automată RAM
- Auto RAM
- Memorie setată la %d MB
- Verifică bibliotecile după descărcare
- Această opțiune forțează lansatorul să verifice hash-ul bibliotecii dacă este disponibil. Previne descărcările rupte.
- Biblioteca %s este deteriorată și va fi redescărcată
- Biblioteca %s nu poate fi verificată, trebuie să presupunem că este bună
- Biblioteca %s este bună și utilizabilă
- Dezactivează gesturi
- Dezactivează gesturile, cum ar fi tine apasat pentru a sparge blocul, și apasă pentru a pune un bloc.
- Viteza mouse-ului
- Schimbă viteza mouse-ului de software
- Mouse pass-thru
- Glisabil
- Rotund
- Cantitatea curentă de RAM liber (%d) este mai mică decât cantitatea alocată de RAM (%d), care ar putea duce la oprire. Schimbă cantitatea alocată dacă jocul se oprește.
- Memorie alocată
- Controlează cât de multă memorie este dată la Minecraft
- Java Runtime Corupt
- Arhitectură incompatibilă: %s
- Java VMs
- Adăugare nouă
- Importă noul Java VM
- Manager Runtime
- Gestionează VM-urile Java instalate
- Caching...
- Setaţi ca prestabilit
- Prestabilit
- Trebuie să ai cel puțin un Java Runtime instalat
- Nu s-a putut găsi niciun Java Runtime compatibil. Această versiune necesită Java %d sau o versiune mai nouă.
- Nu s-a putut găsi Java 8. Pentru a folosi această opțiune, trebuie să instalezi Java 8.
- Minecraft 21w10a+ necesită profilul de bază OpenGL 3.2. Din păcate, chipul tău grafic nu suportă OpenGL ES 3.0 sau mai mare, dar există câteva resurse suplimentare pe care le poți instala pentru a rula aceste versiuni. Apasă OK pentru a confirma instalarea sau apasă Anulare pentru a întrerupe lansarea.
- Joacă oricum
- Dosarul jocului
- Argumente JVM
- Setări per versiune
- Modificări de stocare
- Noul dosar pentru fișierele Pojav este Android/data/%s/files/ (accesibil și prin intermediul unui furnizor de stocare în exploratorul de fișiere). Dacă trebuie să copiați fișierele de joc, vă rugăm să copiați manual totul din dosarul original de la games/PojavLauncher.]]>
- Decalaj de control
- Decalaj sus:
- decalaj dreapta:
- decalaj jos:
- decalaj stânga:
- Decalajele părții de control
- Setează un decalaj personalizat pentru fiecare parte a ecranului
- Începe cu mouse-ul virtual activat
- Video și randare
- Rezoluție, tip de scalare și randare
- Personalizarea controalelor
- Tipuri de gesturi, declanșatoare și scalare
- Ajustări Java
- Setări diverse
- Lista de versiuni și verificări ale bibliotecilor
- Lucruri experimentale
- Folosește aceste setări cu atenție, fără ajutor.
- Activează modul de performanță susținută
- Reduce limitarea termică prin limitarea performanțelor de vârf
- Reduce limitarea termică prin limitarea performanțelor de vârf
- Înapoi la ultimul ecran
- Nu se micșorează texturi
- Toate texturile se împart la 2
- Se împart texturile mari la 2 sau la 4
- Fără nume
- Ultimul snapshot
- Ultima versiune stabilă
- Editare profil
- Nume
- Versiunea
- Șterge
- Java Runtime
- Randator
- Pelerine Cosmetica
- Activează pelerinele de la Cosmetica (anterior Arc). Pentru mai multe informații, vizitează https://cosmetica.cc. Necesită OptiFine.
- Configurația versiunii %s
-
diff --git a/app_pojavlauncher/src/main/res/values-rpr/strings.xml b/app_pojavlauncher/src/main/res/values-rpr/strings.xml
deleted file mode 100644
index bf698ecc9..000000000
--- a/app_pojavlauncher/src/main/res/values-rpr/strings.xml
+++ /dev/null
@@ -1,198 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition для Android)
- PojavLauncher
- Запустите Minecraft: Java Edition на вашемъ устройствѣ!
-
-
-
- Почта или имя пользователя
- Ключъ-фраза
- Запомнить меня
- Войти
- Невѣрное имя пользователя. Имя пользователя должно состоять изъ 3-16 символовъ, должно содержать только A-Z, a-z, 0-9 и подчеркиваніе.
- Сіе имя пользователя уже существуетъ
- Войти черезъ Microsoft
- Выбрать документъ
- Документы не найдены!
- Вы не сохраняли ни одни документы.\nИспользуйте настройку \"Запомнить меня\", чтобы сохранить документы при первомъ входѣ.
-
-
- Сіи документы будутъ удалены!
-
- Установка Java Runtime %s (.tar.xz)
- Выберите установщикъ модификаціи
-
- PojavLauncher былъ остановленъ въ результатѣ курьёза
- Нѣтъ версій!
- Развернуть
- Свернуть
-
- Требуется разрѣшеніе на чтеніе/запись въ хранилищѣ!
- Установка прошла успѣшно
- Удаленіе Java Runtime завершено
-
-
- Консоль разработчика
- Регистръ сбоевъ
-
- Подключено
-
- Minecraft %s готовъ къ запуску
- Очистка файловъ кэша
- Загрузка %s
- "Загрузка %s (%.2f МБайтъ / %.2f МБайтъ)"
- Подготовка къ загрузкѣ ресурсовъ
- Настройки
- Запустить установщикъ модификаціи (Forge, LabyMod, Fabric и т. п.)
- Запустить установщикъ модификаціи (съ пользовательскими аргументами)
- Пользовательское управленіе
- Настройки
- О лаунчерѣ
- Удалить Java Runtime
- [Требуется перезапускъ лаунчера] Сіе позволитъ вамъ переустановить Java Runtime
- Запускъ Minecraft въ плавающемъ окнѣ
- Запускаетъ Minecraft въ плавающемъ окнѣ. Требуется Android 7.0 или выше
- Сокрытіе боковой панели
- Можетъ понравиться ностальгическимъ людямъ, предпочитающіе старый интерфейсъ v1. Дает вам болѣе полноэкранное использованіе.
- Игнорированіе вырѣза подъ переднюю камеру
- Игнорируетъ вырѣзъ подъ переднюю камеру и расширяетъ экранъ под неё.\nДаёт большее погруженіе въ игру.
- Уменьшеніе разрѣшенія
- Позволяетъ уменьшить разрѣшеніе игры. Наибольшее разрѣшеніе: 100%
- Длительность долгаго нажатія
- Измѣнить длительность долгаго нажатія для ломанія блоковъ и выбрасыванія вещей.
- Считываніе кнопки назадъ какъ правой кнопки мыши
- Нѣкоторыя устройства считаютъ правую кнопку внѣшней мыши какъ кнопку назадъ. Если вы используете внѣшнюю мышь, совѣтуемъ включить сію функцію.
- Плоскій стиль кнопокъ
- Включите сію функцію, чтобы измѣнить стиль кнопокъ управленія на плоскій.
- Масштабированіе кнопокъ
- Увеличьте, если онѣ слишкомъ малы.
- Масштабированіе курсора
- Измѣняетъ размѣръ курсора мыши.
- Аргументы запуска J.V.M.
- Будьте осторожны, сіе может привести къ сбою игры, если измѣнить ихъ безъ нужныхъ знаній.
- Основныя настройки
- Настройки масштабированія
- Визуализаторъ
- Типы версій, которые будутъ отображаться въ спискѣ версій
- Выпущенныя версіи
- Пробныя версіи
- Старыя альфа
- Старыя бета
- Раздвоить
-
- Править
- Курьёзъ
- Предупрежденіе
- Загрузка
- Имя
- Удалить
- Раздвоить
- Перезапускъ
- Сохранить
- Распаковка %s
- Сіе поле не можетъ быть пустымъ
- Подождите
-
- Выйти
- Вы увѣрены, что хотите принудительно закрыть оный?
- LWJGL3 не установленъ!
- Визуализаторъ Vulkan Zink не котируется на семъ аппаратѣ!
-
- Интерфейсъ
- Клавіатура
- Бесѣда
- Отладка
- Л.К.М
- П.К.М
- Инв.
- F5
- Tab
- Мышь
- Мышь: Выкл.
- Мышь: Вкл.
-
- Принудительное закрытіе
- Журналъ
- Отладка ввода
- Отправить пользовательскій кодъ кнопки
- Увеличить
- Уменьшить
-
-
- Редактированіе %s
- Удалить %s?
- Кодъ кнопки
- Переключаемый
- Размѣръ
- Ширина
- Высота
- Кнопки
- Положеніе
- Цвѣтъ фона
- Радіусъ угла
- Толщина обведенія
- Цвѣтъ обведенія
- Динамическая позиція
- Динамика по оси X
- Динамика по оси Y
- Прозрачность фона
- Прозрачность кнопки
- Сочетаніе кнопокъ
- Добавить кнопку
- Добавить разворачиваемую кнопку
- Добавить подъ-кнопку
- Выбрать управленіе по умолчанію
- Настройки
- Играть
- Милости просимъ, %s
- Свѣдѣнія (Разраб.)
- Смѣнить пользователя
- Версія:
- Сбоевъ не обнаружено
- Нѣтъ записей
- Не удалось получить полосу извѣстій!
- Автоматически управляетъ количествомъ выдѣленнаго О.З.У.
- Автоматическое выдѣленіе О.З.У.
- Выделено %d МБайтъ О.З.У.
- Провѣрка библіотекъ послѣ загрузки
- Сія настройка принуждаетъ лаунчеръ проверять хэшъ библіотеки, если оный доступенъ. Предотвращаетъ использованіе повреждённыхъ библіотекъ.
- Библіотека %s повреждена и будетъ загружена повторно
- Библіотека %s не можетъ быть провѣрена, будемъ надѣяться, что оная въ порядкѣ
- Библіотека %s провѣрена и можетъ быть использована
- Отключеніе жестовъ
- Отключаетъ жесты, такіе какъ удержаніе, чтобы сломать блокъ, и нажатіе, чтобы размѣстить блокъ.
- Чувствительность мыши
- Измѣняетъ чувствительность виртуальной мыши
- Указатель мыши
- Пролистываемый
- Скруглённыя
- Текущій объёмъ свободной оперативной памяти (%d) меньше выдѣленной (%d), что может привести къ сбоямъ приложенія. Измѣните количество выдѣленной памяти при сбоѣ игры.
- Выдѣленіе памяти
- Управляетъ выдѣленіемъ памяти для Minecraft
- %s (Java %d)
- Java Runtime поврежденъ
- Виртуальныя машины Java
- Добавить новую
- Импортировать новую виртуальную машину
- Менеджеръ Runtime
- Управляйте установленными виртуальными машинами Java
- Кэширование...
- Установить по умолчанію
- По умолчанію
- Должно быть установлено хотя бы одинъ Java Runtime
- Все равно запустить
- Папка игры
- Аргументы JVM
- Поверсіонныя опціи
- Измѣненія въ работѣ хранилища
- Новая папка для файловъ Pojav - Android/data/%s/files/ (также доступна изъ провайдера хранилища въ вашемъ проводникѣ). Если вамъ необходимо перенести файлы игры, пожалуйста скопируйте ихъ вручную изъ папки games/PojavLauncher.]]>
- Имя
- Визуализаторъ
-
diff --git a/app_pojavlauncher/src/main/res/values-ru/strings.xml b/app_pojavlauncher/src/main/res/values-ru/strings.xml
deleted file mode 100644
index 1ad9dcaba..000000000
--- a/app_pojavlauncher/src/main/res/values-ru/strings.xml
+++ /dev/null
@@ -1,320 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition для Android)
- PojavLauncher
- Запускайте Minecraft: Java Edition на вашем устройстве!
-
-
-
- Email или имя пользователя
- Пароль
- Запомнить меня
- Войти
- Неверное имя пользователя. Оно должно быть длиной от 3 до 16 символов и содержать только латинские буквы, цифры или нижнее подчёркивание.
- Это имя пользователя уже существует
- Войти через Microsoft
- Учётные записи
- Учётные записи не найдены!
- Вы не сохраняли ни одну учётную запись.\nИспользуйте опцию «Запомнить меня», чтобы сохранить учётную запись при первом входе.
-
- "Нажмите значок ⚙, чтобы открыть панель действий.\nВыберите кнопку, чтобы создать её копию или удалить;\nизменить свойства, размер или привязанную клавишу."
-
- Эта учётная запись будет удалена!
-
- Установка Java Runtime %s (.tar.xz)
- Выберите установщик мода
-
- PojavLauncher был остановлен в результате сбоя
- Нет версий!
- Развернуть
- Свернуть
-
- Требуется разрешение на чтение/запись в хранилище!
- Установка прошла успешно
- Удаление Java Runtime завершено
-
-
- Вики
- Консоль разработчика
- Журнал сбоев
-
- Подключено
- Локальный
-
- Minecraft %s готов к запуску
- Очистка файлов кэша
- Загрузка %s
- "Загрузка %s (%.2f Мбайт / %.2f Мбайт)"
- Подготовка к загрузке ресурсов
- Minecraft не может быть легально установлен с локальной учётной записью. Чтобы продолжить, переключитесь на онлайн учётную запись.
- Опции
- Запустить установщик мода (Forge, LabyMod, Fabric и т. п.)
- Запустить установщик мода (с пользовательскими аргументами)
- Пользовательское управление
- Настройки
- О лаунчере
- Использовать альтернативный визуализатор
- Может повысить производительность в сценариях, связанных с графическим процессором
- Удалить Java Runtime
- [Требуется перезапуск лаунчера] Это позволит вам переустановить Java Runtime
- Запуск Minecraft в плавающем окне
- Запускает Minecraft в плавающем окне. Требуется Android 7.0 или выше
- Скрытие боковой панели
- Может понравиться ностальгическим людям, предпочитающие старый интерфейс v1. Дает вам более полноэкранное использование.
- Игнорирование выреза под фронтальную камеру
- Игнорирует вырез под фронтальную камеру и расширяет экран под неё.\nДает большее погружение в игру.
- Уменьшение разрешения
- Позволяет уменьшить разрешение игры. Максимальное разрешение: 100%
- Длительность долгого нажатия
- Изменяет длительность долгого нажатия для ломания блоков и выбрасывания предметов.
- Считывание кнопки назад как правую кнопку мыши
- Некоторые устройства считают правую кнопку внешней мыши как кнопку назад. Если вы используете внешнюю мышь, рекомендуется включить эту функцию.
- Плоский стиль кнопок
- Включите эту функцию, чтобы изменить стиль кнопок управления на плоский.
- Размер кнопок
- Увеличьте, если они слишком малы.
- Размер курсора
- Изменяет размер курсора мыши.
- Аргументы запуска JVM
- Будьте осторожны, это может привести к сбою игры, если изменить их без особых знаний.
- Общие настройки
- Настройки масштабирования
- Визуализатор
- Holy GL4ES (все версии, быстрый)
- virglrenderer (1.7 и выше, медленный)
- vgpu (до 1.16.5, быстрый)
- zink (старые бета b1.8 и выше, медленный)
- ANGLE (1.17 и выше, средний)
- Типы версий, которые будут отображаться в списке
- Релизы
- Снапшоты
- Старые альфа
- Старые бета
- Безопасная установка .jar
- Управление доступностью менеджера безопасной среды Java при установке из .jar-файла.
- Клонировать
-
- Редактировать
- Ошибка
- Предупреждение
- Загрузка
- Имя
- Удалить
- Клонировать
- Перезапуск
- Сохранить
- Распаковка %s
- Это поле не может быть пустым
- Подождите
- Выбрать
-
- Произошёл собой приложения/игры с кодом %d. Проверьте latestlog.txt, чтобы получить больше информации.
- Выйти
- Вы уверены, что хотите принудительно завершить игру?
- LWJGL3 не установлен!
- Визуализатор Vulkan Zink не поддерживается на этом устройстве!
-
- GUI
- Клавиатура
- Чат
- Отладка
- ЛКМ
- ПКМ
- ◇
- Инв
- ▲
- ◀
- ▶
- ▼
- ⬛
- F5
- Tab
- Мышь
- Мышь: Выкл
- Мышь: Вкл
-
- Принудительное закрытие
- Журнал
- Отладка ввода
- Отправить пользовательский код клавиши
- Увеличить
- Уменьшить
-
- Импортирование управления
- Недопустимый или повреждённый файл
- импортировать управление
- Идёт проверка файла. Пожалуйста, подождите и попробуйте снова…
- Недопустимое имя файла или файл с таким именем уже существует
- Импортирование завершено
-
- Редактирование «%s»
- Удалить «%s»?
- Код клавиши
- Переключаемый
- Размер
- Ширина
- Высота
- Кнопки
- Сторона разворота
- Цвет фона
- Радиус скругления
- Толщина обводки
- Цвет обводки
- Ручная настройка динамической позиции
- Динамика по оси X
- Динамика по оси Y
- Прозрачность фона
- Прозрачность кнопки
- Комбинация клавиш
- Alt
- Ctrl
- Shift
- Добавить кнопку
- Добавить разворачиваемую кнопку
- Добавить под-кнопку
- Подкнопка №%d добавлена!
- Выбрать управление по умолчанию
- Экспортировать управление
- Поделится файлом журнала
- Установить .jar
- Опции
- Играть
- Добро пожаловать, %s
- Инфо (Разраб.)
- Сменить пользователя
- Версия:
- Сбоев не обнаружено
- Нет записей
- Не удалось получить ленту новостей!
- Автоматически управляет количеством выделенного ОЗУ
- Автоматическое выделение ОЗУ
- Выделено %d Мбайт ОЗУ
- Проверка библиотек после загрузки
- Эта опция принуждает лаунчер проверять хеш библиотеки, если он доступен. Предотвращает использование поврежденных библиотек.
- Библиотека %s повреждена и будет загружена повторно
- Библиотека %s не может быть проверена; придется предположить, что с ней все хорошо
- Библиотека %s проверена и может быть использована
- Отключение жестов
- Отключает жесты, такие как удержание, чтобы сломать блок, и нажатие, чтобы разместить блок.
- Отключить жест перемещения по двойному касанию
- Отключает перемещение предмета во вторую руку при двойном касании по нему в панели инструментов.
- Чувствительность курсора
- Изменяет чувствительность виртуальной мыши
- Пропускать касание
- Пролистываемый
- Скруглённые
- Текущий объем свободной оперативной памяти (%d) меньше, чем выделенная (%d), что может привести к сбоям. Измените количество выделенной памяти при сбое игры.
- Выделение памяти
- Управляет тем, сколько памяти выделится для Minecraft
- %s (Java %d)
- Java Runtime повреждён
- Несовместимая архитектура: %s
- Виртуальные машины Java
- Добавить новую
- Импортировать новую виртуальную машину
- Менеджер Runtime
- Управляйте установленными виртуальными машинами Java
- Кэширование...
- Установить по умолчанию
- По умолчанию
- Должно быть установлено хотя бы один Java Runtime
- Не удалось найти подходящий Java Runtime. Эта версия требует Java %d версии или позднее.
- Не удалось найти Java 8. Чтобы использовать эту опцию, необходимо установить Java 8.
- Для Minecraft 21w10a+ требуется OpenGL 3.2. К сожалению, ваш графический чип не поддерживает OpenGL ES 3.0 или выше, но есть некоторые дополнительные ресурсы, которые вы можете установить для запуска этих версий. Нажмите «ОК», чтобы подтвердить установку, или «Отмена», чтобы прервать запуск.
- Запустить в любом случае
- Папка игры
- Аргументы JVM
- Поверсионные настройки
- Изменения в работе хранилища
- Новая папка для файлов Pojav - Android/data/%s/files/ (также доступна из провайдера хранилища в вашем проводнике). Если вам необходимо перенести файлы игры, пожалуйста скопируйте их вручную из папки games/PojavLauncher.]]>
- Смещение управления
- Сверху:
- справа:
- снизу:
- слева:
- Смещение управления
- Устанавливает пользовательское смещение для каждой стороны экрана
- Запуск с виртуальной мышью
- При запуске игры виртуальная мышь будет включена по умолчанию.
- Видео и визуализатор
- Разрешение, тип масштабирования и визуализатор
- Настройка управления
- Типы жестов, нажатия и размеры
- Настройки Java
- Версии Java, аргументы JVM, выделение памяти и безопасность среды
- Другие настройки
- Список версий и проверка библиотек
- Экспериментальные штуки
- Используйте эти функции с осторожностью; поддержка не предоставляется.
- Режим стабилизации производительности
- Уменьшает перегрев устройства за счёт ограничения максимальной производительности.
- Принудительная вертикальная синхронизация
- Уменьшает перегрев устройства за счёт ограничения максимальной производительности.
- Принудительно включить английский
- Позволяет увидеть оригинальные строки такими, какими их задумали разработчики. Требует перезапуска.
- Изменить раскладку
- Настройте кнопки управления по вашему желанию
- Управление наклоном
- Виртуальная мышь
- Инвертировать ось X
- Инвертировать ось Y
- Поменять направление поворота по горизонтали
- Поменять направление поворота по вертикали
- Вернуться назад
- Не сжимать текстуры
- Сжимать все текстуры в 2 раза
- Сжимать большие текстуры в 2 или 4 раза
- Безымянный
- Последний снапшот
- Последний релиз
- Редактирование профиля
- Имя
- Версия
- Удалить
- Java Runtime
- Визуализатор
- Плащи Cosmetica
- Включает плащи от Cosmetica (ранее Arc). Для получения дополнительной информации, пожалуйста, посетите https://cosmetica.cc. Требуется OptiFine.
- Конфигурация версии %s
- Общее
- Активная служба Pojav
- Используется для выполнения длительных операций
- Установлено
- (Как везде)
- Раскладка управления
- Выполняется задач: %d
- Завершить
- Игра запущена
- Создать
- Введите название папки
- Вход выполнен
- Добавить учётную запись
- Уже в процессе, подождите…
- Нет сохранённых учётных записей
- Загрузка списка версий…
- Не удалось загрузить Minecraft! Это может возникать из-за медленного интернет-соединения или ошибок в размещении файлов.
- Неизвестная ошибка Xbox Live API %d
- Похоже, у вас нет учётной записи Xbox Live. Единожды войдите на https://minecraft.net и попробуйте ещё раз.
- Вашу учётную запись должен подтвердить взрослый представитель.
- Для входа в игру учётная запись ребёнка должна быть добавлена в семью.
- Похоже, к вашей учётной записи не привязан профиль Minecraft с лицензией. Если у вас есть подписка Xbox Game Pass, войдите на https://minecraft.net и настройте её.
- Xbox Live недоступен в вашей стране :(
- Управление наклоном
- Это позволит вам управлять положением камеры в игре путём вращения устройства.
- Чувствительность гироскопа
- Изменить чувствительность датчика вращения.
- Сначала включите \"Управление наклоном\".
- Интервал опроса гироскопа
- Увеличьте, если управление наклоном снижает производительность.
- Слишком много запросов, попробуйте ещё раз позднее.
- Для работы PojavLauncher необходим ваш съёмный накопитель. Пожалуйста, переподключите его и запустите приложение ещё раз.
- Заглавные буквы на кнопках
- Отключите, если хотите использовать строчные буквы в своей раскладке управления.
- Новый профиль
-
diff --git a/app_pojavlauncher/src/main/res/values-sk-rSK/strings.xml b/app_pojavlauncher/src/main/res/values-sk-rSK/strings.xml
deleted file mode 100644
index 213a367e0..000000000
--- a/app_pojavlauncher/src/main/res/values-sk-rSK/strings.xml
+++ /dev/null
@@ -1,271 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edícia pre Android)
- PojavLauncher
- Spustiť Minecraft: Java Edícii vo tvojom zariadenie!
-
-
-
- E-mail alebo užívateľské meno
- Heslo
- Nechaj ma prihláseného
- Prihlásiť
- Neplatné užívateľské meno. Užívateľské meno musí mať rozsah 3 až 16 znakov. Musí obsahovať len znaky A-Z, a-z, (bez diakritiky) 0-9 a podčiarkovník.
- Toto užívateľské meno už existuje
- Prihlásenie cez Microsoft účet
- Vybrať účet
- Žiadny účet sa nenašiel !
- Nemáte žiaden uložený účet. \nPoužite možnosť \"Ponechať ma prihlásených\" pre uloženie účtu pri prvom prihlásení.
-
-
- Tento účet bude odstránený!
-
- Nainštalovať Java Runtime %s (.tar.xz)
- Vybrať inštalatér módu
-
- PojavLauncher neočakávane spadol
- Žiadne verzie!
- Zobraziť viac
- Zobraziť menej
-
- Je vyžadované oprávnenie pre čítanie / zápis do úložiska!
- Inštalácia bola úspešná
- Odinštalovanie Java Runtime dokončené
-
-
- Vývojárska konzola
- Záznam pádu
-
- Prihlásený
- Lokálny
-
- Pripravené na spustenie Minecraftu %s
- Čistenie súborov medzipamäte
- Sťahuje sa %s
- "Sťahuje sa %s (%.2f MB / %.2f MB)"
- Príprava na sťiahnutie prostriedkov
- Minecraft nemôže byť legálne nainštalovaný keď je prihlásený miestny účet. Pre pokračovanie prejdite na online účet.
- Možnosti
- Spusťte inštalátor módov (Forge, LabyMod, Fabric, atď...)
- Spustiť inštalátor módov (s vlastnými argumentmi)
- Vlastné ovládacie prvky
- Nastavenie
- O aplikácii
- Použiť alternatívne vykresľovanie povrchu
- Môže pomôcť s výkonom v situáciách viazaných na Grafickom Procesore (GPU)
- Odinštalovať Java Runtime
- [Reštart vyžadovaný] Toto vám umožní reinštalovať Javu
- Spustiť Minecraft v režime Voľného okna
- Spustiť Minecraft v plávajúcom okne. Vyžaduje Android 7.0+
- Skryť bočný panel
- Zmení užívateľské rozhranie na staré (PojavLauncher v1). Neuvidíte bočný panel na ľavej strane obrazovky.
- Ignorovať notch - výrez pre fotoaparát
- Ignoruje notch a rozšíri Minecraft pod ním.
- Percentuálna škála rozlíšenia obrazovky
- Umožňuje znížiť rozlíšenie hry. 100% je maximálne rozlíšenie.
- Ako dlho bude trvať dlhé stlačenie
- Zmeňte čas pre rozbitie bloku a vyhodenie itemu.
- Považovať tlačidlo späť za pravé tlačidlo myši
- Niektoré zariadenia pristupujú k externému pravému tlačidlu ako k tlačidlu späť. Ak používate externú myš, mali by ste toto povoliť.
- Štýl plochých tlačidiel
- Povoľte pre zmenu štýlu ovládacieho tlačidla na ploché.
- Percentuálna škála veľkosti ovládacích prvkov
- Môžete zväčšiť tlačidlá, ak sú príliš malé.
- Percentuálna škála veľkosti myši
- Zmeniť percentuálnu škálu veľkosti virtuálnej myši.
- Spúštacie argumenty pre JVM
- Pozor! Zmena JVM argumentov môže spôsobiť pád hry ak neviete, čo robíte.
- Všeobecné nastavenia
- Nastavenie mierky
- Renderer
- Holy GL4ES - (všetky verzie, rýchly)
- virglrenderer - (release 1.7+, pomalý)
- vgpu - (do 1.16.5, rýchly)
- zink - (old_beta b1.8+, pomalý)
- ANGLE - (release 1.17+, priemerný)
- Aké typy verzií budú v zozname verzií
- Vydanie
- Snapshot
- Stará alfa
- Stará beta
- Klon
-
- Upraviť
- Chyba
- Varovanie
- Načítať
- Názov
- Odstrániť
- Klon
- Reštartovať
- Uložiť
- Rozbaľovanie %s
- Toto pole nesmie byť prázdne
- Čakajte
-
- Hra spadla. Skontroluj latestlog.txt pre viac podrobností.
- Skončiť
- Ste si istí, že chcete vynútiť ukončenie?
- LWJGL3 nebol nainštalovaný!
- Zink vykresľovač nie je v tomto zariadení podporovaný!
-
- GUI
- Klávesnica
- Čet
- Ladenie
- Pri
- Sek
- Inv
- 3-tí
- Tab
- Myš
- Myš: áno
- Myš: nie
-
- Vynútené ukončenie
- Záznam výstupu
- Debug vstupov
- Poslať vlastný kláves
- Zväčšiť
- Zmenšiť
-
- Importovať ovládacie prvky
- Neplatný alebo poškodený súbor
- Importovať ovládacie prvky
- Súbor sa overuje, počkajte a skúste to znova…
- Neexistujúci názov súboru alebo názov súboru už existuje
- Import ovládacích prvkov bol dokončený
-
- Editácia %s
- Odstrániť %s?
- kód písmená
- Prepnuteľné (toggle) - po ťuknutí klávesa ostane stlačená
- Veľkosť
- Šírka
- Výška
- Priradenie ku klávese (bind)
- Orientácia
- Farba pozadia tlačidla
- Zaoblenie rohu tlačidla
- Šírka obrysu tlačidla
- Farba obrysu tlačidla
- Manuálna dynamická pozícia
- Dynamická pozícia na osi X
- Dynamická pozícia na osi Y
- Priehľadnosť pozadia
- Priehľadnosť tlačidla
- Kombinácia kláves
- Pridať tlačidlo
- Pridať priečinok s tlačidlami
- Pridať podtlačidlo
- Podtlačidlo č.%d bolo pridané !
- Vybrať json východzieho ovládanie
- Exportovať ovládacie prvky
- Inštalovať .jar
- Možnosti
- Hrať
- Vitaj, %s
- Informácie (DEV)
- Prepnúť užívateľa
- Verzia:
- Nenájdený žiaden pád
- Žiadne záznamy.
- Nepodarilo sa načítať novinky!
- Automaticky bude meniť množstvo RAM
- Auto RAM
- RAM bola nastavená na %d MB
- Skontrolovať knižnice po stiahnutí
- Táto možnosť donúti spúšťač skontrolovať hash knižnice, ak je k dispozícii. Zabraňuje rozbitému stiahnutie.
- Knižnica %s je poškodená a bude znovu stiahnutá
- Knižnica %s nemôže byť kontrolovaná, musíme predpokladať, že je v poriadku
- Knižnica %s je v poriadku a použiteľná
- Zakázať gestá
- Zakáže gestá, napríklad podržaním pre rozbitie bloku a kliknutím položíte blok.
- Rychlosť myši
- Zmeniť rýchlosť softvérové myši
- Prevod myši
- Posunovateľné
- Zaoblené
- Aktuálne množstvo voľnej RAM (%d) je nižšia ako pridelená RAM (%d), čo môže viesť k pádu. Zmeňte alokáciu, ak hra spadne.
- Pridelenie pamäte
- Určite, koľko pamäti bude mať Minecraft
- Poškodená Java Runtime
- Nekompatibilná architektúra: %s
- Java VMy
- Pridať nový
- Naimportovať novú Java VM
- Runtime Manažer
- Spravovať nainštalované Java VMy
- Caching...
- Nastaviť predvolené
- Predvolené
- Musíte mať nainštalovanú aspoň jednu Java Runtime
- Nebolo možné nájsť kompatibilnú verziu Java Runtime. Táto verzia vyžaduje Javu %d alebo novšiu.
- Nebolo možné nájsť Javu 8. Ak chceš používať túto možnosť, musíš nainštalovať Javu 8.
- Minecraft 21w10a+ vyžaduje OpenGL 3.2 Core Profile. Bohužiaľ, tvoj grafický čip nepodporuje OpenGL ES 3.0 alebo novší, ale existujú ďalšie možnosti ktoré môžeš použiť pre spustenie týchto verzií. Stlačením tlačidla OK potvrdíš spúšťanie a stlačením tlačidla Zrušiť ukončíš spúšťanie.
- Napriek tomu hrať
- Zložka hry
- JVM argumenty
- Nastavenia po verzii
- Zmeny úložiska
- Nový priečinok pre súbory pojal je Android/data/%s/files/ (tiež prístupná pomocou poskytovateľa úložiska v Prieskumníkovi súborov). Ak potrebujete skopírovať svoje herné súbory, prosím skopírujte všetko z pôvodnej zložky na games/PojavLauncher ručne.]]>
- Odsadenie ovládania
- Horné odsadenie:
- pravé odsadenie:
- spodné odsadenie:
- ľavé odsadenie:
- Strana odsadenie ovládania
- Nastaviť vlastné odsadenie pre každú stranu obrazovky
- Spustiť so zapnutou virtuálnou myškou
- Video a renderer
- Rozlíšenie, typ škálovania, a vykresľovač
- Ovládanie
- Gestá, škálovanie a iné možnosti
- Nastavenia Javy
- Iné nastavenia
- Zoznam verzií a kontrola knižníc
- Experimentálne nastavenia
- Používajte tieto veci s uvážením, nepodporujeme.
- Zapnúť režim trvalého výkonu
- Umožňuje pokles teploty zariadenia pomocou limitovania výkonu
- Umožňuje pokles teploty zariadenia pomocou limitovania výkonu
- Vynútiť angličtinu
- Umožňuje vidieť pôvodné názvy nastavení a iné názvy tak, ako boli pôvodne navrhnuté vývojármi. Na nastavenie je nutný reštart aplikácie
- Späť na poslednú stránku
- Nezmenšiť textúry
- Vydeliť všetky textúry dvoma
- Vydeliť veľké textúry dvoma alebo štyrmi
- Nepomenované
- Najnovší snapshot
- Najnovšie vydanie (release)
- Nastavenia profilu
- Názov
- Verzia
- Vymazať
- Java Runtime
- Renderer
- Cosmetica Capeky
- Aktivuje capeky (plášte) Cosmetica. Pre info navštívte https://cosmetica.cc. Pre ich funkčnosť je potrebný OptiFine.
- %s konfigurácia verzií
- Všeobecné nastavenia notifikácií
- Pojav Foreground Service
- Táto služba sa využíva na vykonávanie dlhotrvajúcich operácií
- (Použiť predvolené nastavenie)
- Predvolené ovládacie prvky
- Počet prebiehajúcich operácií: %d
- Ukončiť
- Hra je spustená.
- Vytvoriť
- Vytvoriť názov priečinka
- Prihlásenie bolo dokončené
- Pridať účet
- Operácie stále prebiehajú, prosím počkajte
- Žiadne prihlásené účty
- Sťahovanie zoznamu verzií…
-
diff --git a/app_pojavlauncher/src/main/res/values-sr-rCS/strings.xml b/app_pojavlauncher/src/main/res/values-sr-rCS/strings.xml
deleted file mode 100644
index d6e3e577a..000000000
--- a/app_pojavlauncher/src/main/res/values-sr-rCS/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app_pojavlauncher/src/main/res/values-sr/strings.xml b/app_pojavlauncher/src/main/res/values-sr/strings.xml
deleted file mode 100644
index af64bcfe9..000000000
--- a/app_pojavlauncher/src/main/res/values-sr/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition за Андроид)
- PojavLauncher
- Покрените Minecraft: Java Edition на вашем уређају!
-
-
-
- Е-пошта или ваше Минецрафт име
- Шифра
- Остави ме пријављеног
- Пријава
- Инвалид корисничко име. Корисничко име мора да буде у кругу од 3-16 карактера, и да садржи А-Z, a-z, 0-9 и доњу црту.
- Ово корицничко име већ постоји
- Microsoft Пријава
- Изаберите налог
- Налог није пронађен !
- Ви немате сачувани налог.\nКористите опцију \"Сачувај налог\"да сачувате налог прије него што се пријавите.
-
-
- Овај налог ће бити уклоњен!
-
- Инсталирајте Java Runtime %s (.tar.xz)
- Селектујте мод инсталер
-
- ПојавЛаунчер је неочекивано угасио
- Нема верзије!
- Прикажи више
- Прикажи мање
-
- ПојавЛаунчер треба пиши/читај дозволу!
- Инсталирање успјешно
- Завршено уклањавање Java Runtime
-
-
- Програмерска конзола
- Лог Грешака
-
- Повезано
- Локал
-
- Спремно играти Минецрафт %s
- Чишћење кеш фајлова
- Преузимање %s
- "Преузимање %s (%.2f МБ / %.2f МБ)"
- Спремање да се преузимају ресурси
- Минецрафт не може бити легално инсталиран када сте пријављени са локалним налогом. Молим вас да се пребаците на онлајн налог да би сте наставили.
- Опције
- Покрени мод инсталер (Форге, Лабумод, Фабрик, итд...)
- Покрени мод инсталер (са прилагоћеним аргументима)
- Прилагођене контроле
- Подешавања
- О Pojavu
- Користите алтернате сурфаце рендеринг
- Мође помоћи перформансама у гпу боунд сценаријима
- Деисталирајте Java Runtime
- [Лаунчер рестарт потребан] Ово ће вам дозволити да ре-инсталирајте Java Runtime
- Покрените Minecraft у моду прозора
- Покрените Minecraft на прозору. Потребно Андроид 7.0+
- Сакриј бочну траку
- Сакривање бочне траке прави лаунчер да изгледа као верзија 1.
- Игнориши ноч екрана
- Игнороше ноч и продужи игру испод.\nДаје већу величину игри.
- Резолуција
- Промени резолуцију игре. 100% је пуна
-резолуција
- Колико дуго ће се активирати након дугог притиска
- Промените време за дуготрајни притисак за уништавање блока и испуштању предмета.
- Дугме назад је леви клик
- Неки уређаји третирају леви клик од миша као дугме назад, ако користите миш, требали би ово укључити.
- Изаберите стил дугмета
- Промени стил контрола на стил флат.
- Величина дугма (контрола)
- Повећајте ако су премали.
- Величина Миша
- Промените величину виртуалног миша.
- ЈВМ Покретање аргументи
- Будите пажљиви, ваша игра се може покварити ако незнате ово користити.
- Општа подешавања
- Подешавања величине
- Рендерер
- Верзије које ће бити у листи верзија
- Стабилно
- Снепшот
- Стари-Аlpha
- Стари-Бета
- Клонирај
-
- Измени
- Грешка
- Упозорење
- Учитај
- Име
- Уклони
- Клонирај
- Рестарт
- Сачувај
- Распакивање %s
- Ово поље не може остати празно
- Чекај
-
- Апликација/Игра изашла је са кодом %d, провјерите latestlog.txt за више детаља.
- Изађи
- Да ли желите да форсе-изаћете?
- LWJGL3 није инсталиран!
- Vulkan Zink рендерер није подржан ма овом уређају!
-
- GUI
- Тастатура
- Чет
- Дебаг
- При
- Сек
- Инв
- 3рд
- Таб
- Миш
- Миш: Искључен
- Миш: укључен
-
- Форсе затвори
- Лог Избацивано
- Инпут дебаг
- Пошаљи прилагоћени типка-код
- Зумирање
- Смањивање
-
- Убаците контроле
- Инвалид или коруптирани фајл
- убаците контроле
- Фајл се верификује, молим вас да сачекате и покушате поново…
- Инвалид назив или фајл већ постоји
- убацивање завршено
-
- уређивање %s
- Уклони %s?
- Код тастера
- Тогелабле
- Величина
- Ширина
- Висина
- Мапирање
- Оријентација
- Боја позадине
- радијус угла
- Ширина потеза
- Боја потеза
- Динамична позиција
- Динамични Х
- Динамични У
- Провидна позадина
- Непрозирност дугмади
- Комбинација типка
- Алт
- Shift
- Додај дугме
- Додај ладицу дугмета
- Додај суб-дугме
- Суб-дугме н°%d је додано !
- Селектујте опћенити Control json
- Инсталирај .jar
- Опције
- Играј
- Добродошли, %s
- Информације (ДЕВ)
- Промени корисника
- Верзија:
- Није пронаћена грешка
- Нема лог.
- Нису се могле добити вести!
- Укључије аутомстски подешавање RAM-а
- Аутпматски RAM
- Меморија подешена на %d МБ
- Провери библиотеке послије скидања
- Ова опција форсира лаунчер да провери библиотекин хеш ако је доступна. Штити од покварених скидања.
- Библиотека %s је оштећена и опет ће се скидати
- Библиотека %s се не може проверити, надамо се да је добро
- Библиотека %s је добро и може се користити
- Искључи покрете
- Искључи покрете, као држи да се уништи блок, и притисни да се стави блок.
- Брзина миша
- Промјени брзину софтверског миша
- Миш прпћи-кроз
- Заобљени
- Слободна меморија (%d) је нижа од подешене меморије (%d), то можда заустави функцију игре. Промените подешену меморију ако се то деси.
- Подешена меморија
- Колико меморије може да корости Minecraft
- Име
- Рендерер
-
diff --git a/app_pojavlauncher/src/main/res/values-sv/strings.xml b/app_pojavlauncher/src/main/res/values-sv/strings.xml
deleted file mode 100644
index e7169413a..000000000
--- a/app_pojavlauncher/src/main/res/values-sv/strings.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition för Android)
- PojavLauncher
- Launch Minecraft: Java Edition i din enhet!
-
-
-
- Email eller användarnamn
- Lösenord
- Fortsätt vara inloggad
- Logga in
- Ogiltigt användarnamn. Användarnamnet måste vara i intervallet 3-16 tecken, bör endast innehålla A-Z, a-z, 0-9 och understreck.
- Detta användarnamn finns redan
- Logga in med Microsoft-konto
- Välj konto
- Inget konto hittades!
- Du har inget sparat konto.\nAnvänd alternativet \"Håll mig inloggad\" för att spara ett konto vid första inloggningen.
-
-
- Detta konto kommer att tas bort!
-
- Installera Java Runtime %s (.tar.xz)
- Välj ett mod installationsprogram
-
- PojavLauncher har oväntat kraschat
- Ingen version!
- Visa mer
- Visa mindre
-
- Läs/skriv till lagringsbehörighet krävs!
- Installationen lyckades
- Avinstallation av Java Runtime färdig
-
-
- Utveckling konsol
- Kraschlogg
-
- Ansluten
-
- Redo att spela Minecraft %s
- Rensar cachefiler
- Laddar ned %s
- "Laddar ner %s (%.2f MB / %.2f MB)"
- Förbereder nedladdning av resurser
- Alternativ
- Starta ett mod installationsprogram (Forge, LabyMod, Fabric, etc...)
- Starta ett mod installationsprogram (med anpassade argument)
- Anpassade kontroller
- Inställningar
- Om
- Avinstallera Java Runtime
- [Launcher omstart krävs] Detta låter dig ominstallera Java Runtime
- Starta Minecraft i Freeform läge
- Starta Minecraft i flytande fönster. Kräver Android 7.0+
- Dölj sidofält
- Nostalgiska folk föredrar gamla v1 UI kanske gillar detta. Ger dig en mer fullskärm upplevelse.
- Ignorera visningsflärp
- Ignorera notch och förlänger skärmen under den.\nGer dig en mer uppslukande upplevelse.
- Upplösningsskalare
- Gör att du kan minska spelupplösningen. 100% är full upplösning
- Behandla bakåtknappen som höger mus
- Vissa enheter behandlar extern höger mus som bakåtknapp. Om du använder extern mus bör du aktivera detta.
- Använd knappstil
- Aktivera detta för att ändra kontrollknappens stil till platt.
-
- Varning
-
- Avsluta
-
- Pri
- Sek
- Fakt
- 3: e
- Flik
- Mus
- Mus: av
- Mus: på
-
- Tvingad avslutning
- Logga utdata
- Skicka anpassad nyckelkod
-
-
- Tangentkod
- Lägg till knapp
- Välj standard Control json
- Alternativ
- Spela
- Information (DEV)
- Växla användare
- Version:
- Krasch upptäckt
- Inga loggar.
- Biblioteket %s är bra och användbart
- Inaktivera gester
- Inaktiverar gester, såsom håll för att bryta block, och tryck för att placera ett block.
- Mus hastighet
- Ändrar hastigheten på mjukvarumusen
- Mus pass-thru
- Svepbar
- Rundad
- Det aktuella beloppet av gratis RAM (%d) är lägre än allokerat RAM (%d), vilket kan leda till krascher. Ändra tilldelningen om spelet kraschar.
- Minne tilldelat
- Kontrollerar hur mycket minne som ges till Minecraft
- Skadad Java körtid
- Java VMs
- Lägg till ny
- Importera en ny Java-VM
- Chef för körtid
- Hantera installerade Java VMs
- Cachning...
- Ange standard
- Standard
- Du måste ha minst en Java Runtime installerad
- Spela ändå
- Spelkatalog
- JVM argument
- Inställningar för per-version
-
diff --git a/app_pojavlauncher/src/main/res/values-th/strings.xml b/app_pojavlauncher/src/main/res/values-th/strings.xml
deleted file mode 100644
index f1271c32a..000000000
--- a/app_pojavlauncher/src/main/res/values-th/strings.xml
+++ /dev/null
@@ -1,297 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: ฉบับ Java สำหรับ Android)
- PojavLauncher
- เปิด Minecraft: ฉบับ Java ในอุปกรณ์ของคุณ!
-
-
-
- อีเมลหรือชื่อผู้ใช้
- รหัสผ่าน
- คงฉันไว้ในระบบ
- เข้าสู่ระบบ
- ชื่อผู้ใช้ที่ไม่ถูกต้อง ชื่อผู้ใช้ต้องอยู่ในช่วง 3-16 ตัวอักษร ควรประกอบด้วย A-Z, a-z, 0-9 และขีดล่างเท่านั้น
- ชื่อผู้ใช้นี้มีอยู่แล้ว
- เข้าสู่ระบบ Microsoft
- เลือกบัญชี
- ไม่พบบัญชี !
- คุณไม่มีบัญชีที่บันทึกไว้\nใช้ตัวเลือก \"ให้ฉันอยู่ในระบบต่อไป\" เพื่อบันทึกบัญชีเมื่อเข้าสู่ระบบครั้งแรก
-
- "กดปุ่มด้านบนกลางรูปฟันเพืองเพื่อเปิดหน้าต่าง ⚙\nเเตะปุ่มเพื่อปรับเเต่ง: เเก้ไข, ปรับขนาด, ลบ, หรือ ปรับเเต่งตัวคียลัด"
-
- This account will be removed!
-
- ติดตั้ง Java Runtime %s (.tar.xz)
- เลือกตัวติดตั้งม็อด
-
- PojavLauncher ได้ขัดข้องโดยไม่คาดคิด
- ไม่มีเวอร์ชัน!
- แสดงเพิ่มเติม
- แสดงน้อยลง
-
- The read/write to storage permission is required!
- ติดตั้งสำเร็จแล้ว
- ถอนการติดตั่ง Java Runtime สำเร็จ
-
-
- วิกี
- คอนโซลผู้พัฒนา
- บันทึกข้อขัดข้อง
-
- เชื่อมต่อแล้ว
- Local
-
- พร้อมที่จะเล่น Minecraft %s
- กำลังล้างแฟ้มแคช
- กำลังดาวน์โหลด %s
- "กำลังดาวน์โหลด %s (%.2f MB / %.2f MB)"
- กำลังเตรียมดาวน์โหลดทรัพยากร
- ไม่สามารถติดตั้ง Minecraft อย่างถูกกฎหมายเมื่อเข้าสู่ระบบด้วยบัญชี Local โปรดเปลี่ยนเป็นบัญชีออนไลน์เพื่อดำเนินการต่อ
- ตัวเลือก
- เปิดตัวติดตั้ง mod (Forge, LabyMod, Fabric, etc..)
- เปิดตัวติดตั้ง mod (ด้วยอาร์กิวเมนต์ที่กำหนดเอง)
- การควบคุมกำหนดเอง
- การตั้งค่า
- เกี่ยวกับ
- ใช้การเรนเดอร์พื้นผิวแบบอื่น
- อาจช่วยประสิทธิภาพในสถานการณ์ที่ผูกกับ GPU
- ถอนการติดตั้ง Java Runtime
- [ต้องรีสตาร์ท Launcher] ซึ่งจะช่วยให้คุณติดตั้ง Java Runtime ใหม่ได้
- เปิด Minecraft ในหน้าต่างลอย. ต้องใช้ Android 7.0+
- ซ่อนแถบด้านข้าง
- ผู้ที่คิดถึงอดีตที่ชอบ v1 UI แบบเก่าอาจชอบสิ่งนี้ ให้ประสบการณ์เต็มหน้าจอมากขึ้น
- เต็มจอ
- ไม่ต้องสนใจรอยบากและขยายหน้าจอข้างใต้\nให้ประสบการณ์ที่สมจริงยิ่งขึ้น
- มาตราส่วนความละเอียด
- อนุญาตให้คุณลดความละเอียดเกมลง. 100% คือความละเอียดเต็มที่
- สไตล์ปุ่มแบน
- เปิดใช้งานตัวเลือกนี้เพื่อเปลี่ยนรูปแบบปุ่มควบคุมเป็นแบบแบน
- ปรับขนาดปุ่มควบคุม
- เพิ่มขนาดหากปุ่มมีขนาดเล็กเกินไป
- การปรับมาตราเมาส์
- เปลี่ยนขนาดของเมาส์เสมือน.
- JVM Launch arguments
- ระวัง อาจทำให้เกมพังได้หากแก้ไขโดยขาดความรู้
- การตั้งค่าทั่วไป
- การตั้งค่าการปรับขนาด
- การแสดงผล
- Holy GL4ES - (all versions, fast)
- virglrenderer - (release 1.7+, ช้า)
- vgpu - (up to 1.16.5, เร็ว)
- zink - (old_beta b1.8+, ช้า)
- ANGLE - (release 1.17+, กลาง)
- ประเภทเวอร์ชันจะอยู่ในรายการเวอร์ชัน
- ภาพรวม
- Old-alpha
- เบตาเก่า
- ตัวลง .jar เเบบปลอดภัย
- ควบคุมความสามารถในการปรับเเต่งความปลอดภัยเมื่อเปิด ตัวติดตั้ง .jar
- คัดลอก
-
- แก้ไข
- ผิดพลาด
- คำเตือน
- โหลด
- ชื่อ
- ถอดออก
- คัดลอก
- เริ่มใหม่
- บันทึก
- กำลังแยก… %s
- สนามนี้ไม่สามารถว่าง
- รอ
- เลือก
-
- ออกจากแอปพลิเคชัน/เกมเด้งด้วยรหัส %d โปรดตรวจสอบที่ latestlog.txt สำหรับรายละเอียดเพิ่มเติม
- ออก
- คุณแน่ใจหรือไม่ว่าต้องการบังคับปิด?
- LWJGL3 ไม่ได้ถูกติดตั้ง!
- อุปกรณ์นี้ไม่รองรับตัวเรนเดอร์ Vulkan Zink
-
- GUI
- แป้นพิมพ์
- แชต
- ดีบั๊ก
- Tab
- เมาส์
- เมาส์: ปิด
- เมาส์: เปิด
-
- บังคับปิด
- ประวัติที่บันทึกไว้
- การดีบักอินพุต
- Scale Up
- Scale down
-
- นำเข้า ควบคุม
- ไฟล์ไม่ถูกต้องหรือเสียหาย
- นำเข้าควบคุม
- กำลังตรวจสอบไฟล์ โปรดรอและลองอีกครั้ง
- ชื่อหรือไฟล์ไม่ถูกต้องมีอยู่แล้ว
- นำเข้าสำเร็จ
-
- การแก้ไข %s
- ลบ %s?
- Toggleable
- ขนาด
- ความกว้าง
- ความสูง
- Mapping
- ทิคทางการหัน
- สีพื้นหลัง
- ระยะของมุม
- ความกว้างของเส้นขึด
- สีของเส้นขึด
- ตำแหน่งพลวัต
- พลวัต X
- พลวัต Y
- ความโปร่งใสพื้นหลัง
- ความเข้มของปุ่มทั้งหมด
- การรวมคีย์
- เพิ่มปุ่ม
- เพื่มปุ่มรวมควบคุม
- เพื่มปุ่มรอง
- ปุ๋มรอง n°%d ได้เพิ่มเเล้ว!
- เลือกแบบการควบคุมเรื่มต้น
- ส่งออกควบคุม
- แชร์ข้อมูลเเอป
- ติดตั้ง .jar
- ตัวเลือก
- เล่น
- ยินดีต้อนรับ, %s
- ข้อมูล (DEV)
- สลับผู้ใช้
- เวอร์ชัน:
- ไม่พบข้อผิดผลาด
- ไม่มีประวัติบันทึกไว้
- ไม่สามารถเอาข้อมูลข่าวสารได้!
- เปิดใช้งานตัวปรับ RAM อัตโนมัติ
- RAM อัตโนมัติ
- ตั้งหน่วยความจำเป็น %d MB
- ตรวจสอบไฟล์หลังจากดาวโหลด
- ออฟชั่นนี้บังคับให้รันเชอร์ตรวจสอบไฟล์เเฮสถ้ามี. ป้องกันการดาวน์โหลดพัง
- ไลบรารี %s ได้เสียหายเเละจะทำการดาวโหลดใหม่
- ไลบรารี %s ไม่สามารถตรวจสอบได้ ขอให้ดีก็พอ
- ไลบรารี %s ดีเเละใช้การได้
- ปิดท่าทางสัมผัส
- ปิดท่าทางสัมผัส เช่นเเตะค้างเพื่อทำลายบล็อกเเละ เเตะเพื่อวางบล็อก
- ปิดกดสองครังเพื่อสลับของในมือ
- ปิดเเตะสองครังบนฮอดบารไอเท็มเพื่อสลับในมือที่สอง
- ความเร็วเมาส์
- ปรับความเร็วของเมาส์ชอฟแวร์
- เมาส์ผ่านได้
- ลากได้
- โค้งมน
- ขณะนี้เเรมที่เหลือในเครืองของคุณ (%d) น้อยกว่าเเรมที่ตั้งไว้ (%d) อาจะทำให้เด้งได้ ปรับค่าเเรมที่ต้องการเมื่อเกมเด้ง
- การจัดสรรหน่วยความจำ
- ควบคุมเเรมที่จะให้กับเกมมายคราฟ
- ตัวรันไทม์จาวาเสียหาย
- ไม่รองรับสถานปัตกรรมนี้: %s
- จาวาวิเอ็ม
- เพื่มใหม่
- นำเข้าตัวจาวาใหม่
- ตัวควบคุมรันไทม์
- จัดการจาวาที่ติดตั้งเเล้ว
- กำลังเเคชชิง...
- ตั้งค่าเริ่มต้น
- ค่าเรื่มต้น
- อย่างน้อยต้องมีจาวาที่ติดตั้งเเล้วก่อน
- ไม่สามารถหาตัวจาวาที่รองรับ เวอร์ชั่นนี้ตองการจาวา %d หรือใหม่กว่า
- ไม่สามารถหาจาวา 8 ในการใช้ออฟชั่นนี้คุณต้องติดตั้งจาวา 8
- มายคราฟ 21w10a+ ต้องการ โอเฟ่นจีเเอล 3.2 โปรไฟล์ เสียดาย ชิฟการ์ดจอ
- เล่นโดยไม่สนใจ
- ตำเเห่งโฟรเดอร์เกม
- ตัวคำสั่ง เจวิเอ็ม
- ตั้งค่าเเต่ละเวอร์ชั่น
- ตำแหน่งที่จัดเก็บได้ถูกเปลี่ยน
- ตำแหน่งที่จัดเก็บใหม่อยู่ใน Android/datal%s/files/ (เข้าได้ผ่าน storage provider ในตัวจัดการไฟล์ในเครื่องคุณ). ถ้าต้องก็อปปี้ทุกอย่างจากของเดิมอยู่ที่ games/Pojavlauncher ตัวตัวเอง]]>
- ปรับค่าควบคุม
- ค่าควบคุมบนสุด:
- ค่าควบคุมขวา:
- ค่าควบคุมต้านใต้:
- ค่าควบคุมช้าย:
- ปรับค่าควบคุมในเเต่ละด้าน
- ปรับค่าควบคุมในเเต่ละด้านของจอ
- เปิดเกมด้วยเมาส์จำลอง
- เมาส์จำลองจะมาตอนเปิดเกมถ้าเปิดออฟชั่นนี้
- ภาพเเละการเร็นเดอร์
- ความชัด, ขนาดต่างๆ, เเละเร็นเดอร์
- ปรับเเต่งการควบคุม
- ชนิดท่าทางต่างๆ, ตัวกระตุ้น, เเละขนาด
- จาวาทวิก
- เวอร์ชั่นจาวา, ตัวคำสั่งจาวา, ขนาดเเรม เเละ เเชนบอก
- การตั้งค่าเบ็ดเตล็ด
- รายการเวอร์ชั่น, เเละตรวจสอบไลบรารี
- การตั้งค่าที่ทดสอบ
- ใช้ของทดสอบอย่างมีวิจารณญาณ ไม่มีการช่วยเหลือ
- เปิดตัวควบคุมความสามารถ
- ล็อกอุณหภูมิเกินโดยจำกัดประสิทธิ์ภาพ
- บังคับวิสิงค์
- ล็อกอุณหภูมิเกินโดยจำกัดประสิทธิ์ภาพ
- บังคับเป็นภาษาอังกฤษ
- อนุญาตให้ดูทุกอย่างก่อนที่จะถูกแปล โดยนักพัฒนา ต้องการเปิดปิดใหม่
- เเก้ไขการควบคุมกำหนดเอง
- ปรับการควบคุมให้ตอบโจทย์ตัวเอง
- การควบคุมไจโร
- กลับแกน x
- กลับแกน Y
- กลับเเกนตรง
- กลับเเกนเเนวนอน
- กลับไปหน้าที่เเล้ว
- อย่าย่อขนาดพื้นผิว
- หารขนาดโดย 2
- หารขนาดพื้นผิวใหญ่ โดย /2 หรือ /4
- ไม่มีชื่อ
- ตัวทดลองล่าสุด
- เนื้อหาใหม่ล่าสุด
- แก้ไขโปรไฟล์
- ชื่อ
- เวอร์ชัน
- ลบ
- จาวา รันไทม์
- การแสดงผล
- ผ้าคลุมที่มีภาพ
- เปิดผ้าคลุมจาก cosmetica (เเต่ก่อนเป็น arc) ข้อมูลเพิ่มเติมที่ https://cosmetica.cc ต้องมี optfine
- %s กำหนดค่าเวอร์ชั่น
- ทั่วไป
- เรียกใช้บริการpojavที่ใช้งานอยู่
- เชอร์วิสนี้ใช้ในการทำงานยาวๆ
- (ใช้การตั้งค่าหลัก)
- การควบคุมเดิม
- %d กำลังดำเนินงาน
-ไม่มีงานกำลังดำเนิน
- บังคับปิด
- เกมเปิดไว้อยู่
- สร้าง
- ชื่อโฟลเดอร์
- ล็อกอินเเล้ว
- เพิ่มบัญชี
- งานกำลังดำเนิน, โปรดรอสักครู่
- ไม่มีบัญชีที่เชฟไว้
- กำลังดาวโหลดข้อมูลเวอร์ชั่นทั้งหมดที่มี
- ไม่สามารถดาวน์โหลดมายคราฟ อาจะมีหลากหลายสาเหตุ เช่น เน็ดอาจหลุด/เน็ตเเย่, วางตำแหน่งไฟล์ผิด เเละอีกหลายปัจจัย
- ข้อผิดพลาดของเอ็กซ์บอกเอพิไอ %d
- เหมือนคุณยังไม่มีบัญชีเอ็กบอก โปรดล็อกอินบน https://minecraft.net/ เเล้วลองอีกครั้ง
- ผู้ใหญ่ควรยืนยันบัญชีก่อน
- บัญชีของคุณคือบัญชีเด็ก, เเล้วต้องเพื่มลงระบบครอบครัวเพื่อล็อกอิน
- ดูเหมือนว่าบัญชีนี้จะไม่มีโปรไฟล์ Minecraft หากคุณมี Xbox Game Pass โปรดเข้าสู่ระบบที่ https://minecraft.net/ และตั้งค่า
- เอ็กบอดไลฟ์ ไม่มีที่อยู่ของคุณ
- เปิดใช้งานการควบคุมไจโรสโคป
- การเปิดใช้งานจะทำให้คุณสามารถหันในเกมได้โดยการหมุนโทรศัพท์ของคุณ
- ความรวดเร็วในการควบคุมไจโร
- ปรับความไวของการควบคุมไจโรสโคป
- เปิดใช้งานการควบคุมไจโรก่อนเพื่อใช้สิ่งนี้!
- อัตราการสุ่มตัวอย่างไจโร
- ถ้ามีปัญหากับประสิทธิภาพของไจโร เพื่มสิ่งนี้
- ส่งคำขอบ่อยเกินไป, กรุณาลองอีกครั้งภายหลัง
- PojavLauncher ต้องการที่เก็บข้อมูลภายนอกที่แนบมา โปรดเชื่อมต่อที่เก็บข้อมูลของคุณอีกครั้งและรีสตาร์ทแอป
- ใช้ตัวอักษรพิมพ์ใหญ่บนปุ๋ม
- ปิดใช้งานหากคุณต้องการใช้ตัวอักษรพิมพ์เล็กในการควบคุมของคุณ
- สร้างโปรไฟล์ใหม่
-
diff --git a/app_pojavlauncher/src/main/res/values-tr/strings.xml b/app_pojavlauncher/src/main/res/values-tr/strings.xml
deleted file mode 100644
index 2753249ed..000000000
--- a/app_pojavlauncher/src/main/res/values-tr/strings.xml
+++ /dev/null
@@ -1,305 +0,0 @@
-
-
-
- PojavLauncher (Android için Minecraft: Java Edition)
- PojavLauncher
- Cihazınızda Minecraft: Java Edition çalıştırın!
-
-
-
- E-posta veya kullanıcı adı
- Şifre
- Oturumumu açık tut
- Giriş yap
- Geçersiz kullanıcı adı. Kullanıcı adı 3-16 karakter aralığında olmalı, sadece A-Z, a-z, 0-9 ve alt çizgi içermelidir.
- Bu kullanıcı adı zaten var
- Microsoft girişi
- Hesap seçin
- Hiç hesap bulunamadı!
- Hiçbir kayıtlı hesabın yok.\n<b>\"Beni hatırla\"<b>\'yı seçerek hesaplarını kaydedebilirsin.
-
- "içerik menüsünü açmak için ortadaki çark ikonuna tıklayın. ⚙\nBir düğmeye tıklayarak özelleştirebilir: düzenleyebilir, silebilir veya tuş bağını değiştirebilirsiniz."
-
- Bu hesap kaldırılacak!
-
- Java Runtime\'ı Kur %s (.tar.xz)
- Bir mod yükleyicisi seç
-
- PojavLauncher beklenmedik bir sebepten dolayı çöktü
- Sürüm yok!
- Daha fazla göster
- Daha az göster
-
- Depolamaya okuma/yazma izni gerekli!
- Yükleme başarılı
- Java Runtime kaldırması tamamlandı
-
-
- Geliştirici konsolu
- Çökme günlüğü
-
- Bağlandı
- Yerel
-
- Minecraft %s başlamaya hazır
- Önbellek dosyaları temizleniyor
- %s indiriliyor
- "%s indiriliyor (%.2f MB / %.2f MB)"
- Kaynaklar yüklenmeye hazırlanılıyor
- Yerel bir hesapla giriş yapıldığında Minecraft yasal olarak yüklenemez. Lütfen yüklemek için çevrimiçi bir hesaba giriş yapın.
- Seçenekler
- Bir mod yükleyicisi başlatın (Forge, LabyMod, Fabric, vb...)
- Bir mod yükleyicisi başlatın (özel değişkenlerle)
- Özel kontroller
- Ayarlar
- Hakkında
- Alternatif yüzey işleyicisi kullan
- GPU\'ya bağlı durumlarda performansı arttırabilir
- Java Runtime\'ı kaldır
- [Yeniden başlatma gerekli] Bu Java Runtime\'ı tekrar yüklemenizi sağlar
- Minecraft\'ı pencere modunda başlat
- Minecraft\'ı pencere modunda başlat. Android 7.0+ gerektirir
- Kenar çubuğunu gizle
- Eski v1 Menüsünü hatırlayan eski arkadaşlar bunu tercih ediyor. Daha çok tam ekran deneyimi verir.
- Çentiği görmezden gel
- Çentiği görmezden gelir ve ekranı kameranın yanına genişletir.\nDaha sürükleyici bir deneyim sunar.
- Çözünürlük Ölçekleyicisi
- Oyun çözünürlüğünü düşürmenizi sağlar. %100 full çözünürlüktür
- Uzun basma ne kadar zaman sonra tetiklenecek
- Blok kırma ve eşya bırakma için ne kadar süre basman gerektiğini değiştir.
- Geri tuşunu fare sağ tıkı gibi algıla
- Bazı cihazlar farenin sağ tıkını geri tuşu olarak algılar. Eğer fiziksel fare kullanıyorsanız, bunu aktifleştirmelisiniz.
- Düz düğme tarzı
- Düğme tarzını düz yapmak için bunu etkinleştirin.
- Düğmelerin ölçeklemesini ayarla
- Eğer düğmeler çok küçükse büyütün.
- Fare ölçeklemesi
- Sanal farenin boyutunu ayarlayın.
- JVM Başlatıcı değişkenleri
- Dikkatli olun, eğer bilgisizce değiştirilirse oyunun çökmesine sebep olabilir.
- Genel ayarlar
- Boyutlandırma Seçenekleri
- İşleyici
- Kutsal GL4ES - (bütün sürümler için, hızlı)
- virglrenderer - (sürüm 1.7+, yavaş)
- vgpu - (1.16.5\'e kadar, hızlı)
- zink - (eski_beta b1.8+, yavaş)
- ANGLE - (sürüm 1.17+, ortalama)
- Sürüm tipi sürüm listesinde olacaktır
- Sürümler
- Test sürümleri
- Eski-alfa
- Eski-beta
- Sanal alanda .jar kurucusu
- .jar kurucusunu başlatırken korumalı alan güvenlik yöneticisinin mevcut olup olmadığını kontrol eder.
- Klon
-
- Düzenle
- Hata
- Uyarı
- Yükle
- İsim
- Kaldır
- Klon
- Yeniden başlat
- Kaydet
- %s Paketten çıkarılıyor
- Bu alan boş bırakılamaz
- Bekleyin
- Seç
-
- Uygulama/Oyundan %d koduyla çıkıldı, daha fazla bilgi için latestlog.txt\'ye bakın.
- Çıkış
- Zorla kapatmak istediğinize emin misiniz?
- LWJGL3 yüklenmemiş!
- Vulkan Zink işleyicisi bu cihazda desteklenmiyor!
-
- GUI
- Klavye
- Sohbet
- Hata Ayıklama
- Pri
- Sec
- ◇
- Env
- ▲
- ◀
- ▶
- ▼
- ⬛
- 3rd
- Tab
- Fare
- Fare: kpl
- Fare: açık
-
- Kapatmaya zorla
- Konsol çıktısı
- Hata ayıklama tuşu gir
- Özel anahtar kodu gönder
- Boyutu Arttır
- Boyutu Küçült
-
- Kontrolleri içeri aktar
- Geçersiz veya bozuk dosya
- kontrolleri içeri aktar
- Dosya şuanda doğrulanıyor, lütfen bekleyin ve tekrar deneyin…
- Geçersiz ad ya da dosya zaten var
- İçeri aktarma tamamlandı
-
- %s düzenleniyor
- %s kaldırılsın mı?
- Anahtar Kodu
- Değiştirilebilir
- Boyut
- Genişlik
- Yükseklik
- Atama
- Yön
- Arkaplan rengi
- Köşe alanı
- Vurgu genişliği
- Vurgu rengi
- Manüel Dinamik pozisyon
- Dinamik X
- Dinamik Y
- Arkaplan saydamlığı
- Düğme saydamlığı
- Tuş kombinasyonu
- Alt
- Ctrl
- Shift
- Düğme ekle
- Düğme saklama menüsü ekle
- Yan-düğme ekle
- Yan-düğme n°%d eklendi !
- Varsayılan Control json\'u seç
- kontrolleri içeri aktar
- Günlük (log) dosyasını paylaş
- .jar kur
- Seçenekler
- Oyna
- Hoş geldiniz, %s
- Bilgi (Geliştirici)
- Kullanıcı değiştir
- Sürüm:
- Hiç çökme tespit edilmedi
- Kayıt yok.
- Haber bilgileri getirilemedi !
- Otomatik bellek ayarlayıcısını etkinleştirir
- Otomatik BELLEK
- Bellek %d MB olarak ayarlandı
- İndirmeden sonra kütüphaneleri kontrol et
- Bu seçenek eğer hazırsa başlatıcıyı kütüphane hash\'ini kontrol etmeye zorlar. Kırık indirmeleri engeller.
- Kütüphane %s hasarlı ve yeniden indirilecek
- Kütüphane %s kontrol edilemez, düzgün olduğu varsayılmak zorunda
- Kütüphane %s iyi durumda ve kullanılabilir
- İşaretleri devre dışı bırak
- Blok kırmak için basılı tutma ve blok koymak için dokunma gibi işaretleri devre dışı bırakır.
- Fare Hızı
- Yazılımsal farenin hızını değiştirir
- Mouse geçişi
- Kaydırılabilir
- Kenarlı
- Şuanki boş bellek (%d) verilecek bellekten (%d) az, bu çökmeye sebep olacaktır. Eğer oyun çökerse verilen belleği değiştirin.
- Bellek ayırma
- Minecraft\'a ne kadar bellek verileceğini kontrol eder
- %s (Java %d)
- Bozuk Java Runtime
- Uyumsuz mimari: %s
- Java SM\'leri
- Yeni ekle
- Yeni Java VM\'i içe aktar
- Runtime yöneticisi
- Yüklü Java VM\'lerini yönet
- Önbelleğe alınıyor...
- Varsayılan olarak ayarla
- Varsayılan
- En az bir Java Runtime\'ın kurulu olması gerekmektedir
- Uyumlu Java Runtime bulunamadı. Bu sürüm Java %d ya da daha yenisini gerektiriyor.
- Java 8 bulunamıyor. Bu seçeneği kullanabilmeniz için Java 8 kurmanız gerekiyor.
- Minecraft 21w10a+ OpenGL 3.2 çekirdek profiline gereksinim duyar. Ne yazık ki Sizin grafik çipiniz OpenGL ES 3.0 veya üstünü desteklememektedir. Fakat Bu sürümü Çalıştırmak için indirebileceğiniz bazı fazladan kaynaklar bulunmaktadır. İndirmeyi onaylamak için Tamam tuşuna basın ve iptal etmek için İptal tuşuna basın.
- Yine de Oyna
- Oyun dizini
- JVM değişkenleri
- Sürüm-başına ayarlar
- Depolama değişiklikleri
- Pojav dosyalari için yeni dizin Android/data/%s/files/ (Ayrıca dosya yöneticisindeki dosya sağlayıcısından da erişmek mümkün). Eğer oyun dosyalarınızı kopyalamanız gerekirse, lütfen games/PojavLauncher\'daki orijinal klasördeki her şeyi manuel olarak kopyalayın.]]>
- Kontrol uzaklığı
- Üst uzaklık:
- Sağ uzaklık:
- Alt uzaklık:
- Sol uzaklık:
- Kontrol köşe uzaklıkları
- Ekranın her köşesine özel uzaklık ayarla
- Sanal fare açık olarak başla
- Video ve işleyici
- Çözünürlük, ölçekleme türü, ve işleyici
- Kontrol özelleştirmesi
- İşaret türleri, tetikleyiciler ve ölçekleme
- Java Ayarlamaları
- Java sürümleri, JVM Argümanları, Bellek miktarı ve korumalı alan
- Çeşitli ayarlar
- Sürüm listesi ve lib kontrolü
- Deneysel Ayarlar
- Buradaki ayarları düşünerek kullanın, destek yoktur.
- Kısıtlı performans modunu aç
- Üst performansı kısıtlayarak ısınmayı limitle
- Üst performansı kısıtlayarak ısınmayı limitle
- Dili ingilizce\'ye zorla
- Geliştiriciler tarafından amaçlanan orijinal yazıları görmenizi sağlar. Yeniden başlatma gerektirir
- Özel kontrolleri düzenle
- İhtiyaçlarını gidermesi için kontrol şemasını ayarla
- Sanal Fare
- Son ekrana geri dön
- Dokuları sakın küçültme
- Bütün dokuları 2\'ye böler
- Büyük dokuları 2\'ye ya da 4\'e böler
- Adsız
- En son test sürümü
- En son sürüm
- Profili düzenle
- İsim
- Sürüm
- Sil
- Java Runtime
- İşleyici
- Cosmetica Pelerinleri
- Cosmetica\'nın Pelerinlerini etkinleştirir (Önceden Arc). Daha fazla bilgi için lütfen https://cosmetica.cc\'u ziyaret edin. OptiFine gerektirir.
- %s sürüm ayarlaması
- Genel
- Pojav Önplan Hizmeti
- Bu hizmet uzun süren işlemleri uygulamak için kullanılıyor
- Kuruldu
- (Genel varsayılanı kullan)
- Varsayılan kontroller
- %d tane görev devam etmekte
- Sonlandır
- Oyun şuanda çalışıyor!
- Oluştur
- Dosya ismini girin
- Giriş tamamlandı
- Hesap Ekle
- Görevler devam etmekte, lütfen bekleyin
- Kayıtlı hesap yok
- Sürüm listesi indiriliyor…
- Minecraft indirmesi başarısız oldu! Bu kötü internet bağlantısı, yanlış yerleştirilmiş dosyalar vb.. sebebiyle olabilir.
- Bilinmeyen XBOX Live API hatası %d
- Bir Xbox Live hesabına sahip değil gibisiniz. Lütfen bir kereliğine https://minecraft.net/ \'da giriş yapın ve tekrar deneyin.
- Bir yetişkinin hesabını onaylaması gerekiyor.
- Hesabınız bir çocuk hesabı ve giriş yapabilmek için bir ailenin eklenmesi gerekiyor.
- Görünüşe göre bu hesap bir Minecraft profiline sahip değil. Eğer Xbox Game Pass\'de iseniz, lütfen https://minecraft.net/ \'den giriş yapın ve ayarlayın.
- Xbox Live ülkenizde mevcut değil
- Jiroskop kontrollerini etkinleştir
- Bunu etkinleştirmek cihazınızı döndürerek oyun içinde dönmenizi sağlar
- Jiroskop kontrolleri hassaslığı
- Jiroskop kontrollerinin hassaslığını ayarlayın
- Bunu kullanabilmek için ilk olarak Jiroskop ayarlarını etkinleştirin!
- Jiroskop örnekleme oranı
- Eğer jiroskop kontrolleriyle performans probleminiz varsa bunu arttırın
-
diff --git a/app_pojavlauncher/src/main/res/values-tt/strings.xml b/app_pojavlauncher/src/main/res/values-tt/strings.xml
deleted file mode 100644
index 467fb060a..000000000
--- a/app_pojavlauncher/src/main/res/values-tt/strings.xml
+++ /dev/null
@@ -1,213 +0,0 @@
-
-
-
- PojavLauncher (Android өчен Minecraft: Java Edition)
- PojavLauncher
- Minecraft: Java Edition үзегезнең җайланма кушыгыз!
-
-
-
- Электрон почтасы яки кулланучының исеме
- Серсүз
- Хәтердә калдырырга
- Керергә
- Бу кулланучы исеме бар инде
- Microsoft аша керергә
- Аккаунтлар
- Аккаунт табылмады!
- Сакланган аккаунтлар юк.\nАккаунтны беренче керү вакытында саклап өчен «Хәтердә калдырырга» опциясен кулланыгыз.
-
-
- Бу аккаунт бетереләчәк!
-
- Java Runtime уртыртуы %s (.tar.xz)
- Мод утырткычын сайлагыз
-
- PojavLauncher сафтан көтелмичә чыкты
- Версия юк!
- Күбрәк күрсәтү
- Әзрәк күрсәтү
-
- Саклау урыныннан уку/ясу рөхсәте кирәк!
- Утыртылды
- Java Runtime бетерелде
-
-
- Эшкәртүче консоле
- Сафтан чыгарулар журналы
-
- Тоташкан
- Локаль
-
- Minecraft %s кушылуга әзер
- Кеш-файллар бетерүе
- %s йөкләтүе
- "%s йөкләтү (%.2f МБ / %.2f МБ)"
- Ресурс йөкләүгә әзерләнү
- Көйләүләр
- Мод утырткычын кушу (Forge, LabyMod, Fabric, h. б.)
- Мод утырткычын кушу (көйләнелгән аргументлар белән)
- Көйләнелгән идарә
- Көйләүләр
- Лаунчер турында
- Java Runtime-ны бетерергә
- [Лаунчерны яңадан кушу кирәк] Ул Java Runtime-ны яңадан утыртырга рөхсәт ителә
- Йөзүче тәрәзәдә Minecraft ачу
- Minecraft-ны йөзмә тәрәзәдә ача. Android 7.0+ кирәк
- Кырый панелен яшерү
- Ностальгиялы кешеләргә бу иске v1 интерфейсы ошауы кирәк. Күбрәк тулы экран тәҗрибәсен бирелде.
- Тигез төймә стиле
- Төймәләр масштабы
- Курсор масштабы
- Тычкан курсор зурлыгын үзгәртә.
- JVM кушу аргументлары
- Төп көйләүләр
- Масштаб көйләүләр
- Күрсәткеч
- Holy GL4ES - (барлык версияләр өчен, тиз)
- virglrenderer - (соңгы 1.7 һәм югарырак версияләр өчен, акрын)
- vgpu (1.16.5 һәм түбәнрәк версияләр өчен, тиз)
- zink - (иске бета b1.8 һәм югарырак версияләр өчен, акрын)
- ANGLE - (соңгы 1.17 һәм югарырак версияләр өчен, уртача)
- Версия исемлегендә күрсәтелгән версия төре
- Чыгарылыш
- Снапшотлар
- Иске альфа
- Иске бета
- Клонларга
-
- Үзгәртү
- Хата
- Кисәтү
- Йөкләү
- Исем
- Бетерү
- Клонларга
- Яңадан кушу
- Сакларга
- %s ачылу
- Бу кыр буш булап алмады
- Көтегез
- Сайлау
-
- Чыгу
- Сез мәҗбүри ябырга телисезме?
- LWJGL3 утыртылмады!
-
- GUI
- Төймәсар
- Чат
- Төзәтү
- Pri
- Sec
- ◇
- Инв
- ▲
- ◀
- ▶
- ▼
- ⬛
- F5
- Tab
- Тычкан
- Тычкан: Сүнек
- Тычкан: Кушык
-
- Мәҗбүри ябу
- Журнал
- Кертү төзәтүе
- Зурайту
- Кечерәйтү
-
- Хаталы яки бозылган файл
- Импортлау тәмамланды
-
- «%s» үзгәртү
- «%s» бетерергәме?
- Төймә коды
- Зурлык
- Киңлек
- Биеклек
- Төймәләр
- Фон төсе
- Кыршау юанлыгы
- Кыршау төсе
- Динамик позициясе
- Артның тоныклыгы
- Төймә тоныксызлыгы
- Төймә комбинациясы
- Alt
- Ctrl
- Shift
- Төймәне булдырырга
- Төймәчәне өстәү
- Төймәчә №%d өстәлде!
- .jar-файлны урнату
- Көйләүләр
- Уйнарга
- %s, рәхим итегез
- Мәгълүмат (Эшкәрт.)
- Кулланучыны алыштырырга
- Версия:
- Сафтан чыгару табылмады
- Журнал буш
- Яңалыклар тасмасын алып булмады!
- Автоматик тиз хәтер билгеләү
- Йөкләтүдән соң китапханәләрне тикшерергә
- %s китапханәсе ватылган һәм яңадан йөкләтәчәк
- %s китапханәсе тикшереп булмады; аның белән барысы да яхшы дип уйларга туры килә
- %s китапханәсе тикшерелде һәм кулланырга мөмкин
- Ишарә сүндерергә
- Тычкан сизгерлеге
- Тычкан күрсәткече
- Түгәрәкләнгән
- Хәтер билгеләү
- Java Runtime зарарланган
- Яраксыз архитектура: %s
- Java виртуаль машиналар
- Яңаны өстәргә
- Яңа Java VM импортлау
- Runtime менеджер
- Кэшлау...
- Әүвәлге
- Гадәттәге
- Барыбер уйнарга
- Уен папкасы
- JVM аргументлары
- Версиягә-версия көйләүләр
- Видео һәм күрсәткеч
- Ачыклык, масштаблау төре һәм күрсәткеч
- Идарә элементлары
- Java төзәтмәләре
- Башка көйләүләр
- Версияләр исемлеге һәм китапханә тикшерү
- Эксперименталь нәрсәләр
- Виртуаль тычкан
- Артка
- Исемсез
- Соңгы ярдәмче версия
- Соңгы версия
- Профиль үзгәртү
- Исем
- Версия
- Бетерү
- Java Runtime
- Күрсәткеч
- Cosmetica япмалары
- %s версиясе көйләү
- Гомуми
- Утыртылган
- Тәмамлау
- Уен эшләде инде!
- Ясау
- Керү үтәлде
- Аккаунт өстәү
- Сакланган аккаунтлар юк
- Версияләр исемлеге йөкләү…
- Minecraft йөкләнеп булмады! Бу акрын тоташу яки файл урнашуда хаталар аркасында туа ала торган.
-
diff --git a/app_pojavlauncher/src/main/res/values-uk/strings.xml b/app_pojavlauncher/src/main/res/values-uk/strings.xml
deleted file mode 100644
index 407256f03..000000000
--- a/app_pojavlauncher/src/main/res/values-uk/strings.xml
+++ /dev/null
@@ -1,319 +0,0 @@
-
-
-
- PojavLauncher (Minecraft: Java Edition для Android)
- PojavLauncher
- Запустити Minecraft: Java Edition на вашому пристрої!
-
-
-
- Email або ім\'я користувача
- Пароль
- Запам\'ятати мене
- Увійти
- Неправильне ім\'я користувача. Ім\'я користувача має бути в довжині від 3-16 символів, повинно містити лише латинські букви, цифри та знак підкреслення.
- Це ім\'я користувача вже існує
- Увійти через Microsoft
- Виберіть обліковий запис
- Не знайдено облікових записів!
- У вас немає жодного збереженого облікового запису.\nСкористайтеся опцією \"Запам\'ятати мене\", щоб зберегти обліковий запис при першому вході в систему.
-
- "Натисніть верхню центральну шестерню, щоб відкрити контекстне меню ⚙\nНатисніть на кнопку, щоб: редагувати, змінювати розмір, щось стерти, чи налаштувати клавіатуру."
-
- Цей обліковий запис буде видалено!
-
- Встановити Java Runtime %s (.tar.xz)
- Вибрати інсталятор моду
-
- PojavLauncher був зупинений у результаті збою
- Немає версії!
- Розвернути
- Звернути
-
- Потрібен дозвіл на читання/запис в сховище!
- Встановлення пройшло успішно
- Видалення Java Runtime завершено
-
-
- Вікіпедія
- Консоль розробника
- Журнал збоїв
-
- Підключено
- Локальний
-
- Minecraft %s готовий до запуску
- Очищення файлів кешу
- Завантаження %s
- "Завантаження %s (%.2f Мбайт / %.2f Мбайт)"
- Підготовка до завантаження ресурсів
- Minecraft не може бути леґально встановленим із локальним обліковим записом. Будь ласка, перейдіть до онлайн облікового запису, щоб продовжити.
- Опції
- Запустити інсталятор модів (Forge, LabyMod, Fabric, інші...)
- Запустити інсталятор модів (зі своїми аргументами)
- Користувацьке керування
- Налаштування
- Про лаунчер
- Використовувати альтернативний візуалізатор
- Може допомогти з продуктивністю в сценаріях, пов\'язаних з gpu
- Видалити Java Runtime
- [Необхідно перезапустити лаунчер] Це допоможе вам перевстановити Java Runtime
- Запуск Minecraft у плаваючому вікні
- Запустити Minecraft у плаваючому вікні. Потрібен Android 7.0 чи вище
- Приховати бічну панель
- Може сподобатися людям, які відчувають ностальгію та віддають перевагу старому інтерфейсу v1. Дає вам більш повноекранний досвід.
- Ігнорувати виріз під фронтальну камеру
- Ігнорує виріз під фронтальну камеру і розширює екран до неї.\nДає вам більш поглиблений досвід.
- Зменшити роздільну здатність
- Дозволяє зменшити роздільну здатність гри. 100% - роздільна здатність смартфона
- Тривалість довгого натискання
- Змінити тривалість довгого натискання для ламання блоків і викидання предметів.
- Враховувати кнопку \"Назад\" як праву кнопку миші
- Деякі пристрої використовують зовнішню праву кнопку миші як кнопку \"Назад\". Якщо ви використовуєте зовнішню мишу, то потрібно це увімкнути.
- Плаский стиль кнопок
- Увімкніть це, щоб змінити стиль кнопок керування на плаский.
- Масштабування кнопок
- Збільште це, якщо кнопки замалі.
- Масштабування курсору
- Змінює розмір курсора миші.
- Аргументи запуску JVM
- Будьте обережні, це може призвести до збоїв у грі, якщо це замінити без знань.
- Загальні налаштування
- Налаштування масштабування
- Візуалізатор
- Божий GL4ES - (всі версії, швидкі)
- virglrenderer - (реліз 1.7+, повільний)
- vgpu - (до 1.16.5, швидкий)
- zink - (old_beta b1.8+, повільний)
- ANGLE - (реліз 1.17+, середній)
- Типи версій, які будуть відображатися в списку версій
- Релізи
- Снапшоти
- Старі альфа
- Старі бета
- Встановлювач пісочниці .jar
- Контролювати доступність менеджера безпеки пісочниці при запуску встановлювача .jar.
- Клонувати
-
- Редагувати
- Помилка
- Застереження
- Завантаження
- Ім\'я
- Вилучити
- Клонувати
- Перезавантаження
- Зберегти
- Розпакування %s
- Це поле не може бути порожнім
- Зачекайте
- Обрати
-
- Програма/Гра завершилась з кодом %d, глянь в latestlog.txt для більш детальної інформації.
- Вийти
- Ви впевнені, що хочете примусово закрити його?
- LWJGL3 не встановлено!
- Vulkan Zink візуалізатор не підтримується на цьому пристрої!
-
- GUI
- Клавіатура
- Чат
- Налагодження
- ЛКМ
- ПКМ
- ◇
- Інв
- ▲
- ◀
- ▶
- ▼
- ⬛
- F5
- Tab
- Миша
- Миша: Вимкн.
- Миша: Увімк.
-
- Примусове закриття
- Журнал
- Налагодження введення
- Надіслати користувацьку розкладку
- Збільшити
- Зменшити
-
- Імпортування керування
- Неприпустимий або пошкоджений файл
- імпортувати керування
- Файл перевіряється; будь ласка, зачекайте та спробуйте ще раз…
- Неприпустиме ім\'я файлу або файл з таким ім\'ям вже існує
- Імпортування виконано
-
- Редагування «%s»
- Вилучити «%s»?
- Розкладка
- Перемикач
- Розмір
- Ширина
- Висота
- Кнопки
- Орієнтація
- Колір фону
- Радіус округлення
- Товщина контуру
- Колір контуру
- Ручне налаштування динамічної позиції
- Динаміка за віссю Х
- Динаміка за віссю Y
- Прозорість фону
- Прозорість кнопки
- Комбінація клавіш
- Alt
- Ctrl
- Shift
- Додати кнопку
- Додати розгортаєму кнопку
- Додати під-кнопку
- Підлегла кнопка n°%d була додана!
- Вибрати керування за замовчуванням
- Експорт керування
- Поділитися журналом
- Встановити .jar
- Опції
- Грати
- Ласкаво просимо, %s
- Інфо (Розроб.)
- Змінити користувача
- Версія:
- Збоїв не виявлено
- Немає записів.
- Не вдалося отримати стрічку новин!
- Вмикає автоматичне регулювання ОЗП
- Автоматичне виділення ОЗП
- Виділено %d МБ ОЗП
- Перевірити бібліотеки після завантаження
- Ця опція змушує лаунчер перевіряти хеш бібліотеки, якщо він доступний. Запобігає використанню пошкоджених бібліотек.
- Бібліотека %s пошкоджена та буде перезавантажена
- Бібліотека %s не може бути перевірена, припустимо, що з нею усе добре
- Бібліотека %s готова і придатна для використання
- Вимкнути жести
- Вимикає жести, наприклад утримувати, щоб розбити блок та торкнутися щоб поставити.
- Вимкнути подвійний дотик для зміни рук
- Вимикає подвійний дотик на панелі швидкого доступу для заміни її в другій руці
- Чутливість миші
- Змінює чутливість віртуальної миші
- Курсор миші
- Перегортаємий
- Округлені
- Поточна кількість вільної оперативної пам\'яті (%d) менша, ніж виділена оперативна пам\'ять (%d), що може призвести до збоїв. Змініть кількість вільної оперативної пам\'яті, якщо гра вилетить.
- Виділення пам\'яті
- Визначає, скільки пам\'яті буде виділено для Minecraft
- Java Runtime пошкоджено
- Несумісна архітектура: %s
- Віртуальні машини Java
- Додати нову
- Імпортувати нову віртуальну машину Java
- Менеджер Runtime
- Керування встановленими віртуальними машинами Java
- Кешування...
- Встановити за замовчуванням
- За замовчуванням
- Ви повинні мати принаймні одну встановлену Java Runtime
- Не вдалося знайти будь-який відповідний Java Runtime. Ця версія потребує Java %d версії або вище.
- Не вдалося знайти Java 8. Для того, щоб скористатися цією опцією, вам потрібно встановити Java 8.
- Minecraft 21w10a+ (1.17+) потребує OpenGL 3.2. На жаль, наразі ваш графічний чип не підтримує OpenGL ES 3.0 чи вище, але є деякі інші ресурси, які ви можете встановити, щоб запустити ці версії. Натисніть «ОК», щоб підтвердити інсталяцію або «Скасувати», щоб скасувати запуск.
- Запустити в будь-якому випадку
- Тека гри
- Аргументи JVM
- Налаштування окремої версії
- Зміни сховища
- Нова папка для файлів PojavLauncher:Android/data/%s/files/ (також можна використовувати сховище у провіднику ваших файлів). Якщо вам потрібно скопіювати свої ігрові файли, будь ласка, скопіюйте усе з вихідної папки з games/PojavLauncher вручну.]]>
- Зміщення керування
- Зверху:
- праворуч:
- знизу:
- зліва:
- Зміщення керування
- Встановіть користувацьке зміщення для кожної сторони екрану
- Запуск разом з віртуальною мишею
- Віртуальна Миша з\'являється при запуску коли ця опція увімк.
- Відео та візуалізатор
- Роздільна здатність, тип масштабування та візуалізатор
- Налаштування керування
- Типи жестів, триґери і масштабування
- Оптимізація Java
- Версії Java, JVM Аргументи, обсяг оперативної пам\'яті та пісочниця
- Інші параметри
- Список версій, та перевірка lib-файлів
- Експериментальні штуки
- Використовуйте речі з увагою, підтримка недоступна.
- Увімкнути режим постійної продуктивности
- Обмежте терморегуляцію, обмеживши пікову продуктивність
- Примусова вертикальна синхронізація
- Обмежте терморегуляцію, обмеживши пікову продуктивність
- Примусово перевести мову на англійську
- Дозволяє бачити оригінальні рядки, як це було задумано розробниками. Вимагає перезавантаження
- Редагувати елементи керування
- Налаштуйте схему керування на ваше вподобання
- Гіроконтроль
- Віртуальна миша
- Обернути вісь X
- Обернути вісь Y
- Обернути горизонтальну вісь
- Обернути вертикальну вісь
- Повернутися назад
- Не стискати текстури
- Стиснути всі текстури у 2 рази
- Розділяє великі текстури на 2 або 4
- Безіменний
- Останній снапшот
- Останній реліз
- Редагування профілю
- Ім\'я
- Версія
- Видалити
- Java Runtime
- Візуалізатор
- Плащі Cosmetica
- Включає плащі від Cosmetica (раніше Arc). Для більш детальної інформації, будь ласка, відвідайте https://cosmetica.cc. Потребує OptiFine.
- Конфігурація версії %s
- Основне
- Служба переднього плану Pojav
- Служба використовується для виконання тривалих операцій
- Встановлено
- (Використовувати все за стандартом)
- Керування за стандартом
- Виконується %d завдань
- Припинити
- Гра запущена!
- Створити
- Нова папка
- Вхід виконано
- Додати обл. запис
- Завдання виконуються, зачекайте
- Немає збережених обл. записів
- Завантаження списку версій…
- Не вдалося завантажити Minecraft! Це може бути через погане з\'єднання з мережею, неправильно розміщені файли, тощо..
- Невідома помилка Xbox Live API %d
- Схоже, у вас немає облікового запису Xbox Live. Будь ласка, увійдіть ще раз на https://minecraft.net та спробуйте знов.
- Повнолітні повинні підтвердити свій обліковий запис.
- Ваш акаунт - дитячий, та потребує добавлення у Сімейну Групу, щоб увійти.
- Схоже, цей обліковий запис не має профілю Minecraft. Якщо у вас є Ігрові Пропуски Xbox Live, просимо, увійдіть на https://minecraft.net/ та організуйте його.
- Xbox Live недоступний у вашій країні
- Увімкнути керування гіроскопом
- Увімкнення цього дозволить вам змінювати гру, увімкнувши свій телефон
- Налаштування чутливості гіроскопа
- Налаштуйте чутливість елементів керування гіроскопом
- Увімкніть контроль гіроскопа, перш ніж використовувати це!
- Частота дискретності Гіроскопа
- Якщо у вас виникають проблеми з продуктивністю разом з керуванням гіроскопом, то збільшить це
- Забагато запитів, повторіть спробу пізніше.
- PojavLauncher потребує прикріпленого зовнішнього сховища. Будь ласка, пере під\'єднайте сховище та перезапустіть додаток.
- Використовувати лише великі букви на кнопках
- Вимкніть це, якщо ви хочете використовувати маленькі букви в керуванні
- Створити профіль
-
diff --git a/app_pojavlauncher/src/main/res/values-vi/strings.xml b/app_pojavlauncher/src/main/res/values-vi/strings.xml
deleted file mode 100644
index 194631eef..000000000
--- a/app_pojavlauncher/src/main/res/values-vi/strings.xml
+++ /dev/null
@@ -1,306 +0,0 @@
-
-
-
- PojavLauncher
- PojavLauncher
- Khởi chạy Minecraft: Java Edition trên thiết bị của bạn!
-
-
-
- Email hoặc tên người dùng
- Mật khẩu
- Giữ trang thái đăng nhập
- Đăng nhập
- Tên người dùng không hợp lệ. Nó phải có từ 3-16 kí tự, và chỉ bao gồm các kí tự A-Z, a-z, 0-9 và dấu gạch dưới.
- Tên người dùng này đã tồn tại
- Đăng nhập Microsoft
- Chọn tài khoản
- Không tìm thấy tài khoản !
- Bạn không có tài khoản nào được lưu.\nDùng cài đặt \"Giữ trạng thái đăng nhập\" để giữ tài khoản lúc đầu đăng nhập.
-
- "Chạm phím bánh răng ở cạnh trên màn hình để mở menu ⚙\nChạm vào các phím để tùy chỉnh chúng: thay đổi tên, kích thước, liên kết phím, hoặc xoá phím."
-
- Tài khoản này sẽ bị loại bỏ!
-
- Cài đặt Java Runtime %s (.tar.xz)
- Chọn một trình cài đặt mod
-
- PojavLauncher đã bất ngờ bị rớt
- Không có phiên bản nào!
- Hiển thị thêm
- Hiển thị ít hơn
-
- Yêu cầu quyền đọc/ghi bộ nhớ!
- Cài đặt thành công
- Đã gỡ Java Runtime
-
-
- Bảng điều khiển phát triển
- Nhật ký sự cố
-
- Đã kết nối
- Nội bộ
-
- Sẵn sàng để chơi Minecraft %s
- Đang làm sạch bộ nhớ đệm
- Đang tải xuống %s
- "Đang tải %s (%.2f MB / %.2f MB)"
- Chuẩn bị để tải xuống gói tài nguyên
- Minecraft không thể được cài đặt một cách hợp pháp khi đăng nhập với một tài khoản nội bộ. Chuyển qua một tài khoản đã kết nối để tiếp tục.
- Tùy chọn
- Chạy một trình cài đặt mod (Forge, LabyMod, Fabric,...)
- Chạy một trình cài đặt mod (với chỉ số tùy chỉnh)
- Tùy chỉnh điều khiển
- Thiết lập
- Giới thiệu
- Dùng cách kết xuất thay thế
- Có thể cải thiện hiệu năng nếu GPU bị nghẽn cổ chai
- Gỡ Java Runtime
- [Đề nghị khởi động lại trình khởi chạy] Điều này cho phép bạn cài đặt lại Java Runtime
- Chạy Minecraft trong chế độ tự do
- Chạy Minecraft trong cửa sổ nổi. Yêu cầu Android 7.0 trở lên
- Ẩn thanh bên
- Người dùng quen thuộc với giao diện ở phiên bản v1 có thể thích tuỳ chọn này. Mang lại trải nghiệm toàn màn hình tốt hơn.
- Bỏ qua phần khuyết màn hình
- Bỏ qua phần khuyết màn hình và mở rộng màn hình bên dưới.\nMang đến cho bạn trải nghiệm phong phú hơn.
- Độ phân giải
- Cho phép bạn giảm độ phân giải của game. 100% là độ phân giải tối đa
- Khoảng thời gian nhấn giữ để kích hoạt
- Thay đổi thời gian nhấn giữ để kích hoạt khi phá huỷ khối và thả vật phẩm.
- Coi nút trở về như chuột phải
- Một số thiết bị coi chuột phải bên ngoài là nút quay lại. Nếu bạn đang sử dụng chuột ngoài, bạn nên bật tuỳ chọn này.
- Kiểu nút phẳng
- Bật tuỳ chọn này để đổi sang kiểu nút phẳng.
- Độ rộng nút điều khiển
- Tăng độ rộng nếu nút quá nhỏ.
- Độ lớn của chuột
- Đổi kích thước chuột ảo.
- Các chỉ số chạy JVM
- Cẩn thận, việc này sẽ làm trò chơi gặp sự cố nếu sửa đổi mà không có nhiều kiến thức.
- Thiết lập chung
- Cài đặt độ rộng
- Trình kết xuất
- Holy GL4ES - (tất cả phiên bản, nhanh)
- virglrenderer - (phiên bản 1.7+, chậm)
- vgpu - (đến 1.16.5, nhanh)
- zink - (beta_cũ b1.8+, chậm)
- ANGLE - (phiên bản 1.17+, trung bình)
- Kiểu phiên bản sẽ được hiện ở trong danh sách phiên bản
- Bản phát hành
- Snapshot
- Bản Alpha cũ
- Bản Beta cũ
- Chế độ hộp cát của trình cài đặt .jar
- Bật hoặc tắt trình quản lí an ninh (trong Java) khi khởi động trình cài đặt .jar.
- Nhân bản
-
- Chỉnh sửa
- Lỗi
- Cảnh báo
- Tải
- Tên
- Loại bỏ
- Nhân bản
- Khởi động lại
- Lưu
- Đang giải nén %s
- Trường này không được để trống
- Vui lòng đợi
- Chọn
-
- Ứng dụng/Trò chơi đã thoát với mã %d, kiểm tra nhật kí trình khởi chạy (latestlog.txt) để biết thêm chi tiết.
- Thoát
- Bạn có chắc muốn bắt buộc thoát chương trình?
- LWJGL3 chưa được cài đặt!
- Trình kết xuất Vulkan Zink không được hỗ trợ trên thiết bị này!
-
- Giao diện
- Bàn Phím
- Trò chuyện
- Gỡ lỗi
- Pri
- Sec
- ◇
- Túi đồ
- ▲
- ◀
- ▶
- ▼
- ⬛
- Thứ ba
- Tab
- Chuột
- Chuột: tắt
- Chuột: bật
-
- Đóng chương trình
- Nhật ký ra
- Gỡ lỗi đầu vào
- Gửi phím tùy chọn
- Phóng to
- Thu nhỏ
-
- Nhập vào bộ điều khiển
- Tệp không hợp lệ hoặc đã bị xung đột
- nhập vào bộ điều khiển
- Tệp đang được xác minh, vui lòng đợi và thử lại…
- Tên không hợp lệ hoặc tệp đã tồn tại
- Quá trình nhập vào hoàn tất
-
- Đang chỉnh sửa %s
- Xóa %s?
- Mã phím
- Chuyển đổi
- Kích thước
- Chiều rộng
- Độ cao
- Sơ đồ phím
- Hướng
- Màu nền
- Bán kính góc tròn
- Độ rộng viền phím
- Màu viền phím
- Điểm động tùy chỉnh
- Vị trí động theo chiều X
- Vị trí động theo chiều Y
- Độ trong suốt của hình nền
- Độ trong suốt của phím
- Tổ hợp phím
- Alt
- Ctrl
- Shift
- Thêm nút
- Thêm bộ phím
- Thêm phím phụ
- Phím phụ %d đã được thêm!
- Chọn bộ điều khiển json mặc định
- Xuất điều khiển
- Chia sẻ tệp nhật ký
- Cài đặt tệp .jar
- Tùy chọn
- Chơi
- Chào mừng, %s
- Thông tin (phát triển)
- Đổi người dùng
- Phiên bản:
- Không phát hiện sự cố
- Không có bản ghi.
- Lỗi tải bài đăng mới !
- Bật tự động điều chỉnh RAM
- RAM tự động
- Bộ nhớ được đặt thành %d MB
- Kiểm tra các thư viện sau khi tải
- Cài đặt này buộc trình khởi chạy kiểm tra hàm băm của thư viện nếu nó có sẵn. Ngăn chặn tải xuống bị hỏng.
- Thư viện %s bị hỏng và sẽ được tải lại
- Thư viện %s không thể kiểm tra, cho rằng nó tốt
- Library %s tốt và có thể sử dụng được
- Tắt cử chỉ
- Tắt cử chỉ, ví dụ như giữ để phá khối, và chạm để đặt khối.
- Tốc độ chuột
- Chỉnh tốc độ của phầm mềm chuột
- Di chuyển chuột
- Có thể vuốt
- Làm tròn
- Số lượng RAM trống hiện tại (%d) thấp hơn số lượng RAM được phân bổ (%d), có thể dẫn đến sự cố. Thay đổi số lượng phân bổ nếu trò chơi bị sập.
- Phân bổ bộ nhớ
- Điều chỉnh số lượng bộ nhớ được cung cấp cho Minecraft
- Java đã gặp xung đột
- Kiến trúc không tương thích: %s
- Các phiên bản Java
- Thêm mới
- Thêm vào Java VM mới
- Quản lí Java Runtime
- Quản lí các phiên bản Java VM đã cài đặt
- Đang lưu vào bộ nhớ đệm...
- Đặt làm mặc định
- Mặc định
- Bạn cần có ít nhất một phiên bản Java Runtime đã được cài đặt
- Không thể tìm thấy phiên bản Java tương thích. Phiên bản Minecraft này yêu cầu Java %d trở lên.
- Không thể tìm thấy Java 8. Để sử dụng tùy chọn này, bạn cần cài đặt Java 8.
- Minecraft phiên bản 21w10a trở đi yêu cầu OpenGL lõi phiên bản 3.2 trở lên. Mặc dù bộ xử lí đồ hoạ của bạn không hỗ trợ OpenGL ES 3.0 hoặc hơn, bạn có thể cài đặt một số phần tài nguyên bổ sung để khởi chạy những phiên bản này. Chọn OK để bắt đầu cài đặt, hoặc Huỷ để huỷ khởi chạy.
- Vẫn chơi
- Đường dẫn thư mục của trò chơi
- Các chỉ số JVM
- Cài đặt theo từng phiên bản
- Thay đổi về lưu trữ
- Thư mục mới của PojavLauncher là Android/data/%s/files/ (cũng có thể truy cập được bằng cách sử dụng dịch vụ cung cấp lưu trữ trong trình quản lí tệp của bạn). Nếu bạn muốn sao chép các tệp trò chơi của bạn, hãy sao chép tất cả từ thư mục games/PojavLauncher một cách thủ công.]]>
- Khoảng bù trừ của bộ điều khiển
- Khoảng bù trừ trên:
- Khoảng bù trừ phải:
- Khoảng bù trừ dưới:
- Khoảng bù trừ trái:
- Khoảng bù trừ theo cạnh của bộ điều khiển
- Đặt khoảng bù trừ tuỳ chỉnh cho mỗi cạnh của màn hình
- Khởi động với chuột ảo bật
- Hình ảnh và trình kết xuất
- Độ phân giải, dạng thu phóng, và trình kết xuất
- Tuỳ chỉnh bộ điều khiển
- Dạng cử chỉ, phím kích hoạt, và thu phóng
- Điều chỉnh Java
- Câc phiên bản Java, chỉ số JVM, lượng RAM phân bổ và hộp cát
- Các cài đặt khác
- Danh sách phiên bản, và kiểm tra thư viện
- Những cài đặt thử nghiệm
- Cân nhắc sử dụng các tuỳ chọn này. Chúng không được hỗ trợ.
- Bật chế độ duy trì hiệu suất
- Hạn chế giảm hiệu suất vì nhiệt bằng cách giới hạn hiệu suất tối đa
- Bắt buộc kích hoạt vsync
- Hạn chế giảm hiệu suất vì nhiệt bằng cách giới hạn hiệu suất tối đa
- Buộc ngôn ngữ Tiếng Anh
- Cho phép hiển thị các dòng chữ ban đầu, như theo ý của nhà phát triển. Yêu cầu khởi động lại
- Tùy chỉnh điều khiển
- Sửa cách điểu khiển theo ý muốn của bạn
- Chuột ảo
- Quay về màn hình trước đó
- Không thu nhỏ kết cấu
- Chia tất cả các kết cấu cho 2
- Chia những kết cấu lớn cho 2 hoặc 4
- Chưa đặt tên
- Bản thử nghiệm mới nhất
- Phiên bản mới nhất
- Chỉnh sửa hồ sơ
- Tên
- Phiên bản
- Xóa
- Java Runtime
- Trình kết xuất
- Áo choàng Cosmetica
- Sử dụng áo choàng từ dịch vụ Cosmetica (trước đây là Arc). Để biết thêm thông tin, truy cập https://cosmetica.cc. Yêu cầu có OptiFine.
- cấu hình phiên bản %s
- Chung
- Dịch vụ tiền cảnh Pojav
- Dịch vụ này dùng để thực hiện tác vụ lâu dài
- Đã cài đặt
- (Sử dụng mặc định chung)
- Điểu khiển mặc định
- %d tác vụ đang diễn ra
- Chấm dứt
- Trò chơi đang chạy!
- Tạo
- Nhập tên thư mục
- Hoàn tất đăng nhập
- Thêm tài khoản
- Các tác vụ đang chạy, vui lòng chờ
- Không có tài khoản nào được lưu
- Đang tải xuống danh sách phiên bản…
- Không thể tải Minecraft! Điều này có thể do kết nối mạng kém, tệp được đặt sai vị trí, ...
- Lỗi API Xbox Live chưa rõ, mã %d
- Có vẻ như bạn chưa có một tài khoản Xbox Live. Đăng nhập vào https://minecraft.net/ một lần và thử lại.
- Tài khoản của bạn cần được xác thực bởi người lớn.
- Tài khoản của bạn là tài khoản trẻ em, và phải được thêm vào một Gia đình để có thể đăng nhập.
- Có vẻ như tài khoản của bạn chưa có hồ sơ Minecraft. Nếu bạn có Xbox Game Pass, đăng nhập vào https://minecraft.net/ và thiết lập hồ sơ.
- Xbox Live không có sẵn ở quốc gia của bạn
- Bật con quay hồi chuyển
- Bật để quay góc nhìn trong trò chơi bằng cách nghiêng thiết bị
- Độ nhạy con quay hồi chuyển
- Điều chỉnh độ nhạy của điều khiển bằng con quay hồi chuyển
- Bạn cần bật con quay hồi chuyển để sử dụng!
- Tốc độ lấy mẫu con quay hồi chuyển
- Nếu bạn gặp vấn đề hiệu suất với điều khiển bằng con quay hồi chuyển, thử tăng cái này
- Có quá nhiều yêu cầu, vui lòng thử lại sau.
-
diff --git a/app_pojavlauncher/src/main/res/values-zh-rCN/strings.xml b/app_pojavlauncher/src/main/res/values-zh-rCN/strings.xml
deleted file mode 100644
index 95054fcb3..000000000
--- a/app_pojavlauncher/src/main/res/values-zh-rCN/strings.xml
+++ /dev/null
@@ -1,319 +0,0 @@
-
-
-
- PojavLauncher(适用于 Android 的《Minecraft:Java版》)
- PojavLauncher
- 在您的设备上启动《Minecraft:Java版》!
-
-
-
- 电子邮箱或用户名
- 密码
- 保持登录状态
- 登录
- 用户名无效。用户名必须在 3-16 个字符的范围内,且只能包含 A-Z、a-z、0-9 和下划线。
- 用户名已存在
- 微软账号登录
- 选择账户
- 该账户不存在!
- 尚未保存任何账户。\n使用“保持登录状态”选项以在首次登录后保存账户。
-
- "点击顶部中央齿轮图标打开背景菜单⚙\n点击一个按钮进行自定义:编辑、缩放、删除或自定义其键绑定。"
-
- 此账户将被移除!
-
- 安装 Java 运行时 %s (.tar.xz)
- 选择模组安装器
-
- PojavLauncher 意外崩溃
- 无版本!
- 显示细节
- 隐藏细节
-
- 需要存储读写权限!
- 安装成功
- Java 运行时卸载成功
-
-
- 百科
- 开发控制台
- 崩溃日志
-
- 已连接
- 本地模式
-
- Minecraft %s 就绪
- 正在清理缓存
- 正在下载 %s
- "正在下载 %s (%.2f MB / %.2f MB)"
- 正在准备下载资源
- Minecraft 无法在本地账户中进行安装,请切换到正版账户以继续。
- 选项
- 启动模组安装器(例如 Forge、LabyMod、Fabric...)
- 以自定义参数启动模组安装器
- 自定义控制按键
- 设置
- 关于
- 使用备用表面渲染(Surface Rendering)
- 可能有助于提升受 GPU 机能限制的性能
- 卸载 Java 运行时
- 【需要重启启动器】这会让你重新安装 Java 运行时。
- 以自由窗口模式启动 Minecraft
- 在浮动窗口中启动 Minecraft。需要 Android 7.0+
- 隐藏侧边栏
- 怀念 v1 旧版界面的用户可能喜欢这样。它提供了更接近全屏的体验。
- 忽略刘海屏
- 忽略刘海屏并将屏幕内容扩展至其下方。\n给您以更完整的沉浸感。
- 分辨率缩放
- 允许降低游戏画面分辨率。原生分辨率为 100%
- 长按触发时长
- 修改长按摧毁方块、丢弃物品的触发时长
- 将返回键视为鼠标右键
- 某些设备将外置鼠标右键作为返回键处理。如果您使用外置鼠标,您应该启用此功能。
- 扁平化风格按键
- 启用此选项可以使按键风格扁平化。
- 控制键缩放
- 如果按键太小,可以将其放大。
- 鼠标缩放
- 更改虚拟鼠标的大小。
- JVM 启动参数
- 注意,非专业人士修改此值可能导致游戏崩溃。
- 常规设置
- 缩放设置
- 渲染器
- Holy GL4ES - (全版本可用,速度较快)
- virglrenderer - (1.7 及以上版本可用,速度较慢)
- vgpu - (1.16.5 及以下版本可用,速度较快)
- zink - (beta 版 b1.8 及以上可用,速度较慢)
- ANGLE - (1.17 及以上版本可用,速度一般)
- 将在版本列表中显示的版本类型
- 正式版
- 快照
- 远古 alpha 版
- 远古 beta 版
- 沙盒 .jar 文件安装器
- 当启动 .jar 安装器时,控制沙盒安全管理器的可用性。
- 复制
-
- 修改
- 错误
- 警告
- 加载
- 名称
- 移除
- 复制
- 重启
- 保存
- 正在解压 %s
- 此处表单不能为空
- 请稍等
- 选择
-
- 应用程序/游戏以代码 %d退出,请查看 latestlog.txt 了解更多详情。
- 退出
- 确定强制关闭?
- 未安装 LWJGL3!
- 此设备不支持 Vulkan Zink 渲染器!
-
- 界面
- 键盘
- 聊天
- 调试
- 主
- 副
- ◇
- 背包
- ▲
- ◀
- ▶
- ▼
- ⬛
- 视角
- Tab
- 鼠标
- 鼠标:关
- 鼠标:开
-
- 强制关闭
- 日志输出
- 输入调试
- 发送自定义键码
- 放大
- 缩小
-
- 导入控制键
- 文件无效或已损坏
- 导入控制键
- 文件正在校检中,请稍候重试…
- 名称无效或文件已存在
- 导入完成
-
- 正在编辑 %s
- 确认删除 %s 吗?
- 键码
- 可切换
- 大小
- 宽度
- 高度
- 映射
- 方向
- 背景颜色
- 圆角半径
- 边框宽度
- 边框颜色
- 动态位置
- 动态 X 轴
- 动态 Y 轴
- 背景透明度
- 按钮不透明度
- 按键组合
- Alt
- Ctrl
- Shift
- 添加按键
- 添加组合键
- 添加子按钮
- 子按钮 n°%d 已添加!
- 选择默认 .json 控制键位
- 导出键盘
- 共享日志文件
- 安装 .jar
- 选项
- 启动游戏
- 欢迎, %s
- 信息(开发)
- 切换用户
- 版本:
- 未检测到崩溃
- 无日志。
- 新闻获取失败!
- 启用内存自动调节
- 自动设置内存大小
- 内存已设为 %d MB
- 在下载后检查依赖库
- 此选项强制启动器在哈希值可用时检查运行库,防止下载错误。
- 依赖 %s 已损坏,此依赖将被重新下载
- 无法检查运行库 %s ,希望它正常
- 依赖库 %s 正常
- 禁用手势
- 禁用手势,例如长按破坏方块和点击放置方块。
- 禁用双击交换手中物品
- 禁用双击快捷栏上的物品来在副手中将其交换
- 鼠标速度
- 更改虚拟鼠标的速度
- 鼠标透传
- 可滑动
- 圆角
- 当前可用内存(%d)低于所分配的内存(%d),这可能会导致游戏崩溃。如果游戏崩溃请更改配置。
- 内存分配
- 控制给 Minecraft 分配多少内存
- Java 运行时损坏
- 不兼容的CPU架构: %s
- Java虚拟机
- 新建
- 导入新的 Java VM
- Java环境管理器
- 管理已安装的 Java 虚拟机
- 正在缓存……
- 设为默认
- 默认
- 您必须至少安装一个 Java 运行时
- 找不到合适的 Java 运行时。此版本需要 Java %d 或更高版本。
- 无法找到 Java 8。要使用此选项,您需要安装 Java 8。
- Minecraft 21w10a+ 需要 OpenGL 3.2 核心配置文件。遗憾的是,GL4ES 渲染器目前并不完全支持它,但是您可以安装额外的资源包来运行这些版本。按\"确认\"以确认安装,按\"取消\"以中止启动。
- 仍然开始游戏
- 游戏目录
- JVM 参数
- 预发布版本设置
- 存储位置变更
- 新的 Pojav 文件夹是 Android/data/%s/files/ (同样可以通过您的文件管理器访问)。 如果您需要复制您的游戏文件,请从 games/PojavLauncher 中手动复制所有内容]]>
- 控件偏移
- 顶端偏移:
- 右偏移:
- 底部偏移:
- 左偏移:
- 控件侧偏移
- 设置屏幕每边的自定义偏移
- 启动游戏时默认打开虚拟鼠标
- 此选项打开时,虚拟鼠标会在启动时显示
- 视频和渲染器
- 分辨率、缩放类型和渲染器
- 自定义控制键
- 手势类型、触发器和缩放
- Java 调整
- Java 版本、JVM 参数、内存量及沙盒
- 其他设置
- 版本列表和依赖库检查
- 实验性的补丁
- 这里的内容是不受支持的。
- 启用持续性能模式
- 通过限制峰值性能来限制过热降频
- 强制启用 vsync
- 通过限制峰值性能来限制过热降频
- 强制使用英文
- 允许您按开发者的原意看到原始字符串。此操作需要重启
- 编辑自定义控制按键
- 调整控制方案以适应您的需求
- 陀螺仪控制
- 虚拟鼠标
- 反转 X 轴
- 反转 Y 轴
- 反转水平轴
- 反转垂直轴
- 返回到上一个屏幕
- 不缩小纹理
- 将所有纹理除以 2
- 将大纹理除以 2 或 4
- 未命名
- 最新快照
- 最新正式版
- 编辑配置
- 名称
- 版本
- 删除
- Java 环境
- 渲染器
- Cosmetica 披风
- 启用来自 Cosmetica(原 Arc )的披风。欲了解更多信息,请访问 https://arcapes.com。需要 OptiFine。
- %s 版本设置
- 常规
- Pojav 前台服务
- 该服务用于执行耗时时间长的任务
- 已安装
- (使用全局默认值)
- 默认控件布局
- %d 项任务正在进行中
- 终止
- 游戏正在进行!
- 新建
- 插入文件夹名称
- 登录完成
- 添加账户
- 任务正在执行中,请稍候
- 没有已保存的账户
- 正在下载版本列表……
- 下载 Minecraft 失败!这可能是由于网络连接不良、文件放置错误等。
- 未知的 Xbox Live API 错误 %d
- 您似乎没有 Xbox Live 账户。请在 https://minecraft.net/上登录一次,然后重试。
- 需要成人验证您的账户。
- 您的账户是儿童账户,需要添加到家庭中方能登录。
- 这个账户似乎没有 Minecraft 配置文件。如果您有 Xbox Game Pass,请登录 https://minecraft.net/ 并进行设置。
- Xbox Live 在您所在的国家/地区不可用。
- 启用陀螺仪控制
- 启用此功能将允许您通过转动手机来在游戏中转动视角
- 陀螺仪控制灵敏度
- 调整陀螺仪控制的灵敏度
- 需要先启用陀螺仪控制才能使用!
- 陀螺仪采样率
- 如果您在陀螺仪控制上遇到性能问题,请增加此值
- 您的操作过于频繁,请稍后再试
- PojavLauncher 需要连接外部存储。请重新连接存储并重新启动应用程序。
- 在按钮标签中仅使用大写字母
- 如果您想在控件中使用小写字母,请禁用此功能
- 创建新配置
-
diff --git a/app_pojavlauncher/src/main/res/values-zh-rTW/strings.xml b/app_pojavlauncher/src/main/res/values-zh-rTW/strings.xml
deleted file mode 100644
index 2d4728896..000000000
--- a/app_pojavlauncher/src/main/res/values-zh-rTW/strings.xml
+++ /dev/null
@@ -1,298 +0,0 @@
-
-
-
- PojavLauncher(適用於 Android 的《Minecraft:Java版》)
- PojavLauncher
- 在您的設備上啟動《Minecraft:Java版》!
-
-
-
- 電子郵箱或用戶名
- 密碼
- 保持登入狀態
- 登入
- 無效的用戶名。用戶名必須在3-16個字節的範圍內,只能包含A-Z、a-z、0-9和下劃線。
- 用戶名已存在
- 微軟帳號登入
- 選擇帳號
- 找不到帳戶!
- 尚未儲存任何帳戶。\n使用“保持登入狀態”選項即可在初次登入後儲存帳戶。
-
- "點擊上方齒輪符號開啟選單⚙\n點擊以編輯控制鍵大小、按鍵定義、名稱、顏色,或者刪除。"
-
- 將移除此帳號!
-
- 安裝 Java 運行環境 %s (.tar.xz)
- 選擇 Mod 安裝器
-
- PojavLauncher 意外崩潰
- 無版本!
- 顯示細節
- 隱藏細節
-
- 需要儲存寫入權限!
- 安裝成功
- Java 運行庫解除安裝成功
-
-
- 開發控制台
- 崩潰日誌
-
- 已連接
- 本地
-
- Minecraft %s 就緒
- 正在清理快取
- 正在下載 %s
- "下載中 %s (%.2f MB / %.2f MB)"
- 正在準備下載資源
- 使用本地帳號時,是無法合法的安裝 [Minecraft: Java Edition] 的。請登入Microsoft帳號以繼續。
- 選項
- 啟動 Mod 安裝器(例如 Forge, LabyMod, Fabric...)
- 以自訂引數啟動 Mod 安裝器
- 自訂控制鍵
- 設定
- 關於
- 使用SurfaceView渲染
- 在吃重GPU的情況可能會有幫助
- 解除安裝 Java 運行環境
- 重新安裝Java運行環境 [需要重新啟動啟動器]
- 以自由窗口模式啟動 Minecraft
- 在浮動視窗中啟動 Minecraft。需要 Android 7.0+。
- 隱藏側邊欄
- 提供更接近全螢幕的體驗。可能會有玩家懷念v1舊版啟動器介面。
- 忽略瀏海螢幕
- 忽略瀏海螢幕並延伸畫面。\n給您更完整的沉浸感。
- 解析度縮放
- 允許降低遊戲畫面解析度。原生解析度為 100%
- 長按觸發時長
- 修改長按摧毀方塊、丟棄物品的觸發時長。
- 將返回鍵視爲滑鼠右鍵
- 某些設備將外置滑鼠右鍵作爲返回鍵處理。如果您使用外置滑鼠,您應該啓用此功能。
- 扁平化風格按鍵
- 啟用此選項可以使按鍵風格扁平化
- 控制鍵縮放
- 若按鍵太小,將其放大。
- 滑鼠縮放
- 更改虛擬滑鼠的大小。
- JVM 啟動引數
- 注意,非專業人士修改此值可能導致遊戲崩潰。
- 一般設定
- 縮放設定
- 渲染器
- Holy GL4ES - (全版本, 快)
- virglrenderer - (正式版 1.7+, 慢)
- vgpu - (正式版 1.16.5以下<但Mali gpu可以執行1.17+>, 快)
- zink - (old_beta b1.8+, 慢)
- ANGLE - (正式版 1.17+, 中)
- 將在版本列表中顯示的版本型別
- 正式版
- 快照
- 遠古alpha版
- 遠古beta版
- .jar安裝限制器
- 安裝.jar時開啟安全模式並限制其可以訪問的資料夾
- 複製
-
- 修改
- 錯誤
- 警告
- 載入
- 名稱
- 移除
- 複製
- 重啟
- 儲存
- 正在解壓縮套件 %s
- 此欄位為必填
- 等待中
- 選擇
-
- 程式/遊戲以代碼 %d 退出,詳情請查看latestlog.txt。
- 退出
- 確定強制關閉?
- 未安裝LWJGL3!
- 該設備不支援 Vulkan Zink 渲染器!
-
- GUI
- 鍵盤
- 聊天
- 除錯
- 左
- 右
- 背包
- 視角
- Tab
- 滑鼠
- 滑鼠:關
- 滑鼠:開
-
- 強制關閉
- 日誌輸出
- 輸入除錯
- 傳送自訂鍵碼
- 放大
- 縮小
-
- 導入控制鍵
- 無效或損毀的的檔案
- 導入控制鍵
- 正在效驗檔案,請稍候再試...
- 無效的檔案名或檔案已經存在
- 導入完成
-
- 編輯 %s
- 移除 %s ?
- 鍵碼
- 可切換
- 大小
- 寬度
- 高度
- 對映
- 方向
- 背景顏色
- 圓角半徑
- 邊框粗細
- 邊框顏色
- 動態位置
- 動態 X 軸
- 動態 Y 軸
- 背景透明度
- 按鍵不透明度
- 按鍵組合
- Alt
- Ctrl
- Shift
- 添加按鈕
- 添加組合框
- 添加子按鈕
- 子按鈕 n°%d 已添加 !
- 選擇預設.json 控制鍵位
- 導出控制鍵
- 分享log
- 安裝 .jar
- 選項
- 啟動遊戲
- 歡迎, %s
- 資訊(開發)
- 切換用戶
- 版本:
- 未偵測到崩潰。
- 無日誌。
- 新聞獲取失敗!
- 啟用 RAM 自動調節
- 自動調節RAM
- 記憶體已設爲 %d MB
- 在下載後檢查執行庫
- 此選項會強制啟動器在下載後檢查執行庫的雜湊值,避免下載錯誤。
- 執行庫 %s 損毀,將重新下載
- 無法檢查執行庫 %s 的狀態,默認為狀況良好。
- 執行庫 %s 正常
- 停用手勢
- 停用手勢,例如長按破壞方塊和點擊放置方塊。
- 滑鼠速度
- 更改虛擬滑鼠的速度
- 滑鼠透傳
- 可滑動
- 圓角
- 目前可用RAM (%d) 低於分配的RAM (%d),遊戲可能會崩潰。 如果遊戲崩潰請增加記憶體的分配量。
- 分配記憶體
- 分配多少記憶體給Minecraft
- Java運行環境毀損
- %s 與您的硬體架構不相容
- Java VM
- 新建
- 導入新的 Java VM
- 運行庫管理器
- 管理已安裝的 Java VM
- 正在快取……
- 設為預設
- 預設
- 您必須至少安裝一個Java運行庫
- 無可用Java運行庫。此版本需要Java %d 以上。
- 找不到已安裝的Java 8。請安裝Java 8以使用此功能。
- Minecraft 21w10a+ 需要 OpenGL 3.2 。 遺憾的是,GL4ES 渲染器目前並不支援,但是您可以安裝一些額外的補釘來運行這些版本。 按 確認鍵 確認安裝,按 取消鍵 中止啟動。
- 仍然開始遊戲
- 遊戲資料夾
- JVM 參數
- Per-version 設定
- 儲存位置已變更
- Pojav的新資料夾位於Android/data/%s/files/ (可用檔案瀏覽器存取) 如果有需要移動先前的遊戲檔案,請手動從/games/PojavLauncher將資料複製到新的位置。]]>
- 控制鍵偏移
- 頂端偏移:
- 右偏移:
- 底部偏移:
- 左偏移:
- 控制鍵偏移
- 自訂控制鍵與螢幕兩邊的偏移。
- 啟動時開啟虛擬滑鼠
- 顯示設定
- 解析度縮放和渲染器
- 自定義控制
- 手勢類型、觸發器和縮放
- Java 選項
- Java版本、JVM args、記憶體用量和限制器
- 其他設定
- 檢查版本和執行庫
- 實驗性選項
- 使用這些選項請三思,後果自負。
- 啟用性能限制模式
- 限制峰值效能以減少過熱的發生
- 限制峰值效能以減少過熱的發生
- 強制使用英文
- \"Allows you to see original strings, as intended by developers.\" 需要重啟
- 自訂控制鍵
- 依個人習慣調整控制鍵
- 虛擬滑鼠
- 返回上一個頁面
- 不縮放貼圖
- 將所有貼圖大小除以 2
- 將較大的貼圖大小除以 2 或 4
- 未命名
- 最新快照
- 最新版本
- 編輯安裝檔
- 名稱
- 版本
- 刪除
- Java運行環境
- 渲染器
- Cosmetica披風
- 透過Cosmetica(前身為Arc)啟用披風。需要Optifine。更多資訊請至https://cosmetica.cc。
- %s 版本設定
- 一般設定
- Pojav前景服務
- 下載檔案&耗時較久的活動將由此服務接手
- 已安裝
- (使用全域預設控制鍵)
- 預設控制鍵
- %d 程序執行中
- 終止
- 遊戲運行中!
- 新增
- 請輸入資料夾名稱
- 登入完畢
- 新增帳號
- 程序執行中,請稍等
- 無已儲存帳號
- 正在下載版本列表...
- Minecraft下載失敗! 可能導致失敗的原因有: 不穩定的網路連線、位置不正確的檔案......等
- 未知的Xbox Live API錯誤 %d
- 您似乎沒有Xbox Live帳號。請先登入https://minecraft.net/後再試一次。
- 您的帳號需要被家長驗證(南韓限定)
- 因為您的Xbox帳號未成年,若要登入,請將該帳號加入一個microsoft家庭
- 這個Xbox Live帳號似乎沒有[Minecraft:Java Edition]的設定檔。如果您仍有Xbox Game Pass訂閱,請至https://minecraft.net/登入並架設您的設定檔。
- Xbox Live服務在您所在的國家無法使用
- 啟用陀螺儀控制
- 啟用此選項後,您可以透過傾斜手機來改變遊戲內視角
- 陀螺儀控制靈敏度
- 調整陀螺儀控制的靈敏度
- 要使用此功能,請先啟用陀螺儀控制
- 陀螺儀採樣率
- 如果您在使用陀螺儀控制時遇到問題,可以嘗試增加這個數值
-
diff --git a/app_pojavlauncher/src/main/res/values/strings.xml b/app_pojavlauncher/src/main/res/values/strings.xml
index 9f571caf3..2d705bfc5 100644
--- a/app_pojavlauncher/src/main/res/values/strings.xml
+++ b/app_pojavlauncher/src/main/res/values/strings.xml
@@ -1,9 +1,9 @@
- PojavLauncher (Minecraft: Java Edition for Android)
- PojavLauncher
- Launch Minecraft: Java Edition in your device!
+ 2009Scape
+ 20009Scape
+ Launch 2009Scape on your device!
diff --git a/app_pojavlauncher/src/main/res/xml/pref_main.xml b/app_pojavlauncher/src/main/res/xml/pref_main.xml
index 21dc9bd11..022e9d723 100644
--- a/app_pojavlauncher/src/main/res/xml/pref_main.xml
+++ b/app_pojavlauncher/src/main/res/xml/pref_main.xml
@@ -54,14 +54,5 @@
/>
-
-
-
-
-
\ No newline at end of file