Skocz do zawartości
  • 0

Problem z odpaleniem clienta


Pytanie

Witam, tworzę launcher dla serwera używając mcp.

Kod z launchera - przycisk wykonujący akcję:
 

public void actionPerformed(ActionEvent e) {
		if (e.getSource() == play) {
			if (nickInput.getText() != "") {
				Legendary.nickname = nickInput.getText();
				Legendary.StartClient();
				Start.main(null);
			}
		}
	}

String nicku z klasy Legendary:
 

	public static String nickname;

Główna klasa odpalająca launcher:
 

public class Launcher {

	public static void main(String args[]) {
		Main m = new Main();
		m.setVisible(true);
	}
}

No i klasa Start uruchamiająca okno minecrafta:
 

public class Start
{
    public static void main(String[] args)
    {
        Main.main(concat(new String[] {"--version", "mcp", "--accessToken", "0", "--assetsDir", "assets", "--assetIndex", "1.8", "--userProperties", "{}"}, args));
    }

    public static <T> T[] concat(T[] first, T[] second)
    {
        T[] result = Arrays.copyOf(first, first.length + second.length);
        System.arraycopy(second, 0, result, first.length, second.length);
        return result;
    }
}

void StartClient():
 

public static void StartClient()
	{
		Display.setTitle(Client_Name + " " + "V" + Client_Version + " " + Client_Status);
	}

Zapis błędu:
 

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at me.launcher.Start.concat(Start.java:17)
	at me.launcher.Start.main(Start.java:12)
	at me.launcher.Main.actionPerformed(Main.java:90)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Oczywiście gdy ustawię manualnie string nickname w klasie Legendary (kod poniżej) i uruchomię bezpośrednio klasę Start, minecraft się odpala, lecz gdy go uruchomię poprzez klasę Launcher, odpala się launcher, wpisuje nick i wywala właśnie tego errora powyżej.
Kod ustawionego stringu nickname:
 

public static String nickname = "Oedeopol";

Proszę o pomoc :)

Edytowane przez Oedeopol
Odnośnik do komentarza
https://skript.pl/temat/29021-problem-z-odpaleniem-clienta/
Udostępnij na innych stronach

3 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Tworzysz launcher posiadając jakieś tam małe umiejętności... 

Tak się nie sprawdza Stringów:

if(nickInput.getText() != "")

tylko:

if(nickInput.equals(""))

Czemu wszystko robisz statycznie? Zrób jakiś obiekt, a w innych klasach instancje i w nim przetrzymuj, np. nickgracza, uruchamianie Launchera - chodzi o klase Legendary.

Odnośnik do komentarza
https://skript.pl/temat/29021-problem-z-odpaleniem-clienta/#findComment-191609
Udostępnij na innych stronach

  • 0

^ = (

21 godzin temu, Oedeopol napisał:

Witam, tworzę launcher dla serwera używając mcp.

Kod z launchera - przycisk wykonujący akcję:
 


public void actionPerformed(ActionEvent e) {
		if (e.getSource() == play) {
			if (nickInput.getText() != "") {
				Legendary.nickname = nickInput.getText();
				Legendary.StartClient();
				Start.main(null);
			}
		}
	}

String nicku z klasy Legendary:
 


	public static String nickname;

Główna klasa odpalająca launcher:
 


public class Launcher {

	public static void main(String args[]) {
		Main m = new Main();
		m.setVisible(true);
	}
}

No i klasa Start uruchamiająca okno minecrafta:
 


public class Start
{
    public static void main(String[] args)
    {
        Main.main(concat(new String[] {"--version", "mcp", "--accessToken", "0", "--assetsDir", "assets", "--assetIndex", "1.8", "--userProperties", "{}"}, args));
    }

    public static <T> T[] concat(T[] first, T[] second)
    {
        T[] result = Arrays.copyOf(first, first.length + second.length);
        System.arraycopy(second, 0, result, first.length, second.length);
        return result;
    }
}

void StartClient():
 


public static void StartClient()
	{
		Display.setTitle(Client_Name + " " + "V" + Client_Version + " " + Client_Status);
	}

Zapis błędu:
 


Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at me.launcher.Start.concat(Start.java:17)
	at me.launcher.Start.main(Start.java:12)
	at me.launcher.Main.actionPerformed(Main.java:90)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Oczywiście gdy ustawię manualnie string nickname w klasie Legendary (kod poniżej) i uruchomię bezpośrednio klasę Start, minecraft się odpala, lecz gdy go uruchomię poprzez klasę Launcher, odpala się launcher, wpisuje nick i wywala właśnie tego errora powyżej.
Kod ustawionego stringu nickname:
 


public static String nickname = "Oedeopol";

Proszę o pomoc :)

wywala nulla bo dajesz nulla w parametrach = (
 

				Start.main(null);
Edytowane przez yooniks
Odnośnik do komentarza
https://skript.pl/temat/29021-problem-z-odpaleniem-clienta/#findComment-191640
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...