Skocz do zawartości
  • 0

Ustawianie bloku na danej lokalizacji.


Pytanie

No hej, kod:
 

List<Material> drops = DropUtil.getDropsByChance(chance);
if(drops != null || drops.size() == 0) {
	int amount = drops.size();
  	Material rolled = amount == 1 ? drops.get(0) : drops.get(random.nextInt(drops.size() -1));
	event.getBlock().setType(rolled);
	event.getPlayer().sendMessage(ColorUtil.fixColor("&ePojawila sie ruda " + rolled.toString().replace("MATERIAL_", "").replace("DIAMOND_ORE", "diamentu").replace("EMERALD_ORE", "szmaragdu").replace("GOLD_ORE", "zlota").replace("IRON_ORE", "zelaza").replace("REDSTONE_ORE", "czerwonego proszku").replace("LAPIS_ORE", "lazurytu").replace("COAL_ORE", "wegla") + ", wykop ja!"));
}

Więc tak, chodzi o to, że poprawna wiadomość jest wysyłana, debugger, pokazywał poprawne dane, ale ustawianie bloku zmienną 'rolled' nie działa. Próbowałem już metodą taką, ale też nie działa.

event.getBlock().getWorld().getBlockAt(event.getBlock().getLocation().setType(rolled));

 

Edytowane przez KrejzolekPRO
Odnośnik do komentarza
https://skript.pl/temat/27359-ustawianie-bloku-na-danej-lokalizacji/
Udostępnij na innych stronach

7 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
List<Material> drops = DropUtil.getDropsByChance(chance);
if(drops != null || drops.size() == 0) {
	int amount = drops.size();
  	Material rolled = amount == 1 ? drops.get(0) : drops.get(random.nextInt(drops.size() -1));

drops.size() moze zwraca 0? Sprawdzaj czy material rolled nie jest nullem, i zamiast event.getBlock().setType, uzywaj World#getBlockAt(coords x,y,z - int).setType, do tego rob inaczej replace, zrób sobie jakas mapke z aliasami czy cos, typu <Material, String> i po prostu wyszukuj z mapki

 

No i daj caly kod bo po takim urywku to troche malo

wrocilem z biegania, jestem zmeczony i spiacy, wiec moge sie troche mylic
 

@edit

no i to nie ma troche sensu

Cytat

event.getBlock().getWorld().getBlockAt(event.getBlock().getLocation().setType(rolled));

 

Edytowane przez yooniks
Odnośnik do komentarza
https://skript.pl/temat/27359-ustawianie-bloku-na-danej-lokalizacji/#findComment-180683
Udostępnij na innych stronach

  • 0
41 minut temu, yooniks napisał:

List<Material> drops = DropUtil.getDropsByChance(chance);
if(drops != null || drops.size() == 0) {
	int amount = drops.size();
  	Material rolled = amount == 1 ? drops.get(0) : drops.get(random.nextInt(drops.size() -1));

drops.size() moze zwraca 0? Sprawdzaj czy material rolled nie jest nullem, i zamiast event.getBlock().setType, uzywaj World#getBlockAt(coords x,y,z - int).setType, do tego rob inaczej replace, zrób sobie jakas mapke z aliasami czy cos, typu <Material, String> i po prostu wyszukuj z mapki

 

No i daj caly kod bo po takim urywku to troche malo

wrocilem z biegania, jestem zmeczony i spiacy, wiec moge sie troche mylic
 

@edit

no i to nie ma troche sensu

 

nie ma sensu, bo się nawiasy pomyliły xD rolled nie jest nullem, bo debugger, który był wcześniej mi to pokazał ;)

Tu jest bład i powinno być !=

if(drops != null || drops.size() == 0)

I obie metody nie ustawiają bloku :/

Odnośnik do komentarza
https://skript.pl/temat/27359-ustawianie-bloku-na-danej-lokalizacji/#findComment-180700
Udostępnij na innych stronach

  • 0
11 godzin temu, KrejzolekPRO napisał:

nie ma sensu, bo się nawiasy pomyliły xD rolled nie jest nullem, bo debugger, który był wcześniej mi to pokazał ;)

Tu jest bład i powinno być !=


if(drops != null || drops.size() == 0)

I obie metody nie ustawiają bloku :/

Pokaz czym jest event.getBlock (daj więcej kodu) 

I sprawdz czy nie jest on nullem

 

Odnośnik do komentarza
https://skript.pl/temat/27359-ustawianie-bloku-na-danej-lokalizacji/#findComment-180714
Udostępnij na innych stronach

  • 0
2 godziny temu, LloydPL napisał:

spróbuj zamiast zmiennej dać np. Material.GLASS żeby sprawdzić czy wgl coś postawi

Wróciłem z domu i zrobiłem tak, ale też nie działa :/ Dobra, spróbuje zmienić silnik na nowszą wersje

Odnośnik do komentarza
https://skript.pl/temat/27359-ustawianie-bloku-na-danej-lokalizacji/#findComment-180755
Udostępnij na innych stronach

  • 0
26 minut temu, KrejzolekPRO napisał:

Wróciłem z domu i zrobiłem tak, ale też nie działa :/ Dobra, spróbuje zmienić silnik na nowszą wersje

sprobuj przed ustawieniem bloku zcancelowac event, czyli

event.setCancelled(true);
event.getBlock().setType(Material.GLASS);

 

Edytowane przez yooniks
Odnośnik do komentarza
https://skript.pl/temat/27359-ustawianie-bloku-na-danej-lokalizacji/#findComment-180761
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ę...