Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Problem z wystartowaniem taska


Blazeowsky

Rekomendowane odpowiedzi

Opublikowano

Mam problem z wystartowaniem Taska, po prostu nie odpala się.

Kod z Main

	public void onEnable(){
		instance = this;
		Tasks.register();
	}
	public static Main getInst(){
		return instance;
	}

Kod z Tasks.class:

	public static void register(){
		Bukkit.getScheduler().scheduleAsyncRepeatingTask(Main.getInst(), new AutoMessage(), 20L, Main.getCfg().getLong("automessage.delay") * 20);
	}

Kod z AutoMessage.class

public class AutoMessage implements Runnable{

	@Override
	public void run() {
		String[] list = (String[]) Main.getCfg().getStringList("automessage.messages").toArray();
		for (Player p : Bukkit.getOnlinePlayers()){
			p.sendMessage(ColorUtil.fixColors(Main.getCfg().getString("automessage.prefix") + list[Variables.msg]));
			Variables.msg = Variables.msg + 1;
			if (Variables.msg == list.length + 1){
				Variables.msg = 0;
			}
		}
	}

Posty: 10, 50, 100, 150, 200, 300, 500, 750, 1000+

Opublikowano

od razu zaznaczam że nie widzę czemu nie działa , ale czepie się czego innego

do tworzenia task'ow korzystaj z klasy bukkitRunnable wygodniejsze i łatwiejsze wykorzystanie

 

        String[] list = (String[]) Main.getCfg().getStringList("automessage.messages").toArray(); 

Variables.msg to jakiś int tak więc , nie ma to sensu jeśli (przed pętlą z graczami ma wartość = 0), oraz jest przechowywany w osobnej klasie jako pole public no chyba ze ma to jakis wyższy cel , interfejs List posiada metodę get(int i) który jest identyczny do array

 

            p.sendMessage(ColorUtil.fixColors(Main.getCfg().getString("automessage.prefix") + list[Variables.msg]));

zakładam że prefix jest dołączany do każdej wiadomości , oraz każda wiadomość posiada kolorki, tak więc możesz przy wczytaniu config od razu wszystko połączyć i zapisać już jako gotowy ciąg znaków

 

jeśli nikt ci nie pomoże to pozostaje jedynie debug

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...