Skocz do zawartości
  • 0

Problem z loopem ;/


Januszeł

Pytanie

Witam, mam kolejne pytanko jak zrobić loopa danych w configu, najkrócej jak sie da.

(Zrobilem takie cos ale szkoda gadac ...)

Spoiler

	@EventHandler
	public void onCommand(PlayerCommandPreprocessEvent event) {
		for(String key : getConfig().getStringList("").getKeys(false)){
			if (event.getMessage().equals("/" + key)) {
				event.setCancelled(true);
				for (String s : key) {
					sender.sendMessage(s);
				}
			}
		}
	}

 

A config taki:

Spoiler

pomoc:
	- "a"
	- "b"
	- "c"
vip:
	- "1"
	- "2"
	- "3"

 

Ma ktoś może pomysł jak to zrobić? :)

Edytowane przez Januszeł
Odnośnik do komentarza
https://skript.pl/temat/19757-problem-z-loopem/
Udostępnij na innych stronach

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

zrób te wiadomości jako normlane stringi

pomoc: |2-
  Linia 1
  linia 2
  linia 3
vip: |2-
  Linia 1....

wtedy w komendzie możesz po prostu pobierać cfg.getString(command) i sprawdzać czy string jest nullem czy nie

(tylko nie rób tak jak masz w tym pliku jakieś inne dane, lub przenieś to do osobnej sekcji konfiguracji, tak by przypadkiem ktoś ci nie robił "/mysql.password" ( ͡° ͜ʖ ͡°)

Odnośnik do komentarza
https://skript.pl/temat/19757-problem-z-loopem/#findComment-134210
Udostępnij na innych stronach

  • 0
26 minut temu, GotoFinal napisał:

zrób te wiadomości jako normlane stringi


pomoc: |2-
  Linia 1
  linia 2
  linia 3
vip: |2-
  Linia 1....

wtedy w komendzie możesz po prostu pobierać cfg.getString(command) i sprawdzać czy string jest nullem czy nie

(tylko nie rób tak jak masz w tym pliku jakieś inne dane, lub przenieś to do osobnej sekcji konfiguracji, tak by przypadkiem ktoś ci nie robił "/mysql.password" ( ͡° ͜ʖ ͡°)

Albo ja nie rozumiem tego ,,getString(command)''  albo ty mnie nie rozumiesz. Mi chodzi nie o definiowanie każdej komendy tylko zrobić to w 1 loopie i żeby to pobierało wszystkie takie komendy.

Odnośnik do komentarza
https://skript.pl/temat/19757-problem-z-loopem/#findComment-134214
Udostępnij na innych stronach

  • 0

no ale nie potrzebujesz żadnego loopa wtedy

    @EventHandler
    public void onCommand(PlayerCommandPreprocessEvent event) {
        if (!event.getMessage().startsWith("/")) return;
        String msg = getConfig().getString(event.getMessage().substring(1));
        if (msg == null) return;
        event.setCancelled(true);
        sender.sendMessage(s);
    }

 

 

Ale ogólnie... to powinieneś normalnie rejestrować komendy w plugin.yml ;/ można też od biedy dynamicznie refleksjami dodawać, używanie do tego eventu nie jest zalecane, no ale niestety... bukkit jest jaki jest.

Odnośnik do komentarza
https://skript.pl/temat/19757-problem-z-loopem/#findComment-134220
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ę...