Skocz do zawartości

LeviBoyPL

Użytkownik
  • Ilość zawartości

    718
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    15

Treść opublikowana przez LeviBoyPL

  1. 1. Nie 2. Nie, event zostaje wywołany podczas: - formowania śniegu; - formowania lodu; - formowania cobblestone/obsydianu; - formowania cementu; Dodatkowo użyłeś eventu BlockFromToEvent, który nie ma nic wspólnego z BlockFormEvent. Najlepiej by było gdybyś zrobił to po prostu w tamtym pluginie.
  2. Możesz ustawić sobie taska korzystając z schedulera (https://bukkit.gamepedia.com/Scheduler_Programming).
  3. Nie wygodniej byłoby przechowywać lokacje zamast hashcode tej lokacji? Masz nawet metodę pozwalającą wyciągnąć od razu obiekt lokacji z yamla Co do problemu, System.out.printIn() Twoim przyjacielem, printuj sobie nazwę gracza i to co dostajesz z configu
  4. Odnoszę się do poradnika, użyto tam funkcji createWorld, tylko że jeżeli świat z podaną nazwą już istnieje to nie wygeneruje się nowy tylko wczyta podany w nazwie
  5. Funkcja createWorld wczytuje świat jeżeli podasz nazwę istniejącego świata
  6. Zbuduj mapę i wtedy ją wczytaj? XD
  7. Jeżeli robisz to w tasku to możesz zawsze użyć tasku async, wtedy będziesz wykonywał zadanie na innym wątku, więc serwer nie dostanie laga. Powstanie wtedy jedynie problem taki, że będziesz musiał jakoś sobie zarządzać synchronizacją tych tasków (tzn. zaznaczać sobie, które taski już się skończyły robić). Widzę, że działasz na światach, co chcesz w nich konkretnie zrobić?
  8. Serwer nie odpowiada przez dłużej niż 15 sekund, robisz coś na głównym wątku co jest bardzo obciążające, więc musiałbyś pomyśleć nad innym sposobem wykonania tego zadania
  9. LeviBoyPL

    Receptura

    Jako, że jego klasa Main rozszerza JavaPlugin to może on użyć w tej klasie metody getServer(), która jest zawarta w rozszerzanej klasie. Co do tematu, to zapomniałeś po drodze kilku rzeczy https://www.spigotmc.org/wiki/recipe-example/
  10. LeatherArmorMeta metaItemStackaZbroi = (LeatherArmorMeta) itemStackZbroi.getItemMeta(); metaItemStackaZbroi.setColor(new Color(r, g, b); itemStackZbroi.setItemMeta(metaItemStackaZbroi);
  11. No to da się jak najbardziej, musisz zrobić pętle, na przykład zagnieżdżoną, która co powiedzmy jednego ticka będzie brała sobie następny kolor. for (red = 0; red <= 255; red++) { for (green = 0; green <= 255; green++) { for (blue = 0; blue <= 255; blue++) { // rgb(red, green, blue) } } } Jak sobie wykonasz ten kod i wyprintujesz wyniki na przykład do konsoli to w jednym momencie wyświetli ci każdy możliwy kolor z zakresu rgb.
  12. Kolorów czego? Wełny? Tekstu?
  13. Jeżeli plik Main się nie zmienił to nie zarejestrowałeś listenera to po pierwsze, a po drugie plik plugin.yml nie zna takiego pola jak api, pewnie chodziło Ci o api-version.
  14. Na dłuższą metę będzie to uciążliwe, większość metod jakie stworzy nie będą statyczne, więc nie będzie mógł używać w nich pól statycznych. Zresztą dlaczego w języku OOP (object oriented programming) miałbyś unikać tworzenia... obiektów?
  15. Niezbyt wiem o co Ci chodzi, opisałeś problem bardzo chaotycznie, ale jeżeli chcesz uzyskać dostęp do listy, która jest w innej klasie niż reszta kodu to możesz na przykład stworzyć sobie storage, do którego będziesz wrzucał graczy public class PlayerStorage { private List<Player> players; public List<Player> getPlayers() { return players; } } i wtedy w każdej klasie tworzysz sobie konstruktor, na przykład jeżeli chcesz używać go w listenerze to tworzysz sobie nowy obiekt Storage w main private PlayerStorage playerStorage = new PlayerStorage(); i podajesz obiekt pluginManager.registerEvents(new JoinListener(playerStorage), this);
  16. public void onGuildMemberJoin(GuildMemberJoinEvent event) Z eventu możesz wyciągnąć sobie usera gildie i inne duperele, które pewnie będą Ci potrzebne do handlowania zaproszeń
  17. Znalazłem coś takiego - https://www.spigotmc.org/resources/denizen-torch-light.26855/
  18. W przypadku, kiedy na przykład przestanie działać jakaś funkcja panelu, albo serwer nie będzie się chciał uruchomić (nie mylić z crashem na startupie). Pomoc techniczna może faktycznie zadziałać coś w przypadku kolegi, ale nie musi tego robić, tak jak wspomniałem, dlaczego mieliby pomagać komuś kto wgrał poprzez FTP silnik, który nawet nie musi być przez nich wspierany. Co do tematu, zrób sobie kopię serwera, następnie usuń wszystko co tam masz i uruchom jeszcze raz.
  19. Oczywiście, że nie mają żadnego obowiązku pomocy w obsłudze spigota. To wynika z niewiedzy klienta, ale nie w zakresie działania ich serwisu, a w zakresie działania samego silnika, który nie jest ich autorstwa, więc wsparcie techniczne może co najwyżej zaproponować restart klastera. To jak jakby wynająć sobie hosting WWW i pytać się supportu jak zrobić facebooka, muszą Ci odpowiedzieć, bo jesteś ich klientem, nie? W tym przypadku nie usunął starej mapy prawdopodobnie.
  20. LeviBoyPL

    bledy w konsoli

    public class Main extends JavaPlugin { private static Main plugin; public void onEnable() { plugin = this; } } } tylko musisz sobie zrobić gettera do tego, albo podawać obiekt w konstruktorze
  21. Zależy jak chcesz, żeby to działało, ale jeżeli myślisz o komendzie to tworzysz sobie nową klasę i w niej implementujesz CommandExecutor public class SpawnCommand implements CommandExecutor { Później musisz nadpisać metodę onCommand @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if(ok) { //zwracasz true jeżeli komenda została wykonana pomyślnie return true; } //zwracasz false jak komenda argumenty na przykład były złe //wtedy wysyła się command usage z plugin.yml return false; } Następnie w metodzie onEnable ustawiasz egzekutora komendy na tamtą klasę this.getCommand("spawn").setExecutor(new SpawnCommand()); I dodajesz komendę do plugin.yml commands: spawn: description: Opis komendy usage: to to o czym wspominalem wczesniej Żeby sprawdzić czy gracz ma jeden emerald player.getInventory().contains(Material.EMERALD, ile);
  22. Z timingsów wynika, że ktoś laguje Ci serwer armorstandami, powyższe tipy nie poprawią sytuacji. Zrób sobie zapis mapki i sprawdź w jakimś edytorze ile jest armorstandow na niej. Bardzo możliwe, że te armorstandy pływają na przykład gdzieś w wodzie co jest bardzo uciążliwe dla serwera. Na Twoim miejscu zablokował bym całkowicie armorstandy dla graczy, pożytku z nich mało, a potrafią w dużym stopniu wpłynąć na obciążenie serwera.
  23. Jakieś błędy czy cos?
  24. package pl.kangur88.dzikiepvp; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scoreboard.DisplaySlot; import org.bukkit.scoreboard.Objective; import org.bukkit.scoreboard.Scoreboard; import org.bukkit.scoreboard.ScoreboardManager; public class Main extends JavaPlugin{ ScoreboardManager manager; Scoreboard board; @Override public void onEnable() { super.onEnable(); manager = Bukkit.getScoreboardManager(); board = manager.getNewScoreboard(); } @Override public void onLoad() { super.onLoad(); Objective objective = board.registerNewObjective("health", "health", "health"); objective.setDisplaySlot(DisplaySlot.BELOW_NAME); objective.setDisplayName("/ 20"); } @EventHandler public void damage(EntityDamageByEntityEvent e) { for(Player online : Bukkit.getOnlinePlayers()){ online.setScoreboard(board); online.setHealth(online.getHealth()); //Update their health } } }
  25. W podanym linku (tym, który kolega wysłał Ci wyżej) pierwszą informacją jaką czytasz jest właśnie powód dlaczego dostajesz tę wiadomość.
×
×
  • Dodaj nową pozycję...