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

Pytanie dotyczące zmiennej dla trzech klas do innej klasy.


NexTowsky

Rekomendowane odpowiedzi

Opublikowano

@NextTowsky

 

taka prosta litania jesli chcesz uzyskać szybko i sprawnie pomoc

1. podaj logi z konsoli ...

2. podaj kod jaki masz w plugin.yml 

2. podaj CaLy Kod tego co robisz tzn kod klasy z executor'em oraz ewentualnie z listener'em

3. gdy wpisaujesz w konsole wyala jakieś bledy jak tak podaj logi .

4. debuguj kod 

 

w zasadzie napisałem wszystko o to co inni prosili , gdybys to podał mozna było by zrobić coś więcej niż wróżyć z fusów .

puki co z wróżenia pozostaje mi tylko to: a komenda nie jest poprawnie  zarejestrowana lub dodana do plugin.yml , lub wykonuje się bez "wejscia" w instrukcje czyli sprawdza ify i za każdym razem pomija klamerki co skutkuje return false; <-

 

a co do pytanie w watku tematu :

jak zmienna public static boolean onoff;

 

możesz za każdym razem odwoływać się do tego pola    [nazwa_Klasy].onoff   <- i to jest taki wskaźnik na statyczne pole onoff lub import static [ścieżka]  co może być wygodniejsze 

inna opcja to zamiana boolean na klase Osłonową i wtedy wystarczy działać jak z obiektem tzn w twoim listener tworzysz pole private fianl Boolean onoff który inicjalizujesz obiektem osłonowym 

 

@bartzz

No przecież wiem...  xD

Takie podstawy to umiem.

Pisze, że nie ma takiej komendy.

dobrze że umiesz takie podstawy ale jeszcze wypada pouczyć się samej Javy 

­

Opublikowano

@matixd3

@bartzz

Wykrywa komende, lecz nie blokuje tnt, coś ze zmiennymi podsyłam:

public void onBlockPlace(BlockPlaceEvent e){
		Player player = e.getPlayer();
		Block block = e.getBlock();
		if(block.getType().equals(Material.TNT)){
			if(Komendy.onoff=true);				
				e.setCancelled(true);
			}
		else
				player.sendMessage("hej");
			}
	
	}

listenery:

if(args[0].equalsIgnoreCase("on")){
				onoff=true;
				sender.sendMessage(ChatColor.RED + "Poprawnie wlaczyles TNT");
				return true;
				
				
			}
			if(args[0].equalsIgnoreCase("off")){
				onoff=false;
				sender.sendMessage(ChatColor.RED + "Poprawnie wylaczyles TNT");
				return true;
Opublikowano

 

@matixd3

@bartzz

Wykrywa komende, lecz nie blokuje tnt, coś ze zmiennymi podsyłam:

public void onBlockPlace(BlockPlaceEvent e){
		Player player = e.getPlayer();
		Block block = e.getBlock();
		if(block.getType().equals(Material.TNT)){
			if(Komendy.onoff=true);				
				e.setCancelled(true);
			}
		else
				player.sendMessage("hej");
			}
	
	}

listenery:

if(args[0].equalsIgnoreCase("on")){
				onoff=true;
				sender.sendMessage(ChatColor.RED + "Poprawnie wlaczyles TNT");
				return true;
				
				
			}
			if(args[0].equalsIgnoreCase("off")){
				onoff=false;
				sender.sendMessage(ChatColor.RED + "Poprawnie wylaczyles TNT");
				return true;

 

1. Dodałeś @EventHandler nad eventem?

2. Nie musisz sprawdzać, czy jest true, jest to bez sensu, wystarczy:

 

if (boolean) {
  // zwraca true
else if (!boolean) {
  // zwraca false

3. Przy sprawdzaniu argumentów dodaj if, else if, else if, else.

4. Nie returnuj komend..

5. Poucz się Javy.

6. Patrz punkt 5

7. Działaj na obiektach, a jeśli już masz tę jedną zmienną, to daj ją do klasy głównej, w onEnable przypisuj jej wartość, a poprzez gettery i settery manipuluj ją

 

Ogółem ciężko rozszyfrować co jest nie tak, jeżeli dajesz nam 4 linijki kodu.

Opublikowano

@bartzz

Bo zrobiłem

if(Komendy.onoff=true);       

zamiast;

if(Komendy.onoff=true){

 

 

XDD

 

A teraz jest problem bo mam

	@EventHandler
	public void onBlockPlace(BlockPlaceEvent event){
		Player player = event.getPlayer();
		Block block = event.getBlock();
		if(block.getType().equals(Material.TNT)){
			if(!Komendy.onoff){
				event.setCancelled(true);
				player.sendMessage(ChatColor.RED + "TNT wylaczone");
			}
			}
	}
}

I nie canceluje EVENTU nie wyswietla wiadomosci

Opublikowano

@bartzz

Bo zrobiłem

if(Komendy.onoff=true);       

zamiast;

if(Komendy.onoff=true){

 

 

XDD

 

A teraz jest problem bo mam

	@EventHandler
	public void onBlockPlace(BlockPlaceEvent event){
		Player player = event.getPlayer();
		Block block = event.getBlock();
		if(block.getType().equals(Material.TNT)){
			if(!Komendy.onoff){
				event.setCancelled(true);
				player.sendMessage(ChatColor.RED + "TNT wylaczone");
			}
			}
	}
}

I nie canceluje EVENTU nie wyswietla wiadomosci

Daj co każdy if do konsoli printa, i zobacz na którym się zatrzyma

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...