Skocz do zawartości

LeviBoyPL

Użytkownik
  • Liczba zawartości

    512
  • Rejestracja

  • Ostatnia wizyta

1 obserwujący

O LeviBoyPL

  • Tytuł
    Wyjadacz III
  • Urodziny 02.05.1999 (22.040944486 lat)

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Aether
  • Nick w MC
    LeviPlayGames

Ostatnie wizyty

2 265 wyświetleń profilu
  1. https://papermc.io/forums/t/restart-reconnect-bungeecord-reconnect-1-16-5/5063
  2. PlayerLoginEvent zwraca obiekt playera, ale jako że samo ładowanie gracza na serwer nie skończyło się to nie ma on wszystkich pól. Rozwiązania są co najmniej dwa. Możesz skorzystać z innego eventy - PlayerJoinEvent, wtedy gracz wszedł na serwer i pomyślnie przeszedł autoryzację. Druga opcja to zamiast pobierać IP z playera możesz pobrać adres z eventu.
  3. @EventHandler i implementujesz Listenera
  4. LeviBoyPL

    Problem z plugin.yml

    Nazwy klas definiujemy zawsze z dużej litery
  5. File myObj = new File(nickGracza + ".txt"); if (myObj.createNewFile()) { System.out.println("File created: " + myObj.getName()); } else { System.out.println("File already exists."); } Jako że działasz na plikach to powyższe metody mogą spowodować IOException, dlatego musisz użyć try catch'a. Więcej możesz przeczytać na https://www.w3schools.com/java/java_files_create.asp
  6. LeviBoyPL

    Odliczanie

    Szczerze po przeczytaniu tego kodu jestem w stanie wysłać Ci jedynie poradnik do absolutnych podstaw javy, nawet nie wiem dlaczego te przyczyny są Ci "niewiadome" https://www.codecademy.com/learn/learn-java
  7. Pokaż kod w obu klasach
  8. Nie ma takiego, ale możesz sprawdzić czy target jest nullem i jeśli jest to anulować task
  9. @EventHandler public void onEntityTargetEvent(EntityTargetEvent event) { if(!(event.getEntity() instanceof Zombie)) return; Zombie zombie = (Zombie) event.getEntity(); new TargetEventZombieRunnable(zombie).runTaskTimer(main, 1, 15); } Lepiej było by zrobić sobie nową klasę z kodem taska, wtedy kod będzie wyglądał schludniej i wygodniej będzie dodawać kolejne rzeczy do listenera, wyżej tworzysz sobie nową klasę, która rozszerza BukkitRunnable i od razu uruchamiasz task. public class TargetEventZombieRunnable extends BukkitRunnable { private fi
  10. Co tak właściwie chcesz zrobić? Bo z tego kodu ciężko jest się domyślić
  11. Po pierwsze - rozdzieliłbym Listenery od klasy main, po drugie po co określasz sobie zmienną typu player, żeby chwilę później znów getować go z eventu, po trzecie nazwę klasy zawsze zaczynamy z dużej litery. Player p = e.getPlayer(); e.getPlayer().getGameMode(); Mogłeś po prostu użyć tej zmiennej p.getGameMode(); Co do problemu - możesz użyć konstruktora w klasie Command (swoją drogą polecam inną nazwę, bo istnieje już intefejs Command i może się mylić) public class TestCommand implements CommandExecutor{ private Main main; public TestCommand(Main main) { this.main = ma
  12. LeviBoyPL

    Entity react

    https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/entity/EntityTargetEvent.html
  13. Jaki silnik i jaka wersja?
  14. @EventHandler public void onDeath(EntityDeathEvent event) { Entity entity = event.getEntity(); Player player = event.getEntity().getKiller(); if(player != null) { if(entity.getCustomName() != null && entity.getCustomName().equals(ChatColor.RED + "Zgnilek")) { player.getInventory().addItem(new ItemStack(Material.DIAMOND, 1)); } } }
  15. Sprawdź w kodzie w takim razie, być może autor przewidział taki wypadek i stworzył odpowiednie eventy i przygotował jakieś API, bo nie ma eventu, który wywołuje się podczas postawienia bloku przez plugin. Myślę, że nie ma też w miarę optymalnego sposobu na sprawdzanie tych rzeczy, bo podejrzewam, że musiałbyś loopować kilkaset tysięcy bloków. Dlatego o wiele wygodniej i lepiej byłoby sprawdzenie właśnie w kodzie tego dużego projektu.
×
×
  • Dodaj nową pozycję...